
# WARNING: Do not edit this file directly. This file is auto generated by
# running bin/api-spec-compile.
#
# This script starts with the index path for the target version, and includes additional files
# referenced by $ref keys. In order to edit the specification, edit those files
# directly, then run bin/api-spec-compile.

openapi: 3.0.0
info:
  title: Fleetio Developer API
  version: '2024-01-01'
  contact:
    name: Fleetio Support
    email: help@fleetio.com
    url: https://www.fleetio.com/contact
  description: The REST API for integrating with Fleetio.
  license:
    name: None
    url: https://www.fleetio.com/terms
  termsOfService: https://www.fleetio.com/terms
servers:
  - url: https://secure.fleetio.com/api
    description: Production
security:
  - apiKey: []
    accountToken: []
tags:
  - name: Accounts
    description: |-
      An Account represents your organization in Fleetio. All of your fleetio data
      is associated with your Account.
  - name: Axle Configurations
    description: |-
      An Axle Configuration define's a Vehicle's Axles, Tire Positions and Tires.

      :::info
      Tire Management endpoints are only available if you have the Advanced (Legacy), Enterprise (Legacy) or Premium Fleetio Plans.

      [Tire Management
      Overview](https://help.fleetio.com/s/article/Tire-Management-Overview)
      :::
  - name: Axle Configuration Templates
    description: |-
      An Axle Configuration Template is template that can be used to create an Axle Configuration for a Vehicle.

      :::info
      Tire Management endpoints are only available if you have the Advanced (Legacy), Enterprise (Legacy) or Premium Fleetio Plans.

      [Tire Management
      Overview](https://help.fleetio.com/s/article/Tire-Management-Overview)
      :::
  - name: Comments
    description: |-
      A Comment is a note which can be attached to another resource in fleetio,
      for example a [Issue](/docs/api/issues), or a
      [Work Order](/docs/api/work-orders).

      :::info
      [Watchers](https://help.fleetio.com/s/article/Watching-In-Fleetio) of the
      resource will receive a Notification of the comment, as will users who are
      `@mentioned`.
      :::
  - name: Contact Renewal Reminders
    description: |-
      Contact Renewal Reminders help you keep track of
      [Contact](/docs/api/contacts)-specific activities like license renewals,
      industry certifications, or other events applicable to individuals
      affiliated with your business.

      :::info
        [Contact Renewal Reminders
        Overview](https://help.fleetio.com/s/article/Contact-Renewal-Reminders)
      :::
  - name: Contact Renewal Types
    description: |-
      Contact Renewal Types allow you to customize the various renewal events and activities
      that are required for your Contacts. These types can be selected when creating
      Contact Renewal Reminders in Fleetio, and then used for sorting, filtering, and reporting.

      :::info
      [Contact Renewal Types
      Overview](https://help.fleetio.com/s/article/Contact-Renewal-Types)
      :::
  - name: Contacts
    description: |-
      A Contact is a person employed by your organization or a person with whom
      your organization does business.

      :::info
      [Contacts vs Users
      Explained](https://help.fleetio.com/s/article/Contacts-VS-Users-Explained)
      :::
  - name: Custom Fields
    description: |-
      Fleetio provides many pre-defined program fields to store details for
      various data records. You may wish to track additional information, and
      Custom Fields give you a place to store and report these values.

      :::info
      [Custom Fields
      Overview](https://help.fleetio.com/s/article/Custom-Fields-Overview)
      :::
  - name: Equipment
    description: |-
      Equipment in Fleetio refers to all of the auxiliary assets which equip your
      team to facilitate the management of your fleet. These assets have fewer
      maintenance needs than [Vehicles](/docs/api/vehicles), yet they are valuable
      enough to warrant detailed purchase record-keeping, location tracking,
      assignment to responsible individuals, document and photo storage, and more.

      :::info
      [Equipment Overview](https://help.fleetio.com/s/article/Equipment-Overview)
      :::
  - name: Equipment Assignments
    description: |-
      Equipment Assignments keep your team accountable with the ability to assign
      equipment to an operator.

      :::info
      [Equipment Assignments
      Overview](https://help.fleetio.com/s/article/Manage-Equipment-Assignments)
      :::
  - name: Equipment Statuses
    description: |-
      Status is a required field in the [Equipment](/docs/api/equipment)record, with the default set to In-Service.

      Fleetio includes several common pre-defined Equipment Statuses:
      * In-Service
      * Out-of-Service
      * Disposed
      * Missing

      You may edit or delete these pre-defined statuses, or add your own custom statuses.

      :::info
      [Equipment Statuses Overview](https://help.fleetio.com/s/article/Equipment-Statuses)
      :::
  - name: Equipment Types
    description: |-
      Equipment Types are used to categorize your [Equipment](/docs/api/equipment)
      in Fleetio. You can use Equipment Types to filter and report on your
      Equipment.

      :::info
      [Equipment Types Overview](https://help.fleetio.com/s/article/Equipment-Types)
      :::
  - name: Expense Entries
    description: |-
      A Expense Entry is a record of a cost associated with a
      [Vehicle](/docs/api/vehicles). Expenses can belong to different categories,
      such as service costs, fuel costs, licensing, registration, or insurance
      costs, among others. Expenses recorded over time are factored into the
      Vehicle's Total Cost of Ownership (TCO) calculation—an essential metric for
      fleet managers in determining the useful life of a Vehicle.

      :::info
      [Expenses Overview](https://help.fleetio.com/s/article/Expenses-Overview)
      :::
  - name: Expense Entry Types
    description: |-
      Expense Entry Types are used to categorize your [Expense
      Entries](/docs/api/expense-entries) in Fleetio. In order to provide better summary reporting,
      you can assign an Expense Entry Type to each expense you record.
      Fleetio includes many common pre-defined expense types, and you can add, edit, or delete types.

      :::info
      [Expense Entry Types Overview](https://help.fleetio.com/s/article/Expenses-Overview#types)
      :::
  - name: Faults
    description: |-
      Fleetio integrates with several GPS tracking & telematics providers to
      import and manage Faults, such as Diagnostic Trouble Code (DTC) alerts.
      These can also be reported via API.

      :::info
      [Faults Overview](https://help.fleetio.com/s/article/Faults-Overview)
      :::
  - name: Fault Rules
    description: |-
      Establishing Fault Rules allows you to classify vehicle fault codes so you can
      analyze the same Faults across multiple vehicles.
      These workflows handle individual occurrences of the same code across any vehicle.

      :::info
      [Fault Rules Overview](https://help.fleetio.com/s/article/Faults-Overview)
      :::
  - name: Fuel Entries
    description: |-
      Fuel Entries represent a fuel transaction in Fleetio and are an important
      feature to maximize your data. They contain all of the relevant information
      for the fuel-up, such as vendor and odometer information

      :::info
      [Fuel Entries Overview](https://help.fleetio.com/s/article/Fuel-Entry-Overview)
      :::
  - name: Fuel Types
    description: |-
      Categorizing Fuel Entries by Fuel Type is a great way to group and report fuel costs.
      Fleetio includes pre-defined Fuel Types: Diesel, Gasoline, and Propane.
      You may Edit or Delete these types, as well as add your own custom Fuel Types.
      :::info
      [Fuel Types Overview](https://help.fleetio.com/s/article/Fuel-Types)
      :::
  - name: Groups
    description: |-
      Fleetio allows you to create a hierarchy of Groups and Subgroups. This
      allows you to organize your [Vehicles](/docs/api/vehicles),
      [Equipment](/docs/api/equipment) and [Contacts](/docs/api/contacts) and
      manage [Permissions](/docs/overview/permissions) accordingly. Create Groups
      however you want, such as groups for different geographic areas, company
      departments, or cost centers.

      Groups are especially useful if you only want users to access certain assets
      or want to add users as Watchers to an entire set of Vehicles at once.

      Find Groups and Subgroups in your account settings under the Administration
      section.

      :::info
      [Groups and Subgroups
      Overview](https://help.fleetio.com/s/article/Groups-And-Subgroups)
      :::
  - name: Inspection Schedules
    description: |-
      Inspection Schedules allow you to set dates for vehicle inspections and
      get notifications when they are due soon or overdue.
      [Inspection Schedules](https://help.fleetio.com/s/article/Inspections-Manage-Vehicles-And-Schedules#manage-inspection-schedules)
      are managed through the Fleetio dashboard.
  - name: Inventory Adjustment Reasons
    description: |-
      Inventory Adjustment Reasons are used to categorize your [Inventory
      Journal Entries](/docs/api/inventory-journal-entries) in Fleetio. In order
      to provide better summary reporting, you can assign an Inventory Adjustment
      Reason to each Inventory Journal Entry you record.
  - name: Inventory Journal Entries
    description: |-
      Inventory Journal Entries are used to record changes to your Parts inventory.

      Fleetio's **Parts & Inventory** module can help your organization with many
      aspects of parts inventory management:

      * Store all of your Parts information in one place
      * Track Part usage
      * Adjust the quantity for each Part and get alerts when stock is low
      * Transfer Parts between locations
      * Add Parts to [Work Orders](/docs/api/work-orders)
      * Use "Bulk Manage" tools to assist with physical inventory audits
      * Track inventory by location

      :::info
      [Inventory Overview](https://help.fleetio.com/s/article/Inventory-Overview)
      :::
  - name: Imports
    description: |-

      :::info
      [Imports Overview](https://help.fleetio.com/s/article/Data-Import-Overview)
      :::
  - name: Inspection Forms
    description: |-
      Inspection Forms can be used to track the condition of your assets,
      ensure compliance with regulations, and more.

      :::info
      Inspection forms are created in the web application.

      If you already have a set of existing inspections that your team follows,
      you can build inspection forms from scratch, or make your own template and copy it.

      [Inspections Overview](https://help.fleetio.com/s/article/Inspections-Overview)
      :::
  - name: Issues
    description: |-
      Issues in Fleetio allows users to log and track unexpected, unplanned, or
      "one-time" problems and repairs. These services typically do not fit within
      the routine Preventative Maintenance (PM) category. Examples of Issues
      include leaks, breakdowns, and failed Inspection checklist items.
      :::info
      [Issues Overview](https://help.fleetio.com/s/article/Issues-Overview)
      :::
  - name: Issue Priorities
    description: |
      Issue Priorities allow users to prioritize issues.
  - name: Labels
    description: |-
      Labels help users prioritize and categorize the work to be done on a
      [Vehicle](/docs/api/vehicles) in Fleetio. The most common use for Labels is
      to identify the area of the Vehicle receiving the service and/or the
      priority of the service. Labels may be added many resources in Fleetio,
      including Documents, [Equipment](/docs/api/equipment),
      [Issues](/docs/api/issues), [Purchase Orders](/docs/api/purchase-orders),
      [Service Entries](/docs/api/service-entries), [Vendors](/docs/api/vendors),
      and [Work Orders](/docs/api/work-orders). They are also available as a
      filter option in
      [Reports](https://help.fleetio.com/s/article/Reports-Overview).

      :::info
      [Labels Overview](https://help.fleetio.com/s/article/Labels-Overview)
      :::
  - name: Location Entries
    description: |-
      A Location Entry is a snapshot of an asset's location at a point in time.
      Location Entries can be recorded with [GPS Device
      Integrations](https://help.fleetio.com/s/article/GPS-Telematics-Integrations)
      or by enabling location services on mobile devices running [Fleetio
      Go](https://help.fleetio.com/s/article/Log-Location-Entries-Using-Fleetio-Go).

      :::info
      [Vehicle Location History
      Overview]( https://help.fleetio.com/s/article/Vehicle-Location-History)
      :::
  - name: Meter Entries
    description: |-
      A Meter Entry is a recording from a Meter at a point in time. A Meter could
      be an odometer, an hour meter, or an auxiliary meter. Meter Entries are used
      to track vehicle usage, monitor your costs, and trigger [Service
      Reminders](/docs/api/service-reminders).

      :::note
      When creating or updating Meter Entries, if the vehicle's secondary meter is disabled, secondary meter values will
      be hidden in the meter history of the web and mobile views until enabled.
      :::

      :::info
      [GPS Telematics
      Integrations](https://help.fleetio.com/s/article/GPS-Telematics-Integrations)
      :::
  - name: Part Location Details
    description: |-
      Part Location Details include inventory information about a Part at a specific Part Location.

      :::info
      See [Parts - Locations & Inventory](https://help.fleetio.com/s/article/Parts-Overview#add)
      for more information.
      :::
  - name: Part Locations
    description: |-
      Part Locations are used to track where your Parts are stored. You can add
      multiple Part Locations to a Part and track the quantity of each Part at
      each location. "On hand" quantities are also stored at the Location level for a Part.

      :::info
      [Parts - Locations & Inventory](https://help.fleetio.com/s/article/Parts-Overview#add)
      :::
  - name: Parts
    description: |-
      Parts management is key to running an efficient fleet. Fleetio makes it easy
      to keep track of Parts data, including Part Manufacturer,
      [Vendor](/docs/api/vendors), and Location. You can also track and report
      Parts usage using [Work Orders](/docs/api/work-orders).

      :::info
      [Parts Overview](https://help.fleetio.com/s/article/Parts-Overview)
      :::
  - name: Places
    description: |-
      Places are locations that are important to your organization. Places can be
      used to track where your Vehicles are parked, where your Equipment is
      stored, or where your Drivers are located.

      :::info
      [Places Overview](https://help.fleetio.com/s/article/Places-Overview)
      :::
  - name: Roles
    description: |-
      Roles are collections of permission settings that are applied to Regular Users
      to determine which actions they can take in the program.

      :::info
      [Roles Overview](https://help.fleetio.com/s/article/User-Roles-And-Permissions)
      :::
  - name: Purchase Orders
    description: |-
      Purchase Orders in Fleetio are designed to help standardize
      [Parts](/docs/api/parts) procurement through a purchasing workflow.

      :::info
      [Purchase Orders
      Overview](https://help.fleetio.com/s/article/Purchase-Orders-Overview)
      :::

      :::info
      A Purchase Order advances through a series of states throughout its
      lifecycle. See the [Purchase Order Lifecycle
      Guide](/docs/guides/inventory/purchase-order-lifecycle) for more information on how to
      transition between each state.
      :::

      :::tip
      Associating Purchase Orders with [Vendors](/docs/api/vendors) allows for
      detailed history tracking and cost reporting.
      :::
  - name: Service Entries
    description: |-
      Service Entries are a simple way to log completed [Service
      Tasks](/docs/api/service-tasks) and [Issues](/docs/api/issues)-the routine
      Preventative Maintenance and one-time repairs that are performed on
      [Vehicles](/docs/api/vehicles) in Fleetio. Service Entries are a fast and
      easy, yet powerful, way to keep track of service history and maintenance
      expenses.

      :::info
      [Service Entries
      Overview](https://help.fleetio.com/s/article/Service-Entry-Overview)
      :::
  - name: Service Reminders
    description: |-
      Service Reminders use a schedule based on an interval you set, and pop up
      when a Service Task is close to being due (referred to as "Due Soon" in
      Fleetio). Once a reminder for a Service Task comes up in Fleetio, you can
      use it in conjunction with [Service Entries](/docs/api/service-entries) and
      [Work Orders](/docs/api/work-orders) to schedule Preventative Maintenance.

      :::info
      [Service Reminders
      Overview](https://help.fleetio.com/s/article/Service-Reminders-Overview)
      :::
  - name: Service Tasks
    description: |-
      Service Tasks are the building blocks of maintenance and repairs logged in
      Fleetio. Service Tasks can represent recurring Preventive Maintenance tasks,
      as well as unplanned one-time repair tasks.

      :::info
      [Service Tasks
      Overview](https://help.fleetio.com/s/article/Service-Task-Overview)
      :::
  - name: Submitted Inspection Forms
    description: |-
      Submitted Inspection Forms are [Inspection Forms](/docs/api/inspection-forms)
      that have been completed and submitted. Other than inspections, common uses are
      documenting accident damage, or general vehicle check-ins.

      :::info
      Submitting inspection forms through the API is not currently supported.

      [Inspections
      Overview](https://help.fleetio.com/s/article/Inspections-Overview)
      :::
  - name: Tires
    description: |-
      :::info
      Tire Management endpoints are only available if you have the Advanced (Legacy), Enterprise (Legacy) or Premium Fleetio Plans.
      [Tire Management
      Overview](https://help.fleetio.com/s/article/Tire-Management-Overview)
      :::
  - name: Vehicle Acquisitions
    description: |-
      Acquisitions allow you to track data regarding the acquisition and disposal
      of your [Vehicles](/docs/api/vehicles). This may include Purchase, Loan or
      Lease details.

      :::info
      [Vehicle Acquisition
      Overview](https://help.fleetio.com/s/article/Vehicle-Acquisition-Purchase-Loan-Lease)
      :::
  - name: Vehicle Assignments
    description: |-
      Fleetio allows you to assign a [Vehicle](/docs/api/vehicles) to an Operator
      so that you know who is currently responsible for a vehicle. When assigned,
      the Operator automatically becomes a watcher of the vehicle.

      :::info
      [Vehicle Assignment
      Overview](https://help.fleetio.com/s/article/Vehicle-Assignment-Overview)
      :::
  - name: Vehicle Purchase Details
    description: |-
      Purchase Details include information about a Vehicle at the time of purchase,
      such as date of purchase, price, odometer reading, vendor, and warranty expiration.
  - name: Vehicle Renewal Reminders
    description: |-
      Vehicle Renewal Reminders are designed to help you keep your
      [Vehicles](/docs/api/vehicles) current on various non-maintenance activities
      such as emission tests, registration, insurance, and more.

      :::info
      [Vehicle Renewal Reminders
      Overview](https://help.fleetio.com/s/article/Vehicle-Renewal-Reminders)
      :::
  - name: Vehicle Renewal Types
    description: |-
      Vehicle Renewal Types allow you to customize the various renewal activities
      for your fleet Vehicles. These Types can be used when creating
      [Vehicle Renewal Reminders](/docs/api/vehicle-renewal-reminders) in Fleetio,
      and then used for sorting, filtering, and reporting.

      Fleetio includes pre-defined Vehicle Renewal Types including
      Emission Test, Inspection, Insurance, and Registration.
      You have the option to edit or delete these Types, as well as add your own custom Types.

      :::info
      [Vehicle Renewal Types Overview](https://help.fleetio.com/s/article/Vehicle-Renewal-Types)
      :::
  - name: Vehicle Status Changes
    description: |-
      Vehicle Status Changes are used to track the history of a [Vehicle's
      Status](/docs/api/vehicle-statuses). Fleetio provides a default set of
      statuses, but you can also create your own custom statuses to fit your
      workflow.
  - name: Vehicle Statuses
    description: |-
      Vehicle Statuses are used to track the current status of a Vehicle. Fleetio
      includes pre-defined Vehicle Statuses including Active, Inactive, In Shop,
      Out of Service, and Sold. You have the option to edit or delete these Statuses,
      as well as add your own custom Statuses.

      :::info
      [Vehicle Statuses Overview](https://help.fleetio.com/help/s/article/Vehicle-Statuses)
      :::
  - name: Vehicle Types
    description: |-
      Vehicle Types offer a way to group similar vehicles in Fleetio.
      Most lists and reports throughout Fleetio allow you to filter based on type,
      giving you a powerful way to categorize your vehicles
      and making it easier to find the group of vehicles you're looking for.

      :::info
      [Vehicle Types Overview](https://help.fleetio.com/help/s/article/Vehicle-Types)
      :::
  - name: Vehicles
    description: |-
      Vehicles are the heart of Fleetio. A "vehicle" represents any asset or unit
      of equipment—moving or otherwise—managed in Fleetio.

      :::info
      [Vehicle Overview](https://help.fleetio.com/s/article/Vehicle-Overview)
      :::
  - name: Vendors
    description: |-
      A Vendor is any entity that your organization does business with. This might
      include Vehicle or Equipment service providers, purchasing and loans, retail
      suppliers, fuel providers and much more. This entity can be a third-party
      provider or an in-house group or cost center.

      :::info
      [Vendor Overview](https://help.fleetio.com/s/article/Vendor-Overview)
      :::
  - name: Watchers
    description: |-
      Watchers are Fleetio Users who are subscribed to receive notifications about a particular Watchable record.

      Our Watchers API currently supports the following Watchable types:
      [Equipment](/docs/api/equipment),
      [Issue](/docs/api/issues),
      [Service Reminder](/docs/api/service-reminders),
      [Work Order](/docs/api/work-orders).
  - name: Work Order Statuses
    description: |-
      Work Order Statuses are used to track the progress of a [Work
      Order](/docs/api/work-orders) through its lifecycle. Fleetio provides a
      default set of statuses, but you can also create your own custom statuses to
      fit your workflow.

      :::info
      [Work Order Statuses Overview](https://help.fleetio.com/s/article/Work-Order-Statuses)
      :::
  - name: Work Orders
    description: |-
      Work Orders offer a robust way to log completed [Service
      Tasks](/docs/api/service-tasks) and [Issues](/docs/api/issues)—the routine
      Preventative Maintenance and one-time repairs that are performed on
      [Vehicles](/docs/api/vehicles) in Fleetio.

      Work Orders offer greater detail and workflow management options than
      [Service Entries](/docs/api/service-entries)—which are typically logged
      after completion, while Work Orders allow you to capture the entire
      lifecycle of work performed.

      Update and monitor Work Order Statuses in order to track progress through
      completion. Additional [Parts](/docs/api/parts) and Labor detail which is
      available in the Work Order allow for greater data analysis and cost
      reporting.

      Work Orders are used in conjunction with [Service
      Reminders](/docs/api/service-reminders) and [Service
      Programs](https://help.fleetio.com/s/article/Service-Programs-Overview) to
      help you stay on top of scheduled tasks.

      :::info
      [Work Orders Overview](https://help.fleetio.com/s/article/Work-Order-Overview)
      :::
  - name: Webhooks
    description: |-
      Webhooks allow you to listen for events from Fleetio.

      You can add a webhook, and subscribe to one or all of our Webhook Events.
      Fleetio will then send an HTTP POST request to your server whenever that event occurs.
      The request body will contain related data.
      :::info
      [Webhooks Overview](https://developer.fleetio.com/docs/overview/webhooks)
      :::
  - name: Webhook Events
    description: |-
      Webhook Events are the events that you can subscribe to in order to receive
      notifications from Fleetio.
paths:
  /v1/accounts:
    get:
      summary: List Accounts
      tags:
        - Accounts
      operationId: V1::Accounts::Index
      description: |-
        Allows you to see information about the corresponding account(s) related to
        a given API key or Organization, such as the company name and address.

        :::info
        This endpoint does not require you to pass in the `Account-Token`
        header. When not using an Organization Token, the API key must be
        passed in via the Authorization header as this API key is
        what is used to lookup the associated accounts.

        If this endpoint is authenticated using an Organization Token, all owner account
        memberships for accounts associated with the organization will be returned.
        :::
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Account'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Account
      tags:
        - Accounts
      operationId: V1::Accounts::Create
      description: |-
        Creates a new Account.

        :::info
        This endpoint is only usable by Fleetio partners with an Organization Token or Partner Token.
        :::
      parameters:
        - in: header
          name: Partner-Token
          schema:
            $ref: '#/components/schemas/PartnerToken'
        - in: header
          name: Organization-Token
          schema:
            $ref: '#/components/schemas/OrganizationToken'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - user_full_name
                - user_email
                - user_password
                - account_name
              properties:
                user_full_name:
                  type: string
                  maxLength: 255
                  description: The full name of the User.
                user_email:
                  type: string
                  maxLength: 255
                  description: The email address of the User.
                user_password:
                  type: string
                  maxLength: 255
                  description: The password of the User.
                account_name:
                  type: string
                  maxLength: 255
                  description: The name of the Account.
                account_industry:
                  type: string
                  maxLength: 255
                  enum:
                    - Transportation & Logistics
                    - Rental & Leasing
                    - Consumer/Business Services
                    - Construction Contractors & Services
                    - Government
                    - Energy, Utilities & Mining
                    - Retail, Wholesale & Manufacturing
                    - Information & Telecommunications
                    - Education
                    - Arts, Entertainment & Recreation
                    - Non-Profit/Religious Organizations
                    - Other
                account_phone_number:
                  type: string
                  maxLength: 255
                  description: The primary phone number of the Account.
                account_date_format:
                  type: string
                  maxLength: 255
                  description: This determines the format dates are displayed in the UI.
                  enum:
                    - mmddyyy_slash
                    - ddmmyyyy_slash
                    - ddmmyyyy_dot
                    - yyyymmdd_dot
                    - yyyymmdd_slash
                    - yyyymmdd_dash
                account_default_meter_unit:
                  type: string
                  description: The default meter unit for assets created on the Account.
                  enum:
                    - mi
                    - km
                    - hr
                account_default_fuel_volume_unit:
                  type: string
                  description: The default fuel volume units for assets created on the Account.
                  enum:
                    - us_gallons
                    - uk_gallons
                    - liters
                account_default_system_of_measurement:
                  type: string
                  description: The default system of measurement to be used on the Account.
                  enum:
                    - imperial
                    - metric
                  default: imperial
                account_hide_getting_started:
                  type: boolean
                  description: Setting this value to true will result in the getting started onboarding assistance being skipped.
                account_currency:
                  type: string
                  maxLength: 255
                  description: The international 3-letter currency code as defined by the ISO 4217 standard.
                account_time_24_format:
                  type: boolean
                  default: false
                  description: Whether to use 24 hour time format.
                account_street_address:
                  type: string
                  maxLength: 255
                  description: The street address of the Account.
                account_city:
                  type: string
                  maxLength: 255
                  description: The city of the Account.
                account_region:
                  type: string
                  maxLength: 255
                  description: The region, province, state, or territory of the Account.
                account_postal_code:
                  type: string
                  maxLength: 255
                  description: The postal code or ZIP code of the Account.
                account_country:
                  type: string
                  maxLength: 2
                  description: The country of the Account in ISO3166 Alpha-2.  This will be used to set defaults for currency, meter_unit, system of measurement, fuel_volume_unit, and date_format for supported countries when creating an account. You may find ISO3166 Alpha-2 country codes [here](https://www.iso.org/obp/ui/#search/code/)
                  example: US
                account_web_session_timeout_minutes:
                  type: string
                  example: '60'
                  description: |-
                    The amount of time in minutes that should pass
                    before a `User` is required to log in again on web.
                account_go_session_timeout_minutes:
                  type: string
                  example: '60'
                  description: |-
                    The amount of time in minutes that should pass
                    before a `User` is required to log in again on Fleetio Go.
                account_time_zone:
                  type: string
                  example: Pacific Time (US & Canada)
                  description: |-
                    The time zone of the Account.
                    The prepended `(offset)` is for convenience, it should not be included in the value sent.
                    For example, `(GMT-08:00) Pacific Time (US & Canada)` would be sent
                    as `Pacific Time (US & Canada)`.
                  enum:
                    - (GMT-12:00) International Date Line West
                    - (GMT-11:00) American Samoa
                    - (GMT-11:00) Midway Island
                    - (GMT-10:00) Hawaii
                    - (GMT-09:00) Alaska
                    - (GMT-08:00) Pacific Time (US & Canada)
                    - (GMT-08:00) Tijuana
                    - (GMT-07:00) Arizona
                    - (GMT-07:00) Chihuahua
                    - (GMT-07:00) Mazatlan
                    - (GMT-07:00) Mountain Time (US & Canada)
                    - (GMT-06:00) Central America
                    - (GMT-06:00) Central Time (US & Canada)
                    - (GMT-06:00) Guadalajara
                    - (GMT-06:00) Mexico City
                    - (GMT-06:00) Monterrey
                    - (GMT-06:00) Saskatchewan
                    - (GMT-05:00) Bogota
                    - (GMT-05:00) Eastern Time (US & Canada)
                    - (GMT-05:00) Indiana (East)
                    - (GMT-05:00) Lima
                    - (GMT-05:00) Quito
                    - (GMT-04:00) Atlantic Time (Canada)
                    - (GMT-04:00) Caracas
                    - (GMT-04:00) Georgetown
                    - (GMT-04:00) La Paz
                    - (GMT-04:00) Puerto Rico
                    - (GMT-04:00) Santiago
                    - (GMT-03:30) Newfoundland
                    - (GMT-03:00) Brasilia
                    - (GMT-03:00) Buenos Aires
                    - (GMT-03:00) Greenland
                    - (GMT-03:00) Montevideo
                    - (GMT-02:00) Mid-Atlantic
                    - (GMT-01:00) Azores
                    - (GMT-01:00) Cape Verde Is.
                    - (GMT+00:00) Casablanca
                    - (GMT+00:00) Dublin
                    - (GMT+00:00) Edinburgh
                    - (GMT+00:00) Lisbon
                    - (GMT+00:00) London
                    - (GMT+00:00) Monrovia
                    - (GMT+00:00) UTC
                    - (GMT+01:00) Amsterdam
                    - (GMT+01:00) Belgrade
                    - (GMT+01:00) Berlin
                    - (GMT+01:00) Bern
                    - (GMT+01:00) Bratislava
                    - (GMT+01:00) Brussels
                    - (GMT+01:00) Budapest
                    - (GMT+01:00) Copenhagen
                    - (GMT+01:00) Ljubljana
                    - (GMT+01:00) Madrid
                    - (GMT+01:00) Paris
                    - (GMT+01:00) Prague
                    - (GMT+01:00) Rome
                    - (GMT+01:00) Sarajevo
                    - (GMT+01:00) Skopje
                    - (GMT+01:00) Stockholm
                    - (GMT+01:00) Vienna
                    - (GMT+01:00) Warsaw
                    - (GMT+01:00) West Central Africa
                    - (GMT+01:00) Zagreb
                    - (GMT+01:00) Zurich
                    - (GMT+02:00) Athens
                    - (GMT+02:00) Bucharest
                    - (GMT+02:00) Cairo
                    - (GMT+02:00) Harare
                    - (GMT+02:00) Helsinki
                    - (GMT+02:00) Jerusalem
                    - (GMT+02:00) Kaliningrad
                    - (GMT+02:00) Kyiv
                    - (GMT+02:00) Pretoria
                    - (GMT+02:00) Riga
                    - (GMT+02:00) Sofia
                    - (GMT+02:00) Tallinn
                    - (GMT+02:00) Vilnius
                    - (GMT+03:00) Baghdad
                    - (GMT+03:00) Istanbul
                    - (GMT+03:00) Kuwait
                    - (GMT+03:00) Minsk
                    - (GMT+03:00) Moscow
                    - (GMT+03:00) Nairobi
                    - (GMT+03:00) Riyadh
                    - (GMT+03:00) St. Petersburg
                    - (GMT+03:00) Volgograd
                    - (GMT+03:30) Tehran
                    - (GMT+04:00) Abu Dhabi
                    - (GMT+04:00) Baku
                    - (GMT+04:00) Muscat
                    - (GMT+04:00) Samara
                    - (GMT+04:00) Tbilisi
                    - (GMT+04:00) Yerevan
                    - (GMT+04:30) Kabul
                    - (GMT+05:00) Ekaterinburg
                    - (GMT+05:00) Islamabad
                    - (GMT+05:00) Karachi
                    - (GMT+05:00) Tashkent
                    - (GMT+05:30) Chennai
                    - (GMT+05:30) Kolkata
                    - (GMT+05:30) Mumbai
                    - (GMT+05:30) New Delhi
                    - (GMT+05:30) Sri Jayawardenepura
                    - (GMT+05:45) Kathmandu
                    - (GMT+06:00) Almaty
                    - (GMT+06:00) Astana
                    - (GMT+06:00) Dhaka
                    - (GMT+06:00) Urumqi
                    - (GMT+06:30) Rangoon
                    - (GMT+07:00) Bangkok
                    - (GMT+07:00) Hanoi
                    - (GMT+07:00) Jakarta
                    - (GMT+07:00) Krasnoyarsk
                    - (GMT+07:00) Novosibirsk
                    - (GMT+08:00) Beijing
                    - (GMT+08:00) Chongqing
                    - (GMT+08:00) Hong Kong
                    - (GMT+08:00) Irkutsk
                    - (GMT+08:00) Kuala Lumpur
                    - (GMT+08:00) Perth
                    - (GMT+08:00) Singapore
                    - (GMT+08:00) Taipei
                    - (GMT+08:00) Ulaanbaatar
                    - (GMT+09:00) Osaka
                    - (GMT+09:00) Sapporo
                    - (GMT+09:00) Seoul
                    - (GMT+09:00) Tokyo
                    - (GMT+09:00) Yakutsk
                    - (GMT+09:30) Adelaide
                    - (GMT+09:30) Darwin
                    - (GMT+10:00) Brisbane
                    - (GMT+10:00) Canberra
                    - (GMT+10:00) Guam
                    - (GMT+10:00) Hobart
                    - (GMT+10:00) Melbourne
                    - (GMT+10:00) Port Moresby
                    - (GMT+10:00) Sydney
                    - (GMT+10:00) Vladivostok
                    - (GMT+11:00) Magadan
                    - (GMT+11:00) New Caledonia
                    - (GMT+11:00) Solomon Is.
                    - (GMT+11:00) Srednekolymsk
                    - (GMT+12:00) Auckland
                    - (GMT+12:00) Fiji
                    - (GMT+12:00) Kamchatka
                    - (GMT+12:00) Marshall Is.
                    - (GMT+12:00) Wellington
                    - (GMT+12:45) Chatham Is.
                    - (GMT+13:00) Nuku'alofa
                    - (GMT+13:00) Samoa
                    - (GMT+13:00) Tokelau Is.
                plan:
                  type: string
                  description: The plan to be used for the Account. All plans default to the 10,000 band
                  enum:
                    - professional
                    - premium
      responses:
        '201':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-sidebarLabel: Create
  /v1/accounts/{id}:
    delete:
      summary: Delete Account
      tags:
        - Accounts
      operationId: V1::Accounts::Destroy
      description: |-
        Cancels an Account that belongs to your organization.

        :::info
        This endpoint is only usable by Fleetio partners with an Organization Token or Partner Token.
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - in: header
          name: Partner-Token
          schema:
            $ref: '#/components/schemas/PartnerToken'
        - in: header
          name: Organization-Token
          schema:
            $ref: '#/components/schemas/OrganizationToken'
      responses:
        '204':
          description: OK
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-sidebarLabel: Delete
  /v1/acquisitions:
    get:
      summary: List Acquisitions
      tags:
        - Vehicle Acquisitions
      operationId: V1::Acquisitions::Index
      description: Returns a list of your Acquisitions.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Acquisition'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Acquisition
      tags:
        - Vehicle Acquisitions
      operationId: V1::Acquisitions::Create
      description: Creates a new Acquisition
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - acquisition_type
              properties:
                acquisition_type:
                  $ref: '#/components/schemas/AcquisitionType'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  $ref: '#/components/schemas/NullableId'
                lender_id:
                  $ref: '#/components/schemas/NullableId'
                monthly_cost:
                  type: number
                  format: float
                  description: Total amount that will be paid each month including any taxes and fees.
                capitalized_cost:
                  type: number
                  format: float
                  description: Capitalized cost per month of the `Vehicle`.
                down_payment_amount:
                  type: number
                  format: float
                  description: For `loan` type Acquisitions, the amount of the initial down payment.
                residual_value:
                  type: number
                  format: float
                  description: For `lease` type Acquisitions, the value of the Vehicle at the end of the lease.
                purchase_price:
                  type: number
                  format: float
                  description: For `loan` type Acquisitions, the total purchase price of the `Vehicle`.
                acquisition_date:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: The date on which the Acquisition occurred or began.
                acquisition_end_date:
                  type: string
                  format: date
                  example: '2026-03-14'
                  description: |-
                    The date on which the Acquisition ends or is scheduled to end.

                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                first_payment_date:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date of the first payment for the Acquisition, if applicable.

                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                number_of_payments:
                  type: integer
                  description: |-
                    For `lease` type Acquisitions, this number represents the number of
                    months for which the vehicle is leased. For `loan` type Acquisitions,
                    this number represents the number of payments until the loan is paid
                    off.
                mileage_cap:
                  type: integer
                  description: |-
                    For `lease` type Acquisitions, this number represents the number of
                    miles allowed each year, before additional charges will be incurred.
                loan_amount:
                  type: number
                  format: float
                  description: |-
                    For `loan` type Acquisitions, the total principal amount at the start
                    of the loan.
                mileage_charge:
                  type: number
                  format: float
                  description: |-
                    For `lease` type Acquisitions, the amount charged for each mile over
                    the mileage cap.
                annual_percentage_rate:
                  type: number
                  format: float
                  description: For `loan` type acquisitions, the annual percentage rate for the loan.
                reference_number:
                  type: string
                  maxLength: 255
                  description: |-
                    Optional data for collecting information such as the invoice number,
                    transaction id, or receipt number.
                notes:
                  type: string
                  description: Optional free text field for additional notes.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acquisition'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/acquisitions/{id}:
    get:
      summary: Retrieve Acquisition
      tags:
        - Vehicle Acquisitions
      operationId: V1::Acquisitions::Show
      description: Retrieve the details of an existing Acquisition.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acquisition'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Acquisition
      tags:
        - Vehicle Acquisitions
      operationId: V1::Acquisitions::Update
      description: Update a Acquisition
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                acquisition_type:
                  $ref: '#/components/schemas/AcquisitionType'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  $ref: '#/components/schemas/NullableId'
                lender_id:
                  $ref: '#/components/schemas/NullableId'
                monthly_cost:
                  type: number
                  format: float
                  description: Total amount that will be paid each month including any taxes and fees.
                capitalized_cost:
                  type: number
                  format: float
                  description: Capitalized cost per month of the `Vehicle`.
                down_payment_amount:
                  type: number
                  format: float
                  description: For `loan` type Acquisitions, the amount of the initial down payment.
                residual_value:
                  type: number
                  format: float
                  description: For `lease` type Acquisitions, the value of the Vehicle at the end of the lease.
                purchase_price:
                  type: number
                  format: float
                  description: For `loan` type Acquisitions, the total purchase price of the `Vehicle`.
                acquisition_date:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: The date on which the Acquisition occurred or began.
                acquisition_end_date:
                  type: string
                  format: date
                  example: '2026-03-14'
                  description: |-
                    The date on which the Acquisition ends or is scheduled to end.

                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                first_payment_date:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date of the first payment for the Acquisition, if applicable.

                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                number_of_payments:
                  type: integer
                  description: |-
                    For `lease` type Acquisitions, this number represents the number of
                    months for which the vehicle is leased. For `loan` type Acquisitions,
                    this number represents the number of payments until the loan is paid
                    off.
                mileage_cap:
                  type: integer
                  description: |-
                    For `lease` type Acquisitions, this number represents the number of
                    miles allowed each year, before additional charges will be incurred.
                loan_amount:
                  type: number
                  format: float
                  description: |-
                    For `loan` type Acquisitions, the total principal amount at the start
                    of the loan.
                mileage_charge:
                  type: number
                  format: float
                  description: |-
                    For `lease` type Acquisitions, the amount charged for each mile over
                    the mileage cap.
                annual_percentage_rate:
                  type: number
                  format: float
                  description: For `loan` type acquisitions, the annual percentage rate for the loan.
                reference_number:
                  type: string
                  maxLength: 255
                  description: |-
                    Optional data for collecting information such as the invoice number,
                    transaction id, or receipt number.
                notes:
                  type: string
                  description: Optional free text field for additional notes.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acquisition'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Acquisition
      tags:
        - Vehicle Acquisitions
      operationId: V1::Acquisitions::Destroy
      description: Delete an Acquisition
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acquisition'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/axle_configs:
    get:
      summary: List Axle Configurations
      tags:
        - Axle Configurations
      operationId: V1::AxleConfigs::Index
      description: Returns a list of Axle Configurations
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AxleConfig'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Axle Configuration
      tags:
        - Axle Configurations
      operationId: V1::AxleConfigs::Create
      description: Creates a new Axle Configuration.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - axle_config_template_id
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                axle_config_template_id:
                  $ref: '#/components/schemas/Id'
                with_installed_tires:
                  type: boolean
                  description: If true, then the Axle Configuration will have a generic tire installed at each Tire Position
                axles_count:
                  type: integer
                  description: Only relevant for 'Multi-Axle' Trailer Axle Configurations where the number of Axles is not known.
            example:
              vehicle_id: 1
              axle_config_template_id: 1
              with_installed_tires: true
      responses:
        '201':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-sidebarLabel: Create
  /v1/axle_configs/{id}:
    get:
      summary: Retrieve Axle Configuration
      tags:
        - Axle Configurations
      operationId: V1::AxleConfigs::Show
      description: Retrieve the details of an existing Axle Configuration.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The Fleetio ID of the relevant Axle Configuration
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AxleConfig'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v1/axle_config_templates:
    get:
      summary: List Axle Config Templates
      tags:
        - Axle Configuration Templates
      operationId: V1::AxleConfigTemplates::Index
      description: Returns a list of Axle Config Templates
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return.
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              name:
                $ref: '#/components/schemas/LikeEqFilter'
              external_id:
                $ref: '#/components/schemas/EqFilter'
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            name:
                              $ref: '#/components/schemas/LikeEqFilter'
                        - type: object
                          properties:
                            external_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/AxleConfigTemplate'
              example:
                start_cursor: eyJpZCI6MX0=
                next_cursor: null
                per_page: 50
                estimated_remaining_count: 27
                filtered_by: []
                sorted_by:
                  - id: asc
                records:
                  - id: 1
                    name: 4x2 FWD
                    is_trailer: false
                    axles_count_required: false
                  - id: 2
                    name: 4x2 RWD
                    is_trailer: false
                    axles_count_required: false
                  - id: 3
                    name: 4x2 RWD (Dually)
                    is_trailer: false
                    axles_count_required: false
                  - id: 4
                    name: 4x2 AWD
                    is_trailer: false
                    axles_count_required: false
                  - id: 5
                    name: 4x2 AWD (Dually)
                    is_trailer: false
                    axles_count_required: false
                  - id: 6
                    name: 4x4
                    is_trailer: false
                    axles_count_required: false
                  - id: 7
                    name: 4x4 (Dually)
                    is_trailer: false
                    axles_count_required: false
                  - id: 8
                    name: 6x2
                    is_trailer: false
                    axles_count_required: false
                  - id: 9
                    name: 6x4
                    is_trailer: false
                    axles_count_required: false
                  - id: 10
                    name: 6x6
                    is_trailer: false
                    axles_count_required: false
                  - id: 11
                    name: 8x2
                    is_trailer: false
                    axles_count_required: false
                  - id: 12
                    name: 8x4
                    is_trailer: false
                    axles_count_required: false
                  - id: 13
                    name: 8x6
                    is_trailer: false
                    axles_count_required: false
                  - id: 14
                    name: 8x8
                    is_trailer: false
                    axles_count_required: false
                  - id: 15
                    name: 10x4
                    is_trailer: false
                    axles_count_required: false
                  - id: 16
                    name: 10x6
                    is_trailer: false
                    axles_count_required: false
                  - id: 17
                    name: 10x8
                    is_trailer: false
                    axles_count_required: false
                  - id: 18
                    name: 10x10
                    is_trailer: false
                    axles_count_required: false
                  - id: 19
                    name: 12x4
                    is_trailer: false
                    axles_count_required: false
                  - id: 20
                    name: 12x6
                    is_trailer: false
                    axles_count_required: false
                  - id: 21
                    name: Single Axle
                    is_trailer: true
                    axles_count_required: false
                  - id: 22
                    name: Tandem Axle (2 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
                  - id: 23
                    name: Tandem Axle (4 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
                  - id: 24
                    name: Tri-Axle (2 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
                  - id: 25
                    name: Tri-Axle (4 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
                  - id: 26
                    name: Multi-Axle (2 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
                  - id: 27
                    name: Multi-Axle (4 Tires per Axle)
                    is_trailer: true
                    axles_count_required: true
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/comments:
    get:
      summary: List Comments
      tags:
        - Comments
      operationId: V1::Comments::Index
      description: Returns a list of your comments.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Comment'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Comment
      tags:
        - Comments
      operationId: V1::Comments::Create
      description: Creates a new comment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - comment
                - commentable_type
                - commentable_id
              properties:
                title:
                  type: string
                  deprecated: true
                  description: The title of the Comment.
                comment:
                  type: string
                  description: The content of the Comment message body.
                commentable_type:
                  $ref: '#/components/schemas/CommentableType'
                commentable_id:
                  $ref: '#/components/schemas/Id'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/comments/{id}:
    get:
      summary: Retrieve Comment
      tags:
        - Comments
      operationId: V1::Comments::Show
      description: Retrieve the details of an existing Comment.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Comment
      tags:
        - Comments
      operationId: V1::Comments::Update
      description: Update a Comment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  deprecated: true
                  description: The title of the Comment.
                comment:
                  type: string
                  description: The content of the Comment message body.
                commentable_type:
                  $ref: '#/components/schemas/CommentableType'
                commentable_id:
                  $ref: '#/components/schemas/Id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Comment
      tags:
        - Comments
      operationId: V1::Comments::Destroy
      description: Delete a Comment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/contact_renewal_reminders:
    get:
      summary: List Contact Renewal Reminders
      tags:
        - Contact Renewal Reminders
      operationId: V1::ContactRenewalReminders::Index
      description: Returns a list of your ContactRenewalReminders.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContactRenewalReminder'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Contact Renewal Reminder
      tags:
        - Contact Renewal Reminders
      operationId: V1::ContactRenewalReminders::Create
      description: Creates a new ContactRenewalReminder
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - contact_id
                - contact_renewal_type_id
                - next_due_at
              properties:
                contact_id:
                  type: integer
                  description: The ID of the `Contact` this Renewal Reminder is for.
                contact_renewal_type_id:
                  type: integer
                  description: The ID of the `Contact Renewal Type` this Renewal Reminder is for.
                active:
                  type: boolean
                  description: Whether or not this Renewal Reminder is active.
                next_due_at:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date at which this Renewal Reminder is due.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_at:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date at which this Renewal Reminder is due soon.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_time_threshold_interval:
                  type: integer
                  description: |-
                    Used in conjunction with `due_soon_time_threshold_frequency`. Together they
                    form a full due soon parameter eg; "1 week", "5 months", "10 years"
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/Frequency'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactRenewalReminder_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/contact_renewal_reminders/{id}:
    get:
      summary: Retrieve Contact Renewal Reminder
      tags:
        - Contact Renewal Reminders
      operationId: V1::ContactRenewalReminders::Show
      description: Retrieve the details of an existing Contact Renewal Reminder.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactRenewalReminder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Contact Renewal Reminder
      tags:
        - Contact Renewal Reminders
      operationId: V1::ContactRenewalReminders::Update
      description: Update a ContactRenewalReminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_id:
                  type: integer
                  description: The ID of the `Contact` this Renewal Reminder is for.
                contact_renewal_type_id:
                  type: integer
                  description: The ID of the `Contact Renewal Type` this Renewal Reminder is for.
                active:
                  type: boolean
                  description: Whether or not this Renewal Reminder is active.
                next_due_at:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date at which this Renewal Reminder is due.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_at:
                  type: string
                  format: date
                  example: '2023-03-14'
                  description: |-
                    The date at which this Renewal Reminder is due soon.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_time_threshold_interval:
                  type: integer
                  description: |-
                    Used in conjunction with `due_soon_time_threshold_frequency`. Together they
                    form a full due soon parameter eg; "1 week", "5 months", "10 years"
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/Frequency'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Contact Renewal Reminder
      tags:
        - Contact Renewal Reminders
      operationId: V1::ContactRenewalReminders::Destroy
      description: Delete a Contact Renewal Reminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/contact_renewal_types:
    get:
      summary: List Contact Renewal Types
      tags:
        - Contact Renewal Types
      operationId: V1::ContactRenewalTypes::Index
      description: Returns a list of your Contact Renewal Types.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ContactRenewalType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Contact Renewal Type
      tags:
        - Contact Renewal Types
      operationId: V1::ContactRenewalTypes::Create
      description: Creates a new Contact Renewal Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: The name to be assigned to this Contact Renewal Type.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactRenewalType'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/contact_renewal_types/{id}:
    get:
      summary: Retrieve Contact Renewal Type
      tags:
        - Contact Renewal Types
      operationId: V1::ContactRenewalTypes::Show
      description: Retrieve the details of an existing Contact Renewal Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactRenewalType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Contact Renewal Type
      tags:
        - Contact Renewal Types
      operationId: V1::ContactRenewalTypes::Update
      description: Update a Contact Renewal Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: The name to be assigned to this Contact Renewal Type.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Contact Renewal Type
      tags:
        - Contact Renewal Types
      operationId: V1::ContactRenewalTypes::Destroy
      description: Delete a Contact Renewal Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v2/contacts:
    get:
      summary: List Contacts
      tags:
        - Contacts
      operationId: V2::Contacts::Index
      description: Returns a list of contacts excluding archived.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            $ref: '#/components/schemas/ContactFilters'
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            $ref: '#/components/schemas/ContactSorts'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/ContactFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ContactSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Contact
      tags:
        - Contacts
      operationId: V2::Contacts::Create
      description: |-
        Creates a new contact.

        :::info
        `account_membership_attributes` are only available to Fleetio partners with an Organization Token or Partner Token.
        :::
      parameters:
        - in: header
          name: Partner-Token
          schema:
            $ref: '#/components/schemas/PartnerToken'
        - in: header
          name: Organization-Token
          schema:
            $ref: '#/components/schemas/OrganizationToken'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - first_name
              properties:
                first_name:
                  type: string
                  maxLength: 255
                  description: This Contact's first name.
                middle_name:
                  type: string
                  maxLength: 255
                  description: This Contact's middle name.
                last_name:
                  type: string
                  maxLength: 255
                  description: This Contact's last name.
                birth_date:
                  type: string
                  format: date
                  example: '1950-05-05'
                  description: |-
                    This Contact's birth date.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                group_hierarchy:
                  type: string
                  nullable: true
                  example: Group 1|Group 2|Group 3
                  description: |-
                    If this Contact belongs to a [Group](/docs/api/groups), this will be
                    a pipe delimited string representing the Group hierarchy. Each Group
                    in the list is the parent of the `Groups` which follow.
                email:
                  type: string
                  maxLength: 255
                  description: This Contact's email address.
                mobile_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's mobile phone number.
                home_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's home phone number.
                work_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's work phone number.
                other_phone_number:
                  type: string
                  maxLength: 255
                  description: Any other phone number for this Contact.
                street_address:
                  type: string
                  maxLength: 255
                  description: The street address of this Contact.
                street_address_line_2:
                  type: string
                  maxLength: 255
                  description: The second line of this Contact's street address.
                city:
                  type: string
                  maxLength: 255
                  description: The city of this Contact's address.
                region:
                  type: string
                  maxLength: 255
                  description: The region, state, province, or territory of this Contact's address.
                postal_code:
                  type: string
                  maxLength: 255
                  description: The postal code for this Contact's address.
                country:
                  type: string
                  maxLength: 255
                  description: The country where this Contact resides.
                employee_number:
                  type: string
                  description: This Contact's employee number. Must be unique.
                  maxLength: 255
                job_title:
                  type: string
                  maxLength: 255
                  description: This Contact's job title.
                start_date:
                  type: string
                  format: date
                  example: '2023-09-09'
                  description: |-
                    The date at which this Contact started, or is expected to start.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                leave_date:
                  type: string
                  format: date
                  example: '2023-12-12'
                  description: |-
                    The date at which this Contact left, or is expected to leave.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_operator:
                  type: boolean
                  description: Whether this Contact is a Vehicle Operator.
                license_number:
                  type: string
                  maxLength: 255
                  description: The license number of this Contact.
                license_class:
                  type: string
                  maxLength: 255
                  description: The class of this Contact's license.
                license_state:
                  type: string
                  maxLength: 255
                  description: The state, province, region, or territory of this Contact's license.
                hourly_labor_rate:
                  type: number
                  format: float
                  description: The hourly labor rate for this Contact.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                group_id:
                  $ref: '#/components/schemas/Id'
                license_expiration:
                  type: string
                  format: date
                  example: '2024-03-14'
                  description: |-
                    The date and time at which this Contact's license expires.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                employee:
                  type: boolean
                  description: Whether this Contact is an Employee.
                technician:
                  type: boolean
                  description: Whether this Contact is a Technician.
                user_access:
                  type: string
                  enum:
                    - 'true'
                    - 'false'
                  description: |-
                    Whether this Contact has User Access.
                    This must be set to "true" if using `account_membership_attributes`.
                invite_user:
                  type: boolean
                  description: Whether to send this person a User Invitation.
                delay_invite:
                  type: boolean
                  description: If this person is being invited to the `Account`, this flag will delay the invitation email until a future time of your choosing.
                account_membership_attributes:
                  type: object
                  description: |-
                    These attributes require an Organization Token or Partner Token
                    to be present in the request.
                    Any role or record set attributes will be ignored if `user_type` is `admin`.
                    `admin_role_attributes` will be ignored if `user_type` is not  `admin`.
                  properties:
                    enable_user:
                      type: boolean
                      description: Whether this `User` is enabled.
                    user_type:
                      type: string
                      description: Any role or record set attributes will be ignored if this is set to `admin`.
                      enum:
                        - admin
                        - regular
                    role_id:
                      type: integer
                      description: The ID of the `Role` assigned to the `User`.
                    vehicles_record_set_id:
                      type: integer
                      description: The ID of the `Vehicles` record set the `User` has access to.
                    contacts_record_set_id:
                      type: integer
                      description: The ID of the `Contacts` record set the `User` has access to.
                    equipments_record_set_id:
                      type: integer
                      description: The ID of the `Equipment` record set the `User` has access to.
                    inspection_forms_record_set_id:
                      type: integer
                      description: The ID of the `Inspection Forms` record set the `User` has access to.
                    parts_record_set_id:
                      type: integer
                      description: The ID of the `Parts` record set the `User` has access to.
                    role_name:
                      type: string
                      description: |-
                        The name of the `Role` to be assigned to the `User`.
                        Must be an exact match of an existing `Role`.
                    vehicles_record_set_name:
                      type: string
                      description: |-
                        The name of the `Vehicles` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    contacts_record_set_name:
                      type: string
                      description: |-
                        The name of the `Contacts` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    equipments_record_set_name:
                      type: string
                      description: |-
                        The name of the `Equipment` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    inspection_forms_record_set_name:
                      type: string
                      description: |-
                        The name of the `Inspection Forms` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    parts_record_set_name:
                      type: string
                      description: |-
                        The name of the `Parts` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    invitation_message:
                      type: string
                      description: If this person is being invited, this is the message that will be sent to them.
                    admin_role_attributes:
                      type: object
                      description: |-
                        Permissions for the `User` if the `user_type` is `admin`.

                        :::info
                          required if `user_type` is `admin`
                        :::
                      properties:
                        administration_access:
                          type: string
                          description: The level of access for the administration section. When setting as full all administration management permissions will be granted.
                          enum:
                            - full
                            - some
                            - none
                        manage_account_settings:
                          type: boolean
                          description: Whether this `User` can manage account settings.
                        manage_subscription:
                          type: boolean
                          description: Whether this `User` can manage subscriptions belonging to the `Account`.
                        export_account_data:
                          type: boolean
                          description: Whether this `User` can export account data.
                        manage_groups:
                          type: boolean
                          description: Whether this `User` can manage `Groups`.
                        manage_workflows:
                          type: boolean
                          description: Whether this `User` can manage `Automations`.
                        manage_webhooks:
                          type: boolean
                          description: Whether this `User` can manage `Webhooks`.
                        manage_integrations:
                          type: boolean
                          description: Whether this `User` can manage `Integrations`.
                        manage_integration_links:
                          type: boolean
                          description: Whether this `User` can manage `Integration Links`.
                        manage_saml_connectors:
                          type: boolean
                          description: Whether this `User` can manage `SAML Connectors`.
                        manage_security_settings:
                          type: boolean
                          description: Whether this `User` can manage Security Settings.
                        user_management_access:
                          type: string
                          description: The level of access for the user management section. When setting as full all user management permissions will be granted.
                          enum:
                            - full
                            - some
                            - none
                        manage_users:
                          type: boolean
                          description: Whether this `User` can manage other `Users`.
                    user_attributes:
                      type: object
                      properties:
                        email:
                          type: string
                          description: The email address of the `User`.
                        username:
                          type: string
                          description: The username of the `User`.
                        password:
                          type: string
                          description: The password of the `User`.
                default_image_attributes:
                  type: object
                  properties:
                    file_url:
                      type: string
                      description: The URL pointing to the default image of the Contact.
                    default:
                      type: boolean
                      description: Whether the image should be set as the default image of the Contact.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact_v2'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v2/contacts/search:
    post:
      summary: Search Contacts
      tags:
        - Contacts
      operationId: V2::Contacts::Search
      description: |-
        Returns a list of contacts excluding archived.  Matches behavior of `List` action, 
        but accepts parameters including filters in request body.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start_cursor:
                  type: string
                per_page:
                  type: integer
                  minimum: 2
                  maximum: 100
                  default: 50
                filter:
                  $ref: '#/components/schemas/ContactFilters'
                sort:
                  $ref: '#/components/schemas/ContactSorts'
            example:
              filter:
                email:
                  eq: user@example.com
              sort:
                updated_at: desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/ContactFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ContactSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Search
  /v2/contacts/{id}:
    get:
      summary: Retrieve Contact
      tags:
        - Contacts
      operationId: V2::Contacts::Show
      description: Retrieves the details of an existing contact.
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - in: query
          name: expand[]
          required: false
          schema:
            type: array
            items:
              type: string
          description: 'Additional attributes that should be returned in the response. Available: `group`'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Contact.
      tags:
        - Contacts
      operationId: V2::Contacts::Update
      description: |-
        Updates a contact.

        :::info
        `account_membership_attributes` are only available to Fleetio partners with an Organization Token or Partner Token.
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - in: header
          name: Partner-Token
          schema:
            $ref: '#/components/schemas/PartnerToken'
        - in: header
          name: Organization-Token
          schema:
            $ref: '#/components/schemas/OrganizationToken'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  maxLength: 255
                  description: This Contact's first name.
                middle_name:
                  type: string
                  maxLength: 255
                  description: This Contact's middle name.
                last_name:
                  type: string
                  maxLength: 255
                  description: This Contact's last name.
                birth_date:
                  type: string
                  format: date
                  example: '1950-05-05'
                  description: |-
                    This Contact's birth date.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                group_hierarchy:
                  type: string
                  nullable: true
                  example: Group 1|Group 2|Group 3
                  description: |-
                    If this Contact belongs to a [Group](/docs/api/groups), this will be
                    a pipe delimited string representing the Group hierarchy. Each Group
                    in the list is the parent of the `Groups` which follow.
                email:
                  type: string
                  maxLength: 255
                  description: This Contact's email address.
                mobile_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's mobile phone number.
                home_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's home phone number.
                work_phone_number:
                  type: string
                  maxLength: 255
                  description: This Contact's work phone number.
                other_phone_number:
                  type: string
                  maxLength: 255
                  description: Any other phone number for this Contact.
                street_address:
                  type: string
                  maxLength: 255
                  description: The street address of this Contact.
                street_address_line_2:
                  type: string
                  maxLength: 255
                  description: The second line of this Contact's street address.
                city:
                  type: string
                  maxLength: 255
                  description: The city of this Contact's address.
                region:
                  type: string
                  maxLength: 255
                  description: The region, state, province, or territory of this Contact's address.
                postal_code:
                  type: string
                  maxLength: 255
                  description: The postal code for this Contact's address.
                country:
                  type: string
                  maxLength: 255
                  description: The country where this Contact resides.
                employee_number:
                  type: string
                  description: This Contact's employee number. Must be unique.
                  maxLength: 255
                job_title:
                  type: string
                  maxLength: 255
                  description: This Contact's job title.
                start_date:
                  type: string
                  format: date
                  example: '2023-09-09'
                  description: |-
                    The date at which this Contact started, or is expected to start.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                leave_date:
                  type: string
                  format: date
                  example: '2023-12-12'
                  description: |-
                    The date at which this Contact left, or is expected to leave.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_operator:
                  type: boolean
                  description: Whether this Contact is a Vehicle Operator.
                license_number:
                  type: string
                  maxLength: 255
                  description: The license number of this Contact.
                license_class:
                  type: string
                  maxLength: 255
                  description: The class of this Contact's license.
                license_state:
                  type: string
                  maxLength: 255
                  description: The state, province, region, or territory of this Contact's license.
                hourly_labor_rate:
                  type: number
                  format: float
                  description: The hourly labor rate for this Contact.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                group_id:
                  $ref: '#/components/schemas/Id'
                license_expiration:
                  type: string
                  format: date
                  example: '2024-03-14'
                  description: |-
                    The date and time at which this Contact's license expires.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                employee:
                  type: boolean
                  description: Whether this Contact is an Employee.
                technician:
                  type: boolean
                  description: Whether this Contact is a Technician.
                user_access:
                  type: string
                  enum:
                    - 'true'
                    - 'false'
                  description: |-
                    Whether this Contact has User Access.
                    This must be set to "true" if using `account_membership_attributes`.
                invite_user:
                  type: boolean
                  description: Whether to send this person a User Invitation.
                delay_invite:
                  type: boolean
                  description: If this person is being invited to the `Account`, this flag will delay the invitation email until a future time of your choosing.
                account_membership_attributes:
                  type: object
                  description: |-
                    These attributes require an Organization Token or Partner Token
                    to be present in the request.
                    Any role or record set attributes will be ignored if `user_type` is `admin`.
                    `admin_role_attributes` will be ignored if `user_type` is not  `admin`.
                  properties:
                    enable_user:
                      type: boolean
                      description: Whether this `User` is enabled.
                    user_type:
                      type: string
                      description: Any role or record set attributes will be ignored if this is set to `admin`.
                      enum:
                        - admin
                        - regular
                    role_id:
                      type: integer
                      description: The ID of the `Role` assigned to the `User`.
                    vehicles_record_set_id:
                      type: integer
                      description: The ID of the `Vehicles` record set the `User` has access to.
                    contacts_record_set_id:
                      type: integer
                      description: The ID of the `Contacts` record set the `User` has access to.
                    equipments_record_set_id:
                      type: integer
                      description: The ID of the `Equipment` record set the `User` has access to.
                    inspection_forms_record_set_id:
                      type: integer
                      description: The ID of the `Inspection Forms` record set the `User` has access to.
                    parts_record_set_id:
                      type: integer
                      description: The ID of the `Parts` record set the `User` has access to.
                    role_name:
                      type: string
                      description: |-
                        The name of the `Role` to be assigned to the `User`.
                        Must be an exact match of an existing `Role`.
                    vehicles_record_set_name:
                      type: string
                      description: |-
                        The name of the `Vehicles` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    contacts_record_set_name:
                      type: string
                      description: |-
                        The name of the `Contacts` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    equipments_record_set_name:
                      type: string
                      description: |-
                        The name of the `Equipment` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    inspection_forms_record_set_name:
                      type: string
                      description: |-
                        The name of the `Inspection Forms` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    parts_record_set_name:
                      type: string
                      description: |-
                        The name of the `Parts` record set the `User` has access to.
                        Must be an exact match of an existing record set.
                    invitation_message:
                      type: string
                      description: If this person is being invited, this is the message that will be sent to them.
                    admin_role_attributes:
                      type: object
                      description: |-
                        Permissions for the `User` if the `user_type` is `admin`.

                        :::info
                          required if `user_type` is `admin`
                        :::
                      properties:
                        administration_access:
                          type: string
                          description: The level of access for the administration section. When setting as full all administration management permissions will be granted.
                          enum:
                            - full
                            - some
                            - none
                        manage_account_settings:
                          type: boolean
                          description: Whether this `User` can manage account settings.
                        manage_subscription:
                          type: boolean
                          description: Whether this `User` can manage subscriptions belonging to the `Account`.
                        export_account_data:
                          type: boolean
                          description: Whether this `User` can export account data.
                        manage_groups:
                          type: boolean
                          description: Whether this `User` can manage `Groups`.
                        manage_workflows:
                          type: boolean
                          description: Whether this `User` can manage `Automations`.
                        manage_webhooks:
                          type: boolean
                          description: Whether this `User` can manage `Webhooks`.
                        manage_integrations:
                          type: boolean
                          description: Whether this `User` can manage `Integrations`.
                        manage_integration_links:
                          type: boolean
                          description: Whether this `User` can manage `Integration Links`.
                        manage_saml_connectors:
                          type: boolean
                          description: Whether this `User` can manage `SAML Connectors`.
                        manage_security_settings:
                          type: boolean
                          description: Whether this `User` can manage Security Settings.
                        user_management_access:
                          type: string
                          description: The level of access for the user management section. When setting as full all user management permissions will be granted.
                          enum:
                            - full
                            - some
                            - none
                        manage_users:
                          type: boolean
                          description: Whether this `User` can manage other `Users`.
                    user_attributes:
                      type: object
                      properties:
                        email:
                          type: string
                          description: The email address of the `User`.
                        username:
                          type: string
                          description: The username of the `User`.
                        password:
                          type: string
                          description: The password of the `User`.
                default_image_attributes:
                  type: object
                  properties:
                    file_url:
                      type: string
                      description: The URL pointing to the default image of the Contact.
                    default:
                      type: boolean
                      description: Whether the image should be set as the default image of the Contact.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact_v2'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete contact.
      tags:
        - Contacts
      operationId: V2::Contacts::Destroy
      description: Deletes a contact.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v2/contacts/{id}/archive:
    patch:
      summary: Archive Contact
      tags:
        - Contacts
      operationId: V2::Contacts::Archive
      description: Archives a contact.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archive
  /v2/contacts/archived:
    get:
      summary: List Archived Contacts
      tags:
        - Contacts
      operationId: V2::Contacts::Archived
      description: Returns a list of archived contacts.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            $ref: '#/components/schemas/ContactFilters'
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            $ref: '#/components/schemas/ArchivedSorts'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/ContactFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ArchivedSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archived
  /v2/contacts/archived/search:
    post:
      summary: Search Archived Contacts
      tags:
        - Contacts
      operationId: V2::Contacts::Archived::Search
      description: |-
        Returns a list of archived contacts.  Matches
        behavior of `Archived` action, but accepts parameters 
        including filters in request body.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start_cursor:
                  type: string
                per_page:
                  type: integer
                  minimum: 2
                  maximum: 100
                  default: 50
                filter:
                  $ref: '#/components/schemas/ContactFilters'
                sort:
                  $ref: '#/components/schemas/ArchivedSorts'
            example:
              filter:
                email:
                  eq: user@example.com
              sort:
                archived_at: desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/ContactFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ArchivedSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Search Archived
  /v2/contacts/{id}/restore:
    patch:
      summary: Restore Contact
      tags:
        - Contacts
      operationId: V2::Contacts::Restore
      description: Restores a contact.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Restore
  /v1/custom_fields:
    get:
      summary: List Custom Fields
      tags:
        - Custom Fields
      operationId: V1::CustomFields::Index
      description: |-
        Returns a list of custom fields defined for your account.

        For details, please see [our guide on Custom Fields](/docs/overview/custom-fields).
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomField'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/equipment:
    get:
      summary: List Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Index
      description: |-
        Returns a list of your Equipment. Defaults to only returning non-archived
        Equipment, but you can include archived Equipment in the results as well.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Equipment'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Create
      description: Creates a new Equipment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquipmentCreateParameters'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/equipment/{id}:
    get:
      summary: Retrieve Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Show
      description: Retrieve the details of an existing Equipment.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Update
      description: Update a Equipment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquipmentUpdateParameters'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Destroy
      description: Delete an Equipment record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/equipment/{id}/archive:
    patch:
      summary: Archive Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Archive
      description: Archive an Equipment record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archive
  /v1/equipment/{id}/assignments:
    get:
      summary: Retrieve Assignment
      tags:
        - Equipment Assignments
      operationId: V1::Equipment::Assignments::Show
      description: List Equipment Assignments
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentAssignment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    post:
      summary: Create Assignment
      tags:
        - Equipment Assignments
      operationId: V1::Equipment::Assignments::Create
      description: Create an Equipment Assignment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquipmentAssignmentParameters'
      responses:
        '201':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/equipment/{id}/assignments/unassign:
    patch:
      summary: Unassign Assignment
      tags:
        - Equipment Assignments
      operationId: V1::Equipment::Assignments::Unassign
      description: Unassign an Equipment Assignment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Unassign
  /v1/equipment/{id}/restore:
    patch:
      summary: Restore Equipment
      tags:
        - Equipment
      operationId: V1::Equipment::Restore
      description: Restore an Equipment record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Restore
  /v1/equipment_statuses:
    get:
      summary: List Equipment Statuses
      tags:
        - Equipment Statuses
      operationId: V1::EquipmentStatuses::Index
      description: Returns a list of Equipment Statuses belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentStatus'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Equipment Status
      tags:
        - Equipment Statuses
      operationId: V1::EquipmentStatuses::Create
      description: Creates a new Equipment Status
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Equipment Status.
                default:
                  type: boolean
                  default: false
                  description: Indicates whether this is the default Equipment Status applied to new Equipment.
                color:
                  type: string
                  description: The color displayed in the UI for this Equipment Status.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentStatus'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/equipment_statuses/{id}:
    get:
      summary: Retrieve Equipment Status
      tags:
        - Equipment Statuses
      operationId: V1::EquipmentStatuses::Show
      description: Retrieve the details of an existing Equipment Status.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Equipment Status
      tags:
        - Equipment Statuses
      operationId: V1::EquipmentStatuses::Update
      description: Update an Equipment Status
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Equipment Status.
                default:
                  type: boolean
                  default: false
                  description: Indicates whether this is the default Equipment Status applied to new Equipment.
                color:
                  type: string
                  description: The color displayed in the UI for this Equipment Status.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Equipment Status
      tags:
        - Equipment Statuses
      operationId: V1::EquipmentStatuses::Destroy
      description: Delete an Equipment Status
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/equipment_types:
    get:
      summary: List Equipment Types
      tags:
        - Equipment Types
      operationId: V1::EquipmentTypes::Index
      description: Returns a list of Equipment Types belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Equipment Type
      tags:
        - Equipment Types
      operationId: V1::EquipmentTypes::Create
      description: Creates a new Equipment Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Equipment Type.
                default:
                  type: boolean
                  default: false
                  description: Indicates whether this is the default Equipment Type applied to new `Equipment`.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentType'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/equipment_types/{id}:
    get:
      summary: Retrieve Equipment Type
      tags:
        - Equipment Types
      operationId: V1::EquipmentTypes::Show
      description: Retrieve the details of an existing Equipment Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Equipment Type
      tags:
        - Equipment Types
      operationId: V1::EquipmentTypes::Update
      description: Update an Equipment Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Equipment Type.
                default:
                  type: boolean
                  default: false
                  description: Indicates whether this is the default Equipment Type applied to new `Equipment`.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Equipment Type
      tags:
        - Equipment Types
      operationId: V1::EquipmentTypes::Destroy
      description: Delete an Equipment Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/expense_entries:
    get:
      summary: List Expense Entries
      tags:
        - Expense Entries
      operationId: V1::ExpenseEntries::Index
      description: List your Expense Entries
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpenseEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Expense Entry
      tags:
        - Expense Entries
      operationId: V1::ExpenseEntries::Create
      description: Creates a new Expense Entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - expense_entry_type_id
                - occurred_at
                - total_amount_cents
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                expense_entry_type_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  $ref: '#/components/schemas/Id'
                total_amount_cents:
                  type: integer
                  description: The total amount of this Expense Entry, in cents.
                occurred_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    Date and time of the expense.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                notes:
                  type: string
                  description: Additional comments.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntry_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/expense_entries/{id}:
    get:
      summary: Retrieve Expense Entry
      tags:
        - Expense Entries
      operationId: V1::ExpenseEntries::Show
      description: Retrieve the details of a Expense Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Expense Entry
      tags:
        - Expense Entries
      operationId: V1::ExpenseEntries::Update
      description: Update a Expense Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                expense_entry_type_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  $ref: '#/components/schemas/Id'
                total_amount_cents:
                  type: integer
                  description: The total amount of this Expense Entry, in cents.
                occurred_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    Date and time of the expense.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                notes:
                  type: string
                  description: Additional comments.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Expense Entry
      tags:
        - Expense Entries
      operationId: V1::ExpenseEntries::Destroy
      description: Delete an Expense Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/expense_entry_types:
    get:
      summary: List Expense Entry Types
      tags:
        - Expense Entry Types
      operationId: V1::ExpenseEntryTypes::Index
      description: List your Expense Entry Types
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpenseEntryType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Expense Entry Type
      tags:
        - Expense Entry Types
      operationId: V1::ExpenseEntryTypes::Create
      description: Creates a new Expense Entry Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of this Expense Entry Type.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntryType_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/expense_entry_types/{id}:
    get:
      summary: Retrieve Expense Entry Type
      tags:
        - Expense Entry Types
      operationId: V1::ExpenseEntryTypes::Show
      description: Retrieve the details of an Expense Entry Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseEntryType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Expense Entry Type
      tags:
        - Expense Entry Types
      operationId: V1::ExpenseEntryTypes::Update
      description: Update an Expense Entry Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of this Expense Entry Type.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Expense Entry Type
      tags:
        - Expense Entry Types
      operationId: V1::ExpenseEntryTypes::Destroy
      description: Delete an Expense Entry Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/fault_rules:
    get:
      summary: List Fault Rules
      tags:
        - Fault Rules
      operationId: V1::FaultRules::Index
      description: Returns a list of your Fault Rules.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FaultRule'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Fault Rule
      tags:
        - Fault Rules
      operationId: V1::FaultRules::Create
      description: Creates a new Fault Rule
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - code
              properties:
                code:
                  type: string
                  description: The diagnostic trouble code.
                  maxLength: 255
                description:
                  type: string
                  description: A short description about the problem.
                name:
                  type: string
                  description: A short name for the alert.
                  maxLength: 255
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FaultRule'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/fault_rules/{id}:
    get:
      summary: Retrieve Fault Rule
      tags:
        - Fault Rules
      operationId: V1::FaultRules::Show
      description: Retrieve the details of an existing FaultRule.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FaultRule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Fault Rule
      tags:
        - Fault Rules
      operationId: V1::FaultRules::Update
      description: Update a FaultRule
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: The diagnostic trouble code.
                  maxLength: 255
                description:
                  type: string
                  description: A short description about the problem.
                name:
                  type: string
                  description: A short name for the alert.
                  maxLength: 255
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Fault Rule
      tags:
        - Fault Rules
      operationId: V1::FaultRules::Destroy
      description: Delete a Fault Rule
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/faults:
    get:
      summary: List Faults
      tags:
        - Faults
      operationId: V1::Faults::Index
      description: Returns a list of the Faults recorded for all vehicles in your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Fault'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Fault
      tags:
        - Faults
      operationId: V1::Faults::Create
      description: |-
        Create a new Fault Record. If you need to create many Faults at once, use
        the [Bulk API](/docs/overview/bulk-api) to avoid [Rate Limiting
        errors](/docs/overview/rate-limiting).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - code
                - vehicle_id
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                code:
                  type: string
                  maxLength: 255
                  description: The diagnostic trouble code. Must correspond with an existing [Fault Rule](/docs/api/fault-rules).
                count:
                  type: integer
                  description: The number of times this Fault has occurred.
                description:
                  type: string
                  description: A short description about the problem.
                external_id:
                  type: string
                  maxLength: 255
                  description: An external identifier for the Fault, if applicable.
                last_occurred_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time when the Fault last occurred.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                name:
                  type: string
                  maxLength: 255
                  description: The name or label for the Fault.
                status:
                  type: string
                  enum:
                    - open
                    - resolved
                    - ignored
                  description: The status of the Fault.
                source:
                  type: string
                  description: The source or origin of the Fault.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fault'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/faults/{id}:
    get:
      summary: Retrieve Fault
      tags:
        - Faults
      operationId: V1::Faults::Show
      description: Retrieve the details of a Fault Record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fault'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Fault
      tags:
        - Faults
      operationId: V1::Faults::Update
      description: Update a Fault Record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                code:
                  type: string
                  maxLength: 255
                  description: The diagnostic trouble code. Must correspond with an existing [Fault Rule](/docs/api/fault-rules).
                count:
                  type: integer
                  description: The number of times this Fault has occurred.
                description:
                  type: string
                  description: A short description about the problem.
                external_id:
                  type: string
                  maxLength: 255
                  description: An external identifier for the Fault, if applicable.
                last_occurred_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time when the Fault last occurred.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                name:
                  type: string
                  maxLength: 255
                  description: The name or label for the Fault.
                status:
                  type: string
                  enum:
                    - open
                    - resolved
                    - ignored
                  description: The status of the Fault.
                source:
                  type: string
                  description: The source or origin of the Fault.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Fault
      tags:
        - Faults
      operationId: V1::Faults::Destroy
      description: Delete a Fault Record
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/fuel_entries:
    get:
      summary: List Fuel Entries
      tags:
        - Fuel Entries
      operationId: V1::FuelEntries::Index
      description: Returns a list of Fuel Entries belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FuelEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Fuel Entry
      tags:
        - Fuel Entries
      operationId: V1::FuelEntries::Create
      description: Creates a new Fuel Entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - date
                - us_gallons
                - meter_entry_attributes
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  type: integer
                  minimum: 1
                  description: |-
                    The Fleetio `id` of the [Vendor](/docs/api/vendors) associated with this
                    Fuel Entry.
                fuel_type_id:
                  type: integer
                  minimum: 1
                  description: |-
                    The Fleetio `id` of the [Fuel Type](/docs/api/fuel-types) associated with
                    this Fuel Entry.
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                us_gallons:
                  type: number
                  format: float
                  example: 14.78
                  description: |-
                    The fuel volume amount in US gallons. This field will _only_ be used if the
                    [Vehicle](/docs/api/vehicles) is [configured to use US
                    gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                    otherwise it will be ignored.
                uk_gallons:
                  type: number
                  format: float
                  example: 12.36
                  description: |-
                    The fuel volume amount in UK gallons. This field will _only_ be used if the
                    [Vehicle](/docs/api/vehicles) is [configured to use UK
                    gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                    otherwise it will be ignored.
                liters:
                  type: number
                  format: float
                  description: |-
                    The fuel volume amount in liters.
                    This field will be used if the [Vehicle](/docs/api/vehicles)
                    is [configured to use liters](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings).
                price_per_volume_unit:
                  type: number
                  format: float
                  example: 2.98
                  description: The unit price for the Vehicle's [configured volume unit](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings).
                meter_entry_attributes:
                  description: Each Fuel Entry requires an associated [Meter Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                reference:
                  type: string
                  description: |-
                    A reference number or identifier for this Fuel Entry.
                    This field is often used to store a receipt number or other unique identifier.
                partial:
                  type: boolean
                  description: |-
                    Indicates whether this Fuel Entry is a partial fill-up.
                    Partial fill-ups are used to record Fuel Entries that are not full fill-ups.
                    This field is `false` if not provided.
                personal:
                  type: boolean
                  description: |-
                    Indicates whether this Fuel Entry is personal.
                    Personal Fuel Entries are used to record fuel purchases that are not associated
                    with a specific Vehicle or Equipment.
                    This field is `false` if not provided.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuelEntry'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/fuel_entries/{id}:
    get:
      summary: Retrieve Fuel Entry
      tags:
        - Fuel Entries
      operationId: V1::FuelEntries::Show
      description: Retrieve the details of an existing Fuel Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuelEntry_Show'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Fuel Entry
      tags:
        - Fuel Entries
      operationId: V1::FuelEntries::Update
      description: Update a Fuel Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vendor_id:
                  type: integer
                  minimum: 1
                  description: |-
                    The Fleetio `id` of the [Vendor](/docs/api/vendors) associated with this
                    Fuel Entry.
                fuel_type_id:
                  type: integer
                  minimum: 1
                  description: |-
                    The Fleetio `id` of the [Fuel Type](/docs/api/fuel-types) associated with
                    this Fuel Entry.
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                us_gallons:
                  type: number
                  format: float
                  example: 14.78
                  description: |-
                    The fuel volume amount in US gallons. This field will _only_ be used if the
                    [Vehicle](/docs/api/vehicles) is [configured to use US
                    gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                    otherwise it will be ignored.
                uk_gallons:
                  type: number
                  format: float
                  example: 12.36
                  description: |-
                    The fuel volume amount in UK gallons. This field will _only_ be used if the
                    [Vehicle](/docs/api/vehicles) is [configured to use UK
                    gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                    otherwise it will be ignored.
                liters:
                  type: number
                  format: float
                  description: |-
                    The fuel volume amount in liters.
                    This field will be used if the [Vehicle](/docs/api/vehicles)
                    is [configured to use liters](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings).
                price_per_volume_unit:
                  type: number
                  format: float
                  example: 2.98
                  description: The unit price for the Vehicle's [configured volume unit](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings).
                meter_entry_attributes:
                  description: Each Fuel Entry requires an associated [Meter Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                reference:
                  type: string
                  description: |-
                    A reference number or identifier for this Fuel Entry.
                    This field is often used to store a receipt number or other unique identifier.
                partial:
                  type: boolean
                  description: |-
                    Indicates whether this Fuel Entry is a partial fill-up.
                    Partial fill-ups are used to record Fuel Entries that are not full fill-ups.
                    This field is `false` if not provided.
                personal:
                  type: boolean
                  description: |-
                    Indicates whether this Fuel Entry is personal.
                    Personal Fuel Entries are used to record fuel purchases that are not associated
                    with a specific Vehicle or Equipment.
                    This field is `false` if not provided.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuelEntry'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Fuel Entry
      tags:
        - Fuel Entries
      operationId: V1::FuelEntries::Destroy
      description: Delete a Fuel Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/fuel_types:
    get:
      summary: List Fuel Types
      tags:
        - Fuel Types
      operationId: V1::FuelTypes::Index
      description: Returns a list of Fuel Types belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FuelType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Fuel Type
      tags:
        - Fuel Types
      operationId: V1::FuelTypes::Create
      description: Creates a new Fuel Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Fuel Type. Must be unique.
                  maxLength: 255
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuelType'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/fuel_types/{id}:
    get:
      summary: Retrieve Fuel Type
      tags:
        - Fuel Types
      operationId: V1::FuelTypes::Show
      description: Retrieve the details of an existing Fuel Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuelType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Fuel Type
      tags:
        - Fuel Types
      operationId: V1::FuelTypes::Update
      description: Update a Fuel Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Fuel Type. Must be unique.
                  maxLength: 255
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Fuel Type
      tags:
        - Fuel Types
      operationId: V1::FuelTypes::Destroy
      description: Delete a Fuel Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/groups:
    get:
      summary: List Groups
      tags:
        - Groups
      operationId: V1::Groups::Index
      description: Returns a list of Groups belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Group'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Group
      tags:
        - Groups
      operationId: V1::Groups::Create
      description: Creates a new Group
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  maxLength: 255
                default:
                  type: boolean
                  description: Indicates whether this Group is the default Group.
                parent_id:
                  $ref: '#/components/schemas/Id'
                hierarchy:
                  type: string
                  description: |-
                    Create Group(s) from a pipe delimited hierarchy string.
                    Will start from the end of the string and create the necessary
                    Groups to produce the desired hierarchy.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/groups/{id}:
    get:
      summary: Retrieve Group
      tags:
        - Groups
      operationId: V1::Groups::Show
      description: Retrieve the details of an existing Group.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Group
      tags:
        - Groups
      operationId: V1::Groups::Update
      description: Update a Group
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                default:
                  type: boolean
                  description: Indicates whether this Group is the default Group.
                parent_id:
                  $ref: '#/components/schemas/Id'
                hierarchy:
                  type: string
                  description: |-
                    Create Group(s) from a pipe delimited hierarchy string.
                    Will start from the end of the string and create the necessary
                    Groups to produce the desired hierarchy.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Group
      tags:
        - Groups
      operationId: V1::Groups::Destroy
      description: Delete a Group
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/imports/{id}/records:
    get:
      summary: List records affected by an import
      tags:
        - Imports
      operationId: V1::Imports::Records
      description: |-
        The data returned depends on the import type, so if the import was a
        `VehicleImport`, you would get an array of created or updated
        [Vehicle](/docs/api/vehicles) records.

        Only imports in the `complete` state will have data. If you try hitting this
        endpoint with a failed import, you will get an empty array in return.

        This endpoint will return a `403 Forbidden` error if the user does not have
        admin or account owner permissions.

        :::info
        The 200 response for this endpoint is preceded by a 302. This is due to the dynamic nature of the response. The 302 is a redirect to the actual response.

        The 200 response is not shown in the documentation, but it is available in the API. The structure is an array of objects, where each object is a record that was created or updated by the import.
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '302':
          description: OK
          headers:
            Location:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/inspection_schedules:
    get:
      summary: List Inspection Schedules
      tags:
        - Inspection Schedules
      operationId: V1::InspectionSchedules::Index
      description: Returns a list of Inspection Schedules.
      parameters:
        - in: query
          name: include_occurrences
          schema:
            type: integer
          description: Includes `upcoming_occurrences` for each schedule, if any.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InspectionSchedule'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/inspection_schedules/{id}:
    get:
      summary: Retrieve Inspection Schedule
      tags:
        - Inspection Schedules
      operationId: V1::InspectionSchedules::Show
      description: Retrieve an Inspection Schedule.
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - in: query
          name: include_occurrences
          schema:
            type: integer
          description: Includes `upcoming_occurrences` for this schedule, if any.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InspectionSchedule'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v1/inventory_adjustment_reasons:
    get:
      summary: List Inventory Adjustment Reasons
      tags:
        - Inventory Adjustment Reasons
      operationId: V1::InventoryAdjustmentReasons::Index
      description: Returns a list of Inventory Adjustment Reasons used by your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventoryAdjustmentReason'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/inventory_journal_entries:
    get:
      summary: List Inventory Journal Entries
      tags:
        - Inventory Journal Entries
      operationId: V1::InventoryJournalEntries::Index
      description: Returns a list of Inventory Journal Entries belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventoryJournalEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Inventory Journal Entry
      tags:
        - Inventory Journal Entries
      operationId: V1::InventoryJournalEntries::Create
      description: This endpoint provides the ability to adjust parts inventory.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryJournalEntryCreateParameters'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryJournalEntry_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/inventory_journal_entries/{id}:
    get:
      summary: Retrieve Inventory Journal Entry
      tags:
        - Inventory Journal Entries
      operationId: V1::InventoryJournalEntries::Show
      description: Retrieve the details of an existing Journal Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryJournalEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v1/issues:
    get:
      summary: List Issues
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-issues-index) instead.
      tags:
        - Issues
      operationId: V1::Issues::Index
      description: Returns a list of Issues belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Issue_Index'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) List
    post:
      summary: Create Issue
      tags:
        - Issues
      operationId: V1::Issues::Create
      description: Creates a new Issue
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - summary
                - reported_at
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                reported_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time this Issue is reported.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                summary:
                  type: string
                  description: A short summary of the Issue.
                description:
                  type: string
                  description: A longer description of the Issue.
                reported_by_id:
                  $ref: '#/components/schemas/Id'
                number:
                  type: integer
                  description: A unique identifier for the Issue.
                due_date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date on which this Issue should be resolved by.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_meter_value:
                  type: number
                  format: float
                  description: The meter value at which this Issue should be resolved by.
                due_secondary_meter_value:
                  type: number
                  format: float
                  description: The secondary meter value at which this Issue should be resolved by.
                fault_id:
                  $ref: '#/components/schemas/Id'
                label_ids:
                  type: array
                  items:
                    type: integer
                    description: |-
                      An array of label IDs associated with the Issue.
                      The values passed in this array will overwrite any existing labels on the Issue.
                      If any existing labels are to be kept on the record, their IDs must be included as well.
                meter_entry_attributes:
                  description: An Issue may be associated with a [Meter Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    An Issue may be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                issue_priority_id:
                  $ref: '#/components/schemas/Id'
                assigned_contact_ids:
                  type: array
                  description: An array of assigned `Contacts` related to the Issue.
                  items:
                    $ref: '#/components/schemas/Id'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/issues/{id}:
    get:
      summary: Retrieve Issue
      tags:
        - Issues
      operationId: V1::Issues::Show
      description: Retrieve the details of an existing Issue.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Issue
      tags:
        - Issues
      operationId: V1::Issues::Update
      description: Update an Issue
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                reported_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time this Issue is reported.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                summary:
                  type: string
                  description: A short summary of the Issue.
                description:
                  type: string
                  description: A longer description of the Issue.
                reported_by_id:
                  $ref: '#/components/schemas/Id'
                number:
                  type: integer
                  description: A unique identifier for the Issue.
                due_date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date on which this Issue should be resolved by.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_meter_value:
                  type: number
                  format: float
                  description: The meter value at which this Issue should be resolved by.
                due_secondary_meter_value:
                  type: number
                  format: float
                  description: The secondary meter value at which this Issue should be resolved by.
                fault_id:
                  $ref: '#/components/schemas/Id'
                label_ids:
                  type: array
                  items:
                    type: integer
                    description: |-
                      An array of label IDs associated with the Issue.
                      The values passed in this array will overwrite any existing labels on the Issue.
                      If any existing labels are to be kept on the record, their IDs must be included as well.
                meter_entry_attributes:
                  description: An Issue may be associated with a [Meter Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    An Issue may be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                issue_priority_id:
                  $ref: '#/components/schemas/Id'
                assigned_contact_ids:
                  type: array
                  description: An array of assigned `Contacts` related to the Issue.
                  items:
                    $ref: '#/components/schemas/Id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Issue
      tags:
        - Issues
      operationId: V1::Issues::Destroy
      description: Delete an Issue
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/issue_priorities:
    get:
      summary: List Issue Priorities
      tags:
        - Issue Priorities
      operationId: V1::IssuePriorities::Index
      description: |
        Returns a list of Issue Priorities belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IssuePriority'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/issue_priorities/{id}:
    get:
      summary: Retrieve Issue Priority
      tags:
        - Issue Priorities
      operationId: V1::IssuePriority::Show
      description: |
        Retrieve the details of an existing Issue Priority.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuePriority'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v1/labels:
    get:
      summary: List Labels
      tags:
        - Labels
      operationId: V1::Labels::Index
      description: Returns a list of Labels belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Label'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Label
      tags:
        - Labels
      operationId: V1::Labels::Create
      description: Creates a new Label
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: The name of the Label. This is the value that will be shown on a tagged record.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Label'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/location_entries:
    get:
      summary: List Location Entries
      tags:
        - Location Entries
      operationId: V1::LocationEntries::Index
      description: Returns a list of your Location Entries.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LocationEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Location Entry
      tags:
        - Location Entries
      operationId: V1::LocationEntries::Create
      description: |
        Create a new [LocationEntry](/#tag/Location-Entries) for a [Vehicle](/#tag/Vehicles) or for a [Contact](/#tag/Contacts).
        If you need to create many Location Entries at once, use the [Bulk API](/docs/overview/bulk-api) to avoid [Rate Limiting errors](/docs/overview/rate-limiting).
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationEntryCreateParameters'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationEntry_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/location_entries/{id}:
    get:
      summary: Retrieve Location Entry
      tags:
        - Location Entries
      operationId: V1::LocationEntries::Show
      description: Retrieve the details of a LocationEntry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Location Entry
      tags:
        - Location Entries
      operationId: V1::LocationEntries::Update
      description: Updates an existing LocationEntry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationEntryUpdateParameters'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Location Entry
      tags:
        - Location Entries
      operationId: V1::LocationEntries::Destroy
      description: Delete a Location Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/meter_entries:
    get:
      summary: List Meter Entries
      tags:
        - Meter Entries
      operationId: V1::MeterEntries::Index
      description: List your Meter Entries
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MeterEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Meter Entry
      tags:
        - Meter Entries
      operationId: V1::MeterEntries::Create
      description: |-
        Create a new Meter Entry. If you need to create many Meter Entries at once,
        use the [Bulk API](/docs/overview/bulk-api) to avoid [Rate Limiting
        errors](/docs/overview/rate-limiting).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - date
                - value
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                value:
                  type: number
                  format: float
                  description: |-
                    The value of the meter.
                    The unit can be configured at the `Account` level, or overridden at the `Vehicle` level.
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    Meter Entries must follow the correct sequence, incrementing in value by date.
                    For each entry, Fleetio validates to ensure that the value falls between any entries logged before and/or after.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                void:
                  type: boolean
                  default: false
                  description: Whether to mark this Meter Entry void or not.  See [Voiding Meter Entries](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                meter_type:
                  type: string
                  enum:
                    - secondary
                  nullable: true
                  description: |-
                    If this is a secondary meter reading, use this field.

                    If the vehicle's secondary meter is disabled, secondary meter values will
                    be hidden in the web and mobile views until enabled.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeterEntry_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/meter_entries/{id}:
    get:
      summary: Retrieve Meter Entry
      tags:
        - Meter Entries
      operationId: V1::MeterEntries::Show
      description: Retrieve the details of a Meter Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeterEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Meter Entry
      tags:
        - Meter Entries
      operationId: V1::MeterEntries::Update
      description: Update a Meter Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                value:
                  type: number
                  format: float
                  description: |-
                    The value of the meter.
                    The unit can be configured at the `Account` level, or overridden at the `Vehicle` level.
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    Meter Entries must follow the correct sequence, incrementing in value by date.
                    For each entry, Fleetio validates to ensure that the value falls between any entries logged before and/or after.
                    We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                void:
                  type: boolean
                  default: false
                  description: Whether to mark this Meter Entry void or not.  See [Voiding Meter Entries](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                meter_type:
                  type: string
                  enum:
                    - secondary
                  nullable: true
                  description: |-
                    If this is a secondary meter reading, use this field.

                    If the vehicle's secondary meter is disabled, secondary meter values will
                    be hidden in the web and mobile views until enabled.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Meter Entry
      tags:
        - Meter Entries
      operationId: V1::MeterEntries::Destroy
      description: Delete a Meter Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/part_locations:
    get:
      summary: List Part Locations
      tags:
        - Part Locations
      operationId: V1::PartLocations::Index
      description: Returns a list of Part Locations set up in your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartLocation'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/parts:
    get:
      summary: List Parts
      tags:
        - Parts
      operationId: V1::Parts::Index
      description: Returns a list of Parts belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Part'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Part
      tags:
        - Parts
      operationId: V1::Parts::Create
      description: Creates a new Part
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - number
              properties:
                description:
                  type: string
                manufacturer_part_number:
                  type: string
                  maxLength: 255
                  description: The part number from this Part's manufacturer.
                measurement_unit_id:
                  $ref: '#/components/schemas/Id'
                measurement_unit_name:
                  type: string
                  description: The name of the measurement unit. If the measurement unit does not exist, it will be ignored.
                number:
                  type: string
                  description: |-
                    The part number to be used for this Part within Fleetio. Must be unique.
                    Does not have to be the same as the manufacturer's part number.
                  maxLength: 255
                part_category_id:
                  $ref: '#/components/schemas/Id'
                part_category_name:
                  type: string
                  description: The name of the part category. If the part category does not exist, it will be created.
                  maxLength: 255
                part_manufacturer_id:
                  $ref: '#/components/schemas/Id'
                part_manufacturer_name:
                  type: string
                  description: The name of the part manufacturer. If the part manufacturer does not exist, it will be created.
                  maxLength: 255
                unit_cost:
                  type: number
                  description: |-
                    The cost per unit of this Part, which will be interpreted as dollars, or dollars and cents.
                    May be sent as a string, integer, or float. Value may be up to two decimal places.
                upc:
                  type: string
                  description: The Universal Product Code for this Part. Must be unique.
                  maxLength: 255
                tire_config_attributes:
                  type: object
                  description: |-
                    :::info
                    `tire_config_attributes` are available to accounts
                    on [Premium](https://www.fleetio.com/pricing/plan-comparison) plans
                    :::

                    Parts that have a Part Category where `tire_category` is `true` can have a
                    TireConfg which are tire-specific Part attributes.
                  properties:
                    id:
                      $ref: '#/components/schemas/Id'
                    aspect_ratio:
                      type: number
                      format: float
                      description: Aspect ratio of tire.
                    rim_diameter:
                      type: number
                      format: float
                      description: Rim diameter of tire.
                    load_index:
                      type: number
                      format: float
                      description: Load index of tire.
                    metric_type:
                      type: string
                      description: Metric type of tire.
                      enum:
                        - EU
                        - P
                        - HL
                        - T
                        - LT
                        - C
                        - ST
                    width:
                      type: number
                      format: float
                      description: Width of tire.
                    construction:
                      type: string
                      description: Construction type of tire.
                      enum:
                        - B
                        - R
                        - D
                    speed_rating:
                      type: string
                      description: Speed rating of tire.
                      enum:
                        - A1
                        - A2
                        - A3
                        - A4
                        - A5
                        - A6
                        - A7
                        - A8
                        - B
                        - C
                        - D
                        - E
                        - F
                        - G
                        - H
                        - J
                        - K
                        - L
                        - M
                        - 'N'
                        - P
                        - Q
                        - R
                        - S
                        - T
                        - U
                        - V
                        - W
                        - 'Y'
                    factory_tread_depth:
                      type: number
                      format: float
                      description: Tread depth of tire in /32" when new, as specified by the manufacturer.
                    minimum_tread_depth:
                      type: number
                      format: float
                      description: The legal minimum tread depth, in /32".
                    life_expectancy:
                      type: integer
                      description: The Life Expectancy or “Warranty” of a tire is the expected meter range, usually measured in miles, of a given tire as specified by the manufacturer.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/parts/{id}:
    get:
      summary: Retrieve Part
      tags:
        - Parts
      operationId: V1::Parts::Show
      description: Retrieve the details of an existing Part.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Part'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Part
      tags:
        - Parts
      operationId: V1::Parts::Update
      description: Update a Part
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                manufacturer_part_number:
                  type: string
                  maxLength: 255
                  description: The part number from this Part's manufacturer.
                measurement_unit_id:
                  $ref: '#/components/schemas/Id'
                measurement_unit_name:
                  type: string
                  description: The name of the measurement unit. If the measurement unit does not exist, it will be ignored.
                number:
                  type: string
                  description: |-
                    The part number to be used for this Part within Fleetio. Must be unique.
                    Does not have to be the same as the manufacturer's part number.
                  maxLength: 255
                part_category_id:
                  $ref: '#/components/schemas/Id'
                part_category_name:
                  type: string
                  description: The name of the part category. If the part category does not exist, it will be created.
                  maxLength: 255
                part_manufacturer_id:
                  $ref: '#/components/schemas/Id'
                part_manufacturer_name:
                  type: string
                  description: The name of the part manufacturer. If the part manufacturer does not exist, it will be created.
                  maxLength: 255
                unit_cost:
                  type: number
                  description: |-
                    The cost per unit of this Part, which will be interpreted as dollars, or dollars and cents.
                    May be sent as a string, integer, or float. Value may be up to two decimal places.
                upc:
                  type: string
                  description: The Universal Product Code for this Part. Must be unique.
                  maxLength: 255
                tire_config_attributes:
                  type: object
                  description: |-
                    :::info
                    `tire_config_attributes` are available to accounts
                    on [Premium](https://www.fleetio.com/pricing/plan-comparison) plans
                    :::

                    Parts that have a Part Category where `tire_category` is `true` can have a
                    TireConfg which are tire-specific Part attributes.
                  properties:
                    id:
                      $ref: '#/components/schemas/Id'
                    aspect_ratio:
                      type: number
                      format: float
                      description: Aspect ratio of tire.
                    rim_diameter:
                      type: number
                      format: float
                      description: Rim diameter of tire.
                    load_index:
                      type: number
                      format: float
                      description: Load index of tire.
                    metric_type:
                      type: string
                      description: Metric type of tire.
                      enum:
                        - EU
                        - P
                        - HL
                        - T
                        - LT
                        - C
                        - ST
                    width:
                      type: number
                      format: float
                      description: Width of tire.
                    construction:
                      type: string
                      description: Construction type of tire.
                      enum:
                        - B
                        - R
                        - D
                    speed_rating:
                      type: string
                      description: Speed rating of tire.
                      enum:
                        - A1
                        - A2
                        - A3
                        - A4
                        - A5
                        - A6
                        - A7
                        - A8
                        - B
                        - C
                        - D
                        - E
                        - F
                        - G
                        - H
                        - J
                        - K
                        - L
                        - M
                        - 'N'
                        - P
                        - Q
                        - R
                        - S
                        - T
                        - U
                        - V
                        - W
                        - 'Y'
                    factory_tread_depth:
                      type: number
                      format: float
                      description: Tread depth of tire in /32" when new, as specified by the manufacturer.
                    minimum_tread_depth:
                      type: number
                      format: float
                      description: The legal minimum tread depth, in /32".
                    life_expectancy:
                      type: integer
                      description: The Life Expectancy or “Warranty” of a tire is the expected meter range, usually measured in miles, of a given tire as specified by the manufacturer.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Part
      tags:
        - Parts
      operationId: V1::Parts::Destroy
      description: Delete a Part
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/parts/{id}/archive:
    patch:
      summary: Archive Part
      tags:
        - Parts
      operationId: V1::Parts::Archive
      description: Archive a Part
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archive
  /v1/parts/archived:
    get:
      summary: List Archived Parts
      tags:
        - Parts
      operationId: V1::Parts::Archived
      description: List archived Parts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Part'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archived
  /v1/parts/{id}/restore:
    patch:
      summary: Restore Part
      tags:
        - Parts
      operationId: V1::Parts::Restore
      description: Restore a Part
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Restore
  /v1/places:
    get:
      summary: List Places
      tags:
        - Places
      operationId: V1::Places::Index
      description: Returns a list of Places belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Place'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Place
      tags:
        - Places
      operationId: V1::Places::Create
      description: Creates a new Place
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - latitude
                - longitude
                - radius_in_meters
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: A name for this Place.
                description:
                  type: string
                  description: A description of this Place.
                latitude:
                  type: number
                  format: float
                  example: 33.515
                  description: This Place's latitude.
                longitude:
                  type: number
                  format: float
                  example: -86.80761
                  description: This Place's longitude.
                radius_in_meters:
                  type: integer
                  description: |-
                    The radius around this Place's coordinates within which we will consider
                    this Place to have been visited.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Place_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/places/{id}:
    get:
      summary: Retrieve Place
      tags:
        - Places
      operationId: V1::Places::Show
      description: Retrieve the details of an existing Place.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Place'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Place
      tags:
        - Places
      operationId: V1::Places::Update
      description: Update a Place
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: A name for this Place.
                description:
                  type: string
                  description: A description of this Place.
                latitude:
                  type: number
                  format: float
                  example: 33.515
                  description: This Place's latitude.
                longitude:
                  type: number
                  format: float
                  example: -86.80761
                  description: This Place's longitude.
                radius_in_meters:
                  type: integer
                  description: |-
                    The radius around this Place's coordinates within which we will consider
                    this Place to have been visited.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Place
      tags:
        - Places
      operationId: V1::Places::Destroy
      description: Delete a Place
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/purchase_details:
    get:
      summary: List Purchase Details
      tags:
        - Vehicle Purchase Details
      operationId: V1::PurchaseDetails::Index
      description: Returns a list of Purchase Details belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseDetail'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/purchase_details/{id}:
    get:
      summary: Retrieve Purchase Detail
      tags:
        - Vehicle Purchase Details
      operationId: V1::PurchaseDetails::Show
      description: Retrieve the details of an existing Purchase Detail.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    delete:
      summary: Delete Purchase Detail
      tags:
        - Vehicle Purchase Details
      operationId: V1::PurchaseDetails::Destroy
      description: Delete a Purchase Detail
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/purchase_orders:
    get:
      summary: List Purchase Orders
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Index
      description: Returns a list of Purchase Orders belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseOrder'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Purchase Orders
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Create
      description: Creates a new Purchase Order
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - number
              properties:
                description:
                  type: string
                  nullable: true
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                vendor_id:
                  $ref: '#/components/schemas/Id'
                part_location_id:
                  type: integer
                  minimum: 1
                  description: The Fleetio ID of the [Part Location](/docs/api/v-1-part-locations-index) for the [Part](/docs/api/parts) being purchased.
                number:
                  $ref: '#/components/schemas/PurchaseOrderNumber'
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                discount_percentage:
                  type: number
                  format: float
                  description: |-
                    The discount percentage. This field should be present when `discount_type`
                    is set to `percentage`.
                discount:
                  type: number
                  description: The actual value of the discount
                shipping:
                  type: number
                  description: The cost of shipping
                tax_1_percentage:
                  type: number
                  description: |-
                    The primary tax percentage amount. This field should be present when
                    `tax_1_type` is set to `percentage`.
                tax_1:
                  type: number
                  format: float
                  description: The primary tax amount.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2_percentage:
                  type: number
                  description: |-
                    The secondary tax percentage amount. This field should be present when
                    `tax_2_type` is set to `percentage`. Note that this secondary tax must be
                    configured in your [Account
                    Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
                tax_2:
                  type: number
                  format: float
                  description: |-
                    The secondary tax amount.  Note that this secondary tax must be configured
                    in your [Account
                    Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                purchase_order_line_items_attributes:
                  type: array
                  items:
                    type: object
                    properties:
                      part_id:
                        type: integer
                        minimum: 1
                        description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
                      quantity:
                        type: integer
                        minimum: 0
                        description: How many of this `Part` to be purchased.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost of this `Part` (per unit).
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/purchase_orders/{number}:
    get:
      summary: Retrieve Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Show
      description: Retrieve the details of an existing Purchase Order.
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Update
      description: Update a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  nullable: true
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                vendor_id:
                  $ref: '#/components/schemas/Id'
                part_location_id:
                  type: integer
                  minimum: 1
                  description: The Fleetio ID of the [Part Location](/docs/api/v-1-part-locations-index) for the [Part](/docs/api/parts) being purchased.
                number:
                  $ref: '#/components/schemas/PurchaseOrderNumber'
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                discount_percentage:
                  type: number
                  format: float
                  description: |-
                    The discount percentage. This field should be present when `discount_type`
                    is set to `percentage`.
                discount:
                  type: number
                  description: The actual value of the discount
                shipping:
                  type: number
                  description: The cost of shipping
                tax_1_percentage:
                  type: number
                  description: |-
                    The primary tax percentage amount. This field should be present when
                    `tax_1_type` is set to `percentage`.
                tax_1:
                  type: number
                  format: float
                  description: The primary tax amount.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2_percentage:
                  type: number
                  description: |-
                    The secondary tax percentage amount. This field should be present when
                    `tax_2_type` is set to `percentage`. Note that this secondary tax must be
                    configured in your [Account
                    Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
                tax_2:
                  type: number
                  format: float
                  description: |-
                    The secondary tax amount.  Note that this secondary tax must be configured
                    in your [Account
                    Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                purchase_order_line_items_attributes:
                  type: array
                  items:
                    type: object
                    properties:
                      part_id:
                        type: integer
                        minimum: 1
                        description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
                      quantity:
                        type: integer
                        minimum: 0
                        description: How many of this `Part` to be purchased.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost of this `Part` (per unit).
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Destroy
      description: Delete a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/purchase_orders/{number}/approve:
    patch:
      summary: Approve Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Approve
      description: Approve a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Approve
  /v1/purchase_orders/{number}/close:
    patch:
      summary: Close Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Close
      description: Close a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Close
  /v1/purchase_orders/{number}/reject:
    patch:
      summary: Reject Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Reject
      description: Reject a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Reject
  /v1/purchase_orders/{number}/purchase:
    patch:
      summary: Purchase Purchase Order
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::Purchase
      description: Purchase a Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Purchase
  /v1/purchase_orders/{number}/submit_for_approval:
    patch:
      summary: Submit Purchase Order for Approval
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::SubmitForApproval
      description: Submit a Purchase Order for Approval
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: SubmitForApproval
  /v1/purchase_orders/{number}/undo_purchase:
    patch:
      summary: Undo Purchase Order Purchase
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::UndoPurchase
      description: Undo a Purchase Order Purchase
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: UndoPurchase
  /v1/purchase_orders/{number}/purchase_order_line_items:
    get:
      summary: List Purchase Order Line Items
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::PurchaseOrderLineItems::Index
      description: Returns a list of Line Items for the specified Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseOrderLineItem'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List Line Items
    post:
      summary: Create Purchase Order Line Item
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::PurchaseOrderLineItems::Create
      description: Creates a new Line Item for the associated Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - part_id
                - quantity
                - unit_cost
              properties:
                part_id:
                  type: integer
                  minimum: 1
                  description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
                quantity:
                  type: integer
                  minimum: 0
                  description: How many of this `Part` to be purchased.
                unit_cost:
                  type: number
                  format: float
                  description: The cost of this `Part` (per unit).
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItemCreated'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create Line Item
  /v1/purchase_orders/{number}/purchase_order_line_items/{id}:
    get:
      summary: Retrieve Purchase Order Line Item
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::PurchaseOrderLineItems::Show
      description: Get a Line Item for the associated Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve Line Item
    patch:
      summary: Update Purchase Order Line Item
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::PurchaseOrderLineItems::Update
      description: Update a Line Item for the associated Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                part_id:
                  type: integer
                  minimum: 1
                  description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
                quantity:
                  type: integer
                  minimum: 0
                  description: How many of this `Part` to be purchased.
                unit_cost:
                  type: number
                  format: float
                  description: The cost of this `Part` (per unit).
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update Line Item
    delete:
      summary: Delete Purchase Order Line Item
      tags:
        - Purchase Orders
      operationId: V1::PurchaseOrders::PurchaseOrderLineItems::Destroy
      description: Remove a Line Item from an associated Purchase Order
      parameters:
        - $ref: '#/components/parameters/PurchaseOrderNumber'
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete Line Item
  /v1/roles:
    get:
      summary: List Roles
      tags:
        - Roles
      operationId: V1::Roles::Index
      description: Returns a list of Roles belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Role'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Role
      tags:
        - Roles
      operationId: V1::Roles::Create
      description: Creates a new Role
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - name
                  properties:
                    name:
                      type: string
                      description: The name for this Role.
                    default:
                      type: boolean
                      default: false
                      description: Whether this Role will be applied as the default Role for new `Users`.
                    description:
                      type: string
                      nullable: true
                      description: A description of this Role.
                - $ref: '#/components/schemas/RoleModuleAccess'
                - $ref: '#/components/schemas/RoleModulePermissions'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/roles/{id}:
    get:
      summary: Retrieve Role
      tags:
        - Roles
      operationId: V1::Roles::Show
      description: Retrieve the details of an existing Role.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Role
      tags:
        - Roles
      operationId: V1::Roles::Update
      description: Update a Role.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    name:
                      type: string
                      description: The name for this Role.
                    default:
                      type: boolean
                      default: false
                      description: Whether this Role will be applied as the default Role for new `Users`.
                    description:
                      type: string
                      nullable: true
                      description: A description of this Role.
                - $ref: '#/components/schemas/RoleModuleAccess'
                - $ref: '#/components/schemas/RoleModulePermissions'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Role
      tags:
        - Roles
      operationId: V1::Roles::Destroy
      description: Delete a Role. Roles that are in use cannot be deleted and will return a 422 error.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/service_entries:
    get:
      summary: List Service Entries
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-entries-index) instead.
      tags:
        - Service Entries
      operationId: V1::ServiceEntries::Index
      description: Returns a list of Service Entries belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) List
    post:
      summary: Create Service Entry
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-entries-create) instead.
      tags:
        - Service Entries
      operationId: V1::ServiceEntries::Create
      description: Creates a new Service Entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - completed_at
                - vehicle_id
                - meter_entry_attributes
              properties:
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date of the Service Entry.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_vin:
                  type: string
                  maxLength: 17
                  description: The VIN of the `Vehicle` associated with this Service Entry.
                vendor_id:
                  $ref: '#/components/schemas/Id'
                reference:
                  type: string
                  maxLength: 255
                  description: A reference number for this Service Entry.
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                general_notes:
                  type: string
                  description: Any general notes about this Service Entry.
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                meter_entry_attributes:
                  description: |-
                    A Service Entry may be associated with a [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Service Entry may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                service_entry_line_items_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ServiceEntryLineItemAttributes'
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Issues associated with this Service Entry.
                service_task_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Service Tasks associated with this Service Entry.
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                labor_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of labor for this Service Entry.
                    This is calculated by summing the `labor_cost` of each `Service Entry Line Item`.
                parts_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of `Parts` for this Service Entry.
                    This is calculated by summing the `parts_cost` of each `Service Entry Line Item`.
                subtotal:
                  type: number
                  format: float
                  description: |-
                    The subtotal amount of this Service Entry before any discounts or taxes.
                    This is calculated by summing the `subtotal` of each `Service Entry Line Item`.
                discount:
                  type: number
                  format: float
                  description: The total discount amount for this Service Entry.
                discount_percentage:
                  type: number
                  format: float
                  description: The total discount percentage for this Service Entry.
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                tax_1:
                  type: number
                  format: float
                  description: The first tax amount for this Service Entry.
                tax_1_percentage:
                  type: number
                  format: float
                  description: The first tax percentage for this Service Entry.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: The second tax amount for this Service Entry.
                tax_2_percentage:
                  type: number
                  format: float
                  description: The second tax percentage for this Service Entry.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                total_amount:
                  type: number
                  format: float
                  description: The grand total of this Service Entry.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntry'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Create
  /v1/service_entries/{id}:
    get:
      summary: Retrieve Service Entry
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-entries-show) instead.
      tags:
        - Service Entries
      operationId: V1::ServiceEntries::Show
      description: Retrieve the details of an existing Service Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Retrieve
    patch:
      summary: Update Service Entry
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-entries-update) instead.
      tags:
        - Service Entries
      operationId: V1::ServiceEntries::Update
      description: Update a Service Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date of the Service Entry.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_vin:
                  type: string
                  maxLength: 17
                  description: The VIN of the `Vehicle` associated with this Service Entry.
                vendor_id:
                  $ref: '#/components/schemas/Id'
                reference:
                  type: string
                  maxLength: 255
                  description: A reference number for this Service Entry.
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                general_notes:
                  type: string
                  description: Any general notes about this Service Entry.
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                meter_entry_attributes:
                  description: |-
                    A Service Entry may be associated with a [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Service Entry may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                service_entry_line_items_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ServiceEntryLineItemAttributes'
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Issues associated with this Service Entry.
                service_task_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Service Tasks associated with this Service Entry.
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                labor_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of labor for this Service Entry.
                    This is calculated by summing the `labor_cost` of each `Service Entry Line Item`.
                parts_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of `Parts` for this Service Entry.
                    This is calculated by summing the `parts_cost` of each `Service Entry Line Item`.
                subtotal:
                  type: number
                  format: float
                  description: |-
                    The subtotal amount of this Service Entry before any discounts or taxes.
                    This is calculated by summing the `subtotal` of each `Service Entry Line Item`.
                discount:
                  type: number
                  format: float
                  description: The total discount amount for this Service Entry.
                discount_percentage:
                  type: number
                  format: float
                  description: The total discount percentage for this Service Entry.
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                tax_1:
                  type: number
                  format: float
                  description: The first tax amount for this Service Entry.
                tax_1_percentage:
                  type: number
                  format: float
                  description: The first tax percentage for this Service Entry.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: The second tax amount for this Service Entry.
                tax_2_percentage:
                  type: number
                  format: float
                  description: The second tax percentage for this Service Entry.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                total_amount:
                  type: number
                  format: float
                  description: The grand total of this Service Entry.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Update
    delete:
      summary: Delete Service Entry
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-entries-destroy) instead.
      tags:
        - Service Entries
      operationId: V1::ServiceEntries::Destroy
      description: Delete a Service Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Delete
  /v1/service_reminders:
    get:
      summary: List Service Reminders
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-reminders-index) instead.
      tags:
        - Service Reminders
      operationId: V1::ServiceReminders::Index
      description: Returns a list of Service Reminders belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceReminder'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) List
    post:
      summary: Create Service Reminder
      tags:
        - Service Reminders
      operationId: V1::ServiceReminders::Create
      description: Creates a new Service Reminder
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - service_task_id
                - meter_interval
              properties:
                service_task_id:
                  $ref: '#/components/schemas/Id'
                meter_interval:
                  type: number
                  format: float
                  description: The meter interval of which this Service Reminder should occur.
                secondary_meter_interval:
                  type: number
                  format: float
                  description: The secondary meter interval of which this Service Reminder should occur.
                secondary_meter:
                  type: boolean
                  default: false
                  description: |-
                    Indicates whether the Service Reminder is associated with a secondary meter.
                    If this is not set, the value for the record will be set to `false`.
                time_interval:
                  type: integer
                  description: |-
                    The number of time units according to `time_frequency` between each occurrence
                    of the Service Reminder.
                time_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                overridden:
                  type: boolean
                  description: Indicates whether the Service Reminder is overridden.
                next_due_meter_value:
                  type: number
                  format: float
                  description: The meter value at which the Service Reminder is next due, if applicable.
                next_due_secondary_meter_value:
                  type: number
                  format: float
                  description: The secondary meter value at which the Service Reminder is next due, if applicable.
                next_due_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_meter_threshold:
                  type: number
                  format: float
                  description: The meter value threshold to which this Service Reminder will be due soon.
                due_soon_secondary_meter_threshold:
                  type: number
                  format: float
                  description: The secondary meter value threshold to which this Service Reminder will be due soon.
                active:
                  type: boolean
                  description: Indicates whether the Service Reminder is currently active.
                due_soon_time_threshold_interval:
                  type: integer
                  description: |-
                    The number of time units according to `due_soon_time_threshold_frequency`
                    between `due_soon_at` occurrences.
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                starting_interval:
                  type: boolean
                  description: Indicates whether the Service Reminder has a starting interval.
                starting_meter_interval:
                  type: number
                  format: float
                  description: The starting meter interval for this Service Reminder.
                starting_secondary_meter_interval:
                  type: number
                  format: float
                  description: The starting secondary meter interval for this Service Reminder.
                starting_time_interval:
                  type: integer
                  description: |-
                    The starting time interval according to `starting_time_frequency`
                    for time-based Service Reminders, if applicable.
                starting_time_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                snooze_until:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time until which the Service Reminder will be snoozed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                user_ids:
                  type: array
                  description: The IDs of any `Users` associated with the Service Reminder.
                  items:
                    $ref: '#/components/schemas/Id'
                watcher_user_ids:
                  type: array
                  description: The IDs of any `Users` to watch the Service Reminder.
                  items:
                    $ref: '#/components/schemas/Id'
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceReminder'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Create
  /v1/service_reminders/{id}:
    get:
      summary: Retrieve Service Reminder
      deprecated: true
      x-deprecated-description: This endpoint is deprecated and will be removed in a future version. Please use the new [v2 endpoint](/docs/api/v-2-service-reminders-show) instead.
      tags:
        - Service Reminders
      operationId: V1::ServiceReminders::Show
      description: Retrieve the details of an existing Service Reminder.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceReminder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Retrieve
    patch:
      summary: Update Service Reminder
      tags:
        - Service Reminders
      operationId: V1::ServiceReminders::Update
      description: Update a Service Reminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                service_task_id:
                  $ref: '#/components/schemas/Id'
                meter_interval:
                  type: number
                  format: float
                  description: The meter interval of which this Service Reminder should occur.
                secondary_meter_interval:
                  type: number
                  format: float
                  description: The secondary meter interval of which this Service Reminder should occur.
                secondary_meter:
                  type: boolean
                  default: false
                  description: |-
                    Indicates whether the Service Reminder is associated with a secondary meter.
                    If this is not set, the value for the record will be set to `false`.
                time_interval:
                  type: integer
                  description: |-
                    The number of time units according to `time_frequency` between each occurrence
                    of the Service Reminder.
                time_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                overridden:
                  type: boolean
                  description: Indicates whether the Service Reminder is overridden.
                next_due_meter_value:
                  type: number
                  format: float
                  description: The meter value at which the Service Reminder is next due, if applicable.
                next_due_secondary_meter_value:
                  type: number
                  format: float
                  description: The secondary meter value at which the Service Reminder is next due, if applicable.
                next_due_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
                due_soon_meter_threshold:
                  type: number
                  format: float
                  description: The meter value threshold to which this Service Reminder will be due soon.
                due_soon_secondary_meter_threshold:
                  type: number
                  format: float
                  description: The secondary meter value threshold to which this Service Reminder will be due soon.
                active:
                  type: boolean
                  description: Indicates whether the Service Reminder is currently active.
                due_soon_time_threshold_interval:
                  type: integer
                  description: |-
                    The number of time units according to `due_soon_time_threshold_frequency`
                    between `due_soon_at` occurrences.
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                starting_interval:
                  type: boolean
                  description: Indicates whether the Service Reminder has a starting interval.
                starting_meter_interval:
                  type: number
                  format: float
                  description: The starting meter interval for this Service Reminder.
                starting_secondary_meter_interval:
                  type: number
                  format: float
                  description: The starting secondary meter interval for this Service Reminder.
                starting_time_interval:
                  type: integer
                  description: |-
                    The starting time interval according to `starting_time_frequency`
                    for time-based Service Reminders, if applicable.
                starting_time_frequency:
                  $ref: '#/components/schemas/FrequencyParameter'
                snooze_until:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time until which the Service Reminder will be snoozed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                user_ids:
                  type: array
                  description: The IDs of any `Users` associated with the Service Reminder.
                  items:
                    $ref: '#/components/schemas/Id'
                watcher_user_ids:
                  type: array
                  description: The IDs of any `Users` to watch the Service Reminder.
                  items:
                    $ref: '#/components/schemas/Id'
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceReminder'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Update
    delete:
      summary: Delete Service Reminder
      tags:
        - Service Reminders
      operationId: V1::ServiceReminders::Destroy
      description: Delete a Service Reminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: (v1) Delete
  /v1/service_tasks:
    get:
      summary: List Service Tasks
      tags:
        - Service Tasks
      operationId: V1::ServiceTasks::Index
      description: Returns a list of Service Tasks belonging to your account.
      parameters:
        - name: include_usage
          in: query
          description: Used to include the `usage` attribute in the Service Task response objects.
          schema:
            type: integer
            enum:
              - 1
          required: false
        - name: expand
          in: query
          required: false
          description: Currently accepts `service_task_parts`.
          schema:
            type: object
            properties:
              service_task_parts:
                type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceTask'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Service Task
      tags:
        - Service Tasks
      operationId: V1::ServiceTasks::Create
      description: Creates a new Service Task
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: The name of the Service Task.
                description:
                  type: string
                  nullable: true
                  description: A description of the Service Task.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceTask_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/service_tasks/{id}:
    get:
      summary: Retrieve Service Task
      tags:
        - Service Tasks
      operationId: V1::ServiceTasks::Show
      description: Retrieve the details of an existing Service Task.
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - name: expand
          in: query
          required: false
          description: Currently accepts `service_task_parts`.
          schema:
            type: object
            properties:
              service_task_parts:
                type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceTask'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Service Task
      tags:
        - Service Tasks
      operationId: V1::ServiceTasks::Update
      description: Update a Service Task
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                  description: The name of the Service Task.
                description:
                  type: string
                  nullable: true
                  description: A description of the Service Task.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Service Task
      tags:
        - Service Tasks
      operationId: V1::ServiceTasks::Destroy
      description: Delete a Service Task
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/submitted_inspection_forms:
    get:
      summary: List Submitted Inspection Forms
      tags:
        - Submitted Inspection Forms
      operationId: V1::SubmittedInspectionForms::Index
      description: |-
        Returns a list of submitted inspection forms.

        :::info
        Submitting inspection forms through the API is not currently supported.
        :::
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              submitted_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              inspection_form_id:
                $ref: '#/components/schemas/EqFilter'
              inspection_form_version_id:
                $ref: '#/components/schemas/EqFilter'
              inspection_form_title:
                $ref: '#/components/schemas/LikeFilter'
              vehicle_id:
                $ref: '#/components/schemas/EqFilter'
              user_id:
                $ref: '#/components/schemas/EqFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
              submitted_at:
                $ref: '#/components/schemas/SortAscDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            inspection_form_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            inspection_form_version_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            inspection_form_title:
                              $ref: '#/components/schemas/LikeFilter'
                        - type: object
                          properties:
                            vehicle_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            user_id:
                              $ref: '#/components/schemas/EqFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            failed_items:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            submitted_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/SubmittedInspectionFormSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/submitted_inspection_forms/{id}:
    get:
      summary: Retrieve Submitted Inspection Form
      tags:
        - Submitted Inspection Forms
      operationId: V1::SubmittedInspectionForms::Show
      description: |-
        Retrieve the details of an existing Submitted Inspection Form.

        :::info
        Submitting inspection forms through the API is not currently supported.
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmittedInspectionForm'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    delete:
      summary: Delete Submitted Inspection Form
      tags:
        - Submitted Inspection Forms
      operationId: V1::SubmittedInspectionForms::Destroy
      description: Delete a Submitted Inspection Form
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/tires:
    get:
      summary: List Tires
      tags:
        - Tires
      operationId: V1::Tires::Index
      description: Returns a list of Tires
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return.
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              axle_config_id:
                $ref: '#/components/schemas/IncludeEqFilter'
              vehicle_id:
                $ref: '#/components/schemas/IncludeEqFilter'
              part_id:
                $ref: '#/components/schemas/IncludeEqFilter'
              tire_position_id:
                $ref: '#/components/schemas/IncludeEqFilter'
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            axle_config_id:
                              $ref: '#/components/schemas/IncludeEqFilter'
                        - type: object
                          properties:
                            vehicle_id:
                              $ref: '#/components/schemas/IncludeEqFilter'
                        - type: object
                          properties:
                            part_id:
                              $ref: '#/components/schemas/IncludeEqFilter'
                        - type: object
                          properties:
                            tire_position_id:
                              $ref: '#/components/schemas/IncludeEqFilter'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/TireSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Tire
      tags:
        - Tires
      operationId: V1::Tires::Create
      description: Creates a new Tire
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                part_id:
                  $ref: '#/components/schemas/Id'
                tire_position_id:
                  $ref: '#/components/schemas/Id'
                pressure:
                  type: integer
                  description: Pressure
                tread_depth:
                  type: integer
                  description: Tread Depth
            example:
              tire_position_id: 1
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TireSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-sidebarLabel: Create
  /v1/tires/{id}:
    patch:
      summary: Update Tire
      tags:
        - Tires
      operationId: V1::Tires::Update
      description: Updates a Tire
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                part_id:
                  $ref: '#/components/schemas/NullableId'
                tire_position_id:
                  $ref: '#/components/schemas/NullableId'
                pressure:
                  type: integer
                  description: Pressure
                tread_depth:
                  type: integer
                  description: Tread Depth
            example:
              tire_position_id: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TireSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-sidebarLabel: Update
  /v1/vehicle_assignments:
    get:
      summary: List Vehicle Assignments
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Index
      description: Returns a list of vehicle assignments.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              contact_id:
                $ref: '#/components/schemas/EqFilter'
              vehicle_id:
                $ref: '#/components/schemas/EqFilter'
              ended_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              started_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              started_at:
                $ref: '#/components/schemas/SortAscDesc'
              ended_at:
                $ref: '#/components/schemas/SortAscDesc'
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            contact_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            vehicle_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            ended_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            started_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            started_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            ended_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleAssignmentSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle Assignment
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Create
      description: Creates a new Vehicle Assignment.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - contact_id
              properties:
                contact_employee_number:
                  type: string
                  maxLength: 255
                  description: If the `Contact` being assigned has an employee number, it can be included here.
                contact_id:
                  $ref: '#/components/schemas/Id'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time of this Vehicle Assignment.
                    Dates in the future are accepted.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                ended_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time of this Vehicle Assignment ending.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                starting_meter_entry_attributes:
                  description: |-
                    A Vehicle Assignment may be associated with a starting [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_meter_entry_attributes:
                  description: |-
                    A Vehicle Assignment may also be associated with an ending [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleAssignment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicle_assignments/{id}:
    get:
      summary: Retrieve Vehicle Assignment
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Show
      description: Retrieve the details of an existing Vehicle Assignment.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleAssignment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle Assignment
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Update
      description: Update a Vehicle Assignment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_employee_number:
                  type: string
                  maxLength: 255
                  description: If the `Contact` being assigned has an employee number, it can be included here.
                contact_id:
                  $ref: '#/components/schemas/Id'
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time of this Vehicle Assignment.
                    Dates in the future are accepted.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                ended_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time of this Vehicle Assignment ending.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                starting_meter_entry_attributes:
                  description: |-
                    A Vehicle Assignment may be associated with a starting [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_meter_entry_attributes:
                  description: |-
                    A Vehicle Assignment may also be associated with an ending [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleAssignment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle Assignment
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Destroy
      description: Delete a Vehicle Assignment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicle_assignments/{id}/unassign:
    patch:
      summary: Unassign Vehicle Assignment
      tags:
        - Vehicle Assignments
      operationId: V1::VehicleAssignments::Unassign
      description: Immediately End a Vehicle Assignment
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleAssignment'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: End
  /v1/vehicle_renewal_reminders:
    get:
      summary: List Vehicle Renewal Reminders
      tags:
        - Vehicle Renewal Reminders
      operationId: V1::VehicleRenewalReminders::Index
      description: Returns a list of your Vehicle Renewal Reminders
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleRenewalReminder'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle Renewal Reminder
      tags:
        - Vehicle Renewal Reminders
      operationId: V1::VehicleRenewalReminders::Create
      description: Creates a new Vehicle Renewal Reminder
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vehicle_id
                - vehicle_renewal_type_id
                - next_due_at
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_renewal_type_id:
                  $ref: '#/components/schemas/Id'
                next_due_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Renewal Reminder will be due next.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_soon_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Renewal Reminder will be considered due soon.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_soon_time_threshold_interval:
                  type: integer
                  minimum: 1
                  description: |-
                    Used in conjunction with `due_soon_time_threshold_frequency`. Together they
                    form a full due soon parameter eg; "1 week", "5 months", "10 years"
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/Frequency'
                active:
                  type: boolean
                  description: Whether this Renewal Reminder is active.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleRenewalReminder_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicle_renewal_reminders/{id}:
    get:
      summary: Retrieve Vehicle Renewal Reminder
      tags:
        - Vehicle Renewal Reminders
      operationId: V1::VehicleRenewalReminders::Show
      description: Retrieve the details of a Vehicle Renewal Reminder.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleRenewalReminder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle Renewal Reminder
      tags:
        - Vehicle Renewal Reminders
      operationId: V1::VehicleRenewalReminders::Update
      description: Update a Vehicle Renewal Reminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_renewal_type_id:
                  $ref: '#/components/schemas/Id'
                next_due_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Renewal Reminder will be due next.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_soon_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Renewal Reminder will be considered due soon.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                due_soon_time_threshold_interval:
                  type: integer
                  minimum: 1
                  description: |-
                    Used in conjunction with `due_soon_time_threshold_frequency`. Together they
                    form a full due soon parameter eg; "1 week", "5 months", "10 years"
                due_soon_time_threshold_frequency:
                  $ref: '#/components/schemas/Frequency'
                active:
                  type: boolean
                  description: Whether this Renewal Reminder is active.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle Renewal Reminder
      tags:
        - Vehicle Renewal Reminders
      operationId: V1::VehicleRenewalReminders::Destroy
      description: Delete a Vehicle Renewal Reminder
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicle_renewal_types:
    get:
      summary: List Vehicle Renewal Types
      tags:
        - Vehicle Renewal Types
      operationId: V1::VehicleRenewalTypes::Index
      description: Returns a list of Vehicle Renewal Types belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleRenewalType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle Renewal Type
      tags:
        - Vehicle Renewal Types
      operationId: V1::VehicleRenewalTypes::Create
      description: Creates a new Vehicle Renewal Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                name:
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleRenewalType'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicle_renewal_types/{id}:
    get:
      summary: Retrieve Vehicle Renewal Type
      tags:
        - Vehicle Renewal Types
      operationId: V1::VehicleRenewalTypes::Show
      description: Retrieve the details of an existing Vehicle Renewal Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleRenewalType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle Renewal Type
      tags:
        - Vehicle Renewal Types
      operationId: V1::VehicleRenewalTypes::Update
      description: Update a Vehicle Renewal Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle Renewal Type
      tags:
        - Vehicle Renewal Types
      operationId: V1::VehicleRenewalTypes::Destroy
      description: Delete a Vehicle Renewal Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicle_status_changes:
    get:
      summary: List Vehicle Status Changes
      tags:
        - Vehicle Status Changes
      operationId: V1::VehicleStatusChanges::Index
      description: Returns a list of Vehicle Status Changes
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              vehicle_id:
                $ref: '#/components/schemas/EqFilter'
              from_vehicle_status_id:
                $ref: '#/components/schemas/EqFilter'
              to_vehicle_status_id:
                $ref: '#/components/schemas/EqFilter'
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
              vehicle_id:
                $ref: '#/components/schemas/SortAscDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            vehicle_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            from_vehicle_status_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            to_vehicle_status_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleStatusChangeSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/vehicle_statuses:
    get:
      summary: List Vehicle Statuses
      tags:
        - Vehicle Statuses
      operationId: V1::VehicleStatuses::Index
      description: Returns a list of Vehicle Statuses belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleStatus'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle Status
      tags:
        - Vehicle Statuses
      operationId: V1::VehicleStatuses::Create
      description: Creates a new Vehicle Status
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Vehicle Status. Must be unique.
                  maxLength: 255
                default:
                  type: boolean
                  default: false
                  description: Whether this should be the default Vehicle Status for new `Vehicles`.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleStatus'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicle_statuses/{id}:
    get:
      summary: Retrieve Vehicle Status
      tags:
        - Vehicle Statuses
      operationId: V1::VehicleStatuses::Show
      description: Retrieve the details of an existing Vehicle Status.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle Status
      tags:
        - Vehicle Statuses
      operationId: V1::VehicleStatuses::Update
      description: Update a Vehicle Status
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Vehicle Status. Must be unique.
                  maxLength: 255
                default:
                  type: boolean
                  default: false
                  description: Whether this should be the default Vehicle Status for new `Vehicles`.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle Status
      tags:
        - Vehicle Statuses
      operationId: V1::VehicleStatuses::Destroy
      description: Delete a Vehicle Status
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicle_types:
    get:
      summary: List Vehicle Types
      tags:
        - Vehicle Types
      operationId: V1::VehicleTypes::Index
      description: Returns a list of Vehicle Types belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleType'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle Type
      tags:
        - Vehicle Types
      operationId: V1::VehicleTypes::Create
      description: Creates a new Vehicle Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Vehicle Type. Must be unique.
                  maxLength: 255
                default:
                  type: boolean
                  default: false
                  description: Whether this Vehicle Type should be the default applied to new `Vehicles`.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleType'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicle_types/{id}:
    get:
      summary: Retrieve Vehicle Type
      tags:
        - Vehicle Types
      operationId: V1::VehicleTypes::Show
      description: Retrieve the details of an existing Vehicle Type.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleType'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle Type
      tags:
        - Vehicle Types
      operationId: V1::VehicleTypes::Update
      description: Update a Vehicle Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Vehicle Type. Must be unique.
                  maxLength: 255
                default:
                  type: boolean
                  default: false
                  description: Whether this Vehicle Type should be the default applied to new `Vehicles`.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle Type
      tags:
        - Vehicle Types
      operationId: V1::VehicleTypes::Destroy
      description: Delete a Vehicle Type
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicles:
    get:
      summary: List Vehicles
      tags:
        - Vehicles
      operationId: V1::Vehicles::Index
      description: Returns a list of vehicles excluding archived.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return.
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by. If you have configured custom fields, These will be filterable using the custom field key with the prefix `custom_field_`, and support `like` and `eq` operations.
          schema:
            $ref: '#/components/schemas/VehicleFilters'
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            $ref: '#/components/schemas/VehicleSorts'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/VehicleFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/VehicleSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Create
      description: |-
        Creates a new vehicle. If you need to create many vehicles at once, use the
        [Bulk API](/docs/overview/bulk-api) to avoid [Rate Limiting
        errors](/docs/overview/rate-limiting).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - fuel_volume_units
                - meter_unit
                - name
                - ownership
                - system_of_measurement
                - vehicle_status_id
                - vehicle_type_id
              properties:
                color:
                  type: string
                  maxLength: 255
                  description: The color of this Vehicle.
                fuel_type_id:
                  type: integer
                  description: The ID of the `Fuel Type` associated with this Vehicle.
                fuel_volume_units:
                  $ref: '#/components/schemas/VolumeUnit'
                group_id:
                  $ref: '#/components/schemas/Id'
                group_hierarchy:
                  type: string
                  description: |-
                    A pipe delimited group hierarchy. Ex: "Level 1|Level 2|Level 3". Where
                    Level 1 is the parent of Level 2, and 2 is the parent of 3. Any missing
                    nodes in the hierarchy will be created.
                label_ids:
                  type: array
                  description: |-
                    The `label_id`(s) of any Labels to assign to this Vehicle.
                    If you wish to keep any existing Labels, those IDs must be included in this array as well.
                  items:
                    $ref: '#/components/schemas/Id'
                license_plate:
                  type: string
                  maxLength: 255
                  description: The license plate number of this Vehicle.
                make:
                  type: string
                  maxLength: 255
                  description: The name of this Vehicle's manufacturer.
                meter_unit:
                  $ref: '#/components/schemas/MeterUnit'
                model:
                  type: string
                  maxLength: 255
                  description: The name of the model of this Vehicle.
                name:
                  type: string
                  description: A name to assign to this Vehicle. Must be unique.
                  maxLength: 255
                ownership:
                  $ref: '#/components/schemas/VehicleOwnership'
                registration_expiration_month:
                  type: integer
                  minimum: 0
                  maximum: 12
                  description: The month in which this Vehicle's registration expires.
                registration_state:
                  type: string
                  maxLength: 255
                  description: The state, province, or territory in which this Vehicle is registered.
                secondary_meter:
                  type: boolean
                  description: Indicates whether or not this Vehicle has a secondary meter.
                secondary_meter_unit:
                  $ref: '#/components/schemas/MeterUnit'
                system_of_measurement:
                  $ref: '#/components/schemas/MeasurementSystem'
                trim:
                  type: string
                  maxLength: 255
                  description: The trim level of this Vehicle.
                vehicle_status_id:
                  $ref: '#/components/schemas/Id'
                vehicle_type_id:
                  $ref: '#/components/schemas/Id'
                vin:
                  type: string
                  maxLength: 17
                  description: The Vehicle Identification Number of this Vehicle. Must be unique.
                year:
                  type: integer
                  description: This Vehicle's model year.
                linked_vehicle_ids:
                  type: array
                  description: The `vehicle_id`(s) of any Vehicles to link to this Vehicle.
                  items:
                    $ref: '#/components/schemas/Id'
                purchase_detail_attributes:
                  type: object
                  properties:
                    comment:
                      type: string
                      description: A comment about this Vehicle's purchase.
                    date:
                      type: string
                      format: date-time
                      description: |-
                        The date and time at which this Vehicle was purchased.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    price:
                      type: number
                      format: float
                      description: The price of this Vehicle at the time of purchase.
                    vendor_id:
                      $ref: '#/components/schemas/Id'
                    warranty_expiration_date:
                      type: string
                      format: date-time
                      description: |-
                        The date and time at which this Vehicle's warranty expires.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    warranty_expiration_meter_value:
                      type: number
                      format: float
                      description: |-
                        The meter value at which this Vehicle's warranty expires.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    meter_entry_attributes.value:
                      type: number
                      format: float
                      description: The meter value at the time of purchase.
                    meter_entry_attributes.void:
                      type: boolean
                      description: |-
                        Indicates whether the `Meter Entry` created by passing
                        `meter_entry_attributes.value` should be considered void.
                        [Voiding Meter Entries](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void)
                external_ids:
                  type: object
                  description: Any [External IDs](/docs/guides/vehicles/external-vehicle-ids) associated with this Vehicle.
                vehicle_status_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle Status` associated with this Vehicle.
                vehicle_type_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle Type` associated with this Vehicle.
                in_service_date:
                  type: string
                  format: date-time
                  description: |-
                    The date on which this Vehicle was put into service.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                in_service_meter:
                  type: number
                  format: float
                  description: The meter value at which this Vehicle was put into service.
                estimated_service_months:
                  type: integer
                  description: The estimated number of months this Vehicle will be in service.
                estimated_replacement_mileage:
                  type: number
                  format: float
                  description: The estimated number of miles before which this Vehicle will be replaced.
                estimated_resale_price:
                  type: number
                  format: float
                  description: The estimated resale price of this Vehicle.
                out_of_service_date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date on which this Vehicle was or will be retired.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                out_of_service_meter:
                  type: number
                  format: float
                  description: The meter value at which this Vehicle was or will be retired.
                specs_attributes:
                  type: object
                  properties:
                    base_towing_capacity:
                      type: number
                      format: float
                      description: The base towing capacity of the Vehicle.
                    bed_length:
                      type: number
                      format: float
                      description: The length of the Vehicle's bed.
                    body_subtype:
                      type: string
                      description: The subtype of the Vehicle body.
                    body_type:
                      type: string
                      description: The body type of the Vehicle.
                    brake_system:
                      type: string
                      maxLength: 255
                      description: The brake system used in the Vehicle.
                    cargo_volume:
                      type: number
                      format: float
                      description: Cargo volume of the Vehicle.
                    curb_weight:
                      type: number
                      format: float
                      description: The curb weight of the Vehicle.
                    drive_type:
                      type: string
                      maxLength: 255
                      description: The drive type of the Vehicle.
                    engine_aspiration:
                      type: string
                      maxLength: 255
                      description: Aspiration type of the engine.
                    engine_block_type:
                      type: string
                      maxLength: 255
                      description: Block type of the engine.
                    engine_bore:
                      type: number
                      format: float
                      description: Bore size of the engine.
                    engine_brand:
                      type: string
                      maxLength: 255
                      description: Brand of the Vehicle's engine.
                    engine_cam_type:
                      type: string
                      maxLength: 255
                      description: Camshaft type of the engine.
                    engine_compression:
                      type: number
                      format: float
                      description: Compression ratio of the engine.
                    engine_cylinders:
                      type: integer
                      description: Number of engine cylinders.
                    engine_description:
                      type: string
                      description: Description of the Vehicle's engine.
                    engine_displacement:
                      type: number
                      format: float
                      description: The displacement of the Vehicle's engine.
                    engine_stroke:
                      type: number
                      format: float
                      description: Stroke length of the engine.
                    engine_valves:
                      type: integer
                      description: Number of engine valves.
                    epa_city:
                      type: number
                      format: float
                      description: The EPA city fuel economy rating.
                    epa_combined:
                      type: number
                      format: float
                      description: The combined EPA fuel economy rating.
                    epa_highway:
                      type: number
                      format: float
                      description: The EPA highway fuel economy rating.
                    front_tire_psi:
                      type: number
                      format: float
                      description: The recommended PSI for front tires.
                    front_tire_type:
                      type: string
                      maxLength: 255
                      description: The type of front tires used in the Vehicle.
                    front_track_width:
                      type: number
                      format: float
                      description: The front track width of the Vehicle.
                    front_wheel_diameter:
                      type: string
                      maxLength: 255
                      description: The diameter of the front wheels.
                    fuel_induction:
                      type: string
                      maxLength: 255
                      description: Fuel induction method.
                    fuel_quality:
                      type: string
                      maxLength: 255
                      description: Fuel quality required for the engine.
                    fuel_tank_capacity:
                      type: number
                      format: float
                      description: The fuel tank capacity of the Vehicle.
                    fuel_tank_2_capacity:
                      type: number
                      format: float
                      description: The capacity of a second fuel tank, if applicable.
                    gross_vehicle_weight_rating:
                      type: number
                      format: float
                      description: The Gross Vehicle Weight Rating (GVWR).
                    ground_clearance:
                      type: number
                      format: float
                      description: The ground clearance of the Vehicle.
                    height:
                      type: number
                      format: float
                      description: The height of the Vehicle.
                    interior_volume:
                      type: number
                      format: float
                      description: Interior volume of the Vehicle.
                    length:
                      type: number
                      format: float
                      description: The length of the Vehicle.
                    max_hp:
                      type: integer
                      description: Maximum horsepower produced by the engine.
                    max_payload:
                      type: number
                      format: float
                      description: The maximum payload capacity of the Vehicle.
                    max_torque:
                      type: integer
                      description: Maximum torque produced by the engine.
                    msrp:
                      type: number
                      format: float
                      description: Manufacturer's Suggested Retail Price (MSRP).
                    oil_capacity:
                      type: number
                      format: float
                      description: Oil capacity of the engine.
                    passenger_volume:
                      type: string
                      maxLength: 255
                      description: Passenger volume of the Vehicle.
                    rear_axle_type:
                      type: string
                      maxLength: 255
                      description: The type of rear axle used in the Vehicle.
                    rear_tire_psi:
                      type: number
                      format: float
                      description: The recommended PSI for rear tires.
                    rear_tire_type:
                      type: string
                      maxLength: 255
                      description: The type of rear tires used in the Vehicle.
                    rear_track_width:
                      type: number
                      format: float
                      description: The rear track width of the Vehicle.
                    rear_wheel_diameter:
                      type: string
                      maxLength: 255
                      description: The diameter of the rear wheels.
                    redline_rpm:
                      type: string
                      maxLength: 255
                      description: Redline RPM of the engine.
                    transmission_brand:
                      type: string
                      maxLength: 255
                      description: Brand of the Vehicle's transmission.
                    transmission_description:
                      type: string
                      maxLength: 255
                      description: Description of the Vehicle's transmission.
                    transmission_gears:
                      type: integer
                      description: Number of gears in the transmission.
                    transmission_type:
                      type: string
                      maxLength: 255
                      description: Type of transmission.
                    wheelbase:
                      type: number
                      format: float
                      description: The wheelbase of the Vehicle.
                    width:
                      type: number
                      format: float
                      description: The width of the Vehicle.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vehicles/search:
    post:
      summary: Search Vehicles
      tags:
        - Vehicles
      operationId: V1::Vehicles::Search
      description: |-
        Returns a list of vehicles excluding archived.  Matches
        behavior of `List` action, but accepts parameters including 
        filters in request body.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start_cursor:
                  type: string
                per_page:
                  type: integer
                  minimum: 2
                  maximum: 100
                  default: 50
                filter:
                  $ref: '#/components/schemas/VehicleFilters'
                sort:
                  $ref: '#/components/schemas/VehicleSorts'
            example:
              filter:
                vin:
                  like: abc123
              sort:
                updated_at: desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/VehicleFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/VehicleSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Search
  /v1/vehicles/{id}:
    get:
      summary: Retrieve Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Show
      description: Retrieve the details of an existing Vehicle.
      parameters:
        - $ref: '#/components/parameters/VehicleId'
        - in: query
          name: expand
          required: false
          description: Currently accepts `labels`.
          schema:
            type: object
            properties:
              labels:
                type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Update
      description: |-
        Update a Vehicle. If you need to update many Vehicles at once, use the
        [Bulk API](/docs/overview/bulk-api) to avoid [Rate Limiting
        errors](/docs/overview/rate-limiting).
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                color:
                  type: string
                  maxLength: 255
                  description: The color of this Vehicle.
                fuel_type_id:
                  type: integer
                  description: The ID of the `Fuel Type` associated with this Vehicle.
                fuel_volume_units:
                  $ref: '#/components/schemas/VolumeUnit'
                group_id:
                  $ref: '#/components/schemas/Id'
                group_hierarchy:
                  type: string
                  description: |-
                    A pipe delimited group hierarchy. Ex: "Level 1|Level 2|Level 3". Where
                    Level 1 is the parent of Level 2, and 2 is the parent of 3. Any missing
                    nodes in the hierarchy will be created.
                label_ids:
                  type: array
                  description: |-
                    The `label_id`(s) of any Labels to assign to this Vehicle.
                    If you wish to keep any existing Labels, those IDs must be included in this array as well.
                  items:
                    $ref: '#/components/schemas/Id'
                license_plate:
                  type: string
                  maxLength: 255
                  description: The license plate number of this Vehicle.
                make:
                  type: string
                  maxLength: 255
                  description: The name of this Vehicle's manufacturer.
                meter_unit:
                  $ref: '#/components/schemas/MeterUnit'
                model:
                  type: string
                  maxLength: 255
                  description: The name of the model of this Vehicle.
                name:
                  type: string
                  description: A name to assign to this Vehicle. Must be unique.
                  maxLength: 255
                ownership:
                  $ref: '#/components/schemas/VehicleOwnership'
                registration_expiration_month:
                  type: integer
                  minimum: 0
                  maximum: 12
                  description: The month in which this Vehicle's registration expires.
                registration_state:
                  type: string
                  maxLength: 255
                  description: The state, province, or territory in which this Vehicle is registered.
                secondary_meter:
                  type: boolean
                  description: Indicates whether or not this Vehicle has a secondary meter.
                secondary_meter_unit:
                  $ref: '#/components/schemas/MeterUnit'
                system_of_measurement:
                  $ref: '#/components/schemas/MeasurementSystem'
                trim:
                  type: string
                  maxLength: 255
                  description: The trim level of this Vehicle.
                vehicle_status_id:
                  $ref: '#/components/schemas/Id'
                vehicle_type_id:
                  $ref: '#/components/schemas/Id'
                vin:
                  type: string
                  maxLength: 17
                  description: The Vehicle Identification Number of this Vehicle. Must be unique.
                year:
                  type: integer
                  description: This Vehicle's model year.
                linked_vehicle_ids:
                  type: array
                  description: The `vehicle_id`(s) of any Vehicles to link to this Vehicle.
                  items:
                    $ref: '#/components/schemas/Id'
                purchase_detail_attributes:
                  type: object
                  properties:
                    comment:
                      type: string
                      description: A comment about this Vehicle's purchase.
                    date:
                      type: string
                      format: date-time
                      description: |-
                        The date and time at which this Vehicle was purchased.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    price:
                      type: number
                      format: float
                      description: The price of this Vehicle at the time of purchase.
                    vendor_id:
                      $ref: '#/components/schemas/Id'
                    warranty_expiration_date:
                      type: string
                      format: date-time
                      description: |-
                        The date and time at which this Vehicle's warranty expires.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    warranty_expiration_meter_value:
                      type: number
                      format: float
                      description: |-
                        The meter value at which this Vehicle's warranty expires.
                        We recommend using [ISO-8601](/docs/overview/date-formatting)
                        formatted dates to avoid ambiguity.
                    meter_entry_attributes.value:
                      type: number
                      format: float
                      description: The meter value at the time of purchase.
                    meter_entry_attributes.void:
                      type: boolean
                      description: |-
                        Indicates whether the `Meter Entry` created by passing
                        `meter_entry_attributes.value` should be considered void.
                        [Voiding Meter Entries](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void)
                external_ids:
                  type: object
                  description: Any [External IDs](/docs/guides/vehicles/external-vehicle-ids) associated with this Vehicle.
                vehicle_status_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle Status` associated with this Vehicle.
                vehicle_type_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle Type` associated with this Vehicle.
                in_service_date:
                  type: string
                  format: date-time
                  description: |-
                    The date on which this Vehicle was put into service.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                in_service_meter:
                  type: number
                  format: float
                  description: The meter value at which this Vehicle was put into service.
                estimated_service_months:
                  type: integer
                  description: The estimated number of months this Vehicle will be in service.
                estimated_replacement_mileage:
                  type: number
                  format: float
                  description: The estimated number of miles before which this Vehicle will be replaced.
                estimated_resale_price:
                  type: number
                  format: float
                  description: The estimated resale price of this Vehicle.
                out_of_service_date:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date on which this Vehicle was or will be retired.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                out_of_service_meter:
                  type: number
                  format: float
                  description: The meter value at which this Vehicle was or will be retired.
                specs_attributes:
                  type: object
                  properties:
                    base_towing_capacity:
                      type: number
                      format: float
                      description: The base towing capacity of the Vehicle.
                    bed_length:
                      type: number
                      format: float
                      description: The length of the Vehicle's bed.
                    body_subtype:
                      type: string
                      description: The subtype of the Vehicle body.
                    body_type:
                      type: string
                      description: The body type of the Vehicle.
                    brake_system:
                      type: string
                      maxLength: 255
                      description: The brake system used in the Vehicle.
                    cargo_volume:
                      type: number
                      format: float
                      description: Cargo volume of the Vehicle.
                    curb_weight:
                      type: number
                      format: float
                      description: The curb weight of the Vehicle.
                    drive_type:
                      type: string
                      maxLength: 255
                      description: The drive type of the Vehicle.
                    engine_aspiration:
                      type: string
                      maxLength: 255
                      description: Aspiration type of the engine.
                    engine_block_type:
                      type: string
                      maxLength: 255
                      description: Block type of the engine.
                    engine_bore:
                      type: number
                      format: float
                      description: Bore size of the engine.
                    engine_brand:
                      type: string
                      maxLength: 255
                      description: Brand of the Vehicle's engine.
                    engine_cam_type:
                      type: string
                      maxLength: 255
                      description: Camshaft type of the engine.
                    engine_compression:
                      type: number
                      format: float
                      description: Compression ratio of the engine.
                    engine_cylinders:
                      type: integer
                      description: Number of engine cylinders.
                    engine_description:
                      type: string
                      description: Description of the Vehicle's engine.
                    engine_displacement:
                      type: number
                      format: float
                      description: The displacement of the Vehicle's engine.
                    engine_stroke:
                      type: number
                      format: float
                      description: Stroke length of the engine.
                    engine_valves:
                      type: integer
                      description: Number of engine valves.
                    epa_city:
                      type: number
                      format: float
                      description: The EPA city fuel economy rating.
                    epa_combined:
                      type: number
                      format: float
                      description: The combined EPA fuel economy rating.
                    epa_highway:
                      type: number
                      format: float
                      description: The EPA highway fuel economy rating.
                    front_tire_psi:
                      type: number
                      format: float
                      description: The recommended PSI for front tires.
                    front_tire_type:
                      type: string
                      maxLength: 255
                      description: The type of front tires used in the Vehicle.
                    front_track_width:
                      type: number
                      format: float
                      description: The front track width of the Vehicle.
                    front_wheel_diameter:
                      type: string
                      maxLength: 255
                      description: The diameter of the front wheels.
                    fuel_induction:
                      type: string
                      maxLength: 255
                      description: Fuel induction method.
                    fuel_quality:
                      type: string
                      maxLength: 255
                      description: Fuel quality required for the engine.
                    fuel_tank_capacity:
                      type: number
                      format: float
                      description: The fuel tank capacity of the Vehicle.
                    fuel_tank_2_capacity:
                      type: number
                      format: float
                      description: The capacity of a second fuel tank, if applicable.
                    gross_vehicle_weight_rating:
                      type: number
                      format: float
                      description: The Gross Vehicle Weight Rating (GVWR).
                    ground_clearance:
                      type: number
                      format: float
                      description: The ground clearance of the Vehicle.
                    height:
                      type: number
                      format: float
                      description: The height of the Vehicle.
                    interior_volume:
                      type: number
                      format: float
                      description: Interior volume of the Vehicle.
                    length:
                      type: number
                      format: float
                      description: The length of the Vehicle.
                    max_hp:
                      type: integer
                      description: Maximum horsepower produced by the engine.
                    max_payload:
                      type: number
                      format: float
                      description: The maximum payload capacity of the Vehicle.
                    max_torque:
                      type: integer
                      description: Maximum torque produced by the engine.
                    msrp:
                      type: number
                      format: float
                      description: Manufacturer's Suggested Retail Price (MSRP).
                    oil_capacity:
                      type: number
                      format: float
                      description: Oil capacity of the engine.
                    passenger_volume:
                      type: string
                      maxLength: 255
                      description: Passenger volume of the Vehicle.
                    rear_axle_type:
                      type: string
                      maxLength: 255
                      description: The type of rear axle used in the Vehicle.
                    rear_tire_psi:
                      type: number
                      format: float
                      description: The recommended PSI for rear tires.
                    rear_tire_type:
                      type: string
                      maxLength: 255
                      description: The type of rear tires used in the Vehicle.
                    rear_track_width:
                      type: number
                      format: float
                      description: The rear track width of the Vehicle.
                    rear_wheel_diameter:
                      type: string
                      maxLength: 255
                      description: The diameter of the rear wheels.
                    redline_rpm:
                      type: string
                      maxLength: 255
                      description: Redline RPM of the engine.
                    transmission_brand:
                      type: string
                      maxLength: 255
                      description: Brand of the Vehicle's transmission.
                    transmission_description:
                      type: string
                      maxLength: 255
                      description: Description of the Vehicle's transmission.
                    transmission_gears:
                      type: integer
                      description: Number of gears in the transmission.
                    transmission_type:
                      type: string
                      maxLength: 255
                      description: Type of transmission.
                    wheelbase:
                      type: number
                      format: float
                      description: The wheelbase of the Vehicle.
                    width:
                      type: number
                      format: float
                      description: The width of the Vehicle.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Destroy
      description: Delete a Vehicle
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vehicles/{id}/archive:
    patch:
      summary: Archive Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Archive
      description: Archive a Vehicle
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archive
  /v1/vehicles/archived:
    get:
      summary: List Archived Vehicles
      tags:
        - Vehicles
      operationId: V1::Vehicles::Archived
      description: Returns a list of archived vehicles.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by. If you have configured custom fields, These will be filterable using the custom field key with the prefix `custom_field_`, and support `like` and `eq` operations.
          schema:
            $ref: '#/components/schemas/VehicleArchivedFilters'
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            $ref: '#/components/schemas/ArchivedSorts'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/VehicleArchivedFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ArchivedSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archived
  /v1/vehicles/archived/search:
    post:
      summary: Search Archived Vehicles
      tags:
        - Vehicles
      operationId: V1::Vehicles::Archived::Search
      description: |-
        Returns a list of archived vehicles.  Matches
        behavior of `Archived` action, but accepts parameters 
        including filters in request body.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start_cursor:
                  type: string
                per_page:
                  type: integer
                  minimum: 2
                  maximum: 100
                  default: 50
                filter:
                  $ref: '#/components/schemas/VehicleArchivedFilters'
                sort:
                  $ref: '#/components/schemas/ArchivedSorts'
            example:
              filter:
                vin:
                  like: abc123
              sort:
                archived_at: desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    $ref: '#/components/schemas/VehicleArchivedFilteredBy'
                  sorted_by:
                    $ref: '#/components/schemas/ArchivedSortedBy'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/VehicleSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Search Archived
  /v1/vehicles/{id}/current_assignment:
    get:
      summary: Retrieve Current Assignment Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::CurrentAssignment
      description: Retrieve the vehicle's current assignment.
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleAssignment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Current Assignment
  /v1/vehicles/{id}/fuel_entries:
    get:
      summary: List Vehicle Fuel Entries
      tags:
        - Vehicles
      operationId: V1::Vehicle::FuelEntries
      description: List a Vehicle's Fuel Entries
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleFuelEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Fuel Entries
  /v1/vehicles/{id}/linked_vehicles:
    get:
      summary: List Linked Vehicles
      tags:
        - Vehicles
      operationId: V1::Vehicles::LinkedVehicles
      description: List the Vehicle's Linked Vehicles
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LinkedVehicle'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Linked Vehicles
  /v1/vehicles/{id}/meter_entries:
    get:
      summary: List Vehicle Meter Entries
      tags:
        - Vehicles
      operationId: V1::Vehicles::MeterEntries
      description: List a Vehicle's Meter Entries
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleMeterEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Meter Entries
  /v1/vehicles/{id}/purchase_detail:
    get:
      summary: Retrieve Vehicle Purchase Details
      tags:
        - Vehicles
      operationId: V1::Vehicles::PurchaseDetails
      description: Retrieve the details of a Vehicle's Purchase Detail.
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Purchase Details
  /v1/vehicles/{id}/service_entries:
    get:
      summary: List Vehicle Service Entries
      tags:
        - Vehicles
      operationId: V1::Vehicles::ServiceEntries
      description: List a Vehicle's Service Entries.
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleServiceEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Service Entries
  /v1/vehicles/{id}/restore:
    patch:
      summary: Restore Vehicle
      tags:
        - Vehicles
      operationId: V1::Vehicles::Restore
      description: Restore a Vehicle
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Restore
  /v1/vehicles/{id}/vehicle_assignments:
    get:
      summary: List Vehicle Assignments
      tags:
        - Vehicles
      operationId: V1::Vehicles::VehicleAssignments
      description: List the Vehicle's assignments
      parameters:
        - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleVehicleAssignment'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Vehicle Assignments
  /v1/vendors:
    get:
      summary: List Vendors
      tags:
        - Vendors
      operationId: V1::Vendors::Index
      description: Returns a list of Vendors belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Vendor'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Create
      description: Creates a new Vendor
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The name of the Vendor. Must be unique.
                  maxLength: 255
                city:
                  type: string
                  maxLength: 255
                  description: The city of the Vendor.
                contact_email:
                  type: string
                  maxLength: 255
                  description: The email address of the contact person for the Vendor.
                contact_name:
                  type: string
                  maxLength: 255
                  description: The name of the contact person for the Vendor.
                contact_phone:
                  type: string
                  maxLength: 255
                  description: The phone number of the contact person for the Vendor.
                country:
                  type: string
                  maxLength: 255
                  description: The country of the Vendor.
                external_id:
                  type: string
                  description: An external ID for the Vendor. Must be unique.
                  maxLength: 255
                phone:
                  type: string
                  maxLength: 255
                  description: The phone number of the Vendor.
                postal_code:
                  type: string
                  maxLength: 255
                  description: The postal code or ZIP code of the Vendor.
                region:
                  type: string
                  maxLength: 255
                  description: The region, state, province, or territory of the Vendor.
                street_address:
                  type: string
                  maxLength: 255
                  description: The street address of the Vendor.
                street_address_line_2:
                  type: string
                  maxLength: 255
                  description: The second line of the street address of the Vendor.
                website:
                  type: string
                  maxLength: 255
                  description: The website of the Vendor.
                fuel:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides fuel.
                    Will be able to be listed on `Fuel Entries`.
                service:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides service.
                    This Vendor will be able to be listed on `Service Entries` and `Work Orders`.
                parts:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides parts.
                    This Vendor will be able to be listed on `Parts` and `Purchase Orders`.
                vehicle:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides vehicles.
                    This Vendor will be able to be listed on `Acquisitions` and `Vehicles`.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/vendors/{id}:
    get:
      summary: Retrieve Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Show
      description: Retrieve the details of an existing Vendor.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Update
      description: Update a Vendor
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the Vendor. Must be unique.
                  maxLength: 255
                city:
                  type: string
                  maxLength: 255
                  description: The city of the Vendor.
                contact_email:
                  type: string
                  maxLength: 255
                  description: The email address of the contact person for the Vendor.
                contact_name:
                  type: string
                  maxLength: 255
                  description: The name of the contact person for the Vendor.
                contact_phone:
                  type: string
                  maxLength: 255
                  description: The phone number of the contact person for the Vendor.
                country:
                  type: string
                  maxLength: 255
                  description: The country of the Vendor.
                external_id:
                  type: string
                  description: An external ID for the Vendor. Must be unique.
                  maxLength: 255
                phone:
                  type: string
                  maxLength: 255
                  description: The phone number of the Vendor.
                postal_code:
                  type: string
                  maxLength: 255
                  description: The postal code or ZIP code of the Vendor.
                region:
                  type: string
                  maxLength: 255
                  description: The region, state, province, or territory of the Vendor.
                street_address:
                  type: string
                  maxLength: 255
                  description: The street address of the Vendor.
                street_address_line_2:
                  type: string
                  maxLength: 255
                  description: The second line of the street address of the Vendor.
                website:
                  type: string
                  maxLength: 255
                  description: The website of the Vendor.
                fuel:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides fuel.
                    Will be able to be listed on `Fuel Entries`.
                service:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides service.
                    This Vendor will be able to be listed on `Service Entries` and `Work Orders`.
                parts:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides parts.
                    This Vendor will be able to be listed on `Parts` and `Purchase Orders`.
                vehicle:
                  type: boolean
                  description: |-
                    Indicates whether the Vendor provides vehicles.
                    This Vendor will be able to be listed on `Acquisitions` and `Vehicles`.
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vendor'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Destroy
      description: Delete a Vendor
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/vendors/{id}/archive:
    patch:
      summary: Archive Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Archive
      description: Archive a Vendor
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archive
  /v1/vendors/archived:
    get:
      summary: List Archived Vendors
      tags:
        - Vendors
      operationId: V1::Vendors::Archived
      description: List archived Vendors
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Vendor'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Archived
  /v1/vendors/{id}/restore:
    patch:
      summary: Restore Vendor
      tags:
        - Vendors
      operationId: V1::Vendors::Restore
      description: Restore a Vendor
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Restore
  /v1/vmrs_reason_for_repairs:
    get:
      summary: List VMRS Reason for Repairs
      tags:
        - VMRS Reason for Repairs
      operationId: V1::VmrsReasonForRepairs::Index
      description: Returns a list of VMRS Reason for Repairs belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmrsReasonForRepair'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/watchers/{watchable_type}/{id}:
    get:
      summary: List Watchers
      tags:
        - Watchers
      operationId: V1::Watchers::Index
      description: |-
        Returns a list of Watchers as an array of Contact objects for a given Watchable type and ID.
        The ID should be that of the Watchable type being queried.
      parameters:
        - $ref: '#/components/parameters/WatchableType'
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Contact'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/watchers/{watchable_type}/{id}/search:
    post:
      summary: Search Watchers
      tags:
        - Watchers
      operationId: V1::Watchers::Search
      description: |-
        Returns a list of Watchers as an array of Contact objects for a given Watchable type and ID.
        The ID should be that of the Watchable type being queried.  Matches behavior of `List` action, 
        accepts parameters including filters in request body.
      parameters:
        - $ref: '#/components/parameters/WatchableType'
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
            example:
              q:
                email_matches: user@example.com
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Contact'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Search
  /v1/watchers/{watchable_type}/{id}/watch:
    put:
      summary: Watch a Watchable record
      tags:
        - Watchers
      operationId: V1::Watchers::Watch
      description: |-
        The sender of this request will be added to the Watchers of the record that is associated with the given Watchable type and ID.
        The ID should be that of the Watchable type being queried.
      parameters:
        - $ref: '#/components/parameters/WatchableType'
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Watch
  /v1/watchers/{watchable_type}/{id}/unwatch:
    put:
      summary: Unwatch a Watchable record
      tags:
        - Watchers
      operationId: V1::Watchers::Unwatch
      description: |-
        The sender of this request will be removed from the Watchers of the record that is associated with the given Watchable type and ID.
        The ID should be that of the Watchable type being queried.
      parameters:
        - $ref: '#/components/parameters/WatchableType'
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Unwatch
  /v1/webhooks:
    get:
      summary: List Webhooks
      tags:
        - Webhooks
      operationId: V1::Webhooks::Index
      description: Returns a list of Webhooks belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Webhook
      tags:
        - Webhooks
      operationId: V1::Webhooks::Create
      description: Creates a new Webhook
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                all_events:
                  type: boolean
                authorization:
                  type: string
                  description: If the URL requires authentication, the value provided here gets passed as the HTTP 'Authorization' header
                contact_archived:
                  type: boolean
                contact_assigned:
                  type: boolean
                contact_comment_added:
                  type: boolean
                contact_created:
                  type: boolean
                contact_deleted:
                  type: boolean
                contact_merged:
                  type: boolean
                contact_updated:
                  type: boolean
                description:
                  type: string
                enabled:
                  type: boolean
                equipment_comment_added:
                  type: boolean
                equipment_created:
                  type: boolean
                equipment_deleted:
                  type: boolean
                equipment_updated:
                  type: boolean
                expense_entry_comment_added:
                  type: boolean
                expense_entry_created:
                  type: boolean
                expense_entry_deleted:
                  type: boolean
                expense_entry_updated:
                  type: boolean
                fault_created:
                  type: boolean
                fault_resolved:
                  type: boolean
                fuel_entry_comment_added:
                  type: boolean
                fuel_entry_created:
                  type: boolean
                fuel_entry_deleted:
                  type: boolean
                fuel_entry_updated:
                  type: boolean
                import_completed:
                  type: boolean
                issue_closed:
                  type: boolean
                issue_comment_added:
                  type: boolean
                issue_created:
                  type: boolean
                issue_deleted:
                  type: boolean
                issue_resolved:
                  type: boolean
                issue_updated:
                  type: boolean
                location_entry_created:
                  type: boolean
                location_entry_deleted:
                  type: boolean
                location_entry_updated:
                  type: boolean
                meter_entry_created:
                  type: boolean
                meter_entry_deleted:
                  type: boolean
                meter_entry_updated:
                  type: boolean
                part_comment_added:
                  type: boolean
                part_created:
                  type: boolean
                part_deleted:
                  type: boolean
                part_updated:
                  type: boolean
                place_created:
                  type: boolean
                place_deleted:
                  type: boolean
                place_updated:
                  type: boolean
                place_visited:
                  type: boolean
                purchase_order_approved:
                  type: boolean
                purchase_order_closed:
                  type: boolean
                purchase_order_comment_added:
                  type: boolean
                purchase_order_created:
                  type: boolean
                purchase_order_deleted:
                  type: boolean
                purchase_order_pending_approval:
                  type: boolean
                purchase_order_purchased:
                  type: boolean
                purchase_order_received:
                  type: boolean
                purchase_order_updated:
                  type: boolean
                service_entry_comment_added:
                  type: boolean
                service_entry_created:
                  type: boolean
                service_entry_deleted:
                  type: boolean
                service_entry_updated:
                  type: boolean
                submitted_inspection_form_created:
                  type: boolean
                submitted_inspection_form_deleted:
                  type: boolean
                url:
                  type: string
                  description: '*Must begin with http:// or https://'
                  maxLength: 1000
                user_created:
                  type: boolean
                user_updated:
                  type: boolean
                user_archived:
                  type: boolean
                vehicle_archived:
                  type: boolean
                vehicle_assigned:
                  type: boolean
                vehicle_assignment_created:
                  type: boolean
                vehicle_assignment_deleted:
                  type: boolean
                vehicle_assignment_updated:
                  type: boolean
                vehicle_comment_added:
                  type: boolean
                vehicle_created:
                  type: boolean
                vehicle_deleted:
                  type: boolean
                vehicle_group_changed:
                  type: boolean
                vehicle_status_changed:
                  type: boolean
                vehicle_updated:
                  type: boolean
                vendor_comment_added:
                  type: boolean
                vendor_created:
                  type: boolean
                vendor_deleted:
                  type: boolean
                vendor_updated:
                  type: boolean
                work_order_comment_added:
                  type: boolean
                work_order_created:
                  type: boolean
                work_order_deleted:
                  type: boolean
                work_order_document_added:
                  type: boolean
                work_order_status_changed:
                  type: boolean
                work_order_updated:
                  type: boolean
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v1/webhooks/{id}:
    get:
      summary: Retrieve Webhook
      tags:
        - Webhooks
      operationId: V1::Webhooks::Show
      description: Retrieve the details of an existing Webhook.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Webhook
      tags:
        - Webhooks
      operationId: V1::Webhooks::Update
      description: Update a Webhook
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                all_events:
                  type: boolean
                authorization:
                  type: string
                  description: If the URL requires authentication, the value provided here gets passed as the HTTP 'Authorization' header
                contact_archived:
                  type: boolean
                contact_assigned:
                  type: boolean
                contact_comment_added:
                  type: boolean
                contact_created:
                  type: boolean
                contact_deleted:
                  type: boolean
                contact_merged:
                  type: boolean
                contact_updated:
                  type: boolean
                description:
                  type: string
                enabled:
                  type: boolean
                equipment_comment_added:
                  type: boolean
                equipment_created:
                  type: boolean
                equipment_deleted:
                  type: boolean
                equipment_updated:
                  type: boolean
                expense_entry_comment_added:
                  type: boolean
                expense_entry_created:
                  type: boolean
                expense_entry_deleted:
                  type: boolean
                expense_entry_updated:
                  type: boolean
                fault_created:
                  type: boolean
                fault_resolved:
                  type: boolean
                fuel_entry_comment_added:
                  type: boolean
                fuel_entry_created:
                  type: boolean
                fuel_entry_deleted:
                  type: boolean
                fuel_entry_updated:
                  type: boolean
                import_completed:
                  type: boolean
                issue_closed:
                  type: boolean
                issue_comment_added:
                  type: boolean
                issue_created:
                  type: boolean
                issue_deleted:
                  type: boolean
                issue_resolved:
                  type: boolean
                issue_updated:
                  type: boolean
                location_entry_created:
                  type: boolean
                location_entry_deleted:
                  type: boolean
                location_entry_updated:
                  type: boolean
                meter_entry_created:
                  type: boolean
                meter_entry_deleted:
                  type: boolean
                meter_entry_updated:
                  type: boolean
                part_comment_added:
                  type: boolean
                part_created:
                  type: boolean
                part_deleted:
                  type: boolean
                part_updated:
                  type: boolean
                place_created:
                  type: boolean
                place_deleted:
                  type: boolean
                place_updated:
                  type: boolean
                place_visited:
                  type: boolean
                purchase_order_approved:
                  type: boolean
                purchase_order_closed:
                  type: boolean
                purchase_order_comment_added:
                  type: boolean
                purchase_order_created:
                  type: boolean
                purchase_order_deleted:
                  type: boolean
                purchase_order_pending_approval:
                  type: boolean
                purchase_order_purchased:
                  type: boolean
                purchase_order_received:
                  type: boolean
                purchase_order_updated:
                  type: boolean
                service_entry_comment_added:
                  type: boolean
                service_entry_created:
                  type: boolean
                service_entry_deleted:
                  type: boolean
                service_entry_updated:
                  type: boolean
                submitted_inspection_form_created:
                  type: boolean
                submitted_inspection_form_deleted:
                  type: boolean
                url:
                  type: string
                  description: '*Must begin with http:// or https://'
                  maxLength: 1000
                user_created:
                  type: boolean
                user_updated:
                  type: boolean
                user_archived:
                  type: boolean
                vehicle_archived:
                  type: boolean
                vehicle_assigned:
                  type: boolean
                vehicle_assignment_created:
                  type: boolean
                vehicle_assignment_deleted:
                  type: boolean
                vehicle_assignment_updated:
                  type: boolean
                vehicle_comment_added:
                  type: boolean
                vehicle_created:
                  type: boolean
                vehicle_deleted:
                  type: boolean
                vehicle_group_changed:
                  type: boolean
                vehicle_status_changed:
                  type: boolean
                vehicle_updated:
                  type: boolean
                vendor_comment_added:
                  type: boolean
                vendor_created:
                  type: boolean
                vendor_deleted:
                  type: boolean
                vendor_updated:
                  type: boolean
                work_order_comment_added:
                  type: boolean
                work_order_created:
                  type: boolean
                work_order_deleted:
                  type: boolean
                work_order_document_added:
                  type: boolean
                work_order_status_changed:
                  type: boolean
                work_order_updated:
                  type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Webhook
      tags:
        - Webhooks
      operationId: V1::Webhooks::Destroy
      description: Delete a Webhook
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v1/webhook_events:
    get:
      summary: List Webhook Events
      tags:
        - Webhook Events
      operationId: V1::WebhookEvents::Index
      description: Returns a list of Webhook events belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookEvent'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/webhook_events/{id}:
    get:
      summary: Retrieve Webhook Event
      tags:
        - Webhook Events
      operationId: V1::WebhookEvents::Show
      description: Retrieve the details of an existing Webhook Event.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookEvent'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v1/work_order_statuses:
    get:
      summary: List Work Order Statuses
      tags:
        - Work Order Statuses
      operationId: V1::WorkOrderStatuses::Index
      description: Returns a list of Work Order Statuses belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrderStatus'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v1/work_order_statuses/{id}:
    get:
      summary: Retrieve Work Order Status
      tags:
        - Work Order Statuses
      operationId: V1::WorkOrderStatuses::Show
      description: Retrieve the details of an existing Work Order Status.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v2/issues:
    get:
      summary: List Issues
      tags:
        - Issues
      operationId: V2::Issues::Index
      description: Returns a list of Issues belonging to your account.
      parameters:
        - in: query
          name: includes
          description: A comma-separated list of additional attributes to include in the response.
          schema:
            type: string
            enum:
              - comments
              - custom_fields
              - documents
              - images
              - labels
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Issue_v2'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v2/issues/{id}/close:
    put:
      summary: Close an Issue
      tags:
        - Issues
      operationId: V2::Issues::Close
      description: |-
        Closes an Issue.

        :::info
        The Issue must be in a state that can transition to Closed status.

        [Managing Issues](https://help.fleetio.com/help/s/article/Issues-Overview#manage)
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - note
              properties:
                note:
                  type: string
                  description: A note to add to the Issue when it is closed.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Close
  /v2/issues/{id}/resolve:
    put:
      summary: Resolve an Issue
      tags:
        - Issues
      operationId: V2::Issues::Resolve
      description: |-
        Resolves an Issue.

        :::info
        The Issue must be in a state that can transition to Resolved status.

        [Managing Issues](https://help.fleetio.com/help/s/article/Issues-Overview#manage)
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - note
              properties:
                note:
                  type: string
                  description: A note to add to the Issue when it is resolved.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Resolve
  /v2/issues/{id}/reopen:
    put:
      summary: Reopen an Issue
      tags:
        - Issues
      operationId: V2::Issues::Reopen
      description: |-
        Reopens an Issue.

        :::info
        The Issue must be in a state that can transition to Open status.

        [Managing Issues](https://help.fleetio.com/help/s/article/Issues-Overview#manage)
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Reopen
  /v2/service_entries:
    get:
      summary: List Service Entries
      tags:
        - Service Entries
      operationId: V2::ServiceEntries::Index
      description: Returns a list of Service Entries belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceEntry'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Service Entry
      tags:
        - Service Entries
      operationId: V2::ServiceEntries::Create
      description: Creates a new Service Entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - completed_at
                - vehicle_id
                - meter_entry_attributes
              properties:
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_vin:
                  type: string
                  maxLength: 17
                  description: The VIN of the `Vehicle` associated with this Service Entry.
                vendor_id:
                  $ref: '#/components/schemas/Id'
                reference:
                  type: string
                  maxLength: 255
                  description: A reference number for this Service Entry.
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                general_notes:
                  type: string
                  description: Any general notes about this Service Entry.
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                meter_entry_attributes:
                  description: |-
                    A Service Entry may be associated with a [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Service Entry may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                service_entry_line_items_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ServiceEntryLineItemAttributes'
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Issues associated with this Service Entry.
                service_task_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Service Tasks associated with this Service Entry.
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                labor_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of labor for this Service Entry.
                    This is calculated by summing the `labor_cost` of each `Service Entry Line Item`.
                parts_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of `Parts` for this Service Entry.
                    This is calculated by summing the `parts_cost` of each `Service Entry Line Item`.
                subtotal:
                  type: number
                  format: float
                  description: |-
                    The subtotal amount of this Service Entry before any discounts or taxes.
                    This is calculated by summing the `subtotal` of each `Service Entry Line Item`.
                discount:
                  type: number
                  format: float
                  description: The total discount amount for this Service Entry.
                discount_percentage:
                  type: number
                  format: float
                  description: The total discount percentage for this Service Entry.
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                tax_1:
                  type: number
                  format: float
                  description: The first tax amount for this Service Entry.
                tax_1_percentage:
                  type: number
                  format: float
                  description: The first tax percentage for this Service Entry.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: The second tax amount for this Service Entry.
                tax_2_percentage:
                  type: number
                  format: float
                  description: The second tax percentage for this Service Entry.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                total_amount:
                  type: number
                  format: float
                  description: The grand total of this Service Entry.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntry'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v2/service_entries/{id}:
    get:
      summary: Retrieve Service Entry
      tags:
        - Service Entries
      operationId: V2::ServiceEntries::Show
      description: Retrieve the details of an existing Service Entry.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Service Entry
      tags:
        - Service Entries
      operationId: V2::ServiceEntries::Update
      description: Update a Service Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which the Service Entry was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_vin:
                  type: string
                  maxLength: 17
                  description: The VIN of the `Vehicle` associated with this Service Entry.
                vendor_id:
                  $ref: '#/components/schemas/Id'
                reference:
                  type: string
                  maxLength: 255
                  description: A reference number for this Service Entry.
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                general_notes:
                  type: string
                  description: Any general notes about this Service Entry.
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/Id'
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                meter_entry_attributes:
                  description: |-
                    A Service Entry may be associated with a [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Service Entry may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries)
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                service_entry_line_items_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/ServiceEntryLineItemAttributes'
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Issues associated with this Service Entry.
                service_task_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: The IDs of any Service Tasks associated with this Service Entry.
                comments_attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
                labor_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of labor for this Service Entry.
                    This is calculated by summing the `labor_cost` of each `Service Entry Line Item`.
                parts_subtotal:
                  type: number
                  format: float
                  description: |-
                    The total cost of `Parts` for this Service Entry.
                    This is calculated by summing the `parts_cost` of each `Service Entry Line Item`.
                subtotal:
                  type: number
                  format: float
                  description: |-
                    The subtotal amount of this Service Entry before any discounts or taxes.
                    This is calculated by summing the `subtotal` of each `Service Entry Line Item`.
                discount:
                  type: number
                  format: float
                  description: The total discount amount for this Service Entry.
                discount_percentage:
                  type: number
                  format: float
                  description: The total discount percentage for this Service Entry.
                discount_type:
                  $ref: '#/components/schemas/DiscountType'
                tax_1:
                  type: number
                  format: float
                  description: The first tax amount for this Service Entry.
                tax_1_percentage:
                  type: number
                  format: float
                  description: The first tax percentage for this Service Entry.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: The second tax amount for this Service Entry.
                tax_2_percentage:
                  type: number
                  format: float
                  description: The second tax percentage for this Service Entry.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                total_amount:
                  type: number
                  format: float
                  description: The grand total of this Service Entry.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Service Entry
      tags:
        - Service Entries
      operationId: V2::ServiceEntries::Destroy
      description: Delete a Service Entry
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v2/service_entries/{service_entry_id}/service_entry_line_items:
    get:
      summary: List Service Entry Line Items
      tags:
        - Service Entries
      operationId: V2::ServiceEntryLineItems::Index
      description: Returns a list of Line Items for a given Service Entry.
      parameters:
        - name: service_entry_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Service Entry
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceEntryLineItem_v2'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List Line Items
    post:
      summary: Create Service Entry Line Item
      tags:
        - Service Entries
      operationId: V2::ServiceEntryLineItem::Create
      description: Creates a new Service Entry Line Item
      parameters:
        - name: service_entry_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Service Entry
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                type:
                  $ref: '#/components/schemas/ServiceEntryLineItemType'
                service_task_id:
                  $ref: '#/components/schemas/Id'
                description:
                  type: string
                  description: A description of the service performed for this line item.
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: IDs of any `Issues` this line item is linked to.
                labor_cost:
                  type: number
                  format: float
                  description: The cost of labor for this line item.
                parts_cost:
                  type: number
                  format: float
                  description: The cost of `Parts` for this line item.
                subtotal:
                  description: Ignored if `labor_cost` and `parts_cost` is present.
                  type: number
                  format: float
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntryLineItem_v2_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create Line Item
  /v2/service_entries/{service_entry_id}/service_entry_line_items/{id}:
    get:
      summary: Retrieve Service Entry Line Items
      tags:
        - Service Entries
      operationId: V2::ServiceEntryLineItems::Show
      description: Retrieve the details of an existing Service Entry Line Item.
      parameters:
        - name: service_entry_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Service Entry
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEntryLineItem_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve Line Item
    patch:
      summary: Update Service Entry
      tags:
        - Service Entries
      operationId: V2::ServiceEntryLineItems::Update
      description: Update a Service Entry
      parameters:
        - name: service_entry_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Service Entry
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  $ref: '#/components/schemas/ServiceEntryLineItemType'
                service_task_id:
                  $ref: '#/components/schemas/Id'
                description:
                  type: string
                  description: A description of the service performed for this line item.
                issue_ids:
                  type: array
                  items:
                    $ref: '#/components/schemas/Id'
                  description: IDs of any `Issues` this line item is linked to.
                labor_cost:
                  type: number
                  format: float
                  description: The cost of labor for this line item.
                parts_cost:
                  type: number
                  format: float
                  description: The cost of `Parts` for this line item.
                subtotal:
                  description: Ignored if `labor_cost` and `parts_cost` is present.
                  type: number
                  format: float
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update Line Item
    delete:
      summary: Delete Service Entry Line Item
      tags:
        - Service Entries
      operationId: V2::ServiceEntryLineItems::Destroy
      description: Delete a Service Entry Line Item
      parameters:
        - name: service_entry_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Service Entry
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete Line Item
  /v2/service_reminders:
    get:
      summary: List Service Reminders
      tags:
        - Service Reminders
      operationId: V2::ServiceReminders::Index
      description: Returns a list of Service Reminders belonging to your account.
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceReminder_v2'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v2/service_reminders/{id}:
    get:
      summary: Retrieve Service Reminder
      tags:
        - Service Reminders
      operationId: V2::ServiceReminders::Show
      description: Retrieve the details of an existing Service Reminder.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceReminder_v2'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v2/work_orders:
    get:
      summary: List Work Orders
      tags:
        - Work Orders
      operationId: V2::WorkOrders::Index
      description: Returns a list of work orders.
      parameters:
        - in: query
          name: start_cursor
          schema:
            type: string
          description: The start cursor for Keyset pagination.
        - in: query
          name: per_page
          schema:
            type: integer
            minimum: 2
            maximum: 100
            default: 50
          description: The number of records per page to return
        - in: query
          name: filter
          style: deepObject
          explode: true
          description: The fields, operations, and values to filter the records by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-filter: true
            properties:
              contact_id:
                $ref: '#/components/schemas/EqFilter'
              created_by_id:
                $ref: '#/components/schemas/EqFilter'
              issued_by_id:
                $ref: '#/components/schemas/EqFilter'
              vehicle_id:
                $ref: '#/components/schemas/EqFilter'
              vendor_id:
                $ref: '#/components/schemas/EqFilter'
              vmrs_repair_priority_class_id:
                $ref: '#/components/schemas/EqFilter'
              purchase_order_number:
                $ref: '#/components/schemas/LikeEqFilter'
              invoice_number:
                $ref: '#/components/schemas/LikeEqFilter'
              number:
                $ref: '#/components/schemas/EqFilter'
              labels:
                $ref: '#/components/schemas/IncludeFilter'
              work_order_status_name:
                $ref: '#/components/schemas/IncludeFilter'
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
            additionalProperties: false
        - in: query
          name: sort
          style: deepObject
          explode: true
          description: The fields and direction to sort the results by.
          schema:
            type: object
            x-codegen-deep-query-param-serializable-sort: true
            properties:
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
              id:
                $ref: '#/components/schemas/SortAscDescDefaultDesc'
            additionalProperties: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  start_cursor:
                    type: string
                    nullable: true
                    description: The current start cursor of the records returned.
                  next_cursor:
                    type: string
                    nullable: true
                    description: The next cursor to retrieve the next page of records.
                  per_page:
                    type: integer
                    description: The maxumum number of records returned.
                  estimated_remaining_count:
                    type: integer
                    description: The number of remaining records including the returned records, up to a maximum of 500.
                  filtered_by:
                    type: array
                    description: The filters applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            contact_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            created_by_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            issued_by_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            vehicle_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            vendor_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            vmrs_repair_priority_class_id:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            purchase_order_number:
                              $ref: '#/components/schemas/LikeEqFilter'
                        - type: object
                          properties:
                            invoice_number:
                              $ref: '#/components/schemas/LikeEqFilter'
                        - type: object
                          properties:
                            number:
                              $ref: '#/components/schemas/EqFilter'
                        - type: object
                          properties:
                            labels:
                              $ref: '#/components/schemas/IncludeFilter'
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/LtLteGtGteFilter'
                  sorted_by:
                    type: array
                    description: The sorts applied to the returned record set.
                    items:
                      anyOf:
                        - type: object
                          properties:
                            created_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            updated_at:
                              $ref: '#/components/schemas/SortAscDesc'
                        - type: object
                          properties:
                            id:
                              $ref: '#/components/schemas/SortAscDesc'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkOrderSummary'
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
    post:
      summary: Create Work Order
      tags:
        - Work Orders
      operationId: V2::WorkOrders::Create
      description: Creates a new work order.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - issued_at
                - work_order_status_id
                - vehicle_id
              properties:
                issued_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was issued.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                work_order_status_id:
                  $ref: '#/components/schemas/Id'
                invoice_number:
                  type: string
                  maxLength: 255
                  description: The number of the `Invoice` associated with this Work Order.
                vendor_id:
                  $ref: '#/components/schemas/NullableId'
                vendor_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vendor` associated with this Work Order.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle` associated with this Work Order.
                discount_type:
                  type: string
                  description: The type of discount applied to this Work Order.
                  enum:
                    - percentage
                    - amount
                discount:
                  type: number
                  format: float
                  description: The discount amount in decimal currency units applied to this Work Order.
                discount_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the discount applied to this Work Order.
                    Used if `discount_type` is set to `percentage`.
                parts_markup_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the parts markup applied to this Work Order.
                    Used if `parts_markup_type` is set to `percentage`.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                parts_markup_type:
                  type: string
                  enum:
                    - fixed
                    - percentage
                  default: percentage
                  description: |-
                    The type of parts markup to apply to this record.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                  nullable: false
                parts_markup:
                  type: number
                  format: float
                  description: |-
                    The amount of the parts markup applied to this Work Order.
                    Used if `parts_markup_type` is set to `fixed`.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                labor_markup_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the labor markup applied to this Work Order.
                    Used if `labor_markup_type` is set to `percentage`.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                labor_markup_type:
                  type: string
                  enum:
                    - fixed
                    - percentage
                  default: percentage
                  description: |-
                    The type of labor markup to apply to this record.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                  nullable: false
                labor_markup:
                  type: number
                  format: float
                  description: |-
                    The amount of the labor markup applied to this Work Order.
                    Used if `labor_markup_type` is set to `fixed`.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                tax_1_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the first tax applied to this Work Order.
                    Used if `tax_1_type` is set to `percentage`.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_1:
                  type: number
                  format: float
                  description: |-
                    The amount of the first tax applied to this Work Order.
                    Used if `tax_1_type` is set to `amount`.
                tax_2_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the second tax applied to this Work Order.
                    Used if `tax_2_type` is set to `percentage`.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: |-
                    The amount of the second tax applied to this Work Order.
                    Used if `tax_2_type` is set to `amount`.
                issued_by_id:
                  $ref: '#/components/schemas/NullableId'
                contact_id:
                  $ref: '#/components/schemas/NullableId'
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                purchase_order_number:
                  type: string
                  description: The number of the `Purchase Order` associated with this Work Order.
                description:
                  type: string
                  description: A description of this Work Order.
                number:
                  type: integer
                  description: The number to be applied to this Work Order. Must be unique.
                meter_entry_attributes:
                  description: |-
                    A Work Order may also be associated with a [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Work Order may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                starting_meter_entry_attributes:
                  description: The meter reading at the start of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_meter_entry_attributes:
                  description: The meter reading at the end of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                starting_secondary_meter_entry_attributes:
                  description: The secondary meter reading at the start of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_secondary_meter_entry_attributes:
                  description: The secondary meter reading at the end of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                ending_meter_same_as_start:
                  type: boolean
                  description: Use start meter for completion meter?
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/NullableId'
                scheduled_at:
                  type: string
                  format: date-time
                  description: |-
                    The date and time at which this Work Order is scheduled.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                expected_completed_at:
                  type: string
                  format: date-time
                  description: |-
                    The date and time at which this Work Order is expected to be completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                comments_attributes:
                  type: array
                  description: A list of `Comments` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                work_order_line_items_attributes:
                  type: array
                  description: A list of `Work Order Line Items` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/WorkOrderLineItemsAttributes'
                work_order_sub_line_items_attributes:
                  type: array
                  description: A list of `Work Order Sub Line Items` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/WorkOrderSubLineItemsAttributes'
                issue_ids:
                  type: array
                  description: A list of `Issues` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/NullableId'
                label_ids:
                  type: array
                  description: A list of `Labels` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/NullableId'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create
  /v2/work_orders/{id}:
    get:
      summary: Retrieve Work Order
      tags:
        - Work Orders
      operationId: V2::WorkOrders::Show
      description: Retrieve the details of an existing Work Order.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
    patch:
      summary: Update Work Order
      tags:
        - Work Orders
      operationId: V2::WorkOrders::Update
      description: Update a Work Order
      parameters:
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                issued_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was issued.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                started_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was started.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                completed_at:
                  type: string
                  format: date-time
                  example: '2023-03-14T13:46:27-06:00'
                  description: |-
                    The date and time at which this Work Order was completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                work_order_status_id:
                  $ref: '#/components/schemas/Id'
                invoice_number:
                  type: string
                  maxLength: 255
                  description: The number of the `Invoice` associated with this Work Order.
                vendor_id:
                  $ref: '#/components/schemas/NullableId'
                vendor_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vendor` associated with this Work Order.
                vehicle_id:
                  $ref: '#/components/schemas/Id'
                vehicle_name:
                  type: string
                  maxLength: 255
                  description: The name of the `Vehicle` associated with this Work Order.
                discount_type:
                  type: string
                  description: The type of discount applied to this Work Order.
                  enum:
                    - percentage
                    - amount
                discount:
                  type: number
                  format: float
                  description: The discount amount in decimal currency units applied to this Work Order.
                discount_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the discount applied to this Work Order.
                    Used if `discount_type` is set to `percentage`.
                parts_markup_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the parts markup applied to this Work Order.
                    Used if `parts_markup_type` is set to `percentage`.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                parts_markup_type:
                  type: string
                  enum:
                    - fixed
                    - percentage
                  default: percentage
                  description: |-
                    The type of parts markup to apply to this record.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                  nullable: false
                parts_markup:
                  type: number
                  format: float
                  description: |-
                    The amount of the parts markup applied to this Work Order.
                    Used if `parts_markup_type` is set to `fixed`.

                    Note: Parts markup fields are only writiable for Premium tier Fleetio Plan.
                labor_markup_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the labor markup applied to this Work Order.
                    Used if `labor_markup_type` is set to `percentage`.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                labor_markup_type:
                  type: string
                  enum:
                    - fixed
                    - percentage
                  default: percentage
                  description: |-
                    The type of labor markup to apply to this record.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                  nullable: false
                labor_markup:
                  type: number
                  format: float
                  description: |-
                    The amount of the labor markup applied to this Work Order.
                    Used if `labor_markup_type` is set to `fixed`.

                    Note: Labor markup fields are only writiable for Premium tier Fleetio Plan.
                tax_1_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the first tax applied to this Work Order.
                    Used if `tax_1_type` is set to `percentage`.
                tax_1_type:
                  $ref: '#/components/schemas/TaxType'
                tax_1:
                  type: number
                  format: float
                  description: |-
                    The amount of the first tax applied to this Work Order.
                    Used if `tax_1_type` is set to `amount`.
                tax_2_percentage:
                  type: number
                  format: float
                  description: |-
                    The percentage of the second tax applied to this Work Order.
                    Used if `tax_2_type` is set to `percentage`.
                tax_2_type:
                  $ref: '#/components/schemas/TaxType'
                tax_2:
                  type: number
                  format: float
                  description: |-
                    The amount of the second tax applied to this Work Order.
                    Used if `tax_2_type` is set to `amount`.
                issued_by_id:
                  $ref: '#/components/schemas/NullableId'
                contact_id:
                  $ref: '#/components/schemas/NullableId'
                label_list:
                  $ref: '#/components/schemas/LabelListParameters'
                purchase_order_number:
                  type: string
                  description: The number of the `Purchase Order` associated with this Work Order.
                description:
                  type: string
                  description: A description of this Work Order.
                number:
                  type: integer
                  description: The number to be applied to this Work Order. Must be unique.
                meter_entry_attributes:
                  description: |-
                    A Work Order may also be associated with a [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                secondary_meter_entry_attributes:
                  description: |-
                    A Work Order may also be associated with a secondary [Meter
                    Entry](/docs/api/meter-entries).
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                starting_meter_entry_attributes:
                  description: The meter reading at the start of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_meter_entry_attributes:
                  description: The meter reading at the end of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                starting_secondary_meter_entry_attributes:
                  description: The secondary meter reading at the start of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                ending_secondary_meter_entry_attributes:
                  description: The secondary meter reading at the end of this Work Order.
                  type: object
                  properties:
                    value:
                      type: number
                      format: float
                      example: '108043'
                      description: The value is the actual number on the meter that increments over time.  The unit is determined by the [configured `meter_unit`](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings) on the associated Vehicle.
                    void:
                      type: boolean
                      description: If you attempt to save a meter value, which is too high or too low, Fleetio's validation rules will reject it. If you need to bypass this validation, you may [mark an entry as void](https://help.fleetio.com/s/article/Meter-Entry-Mark-As-Void-Unmark-As-Void).
                custom_fields:
                  $ref: '#/components/schemas/CustomFields'
                ending_meter_same_as_start:
                  type: boolean
                  description: Use start meter for completion meter?
                vmrs_repair_priority_class_id:
                  $ref: '#/components/schemas/NullableId'
                scheduled_at:
                  type: string
                  format: date-time
                  description: |-
                    The date and time at which this Work Order is scheduled.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                expected_completed_at:
                  type: string
                  format: date-time
                  description: |-
                    The date and time at which this Work Order is expected to be completed.
                    We recommend using [ISO-8601](/docs/overview/date-formatting)
                    formatted dates to avoid ambiguity.
                comments_attributes:
                  type: array
                  description: A list of `Comments` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/CommentsAttributes'
                work_order_line_items_attributes:
                  type: array
                  description: A list of `Work Order Line Items` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/WorkOrderLineItemsAttributes'
                work_order_sub_line_items_attributes:
                  type: array
                  description: A list of `Work Order Sub Line Items` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/WorkOrderSubLineItemsAttributes'
                issue_ids:
                  type: array
                  description: A list of `Issues` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/NullableId'
                label_ids:
                  type: array
                  description: A list of `Labels` to be added to this Work Order.
                  items:
                    $ref: '#/components/schemas/NullableId'
                documents_attributes:
                  type: array
                  description: |-
                    An array of one or more document objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the file which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the file.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the file. For example, `application/pdf`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the file.
                      file_size:
                        type: integer
                        description: The size of the file in bytes.
                images_attributes:
                  type: array
                  description: |-
                    An array of one or more image objects to add to the record.
                    Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
                    to upload to our third party storage provider in order to obtain `file_url`.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        maxLength: 255
                        description: The name to give the image which will be shown in the UI.
                      file_url:
                        type: string
                        maxLength: 255
                        description: The URL obtained from our storage provider that points to the image.
                      file_mime_type:
                        type: string
                        maxLength: 255
                        description: The MIME type of the image. For example, `image/png`.
                      file_name:
                        type: string
                        maxLength: 255
                        description: The name of the image.
                      file_size:
                        type: integer
                        description: The size of the image file in bytes.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update
    delete:
      summary: Delete Work Order
      tags:
        - Work Orders
      operationId: V2::WorkOrders::Destroy
      description: Delete a Work Order
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete
  /v2/work_orders/{work_order_id}/work_order_line_items:
    get:
      summary: List Work Order Line Items
      tags:
        - Work Orders
      operationId: V2::WorkOrderLineItems::Index
      description: Returns a list of Line Items for a given Work Order.
      parameters:
        - name: work_order_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Work Order
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrderLineItem'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List Line Items
    post:
      summary: Create Work Order Line Item
      tags:
        - Work Orders
      operationId: V2::WorkOrderLineItem::Create
      description: Creates a new Work Order Line Item
      parameters:
        - name: work_order_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Work Order
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                type:
                  type: string
                  enum:
                    - WorkOrderServiceTaskLineItem
                    - WorkOrderFreeTextLineItem
                item_type:
                  description: The Type of the item associated with the Work Order Line Item
                  type: string
                  enum:
                    - Issue
                    - ServiceTask
                item_id:
                  type: integer
                  description: The ID of the item associated with this Work Order Line Item.
                description:
                  type: string
                issue_ids:
                  type: array
                  description: The IDs of any `Issues` associated with this Work Order Line Item.
                  items:
                    type: integer
                labor_cost:
                  type: number
                  format: float
                  description: The cost of labor of this line item.
                parts_cost:
                  type: number
                  format: float
                  description: The cost of `Parts` of this line item.
                subtotal:
                  type: number
                  format: float
                  description: The subtotal of this line item.
                vmrs_reason_for_repair_id:
                  type: integer
                  description: The ID of the VMRS Reason for Repair associated with this Work Order Line Item.
                vmrs_system_group_id:
                  type: integer
                  description: The ID of the VMRS System Group associated with this Work Order Line Item.
                vmrs_system_id:
                  type: integer
                  description: The ID of the VMRS System associated with this Work Order Line Item.
                vmrs_assembly_id:
                  type: integer
                  description: The ID of the VMRS Assembly associated with this Work Order Line Item.
                vmrs_component_id:
                  type: integer
                  description: The ID of the VMRS Component associated with this Work Order Line Item.
                work_order_sub_line_items_attributes:
                  description: The sub line items associated with this Work Order Line Item. May be used for parts or labor.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Part or Contact associated with this sub line item.
                      item_type:
                        type: string
                        enum:
                          - Part
                          - Contact
                      quantity:
                        type: number
                        format: float
                        description: The quantity of labor or parts for this sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of labor or parts for this sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of this sub line item.
                      position:
                        type: integer
                        description: The position of this sub line item in the list of sub line items.
                work_order_part_line_items_attributes:
                  description: |-
                    The part line items associated with this Work Order Line Item.
                    May be used instead of `work_order_sub_line_items_attributes`.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Part associated with this part sub line item.
                      item_type:
                        type: string
                        enum:
                          - Part
                      quantity:
                        type: number
                        format: float
                        description: The quantity of the Part for this part sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of the Part for this part sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of the Part for this part sub line item.
                      position:
                        type: integer
                        description: The position of this part sub line item in the list of sub line items.
                work_order_labor_line_items_attributes:
                  description: |-
                    The labor line items associated with this Work Order Line Item.
                    May be used instead of `work_order_sub_line_items_attributes`.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Contact associated with this labor sub line item.
                      item_type:
                        type: string
                        enum:
                          - Contact
                      quantity:
                        type: number
                        format: float
                        description: The quantity of labor for this labor sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of labor for this labor sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of this labor sub line item.
                      position:
                        type: integer
                        description: The position of this labor sub line item in the list of sub line items.
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderLineItem_Created'
          headers: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Create Line Item
  /v2/work_orders/{work_order_id}/work_order_line_items/{id}:
    get:
      summary: Retrieve Work Order Line Items
      tags:
        - Work Orders
      operationId: V2::WorkOrderLineItems::Show
      description: Retrieve the details of an existing Work Order Line Item.
      parameters:
        - name: work_order_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Work Order
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderLineItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve Line Item
    patch:
      summary: Update Work Order
      tags:
        - Work Orders
      operationId: V2::WorkOrderLineItems::Update
      description: Update a Work Order
      parameters:
        - name: work_order_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Work Order
        - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - WorkOrderServiceTaskLineItem
                    - WorkOrderFreeTextLineItem
                item_type:
                  description: The Type of the item associated with the Work Order Line Item
                  type: string
                  enum:
                    - Issue
                    - ServiceTask
                item_id:
                  type: integer
                  description: The ID of the item associated with this Work Order Line Item.
                description:
                  type: string
                issue_ids:
                  type: array
                  description: The IDs of any `Issues` associated with this Work Order Line Item.
                  items:
                    type: integer
                labor_cost:
                  type: number
                  format: float
                  description: The cost of labor of this line item.
                parts_cost:
                  type: number
                  format: float
                  description: The cost of `Parts` of this line item.
                subtotal:
                  type: number
                  format: float
                  description: The subtotal of this line item.
                vmrs_reason_for_repair_id:
                  type: integer
                  description: The ID of the VMRS Reason for Repair associated with this Work Order Line Item.
                vmrs_system_group_id:
                  type: integer
                  description: The ID of the VMRS System Group associated with this Work Order Line Item.
                vmrs_system_id:
                  type: integer
                  description: The ID of the VMRS System associated with this Work Order Line Item.
                vmrs_assembly_id:
                  type: integer
                  description: The ID of the VMRS Assembly associated with this Work Order Line Item.
                vmrs_component_id:
                  type: integer
                  description: The ID of the VMRS Component associated with this Work Order Line Item.
                work_order_sub_line_items_attributes:
                  description: The sub line items associated with this Work Order Line Item. May be used for parts or labor.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Part or Contact associated with this sub line item.
                      item_type:
                        type: string
                        enum:
                          - Part
                          - Contact
                      quantity:
                        type: number
                        format: float
                        description: The quantity of labor or parts for this sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of labor or parts for this sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of this sub line item.
                      position:
                        type: integer
                        description: The position of this sub line item in the list of sub line items.
                work_order_part_line_items_attributes:
                  description: |-
                    The part line items associated with this Work Order Line Item.
                    May be used instead of `work_order_sub_line_items_attributes`.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Part associated with this part sub line item.
                      item_type:
                        type: string
                        enum:
                          - Part
                      quantity:
                        type: number
                        format: float
                        description: The quantity of the Part for this part sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of the Part for this part sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of the Part for this part sub line item.
                      position:
                        type: integer
                        description: The position of this part sub line item in the list of sub line items.
                work_order_labor_line_items_attributes:
                  description: |-
                    The labor line items associated with this Work Order Line Item.
                    May be used instead of `work_order_sub_line_items_attributes`.
                  type: array
                  items:
                    type: object
                    properties:
                      work_order_id:
                        type: integer
                        description: The parent Work Order ID.
                      item_id:
                        type: integer
                        description: The ID of the Contact associated with this labor sub line item.
                      item_type:
                        type: string
                        enum:
                          - Contact
                      quantity:
                        type: number
                        format: float
                        description: The quantity of labor for this labor sub line item.
                      unit_cost:
                        type: number
                        format: float
                        description: The cost per unit of labor for this labor sub line item.
                      subtotal:
                        type: number
                        format: float
                        description: The subtotal of this labor sub line item.
                      position:
                        type: integer
                        description: The position of this labor sub line item in the list of sub line items.
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Update Line Item
    delete:
      summary: Delete Work Order Line Item
      tags:
        - Work Orders
      operationId: V2::WorkOrderLineItems::Destroy
      description: Delete a Work Order Line Item
      parameters:
        - name: work_order_id
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]+$
          description: The id of the associated Work Order
        - $ref: '#/components/parameters/RecordId'
      responses:
        '204':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Delete Line Item
  /v3/inspection_forms:
    get:
      summary: List Inspection Forms
      tags:
        - Inspection Forms
      operationId: V3::InspectionForms::Index
      description: Returns a list of Inspection Forms.
      parameters:
        - in: query
          name: include_all
          description: |-
            Whether to include all records.
            By default, this endpoint will return Inspection Forms that have at least one active Inspection Schedule.
          schema:
            type: integer
            enum:
              - 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InspectionForm'
          headers:
            X-PaginationLimit:
              $ref: '#/components/headers/PaginationLimit'
            X-Pagination-Current-Page:
              $ref: '#/components/headers/PaginationCurrentPage'
            X-Pagination-Total-Pages:
              $ref: '#/components/headers/PaginationTotalPages'
            X-Pagination-Total-Count:
              $ref: '#/components/headers/PaginationTotalCount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List
  /v3/inspection_forms/{id}:
    get:
      summary: Retrieve Inspection Form
      tags:
        - Inspection Forms
      operationId: V3::InspectionForms::Show
      description: Returns a single Inspection Form.
      parameters:
        - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InspectionForm'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: Retrieve
  /v3/part_location_details/{id}/inventory_sets:
    get:
      summary: Retrieve Inventory Sets
      tags:
        - Part Location Details
      operationId: V3::PartLocationDetail::InventorySets::Index
      description: |-
        :::info
        [Read more about Inventory Sets](https://help.fleetio.com/s/article/Switching-to-an-Advanced-Inventory-Valuation-Method-FIFO-LIFO#inventory-sets)
        :::

        This endpoint provides Part price breakdown for the requested quantity at
        the requested location based on the **Advanced Inventory Valuation** method. This
        endpoint should not be used if the account is using standard Static Pricing.

        The `adjustment_quantity` query param represents the quantity you would like
        to use from a location. The returned array represents the various price
        breakdown (Inventory Sets). The result is sorted based on the **Advanced
        Inventory Valuation** method set for your account. For **FIFO** accounts,
        the oldest Inventory Set will be the first item in the array. For **LIFO**
        accounts, the newest Inventory Set will be the first item in the array.

        Each item in the array will have the following properties:
        * `unit_cost`
        * `leftover_quantity`
        * `added_at`

        The `added_at` value represents the date at which the inventory was added to
        the location.

        :::caution
        If the very last element in the returned array has a `leftover_quantity`
        value that is **negative**, then that means the requested quantity is not
        available at the given location.
        :::
      parameters:
        - $ref: '#/components/parameters/RecordId'
        - in: query
          name: adjustment_quantity
          schema:
            type: integer
          description: Requested quantity from location
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventorySet'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/UnexpectedError'
      x-sidebarLabel: List Inventory Sets
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: |-
        Prefix the value with "Token", for example: "Token 76cbe06c49a64".
        You can generate a new API key [here](https://secure.fleetio.com/api_keys).
    accountToken:
      type: apiKey
      in: header
      name: Account-Token
      description: You can find your Account-Token [here](https://secure.fleetio.com/api_keys)
  headers:
    PaginationLimit:
      schema:
        type: string
      description: The per page limit. Currently set to 100 but subject to change at any time.
    PaginationCurrentPage:
      schema:
        type: string
      description: The current page. Defaults to 1.
    PaginationTotalPages:
      schema:
        type: string
      description: The total number of pages in the result set. Use this along with Pagination-Current-Page to determine if there are any remaining pages/records to be retrieved.
    PaginationTotalCount:
      schema:
        type: string
      description: The total number of records in the result set (across all pages).
  schemas:
    Id:
      type: integer
      minimum: 1
    Account:
      title: Account
      x-tags:
        - Accounts
      description: An Account
      type: object
      required:
        - name
        - user_type
        - token
        - time_24_format
        - currency_symbol
        - city
        - region
        - postal_code
        - street_address
        - country
        - read_vehicles
        - manage_vehicles
        - create_vehicles
        - read_fuel_entries
        - manage_fuel_entries
        - read_service_entries
        - manage_service_entries
        - read_issues
        - manage_issues
        - read_work_orders
        - manage_work_orders
        - read_service_reminders
        - manage_service_reminders
        - read_vehicle_renewal_reminders
        - manage_vehicle_renewal_reminders
        - read_comments
        - manage_comments
        - read_meter_entries
        - manage_meter_entries
        - read_groups
        - read_contacts
        - fleetio_manage
        - inspections
        - update_parts
        - update_inventory
        - allowed_part_location_ids
        - new_inventory_permissions
        - plan
        - state
        - default_meter_unit
        - default_fuel_volume_unit
        - default_system_of_measurement
        - tax_settings
        - next_work_order_number
        - offline_inspections
        - inspections_new_item_type_beta
        - paying_customer
        - is_demo
        - require_group
        - require_a_meter_entry_on_service_entry_or_completed_work_order
        - has_ro_notification_subscription
        - require_an_inventory_location_on_wo_part_line_items
        - use_forecasted_dates_for_service_reminders
        - require_a_rpc_on_service_entry_or_completed_work_order
        - vmrs_system_enabled
        - vmrs_assembly_enabled
        - vmrs_component_enabled
        - disable_reason_for_repair_editing
        - disable_system_assembly_component_editing
        - require_vmrs_reason_for_repair_on_service_line_items_as_of
        - require_vmrs_system_group_on_service_line_items_as_of
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_membership_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Account.
        logo_url:
          type: string
          description: The logo of the Account.
          nullable: true
        user_type:
          type: string
          description: The membership type of the current `User`.
          enum:
            - admin
            - owner
            - regular
            - guest
        token:
          type: string
          description: The URL token used to identify the Account.
        time_24_format:
          type: boolean
          default: false
          description: Whether or not this Account uses 24 hour time format.
        currency_symbol:
          type: string
          default: $
          description: The default currency symbols used by the Account.
        organization_id:
          type: integer
          nullable: true
          description: The ID of the organization this Account belongs to.
        organization_type:
          type: string
          nullable: true
          enum:
            - channel_reseller
            - simple_reseller
        city:
          type: string
          nullable: true
          description: The city the Account belongs to.
        region:
          type: string
          nullable: true
          description: The region the Account belongs to.
        postal_code:
          type: string
          nullable: true
          description: The postal code or ZIP code the Account belongs to.
        street_address:
          type: string
          nullable: true
          description: The street address of the Account.
        street_address_line_2:
          type: string
          nullable: true
          description: Street address line 2 of the Account.
        country:
          type: string
          nullable: true
          description: The country of the Account.
        read_vehicles:
          type: boolean
          description: Whether or not the Account can view Vehicles.
        manage_vehicles:
          type: boolean
          description: Whether or not the Account can manage Vehicles.
        create_vehicles:
          type: boolean
          description: Whether or not the Account can create Vehicles.
        read_fuel_entries:
          type: boolean
          description: Whether or not the Account can view Fuel Entries.
        manage_fuel_entries:
          type: boolean
          description: Whether or not the Account can manage Fuel Entries.
        read_service_entries:
          type: boolean
          description: Whether or not the Account can view Service Entries.
        manage_service_entries:
          type: boolean
          description: Whether or not the Account can manage Service Entries.
        read_issues:
          type: boolean
          description: Whether or not the Account can view Issues.
        manage_issues:
          type: boolean
          description: Whether or not the Account can manage Issues.
        read_work_orders:
          type: boolean
          description: Whether or not the Account can view Work Orders.
        manage_work_orders:
          type: boolean
          description: Whether or not the Account can manage Work Orders.
        read_service_reminders:
          type: boolean
          description: Whether or not the Account can view Service Reminders.
        manage_service_reminders:
          type: boolean
          description: Whether or not the Account can manage Service Reminders.
        read_vehicle_renewal_reminders:
          type: boolean
          description: Whether or not the Account can view Vehicle Renewal Reminders.
        manage_vehicle_renewal_reminders:
          type: boolean
          description: Whether or not the Account can manage Vehicle Renewal Reminders.
        read_comments:
          type: boolean
          description: Whether or not the Account can view Comments.
        manage_comments:
          type: boolean
          description: Whether or not the Account can manage Comments.
        read_meter_entries:
          type: boolean
          description: Whether or not the Account can view Meter Entries.
        manage_meter_entries:
          type: boolean
          description: Whether or not the Account can manage Meter Entries.
        read_groups:
          type: boolean
          description: Whether or not the Account can view Groups.
        read_contacts:
          type: boolean
          description: Whether or not the Account can view Contacts.
        fleetio_manage:
          type: boolean
          description: Whether or not the Account is subscribed to a Fleetio plan.
        inspections:
          type: boolean
          description: Whether or not the Account has inspections enabled.
        update_parts:
          type: boolean
          description: Whether or not the Account can update Parts.
        update_inventory:
          type: boolean
          description: Whether or not the Account can update inventory.
        allowed_part_location_ids:
          type: array
          items:
            type: integer
          description: The Part Locations allowed to be updated.
        new_inventory_permissions:
          type: boolean
          description: Whether or not the Account can create new inventory.
        plan:
          type: string
          description: The name of the Account's currently active Subscription Plan.
        state:
          description: The state of the Account's Subscription.
          type: string
          enum:
            - trialing
            - assessing
            - active
            - past_due
            - soft_failure
        default_meter_unit:
          type: string
          nullable: true
          description: The default meter volume unit used by the Account.
        default_fuel_volume_unit:
          type: string
          nullable: true
          description: The default fuel volume unit used by the Account.
        default_system_of_measurement:
          type: string
          nullable: true
          description: The default system of measurement used by the Account.
          enum:
            - imperial
            - metric
        tax_settings:
          type: object
          properties:
            tax_free_labor:
              type: boolean
              nullable: true
              default: false
              description: |-
                Configure's whether or not to include labor costs when calculating
                taxes. [More
                info](https://help.fleetio.com/s/article/Account-Settings#tax)
            tax_2:
              type: boolean
              nullable: true
              description: |-
                Enables a secondary tax field option (Tax 2) when calculating the
                total amount for Work Orders and Service Entries. [More
                info](https://help.fleetio.com/s/article/Account-Settings#tax)
            default_tax_1:
              type: string
              nullable: true
              description: |-
                Specify the value to be used automatically in the _Tax 1_ field
                for [Work Orders](/docs/api/work-orders) and [Service
                Entries](/docs/api/service-entries). This is the default but this
                tax can be changed per record. [More
                info](https://help.fleetio.com/s/article/Account-Settings#tax)
            default_tax_2:
              type: string
              nullable: true
              description: |-
                Specify the value to be used automatically in the _Tax 2_ field
                for [Work Orders](/docs/api/work-orders) and [Service
                Entries](/docs/api/service-entries). This is the default but this
                tax can be changed per record. [More
                info](https://help.fleetio.com/s/article/Account-Settings#tax)
            default_tax_type:
              type: string
              nullable: true
              description: |-
                Specify if the default setting for charging sales tax on [Work
                Orders](/docs/api/work-orders) and [Service
                Entries](/docs/api/service-entries) is a fixed amount, or a
                percentage. This is the default but this can be changed per
                record. [More
                info](https://help.fleetio.com/s/article/Account-Settings#tax)
              enum:
                - fixed
                - percentage
        next_work_order_number:
          type: integer
          description: What the next `Work Order`'s number will be in the sequence.
        offline_inspections:
          type: boolean
          nullable: true
          description: Whether or not the Account can perform offline inspections.
        inspections_new_item_type_beta:
          type: boolean
          nullable: true
          deprecated: true
        paying_customer:
          type: boolean
          nullable: true
          description: Whether or not the Account is a paying customer.
        is_demo:
          type: boolean
          nullable: true
          description: Whether or not the Account is in demo mode.
        require_group:
          type: boolean
          nullable: true
          description: Whether or not `Contacts`/`Users` must be assigned to a `Group`.
        require_a_meter_entry_on_service_entry_or_completed_work_order:
          type: boolean
          nullable: true
          description: Whether or not a `Meter Entry` is required when submitting a `Service Entry` or completed `Work Order`.
        has_ro_notification_subscription:
          type: boolean
          nullable: true
          description: Whether or not the Account is subscribed to `Repair Order` notifications.
        require_an_inventory_location_on_wo_part_line_items:
          type: boolean
          nullable: true
          description: Whether or not a `Part` line item on a `Work Order` must have a location.
        use_forecasted_dates_for_service_reminders:
          type: boolean
          nullable: true
          description: Whether or not forecasted dates are used for `Service Reminders`.
        require_a_rpc_on_service_entry_or_completed_work_order:
          type: boolean
          nullable: true
          description: Whether or not a repair priority class is required when submitting a `Service Entry` or completed `Work Order`.
        vmrs_system_enabled:
          type: boolean
          nullable: true
          description: Whether or not the Vehicle Maintenance Reporting Standards system is enabled.
        vmrs_assembly_enabled:
          type: boolean
          nullable: true
          description: Whether or not the VMRS assembly element identification is enabled.
        vmrs_component_enabled:
          type: boolean
          nullable: true
          description: Whether or not the VMRS component identification is enabled.
        disable_reason_for_repair_editing:
          type: boolean
          nullable: true
          description: Whether or not the reason for repair can be edited.
        disable_system_assembly_component_editing:
          type: boolean
          nullable: true
          description: Whether or not the VMRS assembly or component information can be edited.
        require_vmrs_reason_for_repair_on_service_line_items_as_of:
          type: string
          format: datetime
          nullable: true
          description: |-
            The date when the VMRS reason for repair is required on service line items.
            If `null`, the VMRS reason for repair is not required.
        require_vmrs_system_group_on_service_line_items_as_of:
          type: string
          format: datetime
          nullable: true
          description: |-
            The date when the VMRS system group is required on service line items. If
            `null`, the VMRS system group is not required.
        go_session_timeout_minutes:
          type: string
          example: '60'
          nullable: true
          description: |-
            The amount of time in minutes that should pass before a `User` is required
            to log in again on Fleetio Go.

            If value is an empty string, the session does not timeout.
    ProblemDetails:
      title: ProblemDetails
      type: object
      description: The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
      properties:
        status:
          type: integer
          minimum: 400
          maximum: 599
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
      required:
        - status
        - title
    PartnerToken:
      type: string
      description: Used by Fleetio Partners to manage integrations.
    OrganizationToken:
      type: string
      description: Used by organizations to manage multiple accounts.
    AcquisitionType:
      title: AcquisitionType
      description: The acquisition type of the asset.
      type: string
      enum:
        - loan
        - lease
    NullableId:
      title: NullableId
      type: integer
      minimum: 1
      nullable: true
    Acquisition:
      title: Acquisition
      x-tags:
        - Acquisitions
      description: An Acquisition
      type: object
      required:
        - vehicle_id
        - acquisition_type
        - acquisition_date
        - vendor_id
        - lender_id
        - first_payment_date
        - number_of_payments
        - mileage_cap
        - annual_percentage_rate
        - reference_number
        - notes
        - loan_amount
        - down_payment_amount
        - monthly_cost
        - capitalized_cost
        - residual_value
        - purchase_price
        - mileage_charge
        - vehicle
        - lender
        - vendor
      properties:
        id:
          $ref: '#/components/schemas/Id'
        vehicle_id:
          $ref: '#/components/schemas/Id'
        acquisition_type:
          $ref: '#/components/schemas/AcquisitionType'
        vendor_id:
          $ref: '#/components/schemas/NullableId'
        lender_id:
          $ref: '#/components/schemas/NullableId'
        first_payment_date:
          type: string
          format: date
          example: '2023-03-14'
          nullable: true
          description: The date of the first payment for the `Acquisition`, if applicable.
        number_of_payments:
          type: integer
          nullable: true
          description: |-
            For `lease` type Acquisitions, this number represents the number of
            months for which the vehicle is leased. For `loan` type Acquisitions,
            this number represents the number of payments until the loan is paid
            off.
        mileage_cap:
          type: integer
          nullable: true
          description: |-
            For `lease` type Acquisitions, this number represents the number of
            miles allowed each year, before additional charges will be incurred.
        annual_percentage_rate:
          type: number
          format: float
          nullable: true
          description: For `loan` type Acquisitions, the annual percentage rate for the loan.
        reference_number:
          type: string
          nullable: true
          description: |-
            Optional data for collecting information such as the invoice number,
            transaction id, or receipt number.
        notes:
          type: string
          nullable: true
          description: Optional free text field for additional notes.
        loan_amount:
          type: number
          format: float
          nullable: true
          description: |-
            For `loan` type Acquisitions, the total principal amount at the start
            of the loan.
        down_payment_amount:
          type: number
          format: float
          nullable: true
          description: For `loan` type Acquisitions, the amount of the initial down payment.
        monthly_cost:
          type: number
          format: float
          nullable: true
          description: Total amount that will be paid each month including any taxes and fees.
        capitalized_cost:
          type: number
          format: float
          nullable: true
          description: Capitalized cost per month of the `Vehicle`.
        residual_value:
          type: number
          format: float
          nullable: true
          description: |-
            For `lease` type Acquisitions, the value of the `Vehicle` at the end of
            the lease.
        purchase_price:
          type: number
          format: float
          nullable: true
          description: For `loan` type Acquisitions, the total purchase price of the `Vehicle`.
        mileage_charge:
          type: number
          format: float
          nullable: true
          description: |-
            For `lease` type Acquisitions, the amount charged for each mile over
            the mileage cap.
        acquisition_date:
          type: string
          format: date
          example: '2023-03-14'
          nullable: true
          description: The date on which the Acquisition occurred or began.
        acquisition_end_date:
          type: string
          format: date
          example: '2026-03-14'
          nullable: true
          description: The date on which the Acquisition ends or is scheduled to end.
        vehicle:
          type: object
          nullable: true
          description: The `Vehicle` related to the Acquisition.
        lender:
          type: object
          nullable: true
          description: The `Lender` related to the Acquisition.
        vendor:
          type: object
          nullable: true
          description: The `Vendor` related to the Acquisition.
    CreatedAt:
      description: The date and time at which this record was created.
      type: string
      format: date-time
      example: '2023-03-14T13:46:27-06:00'
    UpdatedAt:
      description: The date and time at which this record was most recently updated.
      type: string
      format: date-time
      example: '2023-03-14T13:46:27-06:00'
    Record:
      type: object
      nullable: true
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/Id'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
    Tire:
      title: Tire
      x-tags:
        - Tire Management
      description: A Tire
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            id:
              $ref: '#/components/schemas/Id'
            tire_position_id:
              $ref: '#/components/schemas/NullableId'
            part_id:
              $ref: '#/components/schemas/NullableId'
            axle_config_id:
              $ref: '#/components/schemas/NullableId'
            pressure:
              type: number
              format: float
              nullable: true
              description: The Tire Pressure of the Tire in PSI
            tread_depth:
              type: number
              format: float
              nullable: true
              description: The Tread Depth of the Tire in 1/32 Inch
            current_meter:
              type: number
              format: float
              description: The meter of the Tire
            tin:
              description: The Tire Identification Number (TIN) of the `Tire`.
              type: string
              example: CC9L XYZ 1023
              nullable: true
            tread_depth_health:
              type: string
              description: The Tread Depth health.
              enum:
                - unknown
                - normal
                - warning
                - low
            pressure_health:
              type: string
              description: The Tire Pressure health
              enum:
                - unknown
                - normal
                - warning
                - low
            installed_at:
              type: string
              format: date-time
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            tire_config:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                aspect_ratio:
                  type: number
                  format: float
                  description: Aspect ratio of tire.
                rim_diameter:
                  type: number
                  format: float
                  description: Rim diameter of tire.
                load_index:
                  type: number
                  format: float
                  description: Load index of tire.
                metric_type:
                  type: string
                  description: Metric type of tire.
                  enum:
                    - EU
                    - P
                    - HL
                    - T
                    - LT
                    - C
                    - ST
                width:
                  type: number
                  format: float
                  description: Width of tire.
                construction:
                  type: string
                  description: Construction type of tire.
                  enum:
                    - B
                    - R
                    - D
                speed_rating:
                  type: string
                  description: Speed rating of tire.
                  enum:
                    - A1
                    - A2
                    - A3
                    - A4
                    - A5
                    - A6
                    - A7
                    - A8
                    - B
                    - C
                    - D
                    - E
                    - F
                    - G
                    - H
                    - J
                    - K
                    - L
                    - M
                    - 'N'
                    - P
                    - Q
                    - R
                    - S
                    - T
                    - U
                    - V
                    - W
                    - 'Y'
                factory_tread_depth:
                  type: number
                  format: float
                  description: Tread depth of tire in /32" when new, as specified by the manufacturer.
                minimum_tread_depth:
                  type: number
                  format: float
                  description: The legal minimum tread depth, in /32".
                life_expectancy:
                  type: integer
                  description: The Life Expectancy or “Warranty” of a tire is the expected meter range, usually measured in miles, of a given tire as specified by the manufacturer.
    TirePosition:
      title: Tire Position
      x-tags:
        - Tire Management
      description: A Tire Position
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            axle_id:
              $ref: '#/components/schemas/Id'
            left_right:
              type: string
              description: Will be either `left` or `right`
            inner_outer:
              type: string
              nullable: true
              description: This only applies to 'dually' Axles, ie an Axle that has dual Tire Positions on each end of the Axle.
            tire:
              $ref: '#/components/schemas/Tire'
    Axle:
      title: Axle
      x-tags:
        - Tire Management
      description: An Axle
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            axle_config_id:
              $ref: '#/components/schemas/Id'
            is_powered:
              type: boolean
              description: Whether this Axle is powered
            sequence:
              type: integer
              description: The Axle's sequence. The front-most Axle sequence is 0, the 2nd Axle sequence is 1, etc.
              example: 0
            name:
              type: string
              description: The Axle's name.
              example: Front
            type_code:
              type: string
              description: The type of Axle ie `steer`, `drive` `trailer`, `liftable`, `dead`, etc.
              example: steer
            tire_positions:
              type: array
              description: All Tire Positions for the Axle
              items:
                $ref: '#/components/schemas/TirePosition'
    AxleConfig:
      title: Axle Configuration
      x-tags:
        - Tire Management
      description: An Axle Configuration
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
            - description
            - vehicle_id
            - active
            - axles
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            name:
              type: string
              description: This Axle Configuration's name.
              example: 4x4
            description:
              type: string
              nullable: true
              description: This Axle Configuration's name.
              example: 4 wheel positions, 4 driven
            vehicle_id:
              $ref: '#/components/schemas/Id'
            active:
              type: boolean
              description: Whether this is the Vehicle's current active Axle Configuration
            axles:
              type: array
              description: All Axles for this Axle Configuration
              items:
                $ref: '#/components/schemas/Axle'
              example:
                - id: 1
                  axle_config_id: 1
                  name: Front Axle
                  sequence: 0
                  type_code: steer
                  is_powered: true
                  tire_positions:
                    - id: 1
                      axle_id: 1
                      left_right: left
                      inner_outer: null
                      tire:
                        - id: 1
                          part_id: null
                          tire_position_id: 1
                          tread_depth: 6
                          tread_depth_health: warning
                          pressure: 28
                          pressure_health: normal
                          current_meter: 4315
                          part: null
                    - id: 2
                      axle_id: 1
                      left_right: right
                      inner_outer: null
                      tire:
                        - id: 2
                          part_id: null
                          tire_position_id: 2
                          tread_depth: 4
                          tread_depth_health: low
                          pressure: 34
                          pressure_health: normal
                          current_meter: 4315
                          part: null
                - id: 2
                  axle_config_id: 1
                  name: Rear Axle
                  sequence: 1
                  rear_axle: drive
                  is_powered: true
                  tire_positions:
                    - id: 3
                      axle_id: 2
                      left_right: left
                      inner_outer: null
                      tire:
                        - id: 3
                          part_id: null
                          tire_position_id: 3
                          tread_depth: 12
                          tread_depth_health: ok
                          pressure: 30
                          pressure_health: ok
                          current_meter: 4315
                          part: null
                    - id: 4
                      axle_id: 2
                      left_right: right
                      inner_outer: null
                      tire:
                        - id: 4
                          part_id: null
                          tire_position_id: 4
                          tread_depth: 15
                          tread_depth_health: normal
                          pressure: null
                          pressure_health: unknown
                          current_meter: 4315
                          part: null
    LikeFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        like:
          type: string
      required:
        - like
      additionalProperties: false
    EqFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        eq:
          type: string
      required:
        - eq
      additionalProperties: false
    LikeEqFilter:
      x-codegen-one-of-filter-part: true
      oneOf:
        - $ref: '#/components/schemas/LikeFilter'
        - $ref: '#/components/schemas/EqFilter'
    LtFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        lt:
          type: string
      required:
        - lt
      additionalProperties: false
    LteFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        lte:
          type: string
      required:
        - lte
      additionalProperties: false
    GtFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        gt:
          type: string
      required:
        - gt
      additionalProperties: false
    GteFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        gte:
          type: string
      required:
        - gte
      additionalProperties: false
    LtLteGtGteFilter:
      x-codegen-one-of-filter-part: true
      oneOf:
        - $ref: '#/components/schemas/LtFilter'
        - $ref: '#/components/schemas/LteFilter'
        - $ref: '#/components/schemas/GtFilter'
        - $ref: '#/components/schemas/GteFilter'
    SortAscDescDefaultDesc:
      type: string
      default: desc
      enum:
        - asc
        - desc
    SortAscDesc:
      type: string
      enum:
        - asc
        - desc
    AxleConfigTemplate:
      title: Axle Configuration
      x-tags:
        - Tire Management
      description: An Axle Configuration Template
      type: object
      required:
        - name
        - is_trailer
        - axles_count_required
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: This Axle Configuration's name.
          example: 4x4
        description:
          type: string
          description: This Axle Configuration's description.
          example: 4 wheel positions, 4 driven
        is_trailer:
          type: boolean
          description: Whether or not this template creates a Trailer Axle Configuration
          example: false
        axles_count_required:
          type: boolean
          description: Whether or not an axles_count is required when using this template to create an Axle Configuration
          example: false
    CommentableType:
      title: CommentableType
      description: |-
        The type of record that the Comment will be left on.
        Must be associated with a matching `commentable_id`.
      type: string
      enum:
        - Contact
        - FleetcorCard
        - FuelEntry
        - InventoryJournalEntry
        - Issue
        - Part
        - PurchaseOrder
        - ServiceEntry
        - ServiceReminder
        - SubmittedInspectionItem
        - Vehicle
        - VehicleAssignment
        - Vendor
        - WexCard
        - WorkOrder
    Comment:
      title: Comment
      x-tags:
        - Comments
      description: A Comment
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - commentable_type
            - commentable_id
            - user_id
            - comment
            - user_full_name
            - user_image_url
            - rich_content
            - html_content
            - with_mentions
          properties:
            commentable_type:
              $ref: '#/components/schemas/CommentableType'
            commentable_id:
              $ref: '#/components/schemas/Id'
            user_id:
              $ref: '#/components/schemas/Id'
            title:
              type: string
              deprecated: true
              description: The title of the Comment.
            comment:
              type: string
              description: The content of the Comment message body.
            user_full_name:
              type: string
              description: The full name of the `User` who created the Comment.
            user_image_url:
              type: string
              nullable: true
              description: The image url for the `User` who created the Comment.
            rich_content:
              type: object
              nullable: true
            html_content:
              type: string
              nullable: true
              description: The comment message body rendered as HTML.
            with_mentions:
              type: boolean
              description: Indicates if the message body contains @mentions.
    Frequency:
      type: string
      enum:
        - day
        - week
        - month
        - year
        - days
        - weeks
        - months
        - years
      nullable: true
    RenewalRemindableParameters:
      type: object
      required:
        - active
        - next_due_at
        - last_sent_at
        - due_soon_at
        - due_soon_time_threshold_interval
        - due_soon_time_threshold_frequency
      properties:
        active:
          type: boolean
          nullable: true
          description: Whether or not this Renewal Reminder is active.
        next_due_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which this Renewal Reminder is next due.
        last_sent_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: |-
            The date and time at which this Renewal Reminder was last
            sent.
        due_soon_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: |-
            The date and time at which this Renewal Reminder will next be
            marked as "Due Soon".
        due_soon_time_threshold_interval:
          type: integer
          nullable: true
          description: |-
            The amount of time before a Renewal is due where it will be marked as
            as "Due Soon".
        due_soon_time_threshold_frequency:
          $ref: '#/components/schemas/Frequency'
    RenewalRemindable:
      allOf:
        - $ref: '#/components/schemas/RenewalRemindableParameters'
        - type: object
          required:
            - overdue
            - due_soon
          properties:
            overdue:
              type: boolean
              default: false
              description: Indicates whether or not this Renewal Reminder is overdue.
            due_soon:
              type: boolean
              default: false
              description: Indicates whether or not this Renewal Reminder is due soon.
    ContactRenewalReminder:
      title: ContactRenewalReminder
      x-tags:
        - ContactRenewalReminders
      description: A ContactRenewalReminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/RenewalRemindable'
        - type: object
          required:
            - active
            - contact_id
            - contact_renewal_type_id
            - contact_renewal_type_name
            - next_due_at
            - last_sent_at
            - due_soon_at
            - due_soon_time_threshold_interval
            - due_soon_time_threshold_frequency
            - contact_archived_at
          properties:
            contact_id:
              $ref: '#/components/schemas/Id'
            contact_renewal_type_id:
              $ref: '#/components/schemas/Id'
            contact_renewal_type_name:
              type: string
              description: The name for this Renewal Reminder.
            contact_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder's `Contact` was
                archived.
            overdue:
              type: boolean
              description: Whether or not this Renewal Reminder is overdue.
            due_soon:
              type: boolean
              description: Whether or not this Renewal Reminder is due soon.
    ContactRenewalReminder_Created:
      title: ContactRenewalReminder
      x-tags:
        - ContactRenewalReminders
      description: A Contact Renewal Reminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/RenewalRemindableParameters'
        - type: object
          required:
            - active
            - contact_id
            - contact_renewal_type_id
            - next_due_at
            - last_sent_at
            - due_soon_at
            - due_soon_time_threshold_interval
            - due_soon_time_threshold_frequency
            - contact_archived_at
          properties:
            account_id:
              type: integer
              description: The ID of the `Account` that this Renewal Reminder belongs to.
            contact_id:
              $ref: '#/components/schemas/Id'
            contact_renewal_type_id:
              $ref: '#/components/schemas/Id'
            contact_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder's `Contact` was
                archived.
            is_sample:
              type: boolean
              description: Whether or not this belongs to sample data.
            comments_count:
              type: integer
              nullable: true
              description: The number of `Comments` associated with this record.
            watchers_count:
              type: integer
              minimum: 0
              description: The number of watchers associated with this record.
            watchable_options:
              type: object
              description: Options related to watching the record.
            bulk_watch_record:
              type: boolean
              description: Indicates if a bulk watch record is created.
            skip_automatic_watchers_callbacks:
              type: boolean
              description: Indicates if automatic watchers callbacks are skipped.
    ContactRenewalType:
      title: Contact Renewal Type
      x-tags:
        - Contact Renewal Types
      description: A Contact Renewal Type
      type: object
      required:
        - name
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          type: integer
          description: The ID of the `Account` that owns this Contact Renewal Type.
        name:
          type: string
          description: The name assigned to this Contact Renewal Type.
    ContactFilters:
      type: object
      x-codegen-deep-query-param-serializable-filter: true
      properties:
        email:
          $ref: '#/components/schemas/LikeEqFilter'
        last_name:
          $ref: '#/components/schemas/LikeEqFilter'
        group_id:
          $ref: '#/components/schemas/EqFilter'
        employee_number:
          $ref: '#/components/schemas/EqFilter'
        created_at:
          $ref: '#/components/schemas/LtLteGtGteFilter'
        updated_at:
          $ref: '#/components/schemas/LtLteGtGteFilter'
      additionalProperties: false
    ContactSorts:
      type: object
      x-codegen-deep-query-param-serializable-sort: true
      properties:
        group_id:
          $ref: '#/components/schemas/SortAscDesc'
        created_at:
          $ref: '#/components/schemas/SortAscDesc'
        updated_at:
          $ref: '#/components/schemas/SortAscDesc'
        id:
          $ref: '#/components/schemas/SortAscDescDefaultDesc'
      additionalProperties: false
    ContactFilteredBy:
      type: array
      description: The filters applied to the returned record set.
      items:
        anyOf:
          - type: object
            properties:
              email:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              last_name:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              group_id:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              employee_number:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
          - type: object
            properties:
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
    ContactSortedBy:
      type: array
      description: The sorts applied to the returned record set.
      items:
        anyOf:
          - type: object
            properties:
              group_id:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              id:
                $ref: '#/components/schemas/SortAscDesc'
    AttachmentPermissions:
      type: object
      nullable: true
      properties:
        read_photos:
          type: boolean
          description: Indicates whether the user has read permission for photos.
        manage_photos:
          type: boolean
          description: Indicates whether the user has permission to manage (eg. upload, delete) photos.
        read_documents:
          type: boolean
          description: Indicates whether the user has read permission for documents.
        manage_documents:
          type: boolean
          description: Indicates whether the user has permission to manage (eg. upload, delete) documents.
    CustomFields:
      type: object
      nullable: true
      description: '*Full details on working with Custom Fields [here](/docs/overview/custom-fields).'
    ImageableType:
      title: ImageableType
      type: string
      enum:
        - ExpenseEntry
        - WorkOrder
        - Equipment
        - IssueResolution
        - ServiceEntry
        - Vendor
        - ServiceProgram
        - Issue
        - Contact
        - Part
        - Vehicle
        - FuelEntry
        - SubmittedInspectionItem
    ImageMimeType:
      title: Image MIME Type
      type: string
      enum:
        - image/jpeg
        - image/gif
        - image/jif
        - image/jfif
        - image/jfi
        - image/tiff
        - image/png
        - image/jpg
        - image/jpe
        - image/pdf
        - image/webp
        - image/tif
        - image/psd
        - image/raw
        - image/arw
        - image/cr2
        - image/nrw
        - image/k25
        - image/bmp
        - image/dip
        - image/ai
        - image/eps
        - image/heif
        - image/heic
        - image/ind
        - image/indd
        - image/indt
        - image/jp2
        - image/j2k
        - image/jpf
        - image/jpx
        - image/jpm
        - image/mj2
        - image/x-png
    Image:
      title: Image
      description: An Image
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            imageable_id:
              $ref: '#/components/schemas/Id'
            imageable_type:
              $ref: '#/components/schemas/ImageableType'
            file_name:
              type: string
              description: The name of the image file.
            file_mime_type:
              $ref: '#/components/schemas/ImageMimeType'
            file_size:
              type: number
              description: The size of the image file in bytes.
            file_url:
              type: string
              description: The URL to access the image file.
            full_url:
              type: string
              description: The full URL to access the image file, including any necessary authentication or parameters.
    ContactSummary:
      title: Contact
      x-tags:
        - Contacts
      description: A Contact
      type: object
      required:
        - name
        - first_name
        - middle_name
        - last_name
        - group_id
        - group_name
        - images_count
        - documents_count
        - comments_count
        - default_image_url
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        email:
          type: string
          nullable: true
          description: The Contact's email address.
        name:
          type: string
          nullable: true
          description: The Contact's full name.
        first_name:
          type: string
          nullable: true
          description: The Contact's first name.
        middle_name:
          type: string
          nullable: true
          description: The Contact's middle name.
        last_name:
          type: string
          nullable: true
          description: The Contact's last name.
        group_id:
          type: integer
          nullable: true
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            the Fleetio ID of that `Group`.
        group_name:
          type: string
          nullable: true
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            the `Group`'s name.
        group_hierarchy:
          type: string
          nullable: true
          example: Group 1|Group 2|Group 3
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            a pipe delimited string representing the `Group` hierarchy. Each `Group`
            in the list is the parent of the `Groups` which follow.
        technician:
          type: boolean
          nullable: true
          description: Whether or not the Contact is a Technician.
        vehicle_operator:
          type: boolean
          nullable: true
          description: Whether or not the Contact is a Vehicle Operator.
        employee:
          type: boolean
          nullable: true
          description: Whether or not the Contact is an Employee.
        birth_date:
          type: string
          format: date
          example: '2023-03-14'
          nullable: true
          description: The Contact's birth date.
        street_address:
          type: string
          nullable: true
          description: The Contact's street address.
          example: 123 Main St
        street_address_line_2:
          type: string
          nullable: true
          description: The Contact's street address line 2.
          example: Apt 1
        city:
          type: string
          nullable: true
          description: The Contact's city.
        region:
          type: string
          nullable: true
          description: The Contact's region, state, or province.
        postal_code:
          type: string
          nullable: true
          description: The Contact's postal code, zip code, or equivalent.
        country:
          type: string
          nullable: true
          description: The Contact's country.
        employee_number:
          type: string
          nullable: true
          description: The Contact's employee number.
        job_title:
          type: string
          nullable: true
          maxLength: 255
          description: The Contact's job title.
        license_class:
          type: string
          nullable: true
          description: The Contact's driver's license class.
        license_number:
          type: string
          nullable: true
          description: The Contact's driver's license number.
        license_state:
          type: string
          nullable: true
          description: The locality which issued the Contact's license.
        home_phone_number:
          type: string
          nullable: true
          description: The Contact's home phone number.
        mobile_phone_number:
          type: string
          nullable: true
          description: The Contact's mobile phone number.
        work_phone_number:
          type: string
          nullable: true
          description: The Contact's work phone number.
        other_phone_number:
          type: string
          nullable: true
          description: Any other phone number for this Contact.
        start_date:
          type: string
          format: date
          nullable: true
          description: When the Contact started working for the company, if applicable.
        leave_date:
          type: string
          format: date
          nullable: true
          description: When the Contact left or will leave the company, if applicable.
        hourly_labor_rate_cents:
          type: integer
          nullable: true
          description: The Contact's hourly rate in cents.
        attachment_permissions:
          $ref: '#/components/schemas/AttachmentPermissions'
        default_image_url:
          type: string
          nullable: true
          description: The URL of the Contact's default image/profile photo, if any.
        account_membership_id:
          $ref: '#/components/schemas/NullableId'
        last_api_request:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User made an API request.  Null if Contact is not assocated with a User.
        last_web_access:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User signed into the web application.  Null if Contact is not assocated with a User.
        last_mobile_app_access:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User used the mobile app.  Null if Contact is not assocated with a User.
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        images:
          type: array
          items:
            $ref: '#/components/schemas/Image'
          description: A list of the images attached to this record.
        images_count:
          type: integer
          minimum: 0
          description: The number of images attached to this record.
    Contact_v2:
      title: Contact
      x-tags:
        - Contacts
      description: A Contact
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - name
            - first_name
            - middle_name
            - last_name
            - group_id
            - group_name
            - images_count
            - documents_count
            - comments_count
            - default_image_url
            - user
          properties:
            name:
              type: string
              nullable: true
              description: The Contact's full name.
            first_name:
              type: string
              nullable: true
              description: The Contact's first name.
            middle_name:
              type: string
              nullable: true
              description: The Contact's middle name.
            group_id:
              type: integer
              nullable: true
              description: |-
                If this Contact belongs to a [Group](/docs/api/groups), this will be
                the Fleetio ID of that Group.
            group_name:
              type: string
              nullable: true
              description: |-
                If this Contact belongs to a [Group](/docs/api/groups), this will be
                the Group's name.
            last_name:
              type: string
              nullable: true
              description: The Contact's last name.
            images_count:
              type: integer
              description: The number of images associated with this Contact.
            documents_count:
              type: integer
              description: The number of documents associated with this Contact.
            comments_count:
              type: integer
              description: The number of `Comments` associated with this Contact.
            email:
              type: string
              nullable: true
              description: The Contact's email address.
            technician:
              type: boolean
              nullable: true
              description: Whether this Contact is a Technician.
            vehicle_operator:
              type: boolean
              nullable: true
              description: Whether this Contact is a Vehicle Operator.
            employee:
              type: boolean
              nullable: true
              description: Whether this Contact is an Employee.
            birth_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The Contact's birth date.
            street_address:
              type: string
              nullable: true
              description: The Contact's street address.
            street_address_line_2:
              type: string
              nullable: true
              description: The second line of the Contact's street address.
            city:
              type: string
              nullable: true
              description: The Contact's city.
            region:
              type: string
              nullable: true
              description: The Contact's region.
            postal_code:
              type: string
              nullable: true
              description: The Contact's postal code.
            country:
              type: string
              nullable: true
              description: The Contact's country.
            employee_number:
              type: string
              nullable: true
              description: The Contact's employee number.
            job_title:
              type: string
              nullable: true
              maxLength: 255
              description: The Contact's job title.
            license_class:
              type: string
              nullable: true
              description: The Contact's license class.
            license_number:
              type: string
              nullable: true
              description: The Contact's license number.
            license_state:
              type: string
              nullable: true
              description: The state which issued the Contact's license.
            license_expiration:
              type: string
              format: date
              nullable: true
              example: '2023-03-14'
              description: The Contact's driver's license expiration date.
            home_phone_number:
              type: string
              nullable: true
              description: The Contact's home phone number.
            mobile_phone_number:
              type: string
              nullable: true
              description: The Contact's mobile phone number.
            work_phone_number:
              type: string
              nullable: true
              description: The Contact's work phone number.
            other_phone_number:
              type: string
              nullable: true
              description: Any other mobile phone number belonging to this Contact.
            start_date:
              type: string
              format: date
              nullable: true
              description: The Contact's start date.
            leave_date:
              type: string
              format: date
              nullable: true
              description: The Contact's leave date.
            hourly_labor_rate:
              type: number
              format: float
              nullable: true
              description: The Contact's hourly rate.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            default_image_url:
              type: string
              nullable: true
              description: The URL pointing to the default image for this Contact.
            account_membership_id:
              $ref: '#/components/schemas/NullableId'
            archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Contact was archived, if applicable. `null` if this Contact is not archived.
            user:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/NullableId'
                email:
                  type: string
                  nullable: true
                  description: The email address associated with this `User`.
                username:
                  type: string
                  nullable: true
                  description: The username of this `User`.
                time_zone:
                  type: string
                  nullable: true
                  description: The timezone set for this `User`.
                user_type:
                  type: string
                  enum:
                    - admin
                    - regular
                    - owner
                  nullable: true
                  description: This `User`'s type.
                archived_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: The date and time at which the User was archived (deactivated). If `null`, the User is not deactivated.
                role:
                  type: object
                  description: Basic information about this `User`'s `Role`, if applicable.
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
                vehicles_record_set:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
                equipments_record_set:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
                contacts_record_set:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
                parts_record_set:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
                inspection_forms_record_set:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    name:
                      type: string
                      nullable: true
    ArchivedSorts:
      type: object
      x-codegen-deep-query-param-serializable-sort: true
      properties:
        archived_at:
          $ref: '#/components/schemas/SortAscDesc'
        id:
          $ref: '#/components/schemas/SortAscDescDefaultDesc'
      additionalProperties: false
    ArchivedSortedBy:
      type: array
      description: The sorts applied to the returned record set.
      items:
        anyOf:
          - type: object
            properties:
              archived_at:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              id:
                $ref: '#/components/schemas/SortAscDesc'
    CustomField:
      title: Custom Field
      type: object
      required:
        - key
        - description
        - label
        - custom_field_type
        - data_type
        - values
        - position
        - required
        - can_update
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          type: integer
          description: The ID of the `Account` that this Custom Field belongs to.
        custom_field_type:
          type: string
        data_type:
          type: string
          enum:
            - checkbox
            - date
            - dropdown
            - text
        description:
          type: string
        key:
          type: string
        label:
          type: string
        required:
          type: boolean
        values:
          type: array
          items:
            type: string
          nullable: true
        position:
          type: number
          nullable: true
        can_update:
          type: boolean
          description: Whether the user viewing this Custom Field can update it.
    VolumeUnit:
      title: VolumeUnit
      type: string
      enum:
        - us_gallons
        - uk_gallons
        - liters
    MeterUnit:
      title: MeterUnit
      x-tags:
        - MeterUnits
      description: The measurement unit used for the Vehicle's primary, or secondary (if applicable), meter.
      type: string
      enum:
        - km
        - hr
        - mi
      nullable: true
    VehicleOwnershipResponse:
      title: VehicleOwnershipResponse
      type: string
      enum:
        - Owned
        - Leased
        - Rented
        - Customer
        - Financed
        - Rent To Own
    MeasurementSystem:
      title: MeasurementSystem
      type: string
      enum:
        - imperial
        - metric
    VehicleSpecs:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        vehicle_id:
          type: integer
          description: The `Vehicle` ID these specs belong to.
        account_id:
          type: integer
        body_type:
          type: string
          nullable: true
          description: The body type of the Vehicle, if available.
        body_subtype:
          type: string
          nullable: true
          description: The subtype of the Vehicle body, if available.
        drive_type:
          type: string
          nullable: true
          description: The drive type of the Vehicle, if available.
        brake_system:
          type: string
          nullable: true
          description: The brake system used in the Vehicle, if available.
        msrp_cents:
          type: integer
          nullable: true
          description: The Manufacturer's Suggested Retail Price (MSRP) in cents, if available.
        fuel_tank_capacity:
          type: number
          nullable: true
          format: float
          description: The fuel tank capacity of the Vehicle, if available.
        fuel_tank_2_capacity:
          type: number
          nullable: true
          format: float
          description: The capacity of a second fuel tank, if available.
        front_track_width:
          type: number
          nullable: true
          format: float
          description: The front track width of the Vehicle, if available.
        ground_clearance:
          type: number
          nullable: true
          format: float
          description: The ground clearance of the Vehicle, if available.
        height:
          type: number
          nullable: true
          format: float
          description: The height of the Vehicle, if available.
        length:
          type: number
          nullable: true
          format: float
          description: The length of the Vehicle, if available.
        rear_track_width:
          type: number
          nullable: true
          format: float
          description: The rear track width of the Vehicle, if available.
        width:
          type: number
          nullable: true
          format: float
          description: The width of the Vehicle, if available.
        wheelbase:
          type: number
          nullable: true
          format: float
          description: The wheelbase of the Vehicle, if available.
        front_tire_psi:
          type: string
          nullable: true
          description: The recommended PSI for front tires, if available.
        rear_tire_psi:
          type: string
          nullable: true
          description: The recommended PSI for rear tires, if available.
        base_towing_capacity:
          type: string
          nullable: true
          description: The base towing capacity of the Vehicle, if available.
        curb_weight:
          type: number
          nullable: true
          format: float
          description: The curb weight of the Vehicle, if available.
        gross_vehicle_weight_rating:
          type: number
          nullable: true
          format: float
          description: The Gross Vehicle Weight Rating (GVWR), if available.
        bed_length:
          type: string
          nullable: true
          description: The length of the Vehicle's bed, if available.
        max_payload:
          type: string
          nullable: true
          description: The maximum payload capacity of the Vehicle, if available.
        rear_axle_type:
          type: string
          description: The type of rear axle used in the Vehicle.
        front_tire_type:
          type: string
          description: The type of front tires used in the Vehicle.
        front_wheel_diameter:
          type: string
          description: The diameter of the front wheels.
        rear_tire_type:
          type: string
          description: The type of rear tires used in the Vehicle.
        rear_wheel_diameter:
          type: string
          description: The diameter of the rear wheels.
        epa_city:
          type: number
          nullable: true
          format: float
          description: The EPA city fuel economy rating, if available.
        epa_highway:
          type: number
          nullable: true
          format: float
          description: The EPA highway fuel economy rating, if available.
        epa_combined:
          type: number
          nullable: true
          format: float
          description: The combined EPA fuel economy rating, if available.
        engine_description:
          type: string
          description: Description of the Vehicle's engine.
        engine_brand:
          type: string
          description: Brand of the Vehicle's engine.
        engine_aspiration:
          type: string
          nullable: true
          description: Aspiration type of the engine, if available.
        engine_block_type:
          type: string
          nullable: true
          description: Block type of the engine, if available.
        engine_bore:
          type: string
          nullable: true
          description: Bore size of the engine, if available.
        engine_cam_type:
          type: string
          nullable: true
          description: Camshaft type of the engine, if available.
        engine_compression:
          type: string
          nullable: true
          description: Compression ratio of the engine, if available.
        engine_cylinders:
          type: integer
          nullable: true
          description: Number of engine cylinders, if available.
        engine_displacement:
          type: string
          nullable: true
          description: Engine displacement, if available.
        fuel_induction:
          type: string
          nullable: true
          description: Fuel induction method, if available.
        fuel_quality:
          type: string
          description: Fuel quality required for the engine.
        max_hp:
          type: string
          nullable: true
          description: Maximum horsepower produced by the engine, if available.
        max_torque:
          type: string
          nullable: true
          description: Maximum torque produced by the engine, if available.
        oil_capacity:
          type: string
          nullable: true
          description: Oil capacity of the engine, if available.
        redline_rpm:
          type: string
          description: Redline RPM of the engine.
        engine_stroke:
          type: string
          nullable: true
          description: Stroke length of the engine, if available.
        engine_valves:
          type: integer
          nullable: true
          description: Number of engine valves, if available.
        transmission_description:
          type: string
          description: Description of the Vehicle's transmission.
        transmission_brand:
          type: string
          description: Brand of the Vehicle's transmission.
        transmission_type:
          type: string
          nullable: true
          description: Type of transmission, if available.
        transmission_gears:
          type: integer
          nullable: true
          description: Number of gears in the transmission, if available.
        cargo_volume:
          type: number
          nullable: true
          format: float
          description: Cargo volume of the Vehicle, if available.
        interior_volume:
          type: number
          nullable: true
          format: float
          description: Interior volume of the Vehicle, if available.
        passenger_volume:
          type: string
          description: Passenger volume of the Vehicle.
        created_at:
          type: string
          format: date-time
          description: The date and time when the specs were created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the specs were last updated.
        duty_type:
          type: string
          nullable: true
          description: Type of duty the Vehicle is designed for, if available.
        weight_class:
          type: string
          nullable: true
          description: Weight class of the Vehicle, if available.
        engine_bore_with_units:
          type: string
          nullable: true
          description: Bore size of the engine with units, if available.
        wheelbase_with_units:
          type: string
          nullable: true
          description: Wheelbase of the Vehicle with units, if available.
        msrp:
          type: string
          nullable: true
          description: Manufacturer's Suggested Retail Price (MSRP).
    CurrentLocationEntry:
      type: object
      nullable: true
      description: The current location of the associated object.
      properties:
        id:
          type: integer
          description: The unique identifier for the current Location Entry.
        locatable_type:
          type: string
          description: The type of object that this Location Entry is associated with.
        locatable_id:
          type: integer
          description: The unique identifier of the object that this Location Entry is associated with.
        date:
          type: string
          format: date-time
          description: The date and time when this Location Entry was recorded.
        created_at:
          type: string
          format: date-time
          description: The date and time when this Location Entry was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when this Location Entry was last updated.
        contact_id:
          type: integer
          description: The unique identifier of the associated Contact.
        address:
          type: string
          description: The address associated with this Location Entry.
        is_current:
          type: boolean
          description: Indicates whether this Location Entry is the current location.
        item_type:
          type: string
          description: The type of item associated with this Location Entry.
        item_id:
          type: integer
          description: The unique identifier of the item associated with this Location Entry.
        location:
          type: string
          description: The geographical location in the format "POINT (longitude latitude)".
        address_components:
          type: object
          properties:
            street_number:
              type: string
              description: The street number in the address.
            street:
              type: string
              description: The street name in the address.
            city:
              type: string
              description: The city in the address.
            region:
              type: string
              description: The region, state or province in the address.
            region_short:
              type: string
              description: The abbreviated region, state or province code.
            country:
              type: string
              description: The country in the address.
            country_short:
              type: string
              description: The abbreviated country code.
            postal_code:
              type: string
              description: The postal code, ZIP, or equivalent in the address.
        geolocation:
          type: object
          properties:
            latitude:
              type: number
              format: float
              description: The latitude coordinate of the location.
            longitude:
              type: number
              format: float
              description: The longitude coordinate of the location.
    Vehicle:
      title: Vehicle
      x-tags:
        - Vehicles
      description: A Vehicle
      type: object
      nullable: true
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        account_id:
          $ref: '#/components/schemas/Id'
        archived_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the Vehicle was archived.
        fuel_type_id:
          $ref: '#/components/schemas/NullableId'
        fuel_type_name:
          type: string
          nullable: true
          description: The name of the `Fuel Type` associated with this Vehicle.
        fuel_volume_units:
          $ref: '#/components/schemas/VolumeUnit'
        group_id:
          $ref: '#/components/schemas/NullableId'
        group_name:
          type: string
          nullable: true
          description: The name of the `Group` associated with this Vehicle.
        meter_unit:
          $ref: '#/components/schemas/MeterUnit'
        name:
          type: string
          description: This Vehicle's name.
        ownership:
          $ref: '#/components/schemas/VehicleOwnershipResponse'
        secondary_meter:
          type: boolean
          description: Indicates whether or not this Vehicle has a secondary meter.
        secondary_meter_unit:
          $ref: '#/components/schemas/MeterUnit'
        system_of_measurement:
          $ref: '#/components/schemas/MeasurementSystem'
        labels:
          description: The `Labels` associated with this Vehicle. Available by passing the `expand=labels` query parameter.
          type: array
          items:
            type: object
            properties:
              id:
                $ref: '#/components/schemas/Id'
              name:
                type: string
                description: The name of the Label. This is the value used to tag a record.
              color:
                type: string
                example: '#44DB38'
                description: The hex color of the Label.
        vehicle_status_id:
          $ref: '#/components/schemas/Id'
        vehicle_status_name:
          type: string
          description: The name of the `Vehicle Status` associated with this Vehicle.
        vehicle_status_color:
          type: string
          nullable: true
          description: The color of the `Vehicle Status` associated with this Vehicle.
        vehicle_type_id:
          $ref: '#/components/schemas/Id'
        vehicle_type_name:
          type: string
          description: The name of the `Vehicle Type` associated with this Vehicle.
        fuel_entries_count:
          type: integer
          minimum: 0
          description: The number of `Fuel Entries` associated with this Vehicle.
        service_entries_count:
          type: integer
          minimum: 0
          description: The number of `Service Entries` associated with this Vehicle.
        service_reminders_count:
          type: integer
          minimum: 0
          description: The number of `Service Reminders` associated with this Vehicle.
        vehicle_renewal_reminders_count:
          type: integer
          minimum: 0
          description: The number of `Vehicle Renewal Reminders` associated with this Vehicle.
        comments_count:
          type: integer
          minimum: 0
          description: The number of `Comments` associated with this Vehicle.
        documents_count:
          type: integer
          minimum: 0
          description: The number of documents attached to this Vehicle.
        images_count:
          type: integer
          minimum: 0
          description: The number of images attached to this Vehicle.
        current_location_entry_id:
          $ref: '#/components/schemas/NullableId'
        is_sample:
          type: boolean
          description: Indicates whether this Vehicle record is [Sample Data](https://help.fleetio.com/s/article/Sample-Data).
        in_service_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date on which this Vehicle was put into service.
        in_service_meter:
          type: number
          format: float
          nullable: true
          description: The meter value at which this Vehicle was put into service.
        estimated_service_months:
          type: integer
          nullable: true
          description: The estimated number of months this Vehicle will be in service.
        estimated_replacement_mileage:
          type: string
          nullable: true
          description: |-
            The estimated number of miles before which this Vehicle will be
            replaced.
        estimated_resale_price:
          type: object
          properties:
            cents:
              type: integer
              minimum: 0
              description: The estimated resale price of this Vehicle in cents.
            currency_iso:
              type: string
              description: The ISO 4217 currency code of the estimated resale price.
          nullable: true
          description: The estimated resale price of this Vehicle.
        out_of_service_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date on which this Vehicle was or will be retired.
        out_of_service_meter:
          type: number
          format: float
          nullable: true
          description: The meter value at which this Vehicle was or will be retired.
        meter_name:
          type: string
          description: The name of the primary meter for this Vehicle.
        secondary_meter_name:
          type: string
          description: The name of the secondary meter for this Vehicle.
        primary_meter_usage_per_day:
          type: string
          nullable: true
          description: The average number of units of the primary meter used per day.
        secondary_meter_usage_per_day:
          type: string
          nullable: true
          description: The average number of units of the secondary meter used per day.
        current_meter_value:
          type: number
          format: float
          nullable: true
          description: The current value of the primary meter for this Vehicle.
        current_meter_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the primary meter was last updated.
        secondary_meter_value:
          type: number
          format: float
          nullable: true
          description: The current value of the secondary meter for this Vehicle.
        secondary_meter_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the secondary meter was last updated.
        group_ancestry:
          type: string
          nullable: true
          description: The ancestry of the Group associated with this Vehicle.
        color:
          type: string
          nullable: true
          description: The color of this Vehicle.
        license_plate:
          type: string
          nullable: true
          description: The license plate number of this Vehicle.
        vin:
          type: string
          nullable: true
          description: The Vehicle Identification Number of this Vehicle.
        year:
          type: string
          nullable: true
          description: This Vehicle's model year.
        make:
          type: string
          nullable: true
          description: The name of this Vehicle's manufacturer.
        model:
          type: string
          nullable: true
          description: The name of the model of this Vehicle.
        trim:
          type: string
          nullable: true
          description: The trim level of this Vehicle.
        registration_expiration_month:
          type: integer
          nullable: true
          minimum: 0
          maximum: 12
          description: The month in which this Vehicle's registration expires.
        registration_state:
          type: string
          nullable: true
          description: The state, province, or territory in which this Vehicle is registered.
        loan_account_number:
          type: string
          nullable: true
          description: The account number for this Vehicle's loan, if applicable.
        loan_ended_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which this Vehicle's loan ends.
        loan_interest_rate:
          type: number
          format: float
          nullable: true
          description: The interest rate for this Vehicle's loan.
        loan_notes:
          type: string
          nullable: true
          description: Notes about this Vehicle's loan.
        loan_started_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: |-
            The date and time at which this Vehicle's loan began.
            Formatted according to ISO-8601 in `User`'s local time.
        loan_vendor_id:
          $ref: '#/components/schemas/NullableId'
        loan_vendor_name:
          type: string
          nullable: true
          description: The name of the `Vendor` for this Vehicle's loan.
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        inspection_schedules_count:
          type: integer
          minimum: 0
          description: The number of inspection schedules this Vehicle is associated with.
        issues_count:
          type: integer
          minimum: 0
          description: The number of `Issues` this Vehicle is associated with.
        work_orders_count:
          type: integer
          minimum: 0
          description: The number of `Work Orders` this Vehicle is associated with.
        type_name:
          type: string
          nullable: true
          description: The name of the `Vehicle Type` associated with this Vehicle.
        default_image_url:
          type: string
          nullable: true
          description: The URL of the default image for this Vehicle.
        default_image_url_medium:
          type: string
          nullable: true
          description: The URL of a medium-sized version of the default image for this Vehicle.
        default_image_url_small:
          type: string
          nullable: true
          description: The URL of a small-sized version of the default image for this Vehicle.
        default_image_url_large:
          type: string
          nullable: true
          description: The URL of a large-sized version of the default image for this Vehicle.
        specs:
          $ref: '#/components/schemas/VehicleSpecs'
        external_ids:
          type: object
          description: Any [External IDs](/docs/guides/vehicles/external-vehicle-ids) associated with this Vehicle.
        ai_enabled:
          type: boolean
          description: |-
            Whether this Vehicle has
            [Auto Integrate](https://help.fleetio.com/s/article/FAQ-Maintenance-Shop-Integration)
            enabled for it.
        assetable_type:
          type: string
          description: Assetable type for Vehicle is always `Vehicle` for vehicles.
          enum:
            - Vehicle
        driver:
          type: object
          properties:
            id:
              $ref: '#/components/schemas/NullableId'
            first_name:
              type: string
              nullable: true
              description: The first name of the `Contact` (driver) associated with this Vehicle.
            last_name:
              type: string
              nullable: true
              description: The last name of the `Contact` (driver) associated with this Vehicle.
            full_name:
              type: string
              nullable: true
              description: The full name of the `Contact` (driver) associated with this Vehicle.
            employee:
              type: boolean
              nullable: true
              description: Whether or not the `Contact` (driver) associated with this Vehicle is an employee.
            employee_number:
              type: string
              nullable: true
              description: The employee number of the  `Contact` (driver) associated with this Vehicle.
            default_image_url:
              type: string
              nullable: true
              description: The URL of the default image of the `Contact` (driver) associated with this Vehicle.
        current_location_entry:
          $ref: '#/components/schemas/CurrentLocationEntry'
        loan_amount:
          type: number
          format: float
          nullable: true
          description: The amount of this Vehicle's loan.
        loan_payment:
          type: number
          format: float
          nullable: true
          description: The amount of this Vehicle's loan payment.
        warranties_active_count:
          type: integer
          minimum: 0
          description: The number of active warranties associated with this Vehicle.
        warranties_count:
          type: integer
          minimum: 0
          description: The number of warranties associated with this Vehicle.
        residual_value:
          type: number
          format: float
          nullable: true
          description: The residual value of this Vehicle at the end of its lease.
        axle_config_id:
          type: integer
          description: The id of the `Axle Configuration` of this vehicle.
          nullable: true
    Contact:
      title: Contact
      x-tags:
        - Contacts
      description: A Contact
      type: object
      nullable: true
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        email:
          type: string
          nullable: true
          description: The Contact's email address.
        name:
          type: string
          nullable: true
          description: The Contact's full name.
        first_name:
          type: string
          nullable: true
          description: The Contact's first name.
        middle_name:
          type: string
          nullable: true
          description: The Contact's middle name.
        last_name:
          type: string
          nullable: true
          description: The Contact's last name.
        images_count:
          type: integer
          minimum: 0
          description: The number of images associated with this Contact.
        documents_count:
          type: integer
          minimum: 0
          description: The number of documents associated with this Contact.
        comments_count:
          type: integer
          minimum: 0
          description: The number of comments associated with this Contact.
        group_id:
          type: integer
          nullable: true
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            the Fleetio ID of that `Group`.
        group_name:
          type: string
          nullable: true
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            the `Group`'s name.
        group_hierarchy:
          type: string
          nullable: true
          example: Group 1|Group 2|Group 3
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            a pipe delimited string representing the `Group` hierarchy. Each `Group`
            in the list is the parent of the `Groups` which follow.
        technician:
          type: boolean
          nullable: true
          description: Whether or not the Contact is a Technician.
        vehicle_operator:
          type: boolean
          nullable: true
          description: Whether or not the Contact is a Vehicle Operator.
        employee:
          type: boolean
          nullable: true
          description: Whether or not the Contact is an Employee.
        birth_date:
          type: string
          format: date
          example: '2023-03-14'
          nullable: true
          description: The Contact's birth date.
        street_address:
          type: string
          nullable: true
          description: The Contact's street address.
          example: 123 Main St
        street_address_line_2:
          type: string
          nullable: true
          description: The Contact's street address line 2.
          example: Apt 1
        city:
          type: string
          nullable: true
          description: The Contact's city.
        region:
          type: string
          nullable: true
          description: The Contact's region, state, or province.
        postal_code:
          type: string
          nullable: true
          description: The Contact's postal code, zip code, or equivalent.
        country:
          type: string
          nullable: true
          description: The Contact's country.
        employee_number:
          type: string
          nullable: true
          description: The Contact's employee number.
        job_title:
          type: string
          nullable: true
          maxLength: 255
          description: The Contact's job title.
        license_class:
          type: string
          nullable: true
          description: The Contact's driver's license class.
        license_number:
          type: string
          nullable: true
          description: The Contact's driver's license number.
        license_state:
          type: string
          nullable: true
          description: The locality which issued the Contact's license.
        license_expiration:
          type: string
          format: date
          nullable: true
          example: '2023-03-14'
          description: The Contact's driver's license expiration date.
        home_phone_number:
          type: string
          nullable: true
          description: The Contact's home phone number.
        mobile_phone_number:
          type: string
          nullable: true
          description: The Contact's mobile phone number.
        work_phone_number:
          type: string
          nullable: true
          description: The Contact's work phone number.
        other_phone_number:
          type: string
          nullable: true
          description: Any other phone number for this Contact.
        start_date:
          type: string
          format: date
          nullable: true
          description: When the Contact started working for the company, if applicable.
        leave_date:
          type: string
          format: date
          nullable: true
          description: When the Contact left or will leave the company, if applicable.
        hourly_labor_rate:
          type: number
          format: float
          nullable: true
          description: The Contact's hourly rate.
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        attachment_permissions:
          $ref: '#/components/schemas/AttachmentPermissions'
        default_image_url:
          type: string
          nullable: true
          description: The URL of the Contact's default image/profile photo, if any.
        user:
          type: object
          nullable: true
          description: If the Contact is a Fleetio `User`, those details will be included here.
        account_membership_id:
          $ref: '#/components/schemas/NullableId'
        last_api_request:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User made an API request.  Null if Contact is not assocated with a User.
        last_web_access:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User signed into the web application.  Null if Contact is not assocated with a User.
        last_mobile_app_access:
          type: string
          format: date-time
          nullable: true
          description: The last date and time this Contact's associated User used the mobile app.  Null if Contact is not assocated with a User.
    Equipment:
      title: Equipment
      x-tags:
        - Equipment
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - name
            - brand
            - model
            - serial_number
            - equipment_type_id
            - type_name
            - equipment_status_id
            - status_name
            - group_id
            - group_name
            - purchase_vendor_id
            - purchase_price_cents
            - purchase_date
            - warranty_expiration_date
            - purchase_comments
            - in_service_date
            - estimated_service_life
            - out_of_service_date
            - comments_count
            - created_at
            - updated_at
            - archived_at
            - documents_count
            - images_count
            - estimated_resale_price
            - status_color
            - default_image_url
            - watchers_count
            - is_watched
            - linked_vehicle
            - assigned_contact
            - attachment_permissions
            - assetable_type
            - issues_count
            - current_location_entry
          properties:
            name:
              type: string
              description: The name for this Equipment.
            brand:
              type: string
              nullable: true
              description: The name of the brand which makes this Equipment.
            model:
              type: string
              nullable: true
              description: The model name of this Equipment.
            serial_number:
              type: string
              nullable: true
              description: The serial number of this Equipment.
            equipment_type_id:
              $ref: '#/components/schemas/Id'
            type_name:
              type: string
              description: The name of the associated `Equipment Type`.
            equipment_status_id:
              $ref: '#/components/schemas/Id'
            status_name:
              type: string
              description: The name of the associated `Equipment Status`.
            group_id:
              $ref: '#/components/schemas/NullableId'
            group_name:
              type: string
              nullable: true
              description: The name of the associated `Group`.
            purchase_vendor_id:
              $ref: '#/components/schemas/NullableId'
            purchase_price_cents:
              type: integer
              nullable: true
              description: The purchase price in cents.
            purchase_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment was purchased.
            estimated_resale_price:
              type: number
              format: float
              nullable: true
              description: The estimated resale price of this Equipment.
            warranty_expiration_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment warranty expires.
            purchase_comments:
              type: string
              nullable: true
              description: Any comments about the purchase of this Equipment.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            in_service_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment was put into service.
            estimated_service_life:
              type: integer
              nullable: true
              description: The estimated duration in months of the service life for this Equipment.
            out_of_service_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: |-
                The estimated date on which the Equipment will be retired from
                service.
            archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time at which the Equipment was archived.
            status_color:
              type: string
              nullable: true
              description: The color of the associated `Equipment Status`.
            linked_vehicle:
              $ref: '#/components/schemas/Vehicle'
            assigned_contact:
              $ref: '#/components/schemas/Contact'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            default_image_url:
              type: string
              nullable: true
              description: The URL of the Equipment's default image/profile photo, if any.
            assetable_type:
              type: string
              nullable: true
              description: The type of assetable object.
            issues_count:
              type: integer
              description: The number of `Issues` associated with this Equipment.
            current_location_entry:
              $ref: '#/components/schemas/CurrentLocationEntry'
            comments_count:
              type: integer
              minimum: 0
              description: The number of `Comments` associated with this Equipment.
            documents_count:
              type: integer
              minimum: 0
              description: The number of documents associated with this Equipment.
            images_count:
              type: integer
              minimum: 0
              description: The number of images associated with this Equipment.
            is_watched:
              type: boolean
              default: false
              description: Indicates whether this Equipment is being watched.
            watchers_count:
              type: integer
              minimum: 0
              description: The number of users watching this Equipment.
    EquipmentCreateParameters:
      title: EquipmentParameters
      x-tags:
        - Equipment
      description: Parameters used to create a new Equipment
      type: object
      required:
        - name
        - type_id
        - status_id
      properties:
        name:
          type: string
          description: The name for this Equipment.
        brand:
          type: string
          description: The name of the brand which makes this Equipment.
        model:
          type: string
          description: The model name of this Equipment.
        serial_number:
          type: string
          description: The serial number of this Equipment.
        type_id:
          $ref: '#/components/schemas/Id'
        status_id:
          $ref: '#/components/schemas/Id'
        group_id:
          $ref: '#/components/schemas/NullableId'
        group_hierarchy:
          type: string
          description: |-
            A pipe delimited group hierarchy. Ex: "Level 1|Level 2|Level 3". Where
            Level 1 is the parent of Level 2, and 2 is the parent of 3. Any missing
            nodes in the hierarchy will be created.
        purchase_vendor_id:
          $ref: '#/components/schemas/NullableId'
        purchase_price:
          type: number
          description: The price at which the Equipment was purchased.
        purchase_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        warranty_expiration_date:
          type: string
          format: date
          example: '2023-03-14'
          description: The date on which the Equipment warranty expires.
        purchase_comments:
          type: string
          description: Any comments about the purchase of this Equipment.
        in_service_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        estimated_service_life:
          type: integer
          description: The estimated duration in months of the service life for this Equipment.
        estimated_resale_price:
          type: number
          description: The estimated resale price of this Equipment.
        out_of_service_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        linked_vehicle_id:
          $ref: '#/components/schemas/NullableId'
        assignee_id:
          $ref: '#/components/schemas/NullableId'
        default_image:
          type: string
          format: uri
          nullable: true
          description: The default image URL for this Equipment.
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        documents_attributes:
          type: array
          description: |-
            An array of one or more document objects to add to the record.
            Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
            to upload to our third party storage provider in order to obtain `file_url`.
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
                description: The name to give the file which will be shown in the UI.
              file_url:
                type: string
                maxLength: 255
                description: The URL obtained from our storage provider that points to the file.
              file_mime_type:
                type: string
                maxLength: 255
                description: The MIME type of the file. For example, `application/pdf`.
              file_name:
                type: string
                maxLength: 255
                description: The name of the file.
              file_size:
                type: integer
                description: The size of the file in bytes.
        images_attributes:
          type: array
          description: |-
            An array of one or more image objects to add to the record.
            Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
            to upload to our third party storage provider in order to obtain `file_url`.
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
                description: The name to give the image which will be shown in the UI.
              file_url:
                type: string
                maxLength: 255
                description: The URL obtained from our storage provider that points to the image.
              file_mime_type:
                type: string
                maxLength: 255
                description: The MIME type of the image. For example, `image/png`.
              file_name:
                type: string
                maxLength: 255
                description: The name of the image.
              file_size:
                type: integer
                description: The size of the image file in bytes.
    Equipment_Created:
      title: Equipment
      x-tags:
        - Equipment
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
            - brand
            - model
            - serial_number
            - equipment_type_id
            - equipment_status_id
            - group_id
            - purchase_vendor_id
            - purchase_price_cents
            - purchase_date
            - warranty_expiration_date
            - purchase_comments
            - in_service_date
            - estimated_service_life
            - out_of_service_date
            - comments_count
            - created_at
            - updated_at
            - archived_at
            - documents_count
            - images_count
            - watchers_count
          properties:
            account_id:
              type: integer
              description: The ID of the `Account` this Equipment belongs to.
            name:
              type: string
              description: The name for this Equipment.
            brand:
              type: string
              nullable: true
              description: The name of the brand which makes this Equipment.
            model:
              type: string
              nullable: true
              description: The model name of this Equipment.
            serial_number:
              type: string
              nullable: true
              description: The serial number of this Equipment.
            equipment_type_id:
              $ref: '#/components/schemas/Id'
            equipment_status_id:
              $ref: '#/components/schemas/Id'
            group_id:
              $ref: '#/components/schemas/NullableId'
            purchase_vendor_id:
              $ref: '#/components/schemas/NullableId'
            purchase_price_cents:
              type: number
              nullable: true
              description: The purchase price in cents.
            purchase_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment was purchased.
            warranty_expiration_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment warranty expires.
            purchase_comments:
              type: string
              nullable: true
              description: Any comments about the purchase of this Equipment.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            in_service_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: The date on which the Equipment was put into service.
            estimated_service_life:
              type: integer
              nullable: true
              description: The estimated duration in months of the service life for this Equipment.
            out_of_service_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: |-
                The estimated date on which the Equipment will be retired from
                service.
            archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time at which the Equipment was archived.
            current_location_entry_id:
              $ref: '#/components/schemas/NullableId'
            watchers_count:
              type: integer
              description: The number of users watching this Equipment.
            watchable_options:
              type: object
            bulk_watch_record:
              type: boolean
              description: Whether or not to bulk watch this Equipment.
            estimated_resale_price_cents:
              type: integer
              nullable: true
              description: The estimated resale price of this Equipment.
            label_list:
              type: array
              items:
                type: string
              description: A list of any labels applied to this Equipment.
            skip_automatic_watchers_callbacks:
              type: boolean
              description: Whether or not to skip automatic watchers callbacks on this Equipment.
            comments_count:
              type: integer
              minimum: 0
              description: The number of `Comments` on this Equipment.
            documents_count:
              type: integer
              minimum: 0
              description: The number of documents attached to this Equipment.
            images_count:
              type: integer
              minimum: 0
              description: The number of images attached to this Equipment.
    EquipmentUpdateParameters:
      title: EquipmentParameters
      x-tags:
        - Equipment
      description: Parameters used to create a new Equipment
      type: object
      properties:
        name:
          type: string
          description: The name for this Equipment.
        brand:
          type: string
          description: The name of the brand which makes this Equipment.
        model:
          type: string
          description: The model name of this Equipment.
        serial_number:
          type: string
          description: The serial number of this Equipment.
        type_id:
          $ref: '#/components/schemas/Id'
        status_id:
          $ref: '#/components/schemas/Id'
        group_id:
          $ref: '#/components/schemas/NullableId'
        group_hierarchy:
          type: string
          description: |-
            A pipe delimited group hierarchy. Ex: "Level 1|Level 2|Level 3". Where
            Level 1 is the parent of Level 2, and 2 is the parent of 3. Any missing
            nodes in the hierarchy will be created.
        purchase_vendor_id:
          $ref: '#/components/schemas/NullableId'
        purchase_price:
          type: number
          description: The price at which the Equipment was purchased.
        purchase_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        warranty_expiration_date:
          type: string
          format: date
          example: '2023-03-14'
          description: The date on which the Equipment warranty expires.
        purchase_comments:
          type: string
          description: Any comments about the purchase of this Equipment.
        in_service_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        estimated_service_life:
          type: integer
          description: The estimated duration in months of the service life for this Equipment.
        estimated_resale_price:
          type: number
          description: The estimated resale price of this Equipment.
        out_of_service_date:
          type: string
          format: date
          example: '2023-03-14'
          description: |-

            We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
        linked_vehicle_id:
          $ref: '#/components/schemas/NullableId'
        assignee_id:
          $ref: '#/components/schemas/NullableId'
        default_image:
          type: string
          format: uri
          nullable: true
          description: The default image URL for this Equipment.
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        documents_attributes:
          type: array
          description: |-
            An array of one or more document objects to add to the record.
            Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
            to upload to our third party storage provider in order to obtain `file_url`.
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
                description: The name to give the file which will be shown in the UI.
              file_url:
                type: string
                maxLength: 255
                description: The URL obtained from our storage provider that points to the file.
              file_mime_type:
                type: string
                maxLength: 255
                description: The MIME type of the file. For example, `application/pdf`.
              file_name:
                type: string
                maxLength: 255
                description: The name of the file.
              file_size:
                type: integer
                description: The size of the file in bytes.
        images_attributes:
          type: array
          description: |-
            An array of one or more image objects to add to the record.
            Follow our [Attaching Documents and Images](/docs/overview/attaching-documents-and-images) guide
            to upload to our third party storage provider in order to obtain `file_url`.
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
                description: The name to give the image which will be shown in the UI.
              file_url:
                type: string
                maxLength: 255
                description: The URL obtained from our storage provider that points to the image.
              file_mime_type:
                type: string
                maxLength: 255
                description: The MIME type of the image. For example, `image/png`.
              file_name:
                type: string
                maxLength: 255
                description: The name of the image.
              file_size:
                type: integer
                description: The size of the image file in bytes.
    Assignable:
      type: object
      properties:
        started_at:
          type: string
          format: date-time
          nullable: true
          description: The date and time at which this Assignment began.
        ended_at:
          type: string
          format: date-time
          nullable: true
          description: The date and time at which this Assignment ended
        deleted_at:
          type: string
          format: date-time
          nullable: true
          description: The date and time at which this Assignment was deleted.
        active:
          type: boolean
          default: false
          description: Whether or not this Assignment is active.
    EquipmentAssignment:
      title: EquipmentAssignment
      x-tags:
        - EquipmentAssignment
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/Assignable'
        - type: object
          required:
            - equipment_id
            - contact_id
            - actor_id
            - active
            - started_at
            - ended_at
            - deleted_at
            - assigned_contact
            - actor
          properties:
            equipment_id:
              $ref: '#/components/schemas/Id'
            contact_id:
              $ref: '#/components/schemas/Id'
            actor_id:
              $ref: '#/components/schemas/Id'
            assigned_contact:
              $ref: '#/components/schemas/Contact'
            actor:
              $ref: '#/components/schemas/Contact'
    EquipmentAssignmentParameters:
      title: EquipmentAssignmentParameters
      x-tags:
        - EquipmentAssignment
      type: object
      required:
        - assignee_id
      description: Parameters used to create a new Equipment Assignment
      properties:
        assignee_id:
          $ref: '#/components/schemas/Id'
    EquipmentStatus:
      title: Equipment Status
      x-tags:
        - Equipment Statuses
      description: An Equipment Status
      type: object
      required:
        - account_id
        - name
        - default
        - color
        - position
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Equipment Status.
        default:
          type: boolean
          default: false
          description: Indicates whether this is the default Equipment Status applied to new Equipment.
        color:
          type: string
          nullable: true
          description: The color displayed in the UI for this Equipment Status.
        position:
          type: integer
          description: The position of this Equipment Status in the list of Equipment Statuses.
    EquipmentType:
      title: Equipment Type
      x-tags:
        - Equipment Types
      description: An Equipment Type
      type: object
      required:
        - account_id
        - name
        - default
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Equipment Type.
        default:
          type: boolean
          default: false
          description: Indicates whether this is the default Equipment Type applied to new `Equipment`.
    ExpenseEntry:
      title: Expense Entry
      x-tags:
        - Expense Entries
      description: An Expense Entry
      required:
        - expense_entry_type_id
        - expense_entry_type_name
        - notes
        - occurred_at
        - vehicle_id
        - vehicle_name
        - vendor_id
        - vendor_name
        - custom_fields
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            total_amount:
              type: number
              format: float
              description: The total amount of the expense.
            notes:
              type: string
              nullable: true
              description: Additional comments.
            expense_entry_type_id:
              $ref: '#/components/schemas/Id'
            expense_entry_type_name:
              type: string
              description: Name of the [Expense Entry Type](/docs/api/expense-entry-types) associated with this entry.
            occurred_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: Date and time of the expense.
            vehicle_id:
              type: integer
              description: The ID of the associated `Vehicle`.
            vehicle_name:
              type: string
              description: The name of the associated `Vehicle`.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            vendor_name:
              type: string
              nullable: true
              description: The name of the associated `Vendor`.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
    ExpenseEntry_Created:
      title: Expense Entry
      x-tags:
        - Expense Entries
      description: An Expense Entry
      required:
        - account_id
        - expense_entry_type_id
        - occurred_at
        - vehicle_id
        - vendor_id
        - custom_fields
        - comments_count
        - documents_count
        - images_count
        - total_amount_cents
        - watchable_options
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            account_id:
              type: integer
              description: The ID of the `Account` that owns this Expense Entry.
            notes:
              type: string
              nullable: true
              description: Additional comments.
            expense_entry_type_id:
              $ref: '#/components/schemas/Id'
            occurred_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: Date and time of the expense.
            vehicle_id:
              type: integer
              description: The ID of the associated `Vehicle`.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            billable_id:
              type: integer
              nullable: true
              description: The ID of the associated `Acquisition`, if applicable.
            billable_type:
              type: string
              nullable: true
              description: The billable type, if applicable.
              enum:
                - Acquisition
            bulk_watch_record:
              type: boolean
              description: Whether or not this record is being watched in bulk.
            comments_count:
              type: integer
              minimum: 0
              description: The number of `Comments` on this record.
            documents_count:
              type: integer
              minimum: 0
              description: The number of documents attached to this record.
            images_count:
              type: integer
              minimum: 0
              description: The number of images attached to this record.
            import_id:
              type: integer
              nullable: true
              description: The ID of the `Import` that created this record, if applicable.
            is_sample:
              type: boolean
              description: Whether or not this record is sample data.
            recurring_expense_entry_id:
              type: integer
              nullable: true
              description: The ID of the associated recurring Expense Entry, if applicable.
            skip_automatic_watchers_callbacks:
              type: boolean
              description: Whether or not to skip automatic watchers callbacks.
            total_amount_cents:
              type: string
              description: The total amount of the expense.
            vehicle_archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time the associated `Vehicle` was archived, if applicable.
            watchable_options:
              type: object
              description: Options related to watching the record.
    ExpenseEntryType:
      title: Expense Entry Type
      x-tags:
        - ExpenseEntryTypes
      description: An Expense Entry Type
      type: object
      required:
        - name
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        name:
          type: string
          description: The name of the Expense Entry Type.
    ExpenseEntryType_Created:
      title: Expense Entry Type
      x-tags:
        - ExpenseEntryTypes
      description: An Expense Entry Type
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
            - description
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            name:
              type: string
            description:
              type: string
              nullable: true
              deprecated: true
    FaultRule:
      title: Fault Rule
      x-tags:
        - Faults
      description: A Fault Rule
      type: object
      required:
        - account_id
        - name
        - code
        - description
        - priority_handling
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        code:
          type: string
          description: The diagnostic trouble code.
        description:
          type: string
          nullable: true
          description: A short description about the problem.
        priority_handling:
          type: string
          nullable: true
          description: |-
            The priority handling for the alert. This is configurable through the Fleetio
            dashboard under [Fault Rules](https://help.fleetio.com/s/article/Faults-Overview#add-rules).
          enum:
            - 'off'
            - ignore
            - critical
        name:
          type: string
          nullable: true
          description: A short name for the alert.
    Fault:
      title: Fault
      x-tags:
        - Faults
      description: A Fault
      required:
        - account_id
        - name
        - description
        - code
        - count
        - vehicle_id
        - external_id,
        - last_occurred_at
        - status
        - vehicle_archived_at
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            vehicle_id:
              $ref: '#/components/schemas/NullableId'
            code:
              type: string
              description: The diagnostic trouble code.
            count:
              type: integer
              nullable: true
              description: The number of times this Fault has occurred.
            description:
              type: string
              nullable: true
              description: A short description about the problem.
            external_id:
              type: string
              nullable: true
              description: An external identifier for the Fault, if applicable.
            last_occurred_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time when the Fault last occurred.
            name:
              type: string
              nullable: true
              description: The name or label for the Fault.
            status:
              type: string
              default: open
              enum:
                - open
                - resolved
                - ignored
              description: The status of the Fault.
            source:
              type: string
              nullable: true
              description: The source or origin of the Fault.
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time when the associated `Vehicle` was archived, if applicable.
            fault_rule_id:
              $ref: '#/components/schemas/NullableId'
            is_sample:
              type: boolean
              description: Indicates if the Fault is sample data.
            idempotency_key:
              type: string
              nullable: true
              description: An optional key for idempotent operations.
    VehicleMeterEntry:
      title: Meter Entry
      x-tags:
        - Meter Entries
      description: A Meter Entry
      nullable: true
      type: object
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        auto_voided_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: |-
            The date and time at which this Meter Entry was automatically voided. Formatted according to ISO-8601 in
            `User`'s local time.
        category:
          type: string
          enum:
            - starting
            - ending
            - nightly
            - manual
          nullable: true
          description: A category to describe the function of this Meter Entry.
        meter_type:
          type: string
          enum:
            - secondary
          nullable: true
          description: Indicates whether or not this Meter is a secondary Meter.
        meterable_id:
          $ref: '#/components/schemas/NullableId'
        meterable_type:
          type: string
          enum:
            - FuelEntry
            - Issue
            - PurchaseDetail
            - ServiceEntry
            - SubmittedInspectionItem
            - VehicleAssignment
            - WorkOrder
          nullable: true
          description: The type of the object with which this Meter Entry is associated.
        value:
          type: string
          description: The current value of the meter.
        vehicle_id:
          $ref: '#/components/schemas/NullableId'
        void:
          type: boolean
          default: false
          description: Indicates whether or not this Meter Entry has been voided.
        type:
          type: string
          enum:
            - GpsMeterEntry
          nullable: true
        date:
          type: string
          format: date
          example: '2023-03-14'
          description: The date on which this Meter Entry was recorded. Formatted according to ISO-8601.
    Geolocation:
      title: Geolocation
      type: object
      nullable: true
      properties:
        gps_device:
          type: string
          nullable: true
        original_vendor:
          type: string
          nullable: true
        exception_distance_in_mi:
          type: number
          nullable: true
        exception_distance_in_km:
          type: number
          nullable: true
    MapPreviews:
      title: MapPreviews
      type: object
      properties:
        small:
          type: string
          nullable: true
        large:
          type: string
          nullable: true
        small_short:
          type: string
          nullable: true
        large_short:
          type: string
          nullable: true
    Commentable:
      type: object
      nullable: true
      properties:
        comments:
          type: array
          items:
            $ref: '#/components/schemas/Comment'
          description: A list of the comments made on this record.
        comments_count:
          type: integer
          minimum: 0
          description: The number of comments made on this record.
    Imageable:
      type: object
      nullable: true
      properties:
        images:
          type: array
          items:
            $ref: '#/components/schemas/Image'
          description: A list of the images attached to this record.
        images_count:
          type: integer
          minimum: 0
          description: The number of images attached to this record.
    DocumentableType:
      title: DocumentableType
      type: string
      enum:
        - ServiceEntry
        - FuelEntry
        - Issue
        - WorkOrder
        - ExpenseEntry
        - Vehicle
    Document:
      title: Document
      description: A Document
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - name
            - description
            - documentable_id
            - documentable_type
            - file_name
            - file_mime_type
            - file_size
            - file_url
            - full_file_url
          properties:
            name:
              type: string
              description: The name of the document.
            description:
              type: string
              description: The description of the document.
            documentable_id:
              $ref: '#/components/schemas/Id'
            documentable_type:
              $ref: '#/components/schemas/DocumentableType'
            file_name:
              type: string
              description: The name of the file.
            file_mime_type:
              type: string
              description: The MIME type of the file.
            file_size:
              type: number
              description: The size of the file in bytes.
            file_url:
              type: string
              description: The URL to access the file.
            full_file_url:
              type: string
              description: The full URL to access the file, including any necessary authentication or parameters.
    Documentable:
      type: object
      nullable: true
      properties:
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
          description: A list of the documents attached to this record.
        documents_count:
          type: integer
          minimum: 0
          description: The number of documents attached to this record.
    FuelEntry:
      title: Fuel Entry
      x-tags:
        - Fuel Entries
      description: A Fuel Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - cost_per_hr
            - cost_per_km
            - cost_per_mi
            - date
            - external_id
            - fuel_type_id
            - fuel_type_name
            - kpl
            - liters
            - liters_per_hr
            - lp100k
            - mpg_uk
            - mpg_us
            - partial
            - personal
            - price_per_volume_unit
            - raw_transaction_data
            - reference
            - region
            - reset
            - uk_gallons
            - uk_gallons_per_hr
            - us_gallons
            - us_gallons_per_hr
            - usage_in_hr
            - usage_in_km
            - usage_in_mi
            - vehicle_id
            - vehicle_name
            - vendor_id
            - vendor_name
            - images_count
            - documents_count
            - comments_count
            - is_sample
            - meter_entry
            - geolocation
            - comments
            - map_previews
            - total_amount
          properties:
            cost_per_hr:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per hour since the last Fuel Entry.
            cost_per_km:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per km since the last Fuel Entry.
            cost_per_mi:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per mi since the last Fuel Entry.
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Fuel Entry was recorded.
            external_id:
              type: string
              nullable: true
              description: |-
                Used to uniquely identify Fuel Entries that are imported from external
                systems, such as Fleetcor and Wex.
            fuel_type_id:
              type: integer
              minimum: 1
              nullable: true
              description: The Fleetio `id` of the `Fuel Type` associated with this Fuel Entry.
            fuel_type_name:
              type: string
              nullable: true
              description: The name of the `Fuel Type` associated with this Fuel Entry.
            kpl:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded kilometers per liter (calculated automatically).
            liters:
              type: string
              nullable: true
              description: |
                The fuel volume amount in liters. This field will _only_ be used if the
                [Vehicle](/docs/api/vehicles) is [configured to use
                liters](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            liters_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average recorded liters per hour (calculated automatically).
            lp100k:
              type: number
              format: float
              nullable: true
              description: |-
                Running average recorded liters per 100 kilometers (calculated
                automatically).
            mpg_uk:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded miles per UK Gallon (calculated automatically).
            mpg_us:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded miles per US Gallon (calculated automatically).
            partial:
              type: boolean
              description: |
                Used to denote a partial fuel up as opposed to a complete fuel up. Learn
                more about partial Fuel Entries
                [here](https://help.fleetio.com/s/article/Partial-Fuel-Entries).
            personal:
              type: boolean
              description: Used to denote a personal expense.
            price_per_volume_unit:
              type: number
              format: float
              nullable: true
              description: The unit price for the `Vehicle`'s volume unit.
            raw_transaction_data:
              type: object
              nullable: true
              description: This object is dynamically populated by external fuel card integrations.
            reference:
              type: string
              nullable: true
              description: |
                Optional data field for collecting information such as the invoice number,
                transaction id, or receipt number, for example.
            region:
              type: string
              nullable: true
            reset:
              type: boolean
              default: false
            uk_gallons:
              type: string
              description: |
                The fuel volume amount in UK gallons. This field will _only_ be used if
                the [Vehicle](/docs/api/vehicles) is [configured to use UK
                Gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            uk_gallons_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average of UK gallons used per hour. Calculated automatically.
            us_gallons:
              type: string
              description: |
                The fuel volume amount in US gallons. This field will _only_ be used if
                the [Vehicle](/docs/api/vehicles) is [configured to use US
                Gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            us_gallons_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average of US gallons used per hour. Calculated automatically.
            usage_in_hr:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in hours since the most recent Fuel
                Entry.
            usage_in_km:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in kilometers since the most recent
                Fuel Entry.
            usage_in_mi:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in miles since the most recent
                Fuel Entry.
            vehicle_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The Fleetio `id` of the [Vehicle](/docs/api/vehicles) associated with this
                Fuel Entry.
            vehicle_name:
              type: string
              description: |
                The name of the [Vehicle](/docs/api/vehicles) associated with this Fuel
                Entry.
            vendor_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The Fleetio `id` of the [Vendor](/docs/api/vendors) associated with this
                Fuel Entry.
            vendor_name:
              type: string
              nullable: true
              description: |-
                The name of the [Vendor](/docs/api/vendors) associated with this Fuel
                Entry.
            is_sample:
              type: boolean
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            fuel_economy_for_current_user:
              type: string
              nullable: true
            fuel_economy_units_for_current_user:
              type: string
              default: MPG
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            geolocation:
              $ref: '#/components/schemas/Geolocation'
            map_previews:
              $ref: '#/components/schemas/MapPreviews'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            total_amount:
              type: number
              format: float
              description: The total amount of the Fuel Entry.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Imageable'
        - $ref: '#/components/schemas/Documentable'
    ContactMini:
      title: Contact
      x-tags:
        - Contacts
      description: A Contact
      type: object
      nullable: true
      properties:
        id:
          type: integer
        email:
          type: string
          nullable: true
          description: The Contact's email address.
        name:
          type: string
          nullable: true
          description: The Contact's full name.
        group_id:
          type: integer
          nullable: true
          description: |-
            If this Contact belongs to a [Group](/docs/api/groups), this will be
            the Fleetio ID of that `Group`.
        employee:
          type: boolean
          nullable: true
          description: Whether or not the Contact is an employee.
        employee_number:
          type: string
          nullable: true
          description: The employee number of the  Contact.
        default_image_url:
          type: string
          nullable: true
          description: The URL of the Contact's default image/profile photo, if any.
    FuelEntry_Show:
      title: Fuel Entry
      x-tags:
        - Fuel Entries
      description: A Fuel Entry
      allOf:
        - $ref: '#/components/schemas/FuelEntry'
        - type: object
          properties:
            created_by:
              $ref: '#/components/schemas/ContactMini'
    FuelType:
      title: Fuel Type
      x-tags:
        - Fuel Types
      description: A Fuel Type
      type: object
      required:
        - account_id
        - name
        - vehicles_count
        - fuel_entries_count
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Fuel Type. Unique within the `Account`.
        vehicles_count:
          type: integer
          description: The number of `Vehicles` that have used this Fuel Type.
        fuel_entries_count:
          type: integer
          description: The number of `Fuel Entries` that have used this Fuel Type.
    Group:
      title: Group
      x-tags:
        - Groups
      description: A Group
      type: object
      required:
        - name
        - default
        - parent_id
        - ancestry
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        name:
          type: string
          description: The name of the Group.
        default:
          type: boolean
          description: Indicates whether this Group is the default Group.
        parent_id:
          $ref: '#/components/schemas/NullableId'
        ancestry:
          type: string
          nullable: true
          description: |-
            A pipe delimited list of ancestor Group IDs, starting with the root
            Group and ending with the immediate parent Group.
    Group_Created:
      title: Group Created
      x-tags:
        - Groups
      description: A Group
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - ancestry_names
            - watched_group_subscriptions_count
            - is_sample
            - unarchived_vehicles_count
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            name:
              type: string
              description: The name of the Group.
            default:
              type: boolean
              description: Indicates whether this Group is the default Group.
            ancestry:
              type: string
              nullable: true
              description: |-
                A pipe delimited list of ancestor Group IDs, starting with the root
                Group and ending with the immediate parent Group.
            ancestry_names:
              type: string
              nullable: true
              description: |-
                A pipe delimited list of ancestor Group names, starting with the root
                Group and ending with the immediate parent Group.
            watched_group_subscriptions_count:
              type: integer
              description: The count of subscriptions to this Group.
            is_sample:
              type: boolean
              description: Indicates whether this Group is a sample Group.
            unarchived_vehicles_count:
              type: integer
              description: The count of unarchived `Vehicles` within this Group.
    InspectionSchedule:
      title: Inspection Schedule
      x-tags:
        - Inspection Schedules
      description: An Inspection Schedule
      type: object
      required:
        - active
        - vehicle_id
        - inspection_form_id
        - recurring_rule_description
        - overdue
        - due_soon
      properties:
        id:
          $ref: '#/components/schemas/Id'
        active:
          type: boolean
          description: Whether this Inspection Schedule is active.
        vehicle_id:
          $ref: '#/components/schemas/Id'
        inspection_form_id:
          $ref: '#/components/schemas/Id'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        recurring_rule_description:
          type: string
          description: This describes the recurrence behavior of the Inspection Schedule.
        overdue:
          type: boolean
          description: Whether this Inspection Schedule is overdue.
        due_soon:
          type: boolean
          description: Whether this Inspection Schedule is due soon.
        next_due:
          type: string
          example: October 18, 2023
          description: |-
            The date on which this Inspection Schedule is next due.
            This attribute will only appear in responses if there is a next due date.
        next_due_relative_time:
          type: string
          description: |-
            The relative time until this Inspection Schedule is next due.
            If the Inspection Schedule is overdue, it will describe how long ago it was due.
            This attribute will only appear in responses if there is a next due date, or overdue.
        recurring_schedule_start_at:
          type: string
          example: October 18, 2023
          description: |-
            The date on which this Inspection Schedule's recurrence behavior began.
            This attribute will only appear in responses if the Inspection Schedule is recurring.
        upcoming_occurrences:
          type: array
          items:
            type: string
            description: |-
              Any upcoming occurrences of this Inspection Schedule.
              This attribute will only be included if the query
              parameter `include_occurrences` is set to `1`.
    InventoryAdjustmentReason:
      title: Inventory Adjustment Reason
      x-tags:
        - Inventory Adjustment Reasons
      description: An Inventory Adjustment Reason
      type: object
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Inventory Adjustment Reason.
        description:
          type: string
          nullable: true
          description: A short description of the Inventory Adjustment Reason.
        inventory_journal_entries_count:
          type: integer
          description: |-
            The number of [Inventory Journal Entries](/api/docs/inventory-journal-entries)
            using this Inventory Adjustment Reason.
    InventoryJournalEntry:
      title: Inventory Journal Entry
      x-tags:
        - Inventory Journal Entries
      description: An Inventory Journal Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - adjustment_quantity
            - adjustment_type
            - comments_count
            - current_quantity
            - inventory_adjustment_reason_id
            - part_id
            - part_location_detail_id
            - previous_quantity
            - purchase_order_line_item_id
            - transfer_part_location_id
            - user_id
            - vendor_id
            - work_order_id
            - work_order_part_line_item_id
            - work_order
            - purchase_order
            - part
            - part_location
            - inventory_adjustment_reason
            - vendor
            - user
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            user_id:
              type: integer
              description: The ID of the `User` associated with the entry.
            part_id:
              type: integer
              description: The ID of the `Part` associated with the entry.
            part:
              type: object
              description: The `Part` number (unique) and ID of the `Part` associated with the entry.
              properties:
                number:
                  type: string
                id:
                  $ref: '#/components/schemas/Id'
            part_location_detail_id:
              type: integer
              description: |-
                The ID of the details of this `Part` at a specific `Part Location`.
                Not the same as `part_location_id`.
            part_location:
              type: object
              description: Information about the associated `Part Location`.
              properties:
                name:
                  type: string
                id:
                  $ref: '#/components/schemas/Id'
            previous_quantity:
              type: string
              description: The previous quantity of the `Part` before any adjustments.
            current_quantity:
              type: string
              description: The current quantity of the `Part` after adjustments.
            adjustment_quantity:
              type: string
              description: The quantity adjustment made to the `Part`'s count.
            work_order:
              type: object
              description: Information about the associated `Work Order`, if applicable.
              properties:
                number:
                  type: string
                id:
                  $ref: '#/components/schemas/Id'
              nullable: true
            work_order_part_line_item_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Work Order Part Line Item` associated with the entry.
                Only applicable if the entry is associated with a `Work Order`.
            inventory_adjustment_reason_id:
              type: integer
              nullable: true
              description: |-
                The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons)
                associated with the entry.
            inventory_adjustment_reason:
              type: object
              properties:
                name:
                  type: string
                  description: The `Inventory Adjustment Reason` name associated with the entry.
              nullable: true
            comments_count:
              type: integer
              description: How many `Comments` this entry has.
            adjustment_type:
              type: string
              description: The type of adjustment that triggered the entry.
              enum:
                - initial
                - manual
                - work_order
                - purchase_order
                - bulk_update
                - transfer
                - inspection_submission
                - inspection_shortfall
            transfer_part_location_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Part Location` that the `Part` was transferred to.
                Only applicable if the entry is associated with a transfer.
            purchase_order:
              type: object
              description: Information about the associated `Purchase Order`, if applicable.
              properties:
                number:
                  type: string
                id:
                  $ref: '#/components/schemas/Id'
              nullable: true
            purchase_order_line_item_id:
              type: integer
              nullable: true
              description: |-
                The ID of the ``Purchase Order Line Item` associated with the entry.
                Only applicable if the entry is associated with a `Purchase Order`.
            work_order_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Work Order` associated with the entry.
                Only applicable if the entry is associated with a `Work Order`.
            vendor_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Vendor` associated with the entry.
                Only applicable if the entry is associated with a `Purchase Order`.
            vendor:
              type: object
              description: Information about the associated `Vendor`, if applicable.
              properties:
                name:
                  type: string
                id:
                  $ref: '#/components/schemas/Id'
              nullable: true
            user:
              type: object
              description: Information about the `User` that created the entry.
              properties:
                email:
                  type: string
    CommentsAttributes:
      type: object
      properties:
        title:
          type: string
          description: The title of the comment.
        comment:
          type: string
          description: The comment text.
    InventoryJournalEntryCreateParameters:
      anyOf:
        - type: object
          required:
            - inventory_adjustment_reason_id
            - part_id
            - part_location_detail_id
            - adjustment_quantity
          properties:
            adjustment_quantity:
              type: number
              format: float
              description: The quantity adjustment to be made to the `Part`'s count.
            inventory_adjustment_reason_id:
              type: integer
              description: |-
                The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons)
                associated with the entry.
            current_quantity:
              type: number
              format: float
              description: The current quantity of the `Part` after adjustments.
            part_id:
              type: integer
              description: The ID of the `Part` associated with the entry.
            part_location_detail_id:
              type: integer
              description: |-
                This ID refers to the details of the `Part` at a specific `Part Location`.
                You can send a GET request to `https://secure.fleetio.com/api/v1/parts/:id`
                to get any `part_location_detail_id`(s) for a `Part`.
                The `id` attribute under the `part_locations` object is the value
                that corresponds to this parameter.
            comments_attributes:
              type: array
              items:
                $ref: '#/components/schemas/CommentsAttributes'
        - type: object
          required:
            - inventory_adjustment_reason_id
            - part_id
            - part_location_detail_id
            - current_quantity
          properties:
            adjustment_quantity:
              type: number
              format: float
              description: The quantity adjustment to be made to the `Part`'s count.
            inventory_adjustment_reason_id:
              type: integer
              description: |-
                The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons)
                associated with the entry.
            current_quantity:
              type: number
              format: float
              description: The current quantity of the `Part` after adjustments.
            part_id:
              type: integer
              description: The ID of the `Part` associated with the entry.
            part_location_detail_id:
              type: integer
              description: |-
                This ID refers to the details of the `Part` at a specific `Part Location`.
                You can send a GET request to `https://secure.fleetio.com/api/v1/parts/:id`
                to get any `part_location_detail_id`(s) for a `Part`.
                The `id` attribute under the `part_locations` object is the value
                that corresponds to this parameter.
            comments_attributes:
              type: array
              items:
                $ref: '#/components/schemas/CommentsAttributes'
    InventoryJournalEntry_Created:
      title: InventoryAdjustmentReason
      x-tags:
        - InventoryAdjustmentReasons
      description: An InventoryAdjustmentReason
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - adjustment_quantity
            - adjustment_type
            - comments_count
            - current_quantity
            - inventory_adjustment_reason_id
            - part_id
            - part_location_detail_id
            - previous_quantity
            - purchase_order_line_item_id
            - transfer_part_location_id
            - user_id
            - vendor_id
            - work_order_id
            - work_order_part_line_item_id
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            user_id:
              type: integer
              description: The ID of the `User` associated with the entry.
            part_id:
              type: integer
              description: The ID of the `Part` associated with the entry.
            part_location_detail_id:
              type: integer
              description: |-
                The ID of the details of this `Part` at a specific `Part Location`.
                Not the same as `part_location_id`.
            previous_quantity:
              description: The previous quantity of the `Part` before any adjustments.
              type: string
            current_quantity:
              description: The current quantity of the `Part` after adjustments.
              type: string
            adjustment_quantity:
              description: The quantity adjustment made to the `Part`'s count.
              type: string
            work_order_part_line_item_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Work Order Part Line Item` associated with the entry.
                Only applicable if the entry is associated with a `Work Order`.
            inventory_adjustment_reason_id:
              type: integer
              nullable: true
              description: |-
                The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons)
                associated with the entry.
            comments_count:
              type: integer
              description: How many `Comments` this entry has.
            adjustment_type:
              type: string
              description: The type of adjustment that triggered the entry.
              enum:
                - initial
                - manual
                - work_order
                - purchase_order
                - bulk_update
                - transfer
            transfer_part_location_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Part Location` that the `Part` was transferred to.
                Only applicable if the entry is associated with a transfer.
            purchase_order_line_item_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Purchase Order Line Item` associated with the entry.
                Only applicable if the entry is associated with a `Purchase Order`.
            work_order_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Work Order` associated with the entry.
                Only applicable if the entry is associated with a `Work Order`.
            unit_cost_cents:
              type: string
              nullable: true
              description: The unit cost in cents of the `Part` associated with the entry.
            total_inventory_value_cents:
              type: string
              nullable: true
              description: The total inventory value in cents of the `Part` associated with the entry.
            vendor_id:
              type: integer
              nullable: true
              description: |-
                The ID of the `Vendor` associated with the entry.
                Only applicable if the entry is associated with a `Purchase Order`.
            metadata:
              type: object
              nullable: true
              description: Additional metadata about the entry.
              properties:
                id:
                  type: integer
                  description: The ID of the associated record.
                number:
                  type: string
                  description: The number of the associated record.
                type:
                  type: string
                  enum:
                    - PurchaseOrder
                    - WorkOrder
    Labels:
      type: array
      items:
        type: object
        properties:
          id:
            $ref: '#/components/schemas/Id'
          name:
            type: string
    Issue_Index:
      title: Issue
      x-tags:
        - Issues
      description: An Issue
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - number
            - name
            - summary
            - description
            - state
            - reported_at
            - reported_by_id
            - reported_by_name
            - fault_id
            - due_date
            - due_meter_value
            - due_secondary_meter_value
            - vehicle_id
            - vehicle_name
            - created_by_workflow
            - submitted_inspection_form_id
            - custom_fields
            - valid_required_custom_fields
            - dtc_alert_id
            - assigned_contacts
            - labels
            - overdue
            - vehicle_image_url
            - vehicle_image_url_medium
            - vehicle_image_url_small
            - vehicle_image_url_large
            - linked_work_orders
            - source
            - is_watched
          properties:
            number:
              type: string
              description: A unique identifier for the Issue.
            name:
              type: string
              description: The name of the Issue.
            summary:
              type: string
              description: A summary of the Issue.
            description:
              type: string
              nullable: true
              description: A longer description of the Issue.
            state:
              type: string
              description: The Issue's current state.
              enum:
                - Open
                - Closed
                - Resolved
            reported_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the issue was reported.
            reported_by_id:
              $ref: '#/components/schemas/NullableId'
            reported_by_name:
              type: string
              nullable: true
              description: The name of the Contact associated with the User who reported this Issue.
            fault_id:
              $ref: '#/components/schemas/NullableId'
            due_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: |-
                The date on which this Issue should be resolved by.
                Formatted according to ISO-8601 in `User`'s local time zone.
            due_meter_value:
              type: string
              nullable: true
              description: The meter value at which this Issue should be resolved by.
            due_secondary_meter_value:
              type: number
              format: float
              nullable: true
              description: The secondary meter value at which this Issue should be resolved by.
            overdue:
              type: boolean
              description: Indicates whether the Issue is overdue.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_name:
              type: string
              description: The name of the Vehicle associated with this Issue.
            is_sample:
              type: boolean
              description: Indicates whether this Issue is sample data.
            created_by_workflow:
              type: boolean
              description: Indicates whether this Issue was created by a workflow.
            submitted_inspection_form_id:
              $ref: '#/components/schemas/NullableId'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            valid_required_custom_fields:
              type: boolean
            dtc_alert_id:
              $ref: '#/components/schemas/NullableId'
            assigned_contacts:
              type: array
              items:
                $ref: '#/components/schemas/Contact'
              description: An array of assigned Contacts related to the Issue.
            reported_by:
              $ref: '#/components/schemas/Contact'
            labels:
              type: array
              description: An array of labels related to the Issue.
              items:
                $ref: '#/components/schemas/Labels'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            resolvable_type:
              type: string
              nullable: true
              enum:
                - ServiceEntry
                - WorkOrder
              description: The type of the object which can resolve this Issue.
            resolved_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Issue was resolved.
            is_watched:
              type: boolean
              description: Indicates whether the Issue is watched.
              default: false
            resolvable_id:
              type: integer
              nullable: true
              description: The `Contact` ID of the `User` that resolved this Issue.
            vehicle_image_url:
              type: string
              nullable: true
              description: The URL to the image of the Vehicle associated with the Issue.
            vehicle_image_url_medium:
              type: string
              nullable: true
              description: The URL to a medium-sized Vehicle image associated with the Issue.
            vehicle_image_url_small:
              type: string
              nullable: true
              description: The URL to a small-sized Vehicle image associated with the Issue.
            vehicle_image_url_large:
              type: string
              nullable: true
              description: The URL to a large-sized Vehicle image associated with the Issue.
            watchers_count:
              type: integer
              description: The count of watchers related to the Issue.
            linked_work_orders:
              type: array
              nullable: true
              description: Summative information of linked Work Orders related to the Issue.
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  number:
                    type: integer
                    description: The Work Order number.
                  issued_at:
                    type: string
                    format: date-time
                    description: The date and time at which the Work Order was issued.
            source:
              type: object
              description: Inspection source information.
              properties:
                inspection_form:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    color:
                      type: string
                      nullable: true
                    title:
                      type: string
                      nullable: true
                inspection_submissions_count:
                  type: integer
                  nullable: true
                  description: The count of inspection submissions related to the Issue.
                last_inspection_submission_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: The date and time of the last inspection submission related to the Issue.
                failed_inspection_item_label:
                  type: string
                  nullable: true
                  description: The label associated with a failed inspection item.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Documentable'
        - $ref: '#/components/schemas/Imageable'
    Issue:
      title: Issue
      x-tags:
        - Issues
      description: An Issue
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - number
            - name
            - summary
            - description
            - state
            - reported_at
            - reported_by_id
            - reported_by_name
            - fault_id
            - due_date
            - due_meter_value
            - due_secondary_meter_value
            - vehicle_id
            - vehicle_name
            - created_by_workflow
            - submitted_inspection_form_id
            - custom_fields
            - valid_required_custom_fields
            - dtc_alert_id
            - assigned_contacts
            - labels
            - overdue
            - vehicle_image_url
            - vehicle_image_url_medium
            - vehicle_image_url_small
            - vehicle_image_url_large
            - linked_work_orders
            - source
            - is_watched
          properties:
            number:
              type: string
              description: A unique identifier for the Issue.
            name:
              type: string
              description: The name of the Issue.
            summary:
              type: string
              description: A summary of the Issue.
            description:
              type: string
              nullable: true
              description: A longer description of the Issue.
            state:
              type: string
              description: The Issue's current state.
              enum:
                - Open
                - Closed
                - Resolved
            reported_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the issue was reported.
            reported_by_id:
              $ref: '#/components/schemas/NullableId'
            reported_by_name:
              type: string
              nullable: true
              description: The name of the Contact associated with the User who reported this Issue.
            fault_id:
              $ref: '#/components/schemas/NullableId'
            due_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: |-
                The date on which this Issue should be resolved by.
                Formatted according to ISO-8601 in `User`'s local time zone.
            due_meter_value:
              type: string
              nullable: true
              description: The meter value at which this Issue should be resolved by.
            due_secondary_meter_value:
              type: number
              format: float
              nullable: true
              description: The secondary meter value at which this Issue should be resolved by.
            overdue:
              type: boolean
              description: Indicates whether the Issue is overdue.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_name:
              type: string
              description: The name of the Vehicle associated with this Issue.
            is_sample:
              type: boolean
              description: Indicates whether this Issue is sample data.
            created_by_workflow:
              type: boolean
              description: Indicates whether this Issue was created by a workflow.
            submitted_inspection_form_id:
              $ref: '#/components/schemas/NullableId'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            valid_required_custom_fields:
              type: boolean
            dtc_alert_id:
              $ref: '#/components/schemas/NullableId'
            assigned_contacts:
              type: array
              items:
                $ref: '#/components/schemas/Contact'
              description: An array of assigned Contacts related to the Issue.
            labels:
              $ref: '#/components/schemas/Labels'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            is_watched:
              type: boolean
              description: Indicates whether the Issue is watched.
              default: false
            vehicle_image_url:
              type: string
              nullable: true
              description: The URL to the image of the Vehicle associated with the Issue.
            vehicle_image_url_medium:
              type: string
              nullable: true
              description: The URL to a medium-sized Vehicle image associated with the Issue.
            vehicle_image_url_small:
              type: string
              nullable: true
              description: The URL to a small-sized Vehicle image associated with the Issue.
            vehicle_image_url_large:
              type: string
              nullable: true
              description: The URL to a large-sized Vehicle image associated with the Issue.
            watchers_count:
              type: integer
              description: The count of watchers related to the Issue.
            linked_work_orders:
              type: array
              nullable: true
              description: Summative information of linked Work Orders related to the Issue.
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  number:
                    type: integer
                    description: The Work Order number.
                  issued_at:
                    type: string
                    format: date-time
                    description: The date and time at which the Work Order was issued.
            source:
              type: object
              description: Inspection source information.
              properties:
                inspection_form:
                  type: object
                  properties:
                    id:
                      $ref: '#/components/schemas/NullableId'
                    color:
                      type: string
                      nullable: true
                    title:
                      type: string
                      nullable: true
                inspection_submissions_count:
                  type: integer
                  nullable: true
                  description: The count of inspection submissions related to the Issue.
                last_inspection_submission_at:
                  type: string
                  format: date-time
                  nullable: true
                  description: The date and time of the last inspection submission related to the Issue.
                failed_inspection_item_label:
                  type: string
                  nullable: true
                  description: The label associated with a failed inspection item.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Documentable'
        - $ref: '#/components/schemas/Imageable'
    IssuePriority:
      title: Issue Priority
      x-tags:
        - Issue Priorities
      description: An Issue Priority represents the priority level of an Issue.
      type: object
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        alias:
          type: string
          nullable: true
          description: |-
            Can be used to replace the default priority name provided.
            Changes how the Issue is displayed throughout Fleetio.
        name:
          type: string
          description: The name of the Issue Priority.
        slug:
          type: string
          description: Indicates which icon will be shown for the Issue Priority.
        description:
          type: string
          description: A description providing more details about the Issue Priority.
        default:
          type: boolean
          description: Indicates whether this Issue Priority will be set as default for new `Issues`.
        enabled:
          type: boolean
          description: Indicates whether this Issue Priority is currently enabled.
        position:
          type: integer
          description: The position or order of the Issue Priority in a list or hierarchy.
    Label:
      title: Label
      x-tags:
        - Labels
      description: A Label
      required:
        - id
        - account_id
        - name
        - taggings_count
        - color
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Label. This is the value used to tag a record.
        taggings_count:
          type: integer
          description: The number of records that have been tagged with this Label.
        color:
          type: string
          example: '#E97451'
          description: The hex color of the Label.
    AddressComponents:
      title: AddressComponents
      type: object
      nullable: true
      properties:
        street_number:
          type: string
          description: The street number in the address.
        street:
          type: string
          description: The street name in the address.
        city:
          type: string
          description: The city in the address.
        region:
          type: string
          description: The region, state or province in the address.
        region_short:
          type: string
          description: The abbreviated region, state or province code.
        country:
          type: string
          description: The country in the address.
        country_short:
          type: string
          description: The abbreviated country code.
        postal_code:
          type: string
          description: The postal code, ZIP, or equivalent in the address.
    Coordinate:
      title: Coordinate
      type: number
      minimum: -90
      maximum: 90
    LocationEntry:
      title: Location Entry
      x-tags:
        - Location Entries
      description: A Location Entry
      type: object
      required:
        - locatable_type
        - locatable_id
        - date
        - contact_id
        - address
        - is_current
        - item_type
        - item_id
        - location
        - address_components
        - geolocation
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which this Location Entry was recorded.
        vehicle_id:
          $ref: '#/components/schemas/Id'
        item_type:
          type: string
          enum:
            - Vehicle
            - Equipment
          description: The type of object that this Location Entry is associated with.
        item_id:
          $ref: '#/components/schemas/NullableId'
        locatable_type:
          type: string
          enum:
            - FuelEntry
            - ServiceEntry
            - SubmittedInspectionForm
          nullable: true
          description: The type of object that triggered the creation of this Location Entry, if applicable.
        locatable_id:
          $ref: '#/components/schemas/NullableId'
        contact_id:
          $ref: '#/components/schemas/NullableId'
        address:
          type: string
          nullable: true
          description: The full address where this Location Entry took place.
        address_components:
          $ref: '#/components/schemas/AddressComponents'
        is_current:
          type: boolean
          description: |-
            Indicates whether this Location Entry is the most recent one for this
            object.
        location:
          type: string
          example: POINT (33.515000,-86.807610)
          description: A string representation of the recorded location.
        geolocation:
          type: object
          description: The coordinates of the recorded location.
          example:
            latitude: 33.515
            longitude: -86.80761
          properties:
            latitude:
              $ref: '#/components/schemas/Coordinate'
            longitude:
              $ref: '#/components/schemas/Coordinate'
    LocationEntryCreateParameters:
      anyOf:
        - title: For Contact
          type: object
          required:
            - contact_id
            - date
            - latitude
            - longitude
          properties:
            contact_id:
              $ref: '#/components/schemas/Id'
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
            latitude:
              $ref: '#/components/schemas/Coordinate'
            longitude:
              $ref: '#/components/schemas/Coordinate'
        - title: For Vehicle
          type: object
          required:
            - vehicle_id
            - date
            - latitude
            - longitude
          properties:
            vehicle_id:
              $ref: '#/components/schemas/Id'
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
            latitude:
              $ref: '#/components/schemas/Coordinate'
            longitude:
              $ref: '#/components/schemas/Coordinate'
    LocationEntry_Created:
      title: Location Entry
      x-tags:
        - Location Entries
      description: A Location Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - locatable_type
            - locatable_id
            - date
            - contact_id
            - address
            - is_current
            - item_type
            - item_id
            - location
            - address_components
            - account_membership_id
            - vehicle_archived_at
            - contact_archived_at
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Location Entry was recorded.
            item_type:
              type: string
              enum:
                - Vehicle
                - Contact
              description: The type of object that this Location Entry is associated with.
            item_id:
              $ref: '#/components/schemas/NullableId'
            locatable_type:
              type: string
              enum:
                - FuelEntry
                - ServiceEntry
                - SubmittedInspectionForm
              nullable: true
              description: The type of object that triggered the creation of this Location Entry, if applicable.
            locatable_id:
              $ref: '#/components/schemas/NullableId'
            contact_id:
              $ref: '#/components/schemas/NullableId'
            address:
              type: string
              nullable: true
              description: The full address where this Location Entry took place.
            address_components:
              $ref: '#/components/schemas/AddressComponents'
            is_current:
              type: boolean
              description: |-
                Indicates whether this Location Entry is the most recent one for this
                object.
            location:
              type: string
              example: POINT (33.515000,-86.807610)
              description: A string representation of the recorded location.
            account_membership_id:
              $ref: '#/components/schemas/NullableId'
            vehicle_archived_at:
              type: string
              nullable: true
              format: date-time
              description: The date and time at which the `Vehicle` associated with this Location Entry was archived, if applicable.
            contact_archived_at:
              type: string
              nullable: true
              format: date-time
              description: The date and time at which the `Contact` associated with this Location Entry was archived, if applicable.
    LocationEntryUpdateParameters:
      allOf:
        - title: For Contact
          type: object
          properties:
            contact_id:
              $ref: '#/components/schemas/Id'
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
            latitude:
              $ref: '#/components/schemas/Coordinate'
            longitude:
              $ref: '#/components/schemas/Coordinate'
        - title: For Vehicle
          type: object
          properties:
            vehicle_id:
              $ref: '#/components/schemas/Id'
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
            latitude:
              $ref: '#/components/schemas/Coordinate'
            longitude:
              $ref: '#/components/schemas/Coordinate'
    MeterEntry:
      title: MeterEntry
      x-tags:
        - Meter Entries
      description: A Meter Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - auto_voided_at
            - category
            - meter_type
            - meterable_id
            - meterable_type
            - value
            - vehicle_id
            - void
            - type
            - gps_provider
            - date
          properties:
            auto_voided_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Meter Entry was automatically voided.
            category:
              type: string
              enum:
                - starting
                - ending
                - nightly
                - manual
              nullable: true
              description: A category to describe the function of this Meter Entry.
            meter_type:
              type: string
              enum:
                - secondary
              nullable: true
              description: Indicates whether this Meter Entry is for a secondary meter.
            meterable_id:
              $ref: '#/components/schemas/NullableId'
            meterable_type:
              type: string
              enum:
                - FuelEntry
                - Issue
                - PurchaseDetail
                - ServiceEntry
                - SubmittedInspectionItem
                - VehicleAssignment
                - WorkOrder
              nullable: true
              description: The type of the object with which this Meter Entry is associated.
            value:
              type: string
              description: The current value of the meter.
            vehicle_id:
              $ref: '#/components/schemas/NullableId'
            void:
              type: boolean
              default: false
              description: Indicates whether or not this Meter Entry has been voided.
            type:
              type: string
              enum:
                - GpsMeterEntry
              nullable: true
              description: Indicates if this Meter Entry was submitted by a GPS provider.
            gps_provider:
              type: object
              nullable: true
              description: The GPS provider that submitted this Meter Entry.
            date:
              type: string
              format: date
              example: '2023-03-14'
              description: The date on which this Meter Entry was recorded.
    MeterEntry_Created:
      title: MeterEntry
      x-tags:
        - Meter Entries
      description: A MeterEntry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - auto_voided_at
            - category
            - meter_type
            - meterable_id
            - meterable_type
            - value
            - vehicle_id
            - void
            - gps_provider
            - date
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            auto_voided_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Meter Entry was automatically voided.
            category:
              type: string
              enum:
                - starting
                - ending
                - nightly
                - manual
              nullable: true
              description: A category to describe the function of this Meter Entry.
            meter_type:
              type: string
              enum:
                - secondary
              nullable: true
              description: Indicates whether this Meter Entry is for a secondary meter.
            meterable_id:
              $ref: '#/components/schemas/NullableId'
            meterable_type:
              type: string
              enum:
                - FuelEntry
                - Issue
                - PurchaseDetail
                - ServiceEntry
                - SubmittedInspectionItem
                - VehicleAssignment
                - WorkOrder
              nullable: true
              description: The type of the object with which this Meter Entry is associated.
            value:
              type: string
              description: The current value of the meter.
            vehicle_id:
              $ref: '#/components/schemas/NullableId'
            void:
              type: boolean
              default: false
              description: Indicates whether or not this Meter Entry has been voided.
            gps_provider:
              type: object
              nullable: true
              description: The GPS provider that submitted this Meter Entry.
            date:
              type: string
              format: date
              example: '2023-03-14'
              description: The date on which this Meter Entry was recorded.
            vehicle_archived_at:
              type: string
              format: date-time
              nullable: true
              description: |-
                The date and time at which the `Vehicle` associated with this Meter Entry
                was archived, if applicable.
            auto_void_reason:
              type: string
              nullable: true
              description: The reason this Meter Entry was automatically voided.
            is_sample:
              type: boolean
              default: false
              description: Indicates whether or not this Meter Entry is sample data.
            gps_device_id:
              $ref: '#/components/schemas/NullableId'
            source:
              type: string
              nullable: true
              description: The source of this Meter Entry.
            active_meter_conflicts_caused_count:
              type: integer
              description: The number of active meter conflicts caused by this Meter Entry.
    PartLocation:
      title: Part Location
      x-tags:
        - Parts
      description: A Part Location
      type: object
      required:
        - account_id
        - name
        - description
        - archived_at
        - metadata
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of this Part Location.
        description:
          type: string
          nullable: true
          description: A description of this Part Location.
        archived_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which this Part Location was archived.
        metadata:
          type: object
          description: If this Part Location has any metadata, it will be shown here.
          properties:
            has_work_orders:
              type: boolean
              description: Whether or not this Part Location has any `Work Orders`.
            has_active_work_orders:
              type: boolean
              description: Whether or not this Part Location has any active `Work Orders`.
            has_purchase_orders:
              type: boolean
              description: Whether or not this Part Location has any `Purchase Orders`.
            has_active_purchase_orders:
              type: boolean
              description: Whether or not this Part Location has any active `Purchase Orders`.
            has_inventory_sets:
              type: boolean
              description: Whether or not this Part Location has any `Inventory Sets`.
            has_active_inventory_sets:
              type: boolean
              description: Whether or not this Part Location has any active `Inventory Sets`.
    PartCategory:
      type: object
      nullable: true
      properties:
        id:
          $ref: '#/components/schemas/Id'
        tire_category:
          type: boolean
          description: Indicates whether part is a tire or not
    PartLocationDetail:
      title: Part
      x-tags:
        - Parts
      description: The details of a Part at a specific Part Location.
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            active:
              type: boolean
              description: Whether this Part Location is active.
            aisle:
              type: string
              nullable: true
              description: The aisle in which the Part is located.
            available_quantity:
              description: How many of this Part are available at this Part Location.
              type: number
              format: float
            bin:
              type: string
              nullable: true
              description: The bin in which the Part is located.
            inventory_sets_count:
              type: integer
              description: The number of Inventory Sets that this Part is included in. FIFO/LIFO accounts only.
            has_been_used_in_work_orders:
              type: boolean
              nullable: true
              description: Whether this Part has been used in any Work Orders. FIFO/LIFO accounts only.
            name:
              type: string
              description: Alias of `part_location_name`.
            part_location_name:
              type: string
              description: The name of the Part Location for this Part.
            part_location_id:
              type: integer
              description: The ID of the Part Location for this Part.
            quantity_allocated_to_work_orders:
              type: number
              format: float
              nullable: true
              description: How many of these Parts are currently allocated to `Work Orders`.
            quantity_on_order:
              type: number
              format: float
              nullable: true
              description: How many of this Part are currently on order, if any.
            reorder_point:
              description: The lower-threshold quantity at which this Part should be reordered.
              type: number
              format: float
            reorder_point_enabled:
              type: boolean
              description: Whether this Part will be reordered at the reorder point.
            row:
              type: string
              nullable: true
              description: The row in which the Part is located.
            track_inventory:
              type: boolean
              description: Indicates whether inventory is tracked for this Part at this location.
            available_quantity_updated_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
            part_location_archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time at which the `Part Location` was archived, if applicable.
    Part:
      title: Part
      x-tags:
        - Parts
      description: A Part
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - description
            - manufacturer_part_number
            - measurement_unit_id
            - number
            - part_category_id
            - part_manufacturer_id
            - upc
            - total_quantity
            - comments_count
            - documents_count
            - images_count
            - custom_fields
            - inventory_item
            - part_category_name
            - part_manufacturer_name
            - measurement_unit_name
            - default_image_url
            - default_image_url_medium
            - default_image_url_small
            - default_image_url_large
            - unit_cost
            - part_locations
            - archived_at
            - comments
            - documents
            - images
            - attachment_permissions
          properties:
            description:
              type: string
              nullable: true
              description: A description of this Part.
            manufacturer_part_number:
              type: string
              nullable: true
              description: The part number from this Part's manufacturer.
            measurement_unit_id:
              $ref: '#/components/schemas/NullableId'
            number:
              type: string
              description: The part number being used for this Part within Fleetio.
            part_category_id:
              $ref: '#/components/schemas/NullableId'
            part_manufacturer_id:
              $ref: '#/components/schemas/NullableId'
            upc:
              type: string
              nullable: true
              description: The Universal Product Code for this Part.
            total_quantity:
              type: number
              format: float
              minimum: 0
              description: The total quantity on hand for this Part.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            inventory_item:
              type: boolean
              description: Indicates whether or not this Part is an inventory item.
            part_category:
              $ref: '#/components/schemas/PartCategory'
            part_category_name:
              type: string
              nullable: true
              description: The name of the part category associated with this Part.
            part_manufacturer_name:
              type: string
              nullable: true
              description: The name of the Part's manufacturer.
            measurement_unit_name:
              type: string
              nullable: true
              description: The measurement unit used by this Part.
            unit_cost:
              type: number
              format: float
              nullable: true
              description: The unit cost for this Part.
            average_unit_cost:
              type: number
              format: float
              nullable: true
              description: The average unit cost for this Part. FIFO/LIFO accounts only.
            part_locations:
              type: array
              items:
                $ref: '#/components/schemas/PartLocationDetail'
            default_image_url:
              type: string
              nullable: true
            default_image_url_medium:
              type: string
              nullable: true
            default_image_url_small:
              type: string
              nullable: true
            default_image_url_large:
              type: string
              nullable: true
            archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Part was archived.
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            has_active_inventory_sets:
              type: boolean
              description: |-
                Indicates whether this Part has any active
                [Inventory Sets](/docs/api/v-3-part-location-detail-inventory-sets-index). FIFO/LIFO accounts only.
            tire_config:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                aspect_ratio:
                  type: number
                  format: float
                  description: Aspect ratio of tire.
                rim_diameter:
                  type: number
                  format: float
                  description: Rim diameter of tire.
                load_index:
                  type: number
                  format: float
                  description: Load index of tire.
                metric_type:
                  type: string
                  description: Metric type of tire.
                  enum:
                    - EU
                    - P
                    - HL
                    - T
                    - LT
                    - C
                    - ST
                width:
                  type: number
                  format: float
                  description: Width of tire.
                construction:
                  type: string
                  description: Construction type of tire.
                  enum:
                    - B
                    - R
                    - D
                speed_rating:
                  type: string
                  description: Speed rating of tire.
                  enum:
                    - A1
                    - A2
                    - A3
                    - A4
                    - A5
                    - A6
                    - A7
                    - A8
                    - B
                    - C
                    - D
                    - E
                    - F
                    - G
                    - H
                    - J
                    - K
                    - L
                    - M
                    - 'N'
                    - P
                    - Q
                    - R
                    - S
                    - T
                    - U
                    - V
                    - W
                    - 'Y'
                factory_tread_depth:
                  type: number
                  format: float
                  description: Tread depth of tire in /32" when new, as specified by the manufacturer.
                minimum_tread_depth:
                  type: number
                  format: float
                  description: The legal minimum tread depth, in /32".
                life_expectancy:
                  type: integer
                  description: The Life Expectancy or “Warranty” of a tire is the expected meter range, usually measured in miles, of a given tire as specified by the manufacturer.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Documentable'
        - $ref: '#/components/schemas/Imageable'
    MeasurementUnit:
      title: MeasurementSystem
      type: object
      nullable: true
      properties:
        id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        symbol:
          type: string
          nullable: true
    Part_Created:
      title: Part
      x-tags:
        - Parts
      description: A Part
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - description
            - manufacturer_part_number
            - measurement_unit_id
            - number
            - part_category_id
            - part_manufacturer_id
            - upc
            - comments_count
            - documents_count
            - images_count
            - custom_fields
            - archived_at
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            description:
              type: string
              nullable: true
              description: A description of this Part.
            manufacturer_part_number:
              type: string
              nullable: true
              description: The part number from this Part's manufaturer.
            measurement_unit_id:
              $ref: '#/components/schemas/NullableId'
            number:
              type: string
              description: |-
                A unique number for this Part. Does not have to be the same as the
                manufacturer's number.
            part_category_id:
              $ref: '#/components/schemas/NullableId'
            part_manufacturer_id:
              $ref: '#/components/schemas/NullableId'
            upc:
              type: string
              nullable: true
              description: The Universal Product Code for this Part.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            unit_cost_cents:
              type: integer
              nullable: true
              description: The unit cost for this Part in cents.
            average_unit_cost_cents:
              type: integer
              nullable: true
              description: The average unit cost for this Part in cents.
            images_count:
              type: integer
              description: The number of images attached to this Part.
            documents_count:
              type: integer
              description: The number of documents attached to this Part.
            comments_count:
              type: integer
              description: The number of `Comments` attached to this Part.
            archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Part was archived.
            measurement_unit:
              $ref: '#/components/schemas/MeasurementUnit'
            has_active_inventory_sets:
              type: boolean
              description: |-
                Indicates whether this Part has any active
                [Inventory Sets](/docs/api/v-3-part-location-detail-inventory-sets-index).
    Place:
      title: Place
      x-tags:
        - Places
      description: A Place
      type: object
      required:
        - name
        - description
        - address
        - radius_in_meters
        - latitude
        - longitude
        - place_visits_count
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        name:
          type: string
          description: A name for this Place.
        address:
          type: string
          nullable: true
          description: This Place's address.
        description:
          type: string
          nullable: true
          description: A description of this Place.
        place_visits_count:
          type: integer
          nullable: true
          description: The number of times this Place has been visited.
        radius_in_meters:
          type: integer
          description: |-
            The radius around this Place's coordinates within which we consider
            this Place to have been visited.
        latitude:
          type: number
          format: float
          example: 33.515
          description: This Place's latitude.
        longitude:
          type: number
          format: float
          example: -86.80761
          description: This Place's longitude.
    Place_Created:
      title: Place
      x-tags:
        - Places
      description: A Place
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
            - description
            - address
            - radius_in_meters
            - latitude
            - longitude
            - place_visits_count
            - address_components
            - is_sample
            - location
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            name:
              type: string
              description: A name for this Place.
            address:
              type: string
              nullable: true
              description: This Place's address.
            address_components:
              type: object
            description:
              type: string
              nullable: true
              description: A description of this Place.
            place_visits_count:
              type: integer
              nullable: true
              description: The number of times this Place has been visited.
            radius_in_meters:
              type: integer
              description: |-
                The radius around this Place's coordinates within which we consider
                this Place to have been visited.
            latitude:
              type: number
              format: float
              example: 33.515
              description: This Place's latitude.
            longitude:
              type: number
              format: float
              example: -86.80761
              description: This Place's longitude.
            is_sample:
              type: boolean
              description: Whether this Place is part of [Sample Data](https://help.fleetio.com/s/article/Sample-Data).
            location:
              type: string
              description: The location of this Place.
    PurchaseDetail:
      title: Purchase Detail
      x-tags:
        - Purchase Details
      description: A set of Purchase Details belonging to a Vehicle
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - comment
            - date
            - meter_entry_value
            - vehicle_id
            - vehicle_name
            - vendor_id
            - vendor_name
            - warranty_expiration_date
            - warranty_expiration_meter_value
            - price
            - custom_fields
          properties:
            comment:
              type: string
              nullable: true
              description: Any additional information about the purchase.
            date:
              type: string
              nullable: true
              description: The date of the purchase.
            meter_entry_value:
              type: number
              format: float
              nullable: true
              description: The meter value at the time of purchase.
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            vehicle_id:
              $ref: '#/components/schemas/NullableId'
            vehicle_name:
              type: string
              nullable: true
              description: The name of the `Vehicle`.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            vendor_name:
              type: string
              nullable: true
              description: The name of the `Vendor`.
            warranty_expiration_date:
              type: string
              nullable: true
              description: The expiration date of the warranty, if applicable.
            warranty_expiration_meter_value:
              type: integer
              nullable: true
              description: The meter value at which the warranty would expire, if applicable.
            price:
              type: number
              format: float
              nullable: true
              description: The price of the `Vehicle`.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
    PurchaseOrderNumber:
      type: integer
      example: 1207
      description: |-
        Must be unique within the scope of your Account. You can either generate
        your own number or leave it blank and Fleetio will generate one for you.
        Fleetio will use the next number in the sequence based on your existing
        Purchase Orders. This becomes the unique identifier, even in endpoints.
        Id is never used.
    LabelList:
      type: array
      items:
        type: string
        example: High Priority
        maxLength: 255
      description: A list of tags associated with this record.
    PurchaseOrderState:
      type: string
      nullable: true
      enum:
        - draft
        - submitted_for_approval
        - rejected
        - approved
        - purchased
        - received_partial
        - received_full
        - closed
      description: |
        See the [Purchase Order Lifecycle
        Guide](/docs/guides/inventory/purchase-order-lifecycle) for more information about
        Purchase Order states and how to transition between them.
    PurchaseOrderLineItem:
      title: Purchase Order Line Item
      x-tags:
        - Purchase Orders
      description: A Purchase Order Line Item
      type: object
      required:
        - part_id
        - quantity
        - total_quantity_received
        - unit_cost
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        part_id:
          type: integer
          minimum: 1
          description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
        quantity:
          type: string
          example: '1.23'
          nullable: true
          description: The quantity of this `Part` to be purchased.
        total_quantity_received:
          type: string
          example: '1.23'
          nullable: true
          description: The quantity of this `Part` which was received.
        part_number:
          type: string
          nullable: true
          description: The number for the `Part` being purchased.
        unit_cost:
          type: number
          format: float
          example: 1.23
          nullable: true
          description: The cost of this `Part` (per unit).
        subtotal:
          description: The pre-tax subtotal amount.
          type: number
          format: float
          nullable: true
          example: 1.23
    PurchaseOrder:
      title: Purchase Order
      x-tags:
        - Purchase Orders
      description: A Purchase Order
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - number
            - description
            - label_list
            - submitted_for_approval_at
            - rejected_at
            - approved_at
            - purchased_at
            - received_partial_at
            - received_full_at
            - closed_at
            - state
            - documents_count
            - comments_count
            - custom_fields
            - part_location_id
            - vendor_id
            - purchase_order_line_items
          properties:
            number:
              $ref: '#/components/schemas/PurchaseOrderNumber'
            description:
              type: string
              nullable: true
              description: Open text field for Purchase Order description.
            label_list:
              $ref: '#/components/schemas/LabelList'
            state:
              $ref: '#/components/schemas/PurchaseOrderState'
            created_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                created this Purchase Order.
            rejected_by:
              type: string
              nullable: true
              description: The full name of the Contact that rejected the Purchase Order, if applicable.
            submitted_for_approval_at:
              type: string
              format: date-time
              description: |
                The date and time at which this Purchase Order was submitted for approval.
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
            submitted_for_approval_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the `User` who
                submitted this Purchase Order for approval.
            rejected_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was rejected.
              nullable: true
            approved_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was approved.
              nullable: true
            approved_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                approved this Purchase Order.
            purchased_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was purchased.
              nullable: true
            purchased_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                purchased this Purchase Order.
            received_partial_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was partially received.
              nullable: true
            received_partial_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                received this Purchase Order.
            received_full_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was fully received.
              nullable: true
            received_full_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                received this Purchase Order.
            closed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was closed.
              nullable: true
            closed_by:
              type: string
              nullable: true
              description: |
                The name of the [Contact](/docs/api/contacts) associated with the User who
                closed this Purchase Order.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            part_location_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The ID of the `Part Location` associated with this Purchase Order. Optional
                in the `draft` state.
            vendor_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The ID of the [Vendor](/docs/api/vendors) associated with this Purchase
                Order.
            part_location_name:
              type: string
              nullable: true
              description: The name of the `Part Location` associated with this Purchase Order.
            vendor_name:
              type: string
              nullable: true
              description: The name of the `Vendor` associated with this Purchase Order.
            purchase_order_line_items:
              type: array
              items:
                $ref: '#/components/schemas/PurchaseOrderLineItem'
            documents_count:
              type: integer
              nullable: true
              description: The number of documents attached to this Purchase Order.
            comments_count:
              type: integer
              nullable: true
              description: The number of `Comments` on this Purchase Order.
            shipping:
              type: number
              format: float
              nullable: true
              description: The shipping cost of this purchase.
            discount:
              type: number
              format: float
              nullable: true
              description: The discount amount applied to this purchase.
            discount_type:
              type: string
              nullable: true
              description: The discount type applied to this purchase.
            discount_percentage:
              type: number
              format: float
              nullable: true
              description: The discount percentage applied to this purchase.
            tax_1:
              type: number
              format: float
              nullable: true
              description: The primary tax amount on this purchase
            tax_1_type:
              type: string
              nullable: true
              description: The primary tax type on this purchase
            tax_2:
              type: number
              format: float
              nullable: true
              description: |-
                The secondary tax amount on this purchase.
                Note that this secondary tax must be configured in your
                [Account Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
            subtotal:
              type: number
              format: float
              nullable: true
              description: The subtotal of this purchase.
            total_amount:
              type: number
              format: float
              nullable: true
              description: |-
                The total amount of this Purchase Order, including all line items,
                discounts, taxes, and shipping.
        - $ref: '#/components/schemas/Documentable'
    LabelListParameters:
      type: string
      example: High Priority
      maxLength: 255
      description: |-
        A comma separated list of tags associated with this record. The only
        delimiter allowed is a comma (`,`). Please remove any commas from your
        labels before saving the record.
    DiscountType:
      title: DiscountType
      type: string
      enum:
        - fixed
        - percentage
      default: percentage
      description: The type of discount applied to this record.
      nullable: true
    TaxType:
      type: string
      enum:
        - fixed
        - percentage
      default: percentage
      description: The type of tax to apply to this record.
      nullable: true
    DiscountableParameters:
      type: object
      required:
        - discount_type
        - discount_percentage
      properties:
        discount_type:
          $ref: '#/components/schemas/DiscountType'
        discount_percentage:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: |-
            The discount percentage. This field should be present when
            `discount_type` is set to `percentage`.
        discount_cents:
          type: integer
          nullable: true
          description: The discount amount in cents.
    TaxableParameters:
      type: object
      required:
        - tax_1_type
        - tax_1_percentage
        - tax_2_type
        - tax_2_percentage
      properties:
        tax_1_type:
          $ref: '#/components/schemas/TaxType'
        tax_1_percentage:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: |-
            The primary tax percentage amount. This field should be present when
            `tax_1_type` is set to `percentage`.
        tax_1_cents:
          type: integer
          nullable: true
          example: 123
          description: The primary tax amount in cents.
        tax_2_type:
          $ref: '#/components/schemas/TaxType'
        tax_2_percentage:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: |-
            The secondary tax percentage amount. This field should be present when `tax_2_type` is
            set to `percentage`. Note that this secondary tax must be configured in
            your [Account Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
        tax_2_cents:
          description: The secondary tax amount in cents.
          type: integer
          nullable: true
    ShippableParameters:
      type: object
      properties:
        shipping_cents:
          type: integer
          nullable: true
          description: The shipping amount in cents.
    PurchaseOrder_Created:
      title: Purchase Order
      x-tags:
        - Purchase Orders
      description: A Purchase Order
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/DiscountableParameters'
        - $ref: '#/components/schemas/TaxableParameters'
        - $ref: '#/components/schemas/ShippableParameters'
        - type: object
          required:
            - account_id
            - number
            - description
            - label_list
            - submitted_for_approval_at
            - rejected_at
            - approved_at
            - purchased_at
            - received_partial_at
            - received_full_at
            - closed_at
            - state
            - documents_count
            - comments_count
            - custom_fields
            - part_location_id
            - vendor_id
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            number:
              $ref: '#/components/schemas/PurchaseOrderNumber'
            description:
              type: string
              nullable: true
              description: Open text field for Purchase Order description.
            label_list:
              $ref: '#/components/schemas/LabelList'
            submitted_for_approval_at:
              type: string
              format: date-time
              description: |
                The date and time at which this Purchase Order was submitted for approval.
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
            rejected_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was rejected.
              nullable: true
            approved_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was approved.
              nullable: true
            purchased_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was purchased.
              nullable: true
            received_partial_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was partially received.
              nullable: true
            received_full_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was fully received.
              nullable: true
            closed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Purchase Order was closed.
              nullable: true
            state:
              $ref: '#/components/schemas/PurchaseOrderState'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            part_location_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The ID of the `Part Location` associated with this Purchase Order. Optional
                in the `draft` state.
            vendor_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The ID of the [Vendor](/docs/api/vendors) associated with this Purchase
                Order.
            purchase_order_status_id:
              $ref: '#/components/schemas/NullableId'
            created_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                created this Purchase Order.
            rejected_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                closed this Purchase Order.
            submitted_for_approval_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                submitted this Purchase Order for approval.
            approved_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                approved this Purchase Order.
            purchased_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                purchased this Purchase Order.
            received_partial_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                partially received this Purchase Order.
            received_full_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                fully received this Purchase Order.
            closed_by_id:
              type: integer
              minimum: 1
              nullable: true
              description: |-
                The ID of the [Vendor](/docs/api/vendors) associated with the User who
                closed this Purchase Order.
            documents_count:
              type: integer
              nullable: true
              description: The number of documents attached to this Purchase Order.
            comments_count:
              type: integer
              nullable: true
              description: The number of `Comments` on this Purchase Order.
            discount_type:
              $ref: '#/components/schemas/DiscountType'
            discount_percentage:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The discount percentage. This field should be present when
                `discount_type`

                is set to `percentage`.
            discount_cents:
              type: integer
              nullable: true
              description: The discount amount in cents.
            subtotal_cents:
              type: integer
              nullable: true
              description: The subtotal amount in cents.
            total_amount_cents:
              type: integer
              nullable: true
              description: The total amount in cents.
            watchers_count:
              type: integer
              description: The count of watchers associated with the record.
            watchable_options:
              type: object
              description: Options related to watching the record.
            bulk_watch_record:
              type: boolean
              description: Indicates if a bulk watch record is created.
            skip_automatic_watchers_callbacks:
              type: boolean
              description: Indicates if automatic watchers callbacks are skipped.
    PurchaseOrderLineItemCreated:
      title: Purchase Order Line Item
      x-tags:
        - Purchase Orders
      description: A Purchase Order Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            account_id:
              type: integer
            purchase_order_id:
              type: integer
            part_id:
              type: integer
              minimum: 1
              description: The Fleetio ID of the [Part](/docs/api/parts) being purchased.
            quantity:
              type: string
              example: '1.23'
              nullable: true
              description: The quantity of this `Part` to be purchased.
            total_quantity_received:
              type: string
              example: '1.23'
              nullable: true
              description: The quantity of this `Part` which was received.
            unit_cost:
              type: string
              example: '1.23'
              nullable: true
              description: The cost of this `Part` (per unit).
            subtotal_cents:
              description: The pre-tax subtotal amount.
              type: integer
              nullable: true
              example: 1234
    RoleModuleAccessLevel:
      type: string
      default: none
      enum:
        - full
        - some
        - none
    RoleModuleAccess:
      type: object
      properties:
        contact_renewal_reminders_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        contacts_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        dashboards_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        documents_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        equipments_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        expense_entries_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        faults_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        fuel_entries_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        inspections_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        integrations_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        issues_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        location_entries_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        meter_entries_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        msi_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        parts_inventory_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        places_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        purchase_orders_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        recalls_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        reports_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        service_entries_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        service_programs_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        service_reminders_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        service_task_management_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        vehicle_renewal_reminders_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        vehicles_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        vendors_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
        work_orders_access:
          $ref: '#/components/schemas/RoleModuleAccessLevel'
    RoleModulePermissions:
      type: object
      properties:
        vehicles_create:
          type: boolean
        vehicles_edit:
          type: boolean
        vehicles_archive_delete:
          type: boolean
        vehicles_update_status:
          type: boolean
        vehicles_manage_vehicle_assignment:
          type: boolean
        vehicles_view_details:
          type: boolean
        vehicles_view_financial_info:
          type: boolean
        vehicles_view_custom_fields:
          type: boolean
        vehicles_view_documents:
          type: boolean
        vehicles_manage_documents:
          type: boolean
        vehicles_manage_photos:
          type: boolean
        vehicles_export_data:
          type: boolean
        equipments_create:
          type: boolean
        equipments_view_details:
          type: boolean
        equipments_view_financial_info:
          type: boolean
        equipments_view_custom_fields:
          type: boolean
        equipments_export_data:
          type: boolean
        equipments_view_documents:
          type: boolean
        equipments_manage_documents:
          type: boolean
        equipments_manage_photos:
          type: boolean
        equipments_archive_delete:
          type: boolean
        equipments_edit:
          type: boolean
        equipments_update_status:
          type: boolean
        equipments_manage_assignments:
          type: boolean
        meter_entries_create:
          type: boolean
        meter_entries_view:
          type: boolean
        meter_entries_export_data:
          type: boolean
        meter_entries_edit:
          type: boolean
        meter_entries_delete:
          type: boolean
        fuel_entries_create:
          type: boolean
        fuel_entries_view:
          type: boolean
        fuel_entries_export_data:
          type: boolean
        fuel_entries_edit:
          type: boolean
        fuel_entries_delete:
          type: boolean
        issues_create:
          type: boolean
        issues_view_open:
          type: boolean
        issues_view_resolved_or_closed:
          type: boolean
        issues_export_data:
          type: boolean
        issues_edit:
          type: boolean
        issues_delete:
          type: boolean
        issues_view_documents:
          type: boolean
        issues_manage_documents:
          type: boolean
        faults_view:
          type: boolean
        faults_export_data:
          type: boolean
        faults_ignore_codes:
          type: boolean
        recalls_view:
          type: boolean
        recalls_export_data:
          type: boolean
        recalls_ignore:
          type: boolean
        service_tasks_create:
          type: boolean
        service_tasks_edit:
          type: boolean
        service_tasks_archive_delete:
          type: boolean
        service_entries_create:
          type: boolean
        service_entries_view:
          type: boolean
        service_entries_view_update_cost_information:
          type: boolean
        service_entries_export_data:
          type: boolean
        service_entries_edit:
          type: boolean
        service_entries_delete:
          type: boolean
        service_entries_view_documents:
          type: boolean
        service_entries_manage_documents:
          type: boolean
        work_orders_create:
          type: boolean
        work_orders_view_incomplete:
          type: boolean
        work_orders_view_completed:
          type: boolean
        work_orders_view_update_cost_information:
          type: boolean
        work_orders_export_data:
          type: boolean
        work_orders_edit:
          type: boolean
        work_orders_edit_number:
          type: boolean
        work_orders_manage_labor_time_entries:
          type: boolean
        work_orders_delete:
          type: boolean
        work_orders_view_documents:
          type: boolean
        work_orders_manage_documents:
          type: boolean
        inspections_manage_inspection_forms:
          type: boolean
        inspections_manage_schedules:
          type: boolean
        inspections_submit_inspections:
          type: boolean
        inspections_view_submissions:
          type: boolean
        inspections_export_data:
          type: boolean
        inspections_edit_submissions:
          type: boolean
        inspections_delete_submissions:
          type: boolean
        msi_manage_payment_profile:
          type: boolean
        msi_manage_ro_notifications:
          type: boolean
        msi_view_account_details:
          type: boolean
        msi_view_account_summary:
          type: boolean
        msi_view_repair_order_notifications:
          type: boolean
        msi_view_statements:
          type: boolean
        msi_view_transactions:
          type: boolean
        service_reminders_create:
          type: boolean
        service_reminders_view:
          type: boolean
        service_reminders_export_data:
          type: boolean
        service_reminders_edit:
          type: boolean
        service_reminders_delete:
          type: boolean
        service_programs_create_update:
          type: boolean
        service_programs_view:
          type: boolean
        vehicle_renewal_reminders_create:
          type: boolean
        vehicle_renewal_reminders_view:
          type: boolean
        vehicle_renewal_reminders_export_data:
          type: boolean
        vehicle_renewal_reminders_edit:
          type: boolean
        vehicle_renewal_reminders_delete:
          type: boolean
        contacts_create:
          type: boolean
        contacts_edit:
          type: boolean
        contacts_view_basic_info:
          type: boolean
        contacts_view_contact_and_personal_info:
          type: boolean
        contacts_view_custom_fields:
          type: boolean
        contacts_export_data:
          type: boolean
        contacts_archive_delete:
          type: boolean
        contacts_view_documents:
          type: boolean
        contacts_manage_documents:
          type: boolean
        contacts_manage_photos:
          type: boolean
        contact_renewal_reminders_create:
          type: boolean
        contact_renewal_reminders_view:
          type: boolean
        contact_renewal_reminders_export_data:
          type: boolean
        contact_renewal_reminders_edit:
          type: boolean
        contact_renewal_reminders_delete:
          type: boolean
        vendors_create:
          type: boolean
        vendors_view:
          type: boolean
        vendors_export_data:
          type: boolean
        vendors_edit:
          type: boolean
        vendors_delete:
          type: boolean
        vendors_view_documents:
          type: boolean
        vendors_manage_documents:
          type: boolean
        vendors_manage_photos:
          type: boolean
        parts_inventory_create_parts:
          type: boolean
        parts_inventory_edit_parts:
          type: boolean
        parts_inventory_update_inventory_quantities:
          type: boolean
        parts_inventory_view_part_details:
          type: boolean
        parts_inventory_view_part_activity:
          type: boolean
        parts_inventory_export_data:
          type: boolean
        parts_inventory_archive_delete_parts:
          type: boolean
        parts_inventory_view_documents:
          type: boolean
        parts_inventory_manage_documents:
          type: boolean
        purchase_orders_create_update:
          type: boolean
        purchase_orders_delete:
          type: boolean
        purchase_orders_view:
          type: boolean
        purchase_orders_export_data:
          type: boolean
        purchase_orders_receive:
          type: boolean
        purchase_orders_approve:
          type: boolean
        reports_vehicles:
          type: boolean
        reports_contacts:
          type: boolean
        reports_parts:
          type: boolean
        reports_view_external_reports:
          type: boolean
        reports_shared:
          type: boolean
        places_create:
          type: boolean
        places_view:
          type: boolean
        places_export_data:
          type: boolean
        places_edit:
          type: boolean
        places_delete:
          type: boolean
        location_entries_create:
          type: boolean
        location_entries_view:
          type: boolean
        location_entries_edit:
          type: boolean
        location_entries_delete:
          type: boolean
        expense_entries_create:
          type: boolean
        expense_entries_view:
          type: boolean
        expense_entries_export_data:
          type: boolean
        expense_entries_edit:
          type: boolean
        expense_entries_delete:
          type: boolean
        dashboards_manage:
          type: boolean
        dashboards_share:
          type: boolean
        documents_view_global_documents:
          type: boolean
        documents_manage_global_documents:
          type: boolean
        gps_manage_devices:
          type: boolean
    Role:
      title: Role
      x-tags:
        - Roles
      description: A Role
      type: object
      required:
        - name
        - description
        - default
        - type
        - created_at
        - updated_at
        - module_access
        - module_permissions
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        name:
          type: string
          description: The name of this Role.
        description:
          type: string
          nullable: true
          description: The description of this Role.
        default:
          type: boolean
          description: Whether this Role is applied as the default Role for new `Users`.
        type:
          type: string
          enum:
            - StandardRole
            - CustomRole
          nullable: false
          description: Indicates whether this role is a standard Fleetio role, or created by a user.
        module_access:
          $ref: '#/components/schemas/RoleModuleAccess'
        module_permissions:
          $ref: '#/components/schemas/RoleModulePermissions'
    ServiceEntryLineItemType:
      description: Denotes the type of the ServiceEntryLineItem
      type: string
      enum:
        - ServiceEntryServiceTaskLineItem
        - ServiceEntryLaborLineItem
        - ServiceEntryPartLineItem
        - ServiceEntryTaxLineItem
        - ServiceEntryFeeLineItem
        - ServiceEntryTireLineItem
        - ServiceEntryFreeTextLineItem
    ServiceTask:
      title: Service Task
      x-tags:
        - Service Tasks
      description: A Service Task
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - name
            - description
            - subtasks
            - default_vmrs_reason_for_repair
            - default_vmrs_system_group
            - default_vmrs_system
            - default_vmrs_assembly
            - default_vmrs_component
          properties:
            name:
              type: string
              maxLength: 255
              description: A name for this Service Task.
            description:
              type: string
              nullable: true
              description: A description of this Service Task.
            expected_duration_in_seconds:
              type: integer
              nullable: true
              description: The expected duration in seconds this Service Task should take to complete.
            archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time at which this Service Task was archived. `null` if this Service Task is active.
            subtasks:
              type: array
              items:
                type: object
                allOf:
                  - $ref: '#/components/schemas/Record'
                  - type: object
                    properties:
                      name:
                        type: string
                        description: The name of this subtask.
                      description:
                        type: string
                        nullable: true
                        description: A description of this subtask.
                      expected_duration_in_seconds:
                        type: integer
                        nullable: true
                        description: The expected duration in seconds this subtask should take to complete.
                      subtasks:
                        type: array
                        description: The subtasks array at this level will always be empty.
                      default_vmrs_reason_for_repair:
                        type: object
                        properties:
                          account_id:
                            type: integer
                          alias:
                            type: string
                            nullable: true
                          code:
                            type: string
                            nullable: true
                          enabled:
                            type: boolean
                          id:
                            type: integer
                          name:
                            type: string
                          repair_type:
                            type: string
                            nullable: true
                          standard:
                            type: boolean
                          standard_name:
                            type: string
                            nullable: true
                          type:
                            type: string
                          vmrs_standard_reason_for_repair:
                            type: object
                            nullable: true
                        nullable: true
                      default_vmrs_system_group:
                        type: object
                        properties:
                          account_id:
                            type: number
                            nullable: true
                          assembly_code:
                            type: string
                            nullable: true
                          assembly_name:
                            type: string
                            nullable: true
                          code_type:
                            type: string
                            enum:
                              - system_group
                              - system
                              - assembly
                              - component
                          component_code:
                            type: string
                            nullable: true
                          component_name:
                            type: string
                            nullable: true
                          enabled:
                            type: boolean
                          id:
                            type: integer
                          permissions:
                            type: object
                            properties:
                              destroy:
                                type: boolean
                            nullable: true
                          standard:
                            type: boolean
                          system_code:
                            type: string
                            nullable: true
                          system_group:
                            type: string
                            nullable: true
                          system_group_code:
                            type: string
                            nullable: true
                          system_name:
                            type: string
                            nullable: true
                          type:
                            type: string
                          vmrs_standard_system_assembly_component:
                            type: object
                            nullable: true
                        nullable: true
                      default_vmrs_system:
                        type: object
                        properties:
                          account_id:
                            type: number
                            nullable: true
                          assembly_code:
                            type: string
                            nullable: true
                          assembly_name:
                            type: string
                            nullable: true
                          code_type:
                            type: string
                            enum:
                              - system_group
                              - system
                              - assembly
                              - component
                          component_code:
                            type: string
                            nullable: true
                          component_name:
                            type: string
                            nullable: true
                          enabled:
                            type: boolean
                          id:
                            type: integer
                          permissions:
                            type: object
                            properties:
                              destroy:
                                type: boolean
                            nullable: true
                          standard:
                            type: boolean
                          system_code:
                            type: string
                            nullable: true
                          system_group:
                            type: string
                            nullable: true
                          system_group_code:
                            type: string
                            nullable: true
                          system_name:
                            type: string
                            nullable: true
                          type:
                            type: string
                          vmrs_standard_system_assembly_component:
                            type: object
                            nullable: true
                        nullable: true
                      default_vmrs_assembly:
                        type: object
                        properties:
                          account_id:
                            type: number
                            nullable: true
                          assembly_code:
                            type: string
                            nullable: true
                          assembly_name:
                            type: string
                            nullable: true
                          code_type:
                            type: string
                            enum:
                              - system_group
                              - system
                              - assembly
                              - component
                          component_code:
                            type: string
                            nullable: true
                          component_name:
                            type: string
                            nullable: true
                          enabled:
                            type: boolean
                          id:
                            type: integer
                          permissions:
                            type: object
                            properties:
                              destroy:
                                type: boolean
                            nullable: true
                          standard:
                            type: boolean
                          system_code:
                            type: string
                            nullable: true
                          system_group:
                            type: string
                            nullable: true
                          system_group_code:
                            type: string
                            nullable: true
                          system_name:
                            type: string
                            nullable: true
                          type:
                            type: string
                          vmrs_standard_system_assembly_component:
                            type: object
                            nullable: true
                        nullable: true
                      default_vmrs_component:
                        type: object
                        properties:
                          account_id:
                            type: number
                            nullable: true
                          assembly_code:
                            type: string
                            nullable: true
                          assembly_name:
                            type: string
                            nullable: true
                          code_type:
                            type: string
                            enum:
                              - system_group
                              - system
                              - assembly
                              - component
                          component_code:
                            type: string
                            nullable: true
                          component_name:
                            type: string
                            nullable: true
                          enabled:
                            type: boolean
                          id:
                            type: integer
                          permissions:
                            type: object
                            properties:
                              destroy:
                                type: boolean
                            nullable: true
                          standard:
                            type: boolean
                          system_code:
                            type: string
                            nullable: true
                          system_group:
                            type: string
                            nullable: true
                          system_group_code:
                            type: string
                            nullable: true
                          system_name:
                            type: string
                            nullable: true
                          type:
                            type: string
                          vmrs_standard_system_assembly_component:
                            type: object
                            nullable: true
                        nullable: true
            usage:
              type: integer
              description: |-
                Indicates the number of times this Service Task has been used.
                Available by setting the `include_usage` query parameter to `1`.
            default_vmrs_reason_for_repair:
              type: object
              properties:
                account_id:
                  type: integer
                alias:
                  type: string
                  nullable: true
                code:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                name:
                  type: string
                repair_type:
                  type: string
                  nullable: true
                standard:
                  type: boolean
                standard_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_reason_for_repair:
                  type: object
                  nullable: true
              nullable: true
            default_vmrs_system_group:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            default_vmrs_system:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            default_vmrs_assembly:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            default_vmrs_component:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            service_task_parts:
              type: array
              description: |-
                Any `Parts` associated with this Service Task.
                Available by setting the `expand[]` query parameter to `service_task_parts`.
              items:
                type: object
                properties:
                  id:
                    type: integer
                  quantity:
                    type: number
                    format: float
                    description: The quantity of this `Part` related to the Service Task.
                  part_id:
                    type: integer
                    description: The ID of this `Part` related to the Service Task.
                  part_archived_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: |-
                      The date and time at which the `Part` related to the Service Task
                      was archived, if applicable.
                  position:
                    type: integer
                    description: The position of this `Part` in the list of Service Task Parts.
    ServiceEntryLineItem:
      title: Service Entry Line Item
      x-tags:
        - Service Entries
      description: A Service Entry Line Item
      type: object
      required:
        - description
        - type
        - service_entry_line_item_id
        - service_reminder_id
        - vmrs_reason_for_repair
        - vmrs_system_group
        - vmrs_system
        - vmrs_assembly
        - vmrs_component
        - issues
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        description:
          type: string
          nullable: true
          description: A description of the service performed for this line item.
        type:
          $ref: '#/components/schemas/ServiceEntryLineItemType'
        service_entry_id:
          type: integer
          description: The id of the `Service Entry` this line item belongs to.
        service_entry_line_item_id:
          type: integer
          nullable: true
          description: For nested line items. This value denotes the parent `Service Entry Line Item`.
        service_reminder_id:
          type: integer
          nullable: true
          description: If this line item is linked to a Service Reminder, this ID will be set.
        service_task:
          $ref: '#/components/schemas/ServiceTask'
        issues:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
          description: Any `Issues` this line item is linked to.
        labor_cost:
          type: number
          format: float
          description: The total cost of labor for this line item.
        parts_cost:
          type: number
          format: float
          description: The total cost of parts for this line item.
        subtotal:
          type: number
          format: float
          description: The pre-tax cost of this line item.
        vmrs_reason_for_repair:
          type: object
          properties:
            account_id:
              type: integer
            alias:
              type: string
              nullable: true
            code:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            name:
              type: string
            repair_type:
              type: string
              nullable: true
            standard:
              type: boolean
            standard_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_reason_for_repair:
              type: object
              nullable: true
          nullable: true
        vmrs_system_group:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_system:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_assembly:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_component:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
    AutoIntegrateInvoice:
      title: Invoice
      x-tags:
        - MSI Invoice
      description: A Repair Order Invoice
      type: object
      nullable: true
      properties:
        id:
          $ref: '#/components/schemas/Id'
        created_at:
          type: string
          format: date-time
          description: The date and time when the Invoice was created.
        po_number:
          type: string
          description: The PO number for the Invoice.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the Invoice was last updated.
    PartMarkupType:
      type: string
      enum:
        - fixed
        - percentage
      description: |-
        The type of parts markup applied to the record
        Note that this is a readonly value that will default to `percentage` for non-premium plans
      nullable: false
    PartMarkup:
      type: number
      format: float
      nullable: false
      example: 1.23
      description: |-
        The parts markup amount.
        Note that this is a readonly value that will default to `0.0` for non-premium plans
    PartMarkupPercentage:
      type: number
      format: float
      nullable: false
      example: 1.23
      description: |-
        The parts markup percentage amount. This field should be present when
        `parts_markup_type` is set to `percentage`.

        Note that this is a readonly value that will default to `0.0` for non-premium plans
    LaborMarkupType:
      type: string
      enum:
        - fixed
        - percentage
      description: |-
        The type of labor markup applied to the record
        Note that this is a readonly value that will default to `percentage` for non-premium plans
      nullable: false
    LaborMarkup:
      type: number
      format: float
      nullable: false
      example: 1.23
      description: |-
        The labor markup amount.
        Note that this is a readonly value that will default to `0.0` for non-premium plans
    LaborMarkupPercentage:
      type: number
      format: float
      nullable: false
      example: 1.23
      description: |-
        The labor markup percentage amount. This field should be present when
        `labor_markup_type` is set to `percentage`.

        Note that this is a readonly value that will default to `0.0` for non-premium plans
    ServiceEntry:
      title: Service Entry
      x-tags:
        - Service Entries
      description: A Service Entry
      type: object
      nullable: true
      allOf:
        - type: object
          nullable: true
          required:
            - reference
            - vendor_id
            - vendor_name
            - vehicle_id
            - vehicle_name
            - images_count
            - documents_count
            - comments_count
            - work_order_id
            - general_notes
            - is_sample
            - status
            - auto_integrate_repair_order_status
            - custom_fields
            - work_order_number
            - started_at
            - completed_at
            - date
            - service_entry_line_items
            - service_tasks
            - issues
            - meter_entry
            - images
            - vmrs_repair_priority_class
            - comments
            - labels
            - auto_integrate_ro_id
            - auto_integrate_repair_order_status_color
          properties:
            id:
              type: integer
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            tax_free_labor:
              type: boolean
              description: |-
                Indicates whether or not to include labor subtotals in tax
                calculations.
            completed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Service Entry was completed.
            reference:
              type: string
              nullable: true
              description: A reference number for this Service Entry.
            started_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Service Entry was started.
            status:
              type: string
              description: The status of this Service Entry.
              enum:
                - pending
                - completed
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            general_notes:
              type: string
              nullable: true
              description: General notes for this Service Entry.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_name:
              type: string
              nullable: true
              description: The name of the `Vehicle` associated with this Service Entry.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            vendor_name:
              type: string
              nullable: true
              description: The name of the `Vendor` associated with this Service Entry.
            work_order_id:
              $ref: '#/components/schemas/NullableId'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            is_sample:
              type: boolean
              description: |-
                Indicates whether or not this Service Entry is a sample. Sample
                Service Entries are not included in reports.
            work_order_number:
              type: integer
              nullable: true
              description: The number of the `Work Order` this Service Entry is associated with.
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date of this Service Entry. Formatted according to ISO-8601 in User's local time.
            service_entry_line_items:
              type: array
              items:
                $ref: '#/components/schemas/ServiceEntryLineItem'
            service_tasks:
              type: array
              items:
                $ref: '#/components/schemas/ServiceTask'
            issues:
              type: array
              items:
                $ref: '#/components/schemas/Issue'
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            secondary_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            vmrs_repair_priority_class:
              type: object
              nullable: true
              description: The Vehicle Maintenance Reporting Standards (VMRS) Repair Priority Class for this Service Entry.
              properties:
                id:
                  type: integer
                  description: The ID of the VMRS Repair Priority Class.
                code:
                  type: string
                  description: The code of the VMRS Repair Priority Class.
                name:
                  type: string
                  description: The name of the VMRS Repair Priority Class.
                color:
                  type: string
                  description: The color of the VMRS Repair Priority Class.
            labels:
              $ref: '#/components/schemas/Labels'
            auto_integrate_ro_id:
              $ref: '#/components/schemas/NullableId'
            auto_integrate_ro_link:
              type: string
              nullable: true
              description: The Auto Integrate `Repair Order` link for this Service Entry.
            auto_integrate_repair_order_status:
              type: string
              nullable: true
              description: The Auto Integrate `Repair Order` status for this Service Entry.
              enum:
                - approved
                - auto_approved
                - awaiting_reconciliation
                - completed
                - failed_reconciliation
                - invoiced
                - needs_approval
                - needs_reapproval
                - paid
                - rejected
            auto_integrate_repair_order_status_color:
              type: string
              nullable: true
              description: The color applied to the Auto Integrate `Repair Order` status for this Service Entry.
            invoice:
              allOf:
                - type: object
                  description: An MSI Repair Order Invoice (pass expand[]=invoice in query to include in response)
                - $ref: '#/components/schemas/AutoIntegrateInvoice'
            discount:
              type: number
              format: float
              nullable: true
              description: The discount amount.
            discount_type:
              $ref: '#/components/schemas/DiscountType'
            discount_percentage:
              type: number
              format: float
              nullable: true
              description: |-
                The discount percentage. This field should be present when
                `discount_type` is set to `percentage`.
            fees:
              type: number
              format: float
              description: The fees amount. This is the sum of any `ServiceEntryFeeLineItem`s present.
            subtotal:
              description: The pre-tax subtotal amount.
              type: number
              format: float
            parts_subtotal:
              description: The pre-tax subtotal amount for parts.
              type: number
              format: float
            labor_subtotal:
              description: The pre-tax subtotal amount for labor.
              type: number
              format: float
            tax_1:
              type: number
              nullable: true
              format: float
              description: The primary tax amount.
            tax_1_percentage:
              type: number
              format: float
              nullable: true
              description: The primary tax percentage.
            tax_1_type:
              type: string
              nullable: true
              description: The primary tax type.
            tax_2:
              type: number
              format: float
              nullable: true
              description: The secondary tax amount.
            tax_2_percentage:
              type: number
              nullable: true
              format: float
              description: The secondary tax percentage.
            tax_2_type:
              type: string
              nullable: true
              description: The secondary tax type.
            parts_markup_type:
              $ref: '#/components/schemas/PartMarkupType'
            parts_markup:
              $ref: '#/components/schemas/PartMarkup'
            parts_markup_percentage:
              $ref: '#/components/schemas/PartMarkupPercentage'
            labor_markup_type:
              $ref: '#/components/schemas/LaborMarkupType'
            labor_markup:
              $ref: '#/components/schemas/LaborMarkup'
            labor_markup_percentage:
              $ref: '#/components/schemas/LaborMarkupPercentage'
            total_amount:
              type: number
              format: float
              description: The total amount.
            comments:
              type: array
              items:
                $ref: '#/components/schemas/Comment'
              description: A list of the comments made on this record.
            comments_count:
              type: integer
              minimum: 0
              description: The number of comments made on this record.
            labor_time_in_seconds:
              nullable: true
              type: integer
              description: |-
                The sum, in seconds, of the duration of all labor line items of
                the Work Order that created this Service Entry, if applicable.
                This field is only relevant when the Service Entry is created from a Work Order.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Documentable'
        - $ref: '#/components/schemas/Imageable'
    ServiceEntryLineItemAttributes:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        service_task_id:
          $ref: '#/components/schemas/Id'
        type:
          $ref: '#/components/schemas/ServiceEntryLineItemType'
        description:
          type: string
          description: Free text field, used for notes or description.
        labor_cost:
          type: number
          format: float
          default: 0
          description: Total labor cost for this line item.
        parts_cost:
          type: number
          format: float
          default: 0
          description: Total parts cost for this line item.
        subtotal:
          type: number
          format: float
          default: 0
          description: |-
            Subtotal for this line item. If `parts_cost` or `labor_cost` are
            non-zero, this value is ignored.
        service_entry_line_item_id:
          type: integer
          description: For nested line items. This value denotes the parent `Service Entry Line Item`.
        issue_ids:
          type: array
          description: |-
            An array of issue IDs that you want the line item to be linked to. This
            field can be passed several times to the server if you wish to link more
            than one issue (see cURL example).
          items:
            type: string
        vmrs_reason_for_repair_id:
          $ref: '#/components/schemas/Id'
        vmrs_system_group_id:
          $ref: '#/components/schemas/Id'
        vmrs_system_id:
          $ref: '#/components/schemas/Id'
        vmrs_component_id:
          $ref: '#/components/schemas/Id'
        vmrs_assembly_id:
          $ref: '#/components/schemas/Id'
    ServiceProgramLineItemServiceTask:
      type: object
      nullable: true
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          nullable: true
          properties:
            name:
              type: string
              description: The name of this Service Task.
            description:
              type: string
              description: A description of this Service Task.
              nullable: true
            expected_duration_in_seconds:
              type: integer
              nullable: true
              description: The expected time to complete this Service Task in seconds.
            subtasks:
              type: array
              description: The subtasks array within a parent subtasks array will always be empty.
              items:
                $ref: '#/components/schemas/ServiceProgramLineItemServiceTask'
            default_vmrs_reason_for_repair:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                code:
                  type: string
                  description: The VMRS code for this reason for repair.
                name:
                  type: string
                  description: The name of this reason for repair.
                repair_type:
                  type: string
                  description: The repair type of this reason for repair.
                enabled:
                  type: boolean
                  description: Whether or not this reason for repair is enabled.
            default_vmrs_system_group:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                system_group_code:
                  type: string
                  description: The system group code of this system group.
                system_group_name:
                  type: string
                  description: The name of this system group.
                system_code:
                  type: string
                  description: The system code of this system group.
                system_name:
                  type: string
                  description: The name of this system.
                assembly_code:
                  type: string
                  description: The assembly code of this system group.
                assembly_name:
                  type: string
                  description: The assembly name related to this system group.
                component_code:
                  type: string
                  description: The component code of this system group.
                component_name:
                  type: string
                  description: The component name related to this system group.
                enabled:
                  type: boolean
                  description: Whether or not this system group is enabled.
            default_vmrs_system:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                system_group_code:
                  type: string
                  description: The system group code of the default VMRS system.
                system_group_name:
                  type: string
                  description: The name of the default VMRS system group.
                system_code:
                  type: string
                  description: The system code of the default VMRS system.
                system_name:
                  type: string
                  description: The name of the default VMRS system.
                assembly_code:
                  type: string
                  description: The assembly code of the default VMRS system.
                assembly_name:
                  type: string
                  description: The name of the default VMRS assembly.
                component_code:
                  type: string
                  description: The component code of the default VMRS system.
                component_name:
                  type: string
                  description: The name of the default VMRS component.
                enabled:
                  type: boolean
                  description: Whether or not the default VMRS system is enabled.
            default_vmrs_assembly:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                system_group_code:
                  type: string
                  description: The system group code of the default VMRS assembly.
                system_group_name:
                  type: string
                  description: The name of the default VMRS system group.
                system_code:
                  type: string
                  description: The system code of the default VMRS assembly.
                system_name:
                  type: string
                  description: The name of the default VMRS system.
                assembly_code:
                  type: string
                  description: The assembly code of the default VMRS assembly.
                assembly_name:
                  type: string
                  description: The name of the default VMRS assembly.
                component_code:
                  type: string
                  description: The component code of the default VMRS assembly.
                component_name:
                  type: string
                  description: The name of the default VMRS component.
                enabled:
                  type: boolean
                  description: Whether or not the default VMRS assembly is enabled.
            default_vmrs_component:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                system_group_code:
                  type: string
                  description: The system group code of the default VMRS component.
                system_group_name:
                  type: string
                  description: The name of the default VMRS system group.
                system_code:
                  type: string
                  description: The system code of the default VMRS component.
                system_name:
                  type: string
                  description: The name of the default VMRS system.
                assembly_code:
                  type: string
                  description: The assembly code of the default VMRS component.
                assembly_name:
                  type: string
                  description: The name of the default VMRS assembly.
                component_code:
                  type: string
                  description: The component code of the default VMRS component.
                component_name:
                  type: string
                  description: The name of the default VMRS component.
    ServiceProgramLineItem:
      type: object
      nullable: true
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        time_interval:
          type: integer
          description: |-
            The number of time units according to `time_frequency` between each occurrence
            of the `Service Task`(s) of this Service Program line item.
        time_frequency:
          $ref: '#/components/schemas/Frequency'
        meter_interval:
          type: number
          format: float
          description: The meter interval of which this Service Program line item takes place.
        secondary_meter_interval:
          type: number
          format: float
          nullable: true
          description: The secondary meter interval of which this Service Program line item takes place.
        due_soon_time_threshold_interval:
          type: integer
          nullable: true
          description: |-
            The number of time units according to `due_soon_time_threshold_frequency`
            between `due_soon_at` occurrences.
        due_soon_time_threshold_frequency:
          $ref: '#/components/schemas/Frequency'
        due_soon_meter_threshold:
          type: number
          format: float
          nullable: true
          description: The meter value threshold to which this Service Program line item will be due soon.
        due_soon_secondary_meter_threshold:
          type: number
          format: float
          nullable: true
          description: The secondary meter value threshold to which this Service Program line item will be due soon.
        service_tasks:
          type: array
          description: Any `Service Tasks` associated with this Service Program line item.
          items:
            $ref: '#/components/schemas/ServiceProgramLineItemServiceTask'
        service_program:
          type: object
          description: Basic information about the parent Service Program.
          allOf:
            - $ref: '#/components/schemas/Record'
            - type: object
              properties:
                name:
                  description: The name of the Service Program.
    ServiceReminder:
      title: Service Reminder
      x-tags:
        - Service Reminders
      description: A Service Reminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - active
            - vehicle_id
            - service_task_id
            - service_task_name
            - time_interval
            - time_frequency
            - next_due_at
            - due_soon_at
            - due_soon_time_threshold_interval
            - due_soon_time_threshold_frequency
            - vehicle_archived_at
            - forecasted_next_due_at
            - forecasted_due_soon_at
            - comments_count
            - starting_interval
            - starting_meter_interval
            - starting_secondary_meter_interval
            - starting_time_interval
            - starting_time_frequency
            - snooze_until
            - service_reminder_status_name
            - meter_remaining_until_due
            - secondary_meter_remaining_until_due
            - forecasted_primary_due_soon_at
            - forecasted_primary_next_due_at
            - forecasted_secondary_due_soon_at
            - forecasted_secondary_next_due_at
            - secondary_meter
            - meter_interval
            - next_due_meter_value
            - due_soon_meter_value
            - due_soon_meter_threshold
            - users
            - vehicle_name
            - vehicle_default_image_url
            - latest_occurrence
            - service_program_line_item
            - comments
            - is_watched
            - watchers_count
          properties:
            active:
              type: boolean
              description: Indicates whether the Service Reminder is currently active.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            service_task_id:
              $ref: '#/components/schemas/NullableId'
            service_task_name:
              type: string
              nullable: true
              description: The name of the `Service Task` associated with the Service Reminder, if applicable.
            time_interval:
              type: integer
              nullable: true
              description: |-
                The number of time units according to `time_frequency` between each occurrence
                of the Service Reminder.
            time_frequency:
              $ref: '#/components/schemas/Frequency'
            next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time when the Service Reminder is next due.
                Formatted according to ISO-8601 in `User`'s local time.
            due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time when the Service Reminder will be considered due soon.
                Formatted according to ISO-8601 in `User`'s local time.
            due_soon_time_threshold_interval:
              type: integer
              nullable: true
              description: |-
                The number of time units according to `due_soon_time_threshold_frequency`
                between `due_soon_at` occurrences.
            due_soon_time_threshold_frequency:
              $ref: '#/components/schemas/Frequency'
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which the vehicle associated with the Service Reminder
                was archived, if applicable.
            forecasted_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next due service.
            forecasted_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the Service Reminder to be due soon.
            comments_count:
              type: integer
              description: The number of `Comments` on the Service Reminder.
            starting_interval:
              type: boolean
              nullable: true
              description: Indicates whether the Service Reminder has a starting interval.
            starting_meter_interval:
              type: string
              nullable: true
              description: The starting meter interval for this Service Reminder.
            starting_secondary_meter_interval:
              type: string
              nullable: true
              description: The starting secondary meter interval for this Service Reminder.
            starting_time_interval:
              type: integer
              nullable: true
              description: |-
                The starting time interval according to `starting_time_frequency`
                for time-based Service Reminders, if applicable.
            starting_time_frequency:
              $ref: '#/components/schemas/Frequency'
            snooze_until:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time until which the Service Reminder is snoozed.
            service_reminder_status_name:
              type: string
              nullable: true
              description: The name of the Service Reminder status, if applicable.
            secondary_meter:
              type: boolean
              description: Indicates whether the Service Reminder is associated with a secondary meter.
            meter_interval:
              type: string
              nullable: true
              description: The meter interval of which this Service Reminder takes place.
            next_due_meter_value:
              type: string
              nullable: true
              description: The meter value at which the Service Reminder is next due, if applicable.
            due_soon_meter_value:
              type: string
              nullable: true
              description: The meter value at which the Service Reminder is due soon, if applicable.
            due_soon_meter_threshold:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The meter value threshold to which this Service Reminder will be due soon.
            meter_remaining_until_due:
              type: integer
              nullable: true
              description: The remaining meter units until the Service Reminder is due.
            secondary_meter_remaining_until_due:
              type: integer
              nullable: true
              description: The remaining secondary meter interval until the Service Reminder is due.
            forecasted_primary_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the primary Service Reminder to be due soon.
            forecasted_primary_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next primary due Service Reminder.
            forecasted_secondary_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the secondary Service Reminder to be due soon.
            forecasted_secondary_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next secondary due Service Reminder.
            users:
              type: array
              description: A list of `Users` associated with the Service Reminder.
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  name:
                    type: string
                    nullable: true
            vehicle_name:
              type: string
              description: The name of the `Vehicle` associated with the Service Reminder.
            vehicle_default_image_url:
              type: string
              nullable: true
              description: The default image URL for the associated vehicle, if available.
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            latest_occurrence:
              $ref: '#/components/schemas/ServiceEntry'
            service_program_line_item:
              $ref: '#/components/schemas/ServiceProgramLineItem'
            comments:
              type: array
              items:
                $ref: '#/components/schemas/Comment'
            watchers_count:
              type: integer
              description: The count of watchers associated with the record.
            is_watched:
              type: boolean
              description: Indicates whether the record is being watched.
    FrequencyParameter:
      type: string
      enum:
        - days
        - weeks
        - months
        - years
    ServiceTask_Created:
      title: Service Task
      x-tags:
        - Service Tasks
      description: A Service Task
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - name
            - description
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            archived_at:
              type: string
              format: date-time
              nullable: true
              description: The date and time this Service Task was archived, if applicable.
            name:
              type: string
              maxLength: 255
              description: A name for this Service Task.
            description:
              type: string
              nullable: true
              description: A description of this Service Task.
            is_group:
              type: boolean
              description: Whether this Service Task belongs to a group of Service Tasks.
            expected_duration_in_seconds:
              type: integer
              nullable: true
              description: The expected duration in seconds this Service Task should take to complete.
            standard:
              type: boolean
              description: Whether this Service Task is a standard (commonly performed) Service Task.
            category_hierarchy:
              type: string
              maxLength: 255
              description: The category hierarchy of this Service Task.
            service_task_category_id:
              type: integer
              nullable: true
              description: The ID of the Service Task Category this Service Task belongs to.
            standard_service_task_id:
              type: integer
              nullable: true
              description: The ID of the Standard Service Task this Service Task belongs to.
            default_vmrs_reason_for_repair_id:
              type: integer
              nullable: true
              description: The ID of the default VMRS Reason for Repair for this Service Task.
            default_vmrs_system_id:
              type: integer
              nullable: true
              description: The ID of the default VMRS System for this Service Task.
            default_vmrs_assembly_id:
              type: integer
              nullable: true
              description: The ID of the default VMRS Assembly for this Service Task.
            default_vmrs_component_id:
              type: integer
              nullable: true
              description: The ID of the default VMRS Component for this Service Task.
            default_vmrs_system_group_id:
              type: integer
              nullable: true
              description: The ID of the default VMRS System Group for this Service Task.
            merged_service_task_id:
              type: integer
              nullable: true
              description: |-
                If this Service Task has been merged,
                this is the ID of the Service Task it was merged into.
                More information can be found here:
                [Merging Service Tasks](https://help.fleetio.com/s/article/Service-Task-Overview#merge)
    VehicleMini:
      title: Vehicle
      x-tags:
        - Vehicles
      description: A Vehicle
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
        name:
          type: string
          description: This vehicle's name.
        color:
          type: string
          nullable: true
          description: The color of this Vehicle.
        license_plate:
          type: string
          nullable: true
          description: The license plate number of this Vehicle.
        vin:
          type: string
          nullable: true
          description: The Vehicle Identification Number of this Vehicle.
        year:
          type: string
          nullable: true
          description: This Vehicle's model year.
        make:
          type: string
          nullable: true
          description: The name of this Vehicle's manufacturer.
        model:
          type: string
          nullable: true
          description: The name of the model of this Vehicle.
        trim:
          type: string
          nullable: true
          description: The trim level of this Vehicle.
        registration_expiration_month:
          type: integer
          nullable: true
          minimum: 0
          maximum: 12
          description: The month in which this Vehicle's registration expires.
        registration_state:
          type: string
          nullable: true
          description: The state, province, or territory in which this Vehicle is registered.
        default_image_url_small:
          type: string
          nullable: true
          description: The URL of a small-sized version of the default image for this Vehicle.
    SubmittedInspectionFormSummary:
      title: Submitted Inspection Form
      x-tags:
        - Submitted Inspection Forms
      description: A Submitted Inspection Form
      type: object
      required:
        - id
        - started_at
        - submitted_at
        - failed_items
        - starting_latitude
        - starting_longitude
        - submitted_latitude
        - submitted_longitude
        - inspection_form
        - date
        - vehicle
      properties:
        id:
          type: integer
        started_at:
          type: string
          format: date-time
          example: '2023-03-14T11:02:38-05:00'
          description: The date and time at which this Inspection Form was started.
        submitted_at:
          type: string
          format: date-time
          example: '2023-03-14T11:02:39-05:00'
          description: The date and time at which this Inspection Form was submitted.
        date:
          type: string
          format: date
          example: '2023-03-14'
          description: The date on which this Inspection Form was submitted
        failed_items:
          type: number
          format: integer
          description: The number of failed items on this Inspection Form.
        starting_latitude:
          type: number
          nullable: true
          description: The latitude at which this Inspection Form was started.
        starting_longitude:
          type: number
          nullable: true
          description: The longitude at which this Inspection Form was started.
        submitted_latitude:
          type: number
          nullable: true
          description: The latitude at which this Inspection Form was submitted.
        submitted_longitude:
          type: number
          nullable: true
          description: The longitude at which this Inspection Form was submitted.
        inspection_form:
          type: object
          properties:
            id:
              type: integer
            title:
              type: string
              description: The title of the Inspection Form.
            description:
              type: string
              description: The description of the Inspection Form.
        user:
          $ref: '#/components/schemas/ContactMini'
        vehicle:
          $ref: '#/components/schemas/VehicleMini'
    SubmittedInspectionForm:
      title: Submitted Inspection Form
      x-tags:
        - Submitted Inspection Forms
      description: A Submitted Inspection Form
      allOf:
        - type: object
          required:
            - id
            - started_at
            - submitted_at
            - failed_items
            - vehicle_id
            - starting_latitude
            - starting_longitude
            - submitted_latitude
            - submitted_longitude
            - duration
            - inspection_form
            - date
            - comments_count
            - images_count
            - submitted_inspection_items
          properties:
            id:
              $ref: '#/components/schemas/Id'
            started_at:
              type: string
              format: date
              example: '2023-03-14'
              description: The date and time at which this Inspection Form was started.
            submitted_at:
              type: string
              format: date
              example: '2023-03-14'
              description: The date and time at which this Inspection Form was submitted.
            date:
              type: string
              description: |-
                The date on which this Inspection Form was submitted, formatted as
                "Mon DD, YYYY"
            failed_items:
              type: integer
              description: The number of failed items on this Inspection Form.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            starting_latitude:
              type: number
              format: float
              nullable: true
              description: The latitude at which this Inspection Form was started.
            starting_longitude:
              type: number
              format: float
              nullable: true
              description: The longitude at which this Inspection Form was started.
            submitted_latitude:
              type: number
              format: float
              nullable: true
              description: The latitude at which this Inspection Form was submitted.
            submitted_longitude:
              type: number
              format: float
              nullable: true
              description: The longitude at which this Inspection Form was submitted.
            duration:
              type: string
              nullable: true
              description: |-
                The duration of time in words (eg; 15 minutes, about 1 hour) between when this Inspection Form was
                started and when it was submitted.
            inspection_form:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                title:
                  type: string
                  description: The title of the Inspection Form.
                description:
                  type: string
                  description: The description of the Inspection Form.
            contact_id:
              $ref: '#/components/schemas/NullableId'
            user:
              type: string
              description: The full name of the User that submitted this Inspection Form.
            submitted_inspection_items:
              type: array
              items:
                type: object
                properties:
                  result:
                    type: object
                    additionalProperties: true
                    description: This object contains the result of the Submitted Inspection Item. The key:value pair(s) returned vary depending on the type of Inspection Item.
                  id:
                    $ref: '#/components/schemas/Id'
                  comments_count:
                    type: integer
                    description: The number of `Comments` related to this Inspection Item.
                  images_count:
                    type: integer
                    description: The number of Images related to this Inspection Item.
                  submitted_inspection_form_id:
                    $ref: '#/components/schemas/Id'
                  latitude:
                    type: number
                    format: float
                    description: The latitude at which this Inspection Item was submitted.
                  longitude:
                    type: number
                    format: float
                    description: The longitude at which this Inspection Item was submitted.
                  inspection_item:
                    type: object
                    properties:
                      label:
                        type: string
                        description: The label or name of the Inspection Item.
                      type:
                        type: string
                        description: The type or category of the Inspection Item.
                        enum:
                          - InspectionDateItem
                          - InspectionDatetimeItem
                          - InspectionDropdownItem
                          - InspectionFreeTextItem
                          - InspectionMeterEntryItem
                          - InspectionNumericItem
                          - InspectionPassFailItem
                          - InspectionPhotoItem
                          - InspectionSectionItem
                          - InspectionSignatureItem
                          - InspectionSingleCheckboxItem
                      fail_label:
                        type: string
                        description: The label for a "Fail" result.
                      pass_label:
                        type: string
                        description: The label for a "Pass" result.
                      na_label:
                        type: string
                        description: The label for a "Not Applicable" result.
                      dropdown_options:
                        type: array
                        description: An array of options for an `InspectionDropdownItem`.
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                              description: The label or name of the Inspection Item.
                            position:
                              type: integer
                              description: The position or order of the Inspection Item within the form.
                            fail_if_chosen:
                              type: boolean
                              description: Indicates whether the inspection should fail if this item is chosen.
                      numeric_range_max:
                        type: number
                        format: float
                        description: The maximum value for an `InspectionNumericItem`.
                      numeric_range_min:
                        type: number
                        format: float
                        description: The minimum value for an `InspectionNumericItem`.
                      requirement_settings:
                        type: object
                        description: A dynamically generated list of settings describing required items as part of the inspection form.
            comments_count:
              type: integer
              description: The number of `Comments` on this Inspection Form.
            images_count:
              type: integer
              description: The number of images attached to this Inspection Form.
    IncludeFilter:
      type: object
      x-codegen-one-of-filter-part: true
      properties:
        include:
          type: string
      required:
        - include
      additionalProperties: false
    IncludeEqFilter:
      x-codegen-one-of-filter-part: true
      oneOf:
        - $ref: '#/components/schemas/IncludeFilter'
        - $ref: '#/components/schemas/EqFilter'
    TireSummary:
      title: Tire
      x-tags:
        - Tires
      type: object
      description: A Tire
      required:
        - id
        - tire_position_id
        - part_id
        - axle_config_id
        - pressure
        - tread_depth
        - current_meter
        - created_at
        - updated_at
      properties:
        id:
          description: The id of the `Tire`
          type: integer
          example: 1
        tire_position_id:
          description: A `Tire Position` id. The existence of a `tire_position_id` indicates this `Tire` is currently installed. Similiarly, if this value is `null`, then this `Tire` is not currently installed on a `Vehicle`.
          type: integer
          nullable: true
          example: 1
        part_id:
          description: A `Part` id.
          type: integer
          nullable: true
          example: 1
        axle_config_id:
          description: An `Axle Configuration` id. The existence of a `axle_config_id` indicates this `Tire` is currently installed. Similiarly, if this value is `null`, then this `Tire` is not currently installed on a `Vehicle`.
          type: integer
          nullable: true
          example: 1
        pressure:
          description: The air pressure of the `Tire` in pounds per square inch (PSI)
          type: integer
          nullable: true
          example: 32
        tread_depth:
          description: The tread depth of the `Tire` in /32 inch.
          type: integer
          nullable: true
          example: 12
        current_meter:
          description: The current meter of the `Tire`.
          type: number
          example: 19250
        tin:
          description: The Tire Identification Number (TIN) of the `Tire`.
          type: string
          example: CC9L XYZ 1023
          nullable: true
        created_at:
          description: When the `Tire` was created
          type: string
          format: date-time
        updated_at:
          description: When the `Tire` was last updated
          type: string
          format: date-time
    VehicleAssignmentSummary:
      title: Vehicle Assignment
      x-tags:
        - Vehicle Assignments
      description: A Vehicle Assignment
      type: object
      required:
        - id
        - vehicle_id
        - contact_id
        - custom_fields
        - started_at
        - ended_at
        - starting_meter_entry_value
        - ending_meter_entry_value
        - comments_count
        - current
        - future
        - contact
        - vehicle
      properties:
        id:
          type: integer
        vehicle_id:
          type: integer
          description: The id of the vehicle associated with this Vehicle Assignment.
        contact_id:
          type: integer
          description: The id of the contact associated with this Vehicle Assignment.
        started_at:
          type: string
          format: date-time
          nullable: true
          example: '2023-03-14T13:46:27-06:00'
          description: |-
            The date and time of this Vehicle Assignment.
            Dates in the future are accepted.
            We recommend using [ISO-8601](/docs/overview/date-formatting)
            formatted dates to avoid ambiguity.
        ended_at:
          type: string
          format: date-time
          nullable: true
          example: '2023-03-14T13:46:27-06:00'
          description: |-
            The date and time of this Vehicle Assignment ending.
            We recommend using [ISO-8601](/docs/overview/date-formatting)
            formatted dates to avoid ambiguity.
        current:
          type: boolean
          default: false
          description: Whether this Vehicle Assignment is current/active.
        future:
          type: boolean
          default: false
          description: Whether this Vehicle Assignment is set to take place in the future.
        starting_meter_entry_value:
          type: number
          nullable: true
          description: The meter value at the start of this Vehicle Assignment.
        ending_meter_entry_value:
          type: number
          nullable: true
          description: The meter value at the end of this Vehicle Assignment.
        comments_count:
          type: integer
          description: The number of comments on this Vehicle Assignment.
        attachment_permissions:
          $ref: '#/components/schemas/AttachmentPermissions'
        contact:
          $ref: '#/components/schemas/ContactMini'
        vehicle:
          $ref: '#/components/schemas/VehicleMini'
    VehicleAssignment:
      title: Vehicle Assignment
      x-tags:
        - Vehicle Assignments
      description: A Vehicle Assignment
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - vehicle_id
            - contact_id
            - custom_fields
            - started_at
            - ended_at
            - starting_meter_entry_value
            - ending_meter_entry_value
            - comments_count
            - current
            - future
            - comments
          properties:
            vehicle_id:
              $ref: '#/components/schemas/Id'
            contact_id:
              $ref: '#/components/schemas/Id'
            started_at:
              type: string
              format: date-time
              nullable: true
              example: '2023-03-14T13:46:27-06:00'
              description: |-
                The date and time of this Vehicle Assignment.
                Dates in the future are accepted.
                We recommend using [ISO-8601](/docs/overview/date-formatting)
                formatted dates to avoid ambiguity.
            ended_at:
              type: string
              format: date-time
              nullable: true
              example: '2023-03-14T13:46:27-06:00'
              description: |-
                The date and time of this Vehicle Assignment ending.
                We recommend using [ISO-8601](/docs/overview/date-formatting)
                formatted dates to avoid ambiguity.
            current:
              type: boolean
              default: false
              description: Whether this Vehicle Assignment is current/active.
            future:
              type: boolean
              default: false
              description: Whether this Vehicle Assignment is set to take place in the future.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            starting_meter_entry_value:
              type: string
              nullable: true
              description: The meter value at the start of this Vehicle Assignment.
            ending_meter_entry_value:
              type: string
              nullable: true
              description: The meter value at the end of this Vehicle Assignment.
            comments_count:
              type: integer
              description: The number of comments on this Vehicle Assignment.
            contact_full_name:
              type: string
              nullable: true
            contact_image_url:
              type: string
              nullable: true
              description: The URL pointing to the `Contact`'s image.
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            comments:
              type: array
              description: Any `Comments` made on this Vehicle Assignment.
              items:
                $ref: '#/components/schemas/Comment'
    VehicleRenewalReminder:
      title: Vehicle Renewal Reminder
      x-tags:
        - Vehicle Renewal Reminders
      description: A Vehicle Renewal Reminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - vehicle_id
            - vehicle_renewal_type_id
            - vehicle_renewal_type_name
            - vehicle_archived_at
            - comments_count
            - custom_fields
            - users
            - overdue
            - due_soon
            - active
            - next_due_at
            - last_sent_at
            - due_soon_at
            - due_soon_time_threshold_interval
            - due_soon_time_threshold_frequency
          properties:
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_renewal_type_id:
              $ref: '#/components/schemas/Id'
            vehicle_renewal_type_name:
              type: string
              description: The name of the `Vehicle Renewal Type` associated with this reminder.
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder's Vehicle was
                archived, if applicable.
            comments:
              type: array
              items:
                $ref: '#/components/schemas/Comment'
            comments_count:
              type: integer
              minimum: 0
              nullable: true
              description: The number of `Comments` on this Renewal Reminder.
            overdue:
              type: boolean
              default: false
              description: Indicates whether or not this Renewal Reminder is overdue.
            due_soon:
              type: boolean
              default: false
              description: Indicates whether or not this Renewal Reminder is due soon.
            active:
              type: boolean
              nullable: true
              description: Whether or not this Renewal Reminder is active.
            next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Renewal Reminder is next due.
            last_sent_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder was last
                sent.
            due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder will next be
                marked as "Due Soon".
            due_soon_time_threshold_interval:
              type: integer
              nullable: true
              description: |-
                The amount of time before a Renewal is due where it will be marked as
                as "Due Soon".
            due_soon_time_threshold_frequency:
              $ref: '#/components/schemas/Frequency'
            custom_fields:
              type: object
            users:
              type: array
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  name:
                    type: string
                    nullable: true
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
    VehicleRenewalReminder_Created:
      title: Vehicle Renewal Reminder
      x-tags:
        - Vehicle Renewal Reminders
      description: A Vehicle Renewal Reminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - account_id
            - active
            - vehicle_id
            - vehicle_renewal_type_id
            - vehicle_archived_at
            - comments_count
            - custom_fields
            - active
            - next_due_at
            - last_sent_at
            - due_soon_at
            - due_soon_time_threshold_interval
            - due_soon_time_threshold_frequency
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_renewal_type_id:
              $ref: '#/components/schemas/Id'
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder's `Vehicle` was
                archived, if applicable.
            active:
              type: boolean
              nullable: true
              description: Whether or not this Renewal Reminder is active.
            next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Renewal Reminder is next due.
            last_sent_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder was last
                sent.
            due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which this Renewal Reminder will next be
                marked as "Due Soon".
            due_soon_time_threshold_interval:
              type: integer
              nullable: true
              description: |-
                The amount of time before a Renewal is due where it will be marked as
                as "Due Soon".
            due_soon_time_threshold_frequency:
              $ref: '#/components/schemas/Frequency'
            comments_count:
              type: integer
              minimum: 0
              nullable: true
              description: The number of `Comments` on this Renewal Reminder.
            custom_fields:
              type: object
            is_sample:
              type: boolean
              description: Whether this Renewal Reminder is sample data.
            watchers_count:
              type: integer
              description: The count of watchers associated with the record.
            watchable_options:
              type: object
              description: Options related to watching the record.
            bulk_watch_record:
              type: boolean
              description: Indicates if a bulk watch record is created.
            skip_automatic_watchers_callbacks:
              type: boolean
              description: Indicates if automatic watchers callbacks are skipped.
    VehicleRenewalType:
      title: Vehicle Renewal Type
      x-tags:
        - Vehicle Renewal Types
      description: A Vehicle Renewal Type
      type: object
      required:
        - account_id
        - name
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Vehicle Renewal Type.
    VehicleStatusChangeSummary:
      title: Vehicle Status Change
      x-tags:
        - Vehicle Status Changes
      description: A Vehicle Status Change
      type: object
      required:
        - account_id
        - id
        - vehicle_id
        - from_vehicle_status_id
        - to_vehicle_status_id
        - user_id
        - effective_until
        - created_at
        - updated_at
      properties:
        account_id:
          type: integer
          description: The ID of the `Account` that owns the Vehicle Status Change.
        id:
          type: integer
          description: The ID of the Vehicle Status Change.
        vehicle_id:
          type: integer
          description: The ID of the `Vehicle` that the Vehicle Status Change is for.
        from_vehicle_status_id:
          type: integer
          nullable: true
          description: The ID of the `Vehicle Status` that the `Vehicle` transitioned from.
        to_vehicle_status_id:
          type: integer
          description: The ID of the `Vehicle Status` that the `Vehicle` transitioned to.
        user_id:
          type: integer
          description: The ID of the `User` that created the Vehicle Status Change.
        effective_until:
          type: string
          format: date-time
          nullable: true
          description: The date and time that the Vehicle Status Change is effective until.
        created_at:
          type: string
          format: date-time
          description: The date and time that the Vehicle Status Change was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time that the Vehicle Status Change was last updated.
        vehicle:
          $ref: '#/components/schemas/VehicleMini'
    VehicleStatus:
      title: Vehicle Status
      x-tags:
        - Vehicle Statuses
      description: A Vehicle Status
      required:
        - account_id
        - name
        - default
        - color
        - position
      type: object
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Vehicle Status.
        default:
          type: boolean
          description: Whether this is the default Vehicle Status for new `Vehicles`.
        color:
          type: string
          nullable: true
          description: The color of the Vehicle Status shown in the UI.
        position:
          type: integer
          nullable: true
          description: The position of this Vehicle Status in the list of Vehicle Statuses.
    VehicleType:
      title: Vehicle Type
      x-tags:
        - Vehicle Types
      description: A Vehicle Type
      type: object
      required:
        - account_id
        - name
        - default
        - unarchived_vehicles_count
        - vehicles_count
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Vehicle Type.
        default:
          type: boolean
          default: false
          description: Whether this Vehicle Type is the default applied to new `Vehicles`.
        unarchived_vehicles_count:
          type: integer
          minimum: 0
          description: The number of unarchived `Vehicles` that are of this Vehicle Type.
        vehicles_count:
          type: integer
          minimum: 0
          description: The total number of `Vehicles` that are of this Vehicle Type.
    VehicleFilters:
      type: object
      x-codegen-deep-query-param-serializable-filter: true
      properties:
        name:
          $ref: '#/components/schemas/LikeEqFilter'
        vin:
          $ref: '#/components/schemas/LikeEqFilter'
        license_plate:
          $ref: '#/components/schemas/LikeEqFilter'
        external_id:
          $ref: '#/components/schemas/LikeFilter'
        labels:
          $ref: '#/components/schemas/IncludeFilter'
        group_id:
          $ref: '#/components/schemas/EqFilter'
        vehicle_status_id:
          $ref: '#/components/schemas/EqFilter'
        vehicle_type_id:
          $ref: '#/components/schemas/EqFilter'
        created_at:
          $ref: '#/components/schemas/LtLteGtGteFilter'
        updated_at:
          $ref: '#/components/schemas/LtLteGtGteFilter'
      additionalProperties: false
    VehicleSorts:
      type: object
      x-codegen-deep-query-param-serializable-sort: true
      properties:
        name:
          $ref: '#/components/schemas/SortAscDesc'
        created_at:
          $ref: '#/components/schemas/SortAscDesc'
        updated_at:
          $ref: '#/components/schemas/SortAscDesc'
        id:
          $ref: '#/components/schemas/SortAscDescDefaultDesc'
      additionalProperties: false
    VehicleFilteredBy:
      type: array
      description: The filters applied to the returned record set.  If you have filtered by custom field filters, these will be returned with the respective `like` or `eq` filter value.
      items:
        anyOf:
          - type: object
            properties:
              name:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              vin:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              license_plate:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              external_id:
                $ref: '#/components/schemas/LikeFilter'
          - type: object
            properties:
              labels:
                $ref: '#/components/schemas/IncludeFilter'
          - type: object
            properties:
              group_id:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              vehicle_status_id:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              vehicle_type_id:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              created_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
          - type: object
            properties:
              updated_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
    VehicleSortedBy:
      type: array
      description: The sorts applied to the returned record set.
      items:
        anyOf:
          - type: object
            properties:
              name:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              created_at:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              updated_at:
                $ref: '#/components/schemas/SortAscDesc'
          - type: object
            properties:
              id:
                $ref: '#/components/schemas/SortAscDesc'
    VehicleSummary:
      title: Vehicle
      x-tags:
        - Vehicles
      description: A Vehicle
      type: object
      nullable: true
      properties:
        id:
          type: integer
        account_id:
          type: integer
        archived_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The iso8601 date and time at which the vehicle was archived, for an archived vehicle.
        fuel_type_id:
          type: integer
          nullable: true
        fuel_type_name:
          type: string
          nullable: true
          description: The name of the `Fuel Type` associated with this vehicle.
        fuel_volume_units:
          $ref: '#/components/schemas/VolumeUnit'
        group_id:
          type: integer
          nullable: true
        group_name:
          type: string
          nullable: true
          description: The name of the `Group` associated with this vehicle, for vehicles associated with a group.
        name:
          type: string
          description: This vehicle's name.
        ownership:
          $ref: '#/components/schemas/VehicleOwnershipResponse'
        current_location_entry_id:
          type: integer
          nullable: true
        system_of_measurement:
          $ref: '#/components/schemas/MeasurementSystem'
        vehicle_type_id:
          type: integer
          description: This vehicles `Vehicle Type` id.
        vehicle_type_name:
          type: string
          description: The name of the `Vehicle Type` associated with this Vehicle.
        is_sample:
          type: boolean
          description: Indicates whether this Vehicle record is [Sample Data](https://help.fleetio.com/s/article/Sample-Data).
        vehicle_status_id:
          type: integer
          description: The id of the `Vehicle Status` of this vehicle.
        vehicle_status_name:
          type: string
          description: The name of the `Vehicle Status` associated with this Vehicle.
        vehicle_status_color:
          type: string
          nullable: true
          description: The hex color code of the `Vehicle Status` associated with this Vehicle.
        primary_meter_unit:
          $ref: '#/components/schemas/MeterUnit'
        primary_meter_value:
          type: string
          nullable: true
          description: The current value of the primary meter for this Vehicle.
        primary_meter_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the primary meter was last updated.
        primary_meter_usage_per_day:
          type: string
          nullable: true
          description: The average number of units of the primary meter used per day.
        secondary_meter_unit:
          $ref: '#/components/schemas/MeterUnit'
        secondary_meter_value:
          type: string
          nullable: true
          description: The current value of the secondary meter for this Vehicle.
        secondary_meter_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the secondary meter was last updated.
        secondary_meter_usage_per_day:
          type: string
          nullable: true
          description: The average number of units of the secondary meter used per day.
        in_service_meter_value:
          type: string
          nullable: true
          description: The meter value at which this Vehicle was put into service.
        in_service_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date on which this Vehicle was put into service.
        out_of_service_meter_value:
          type: string
          nullable: true
          description: The meter value at which this Vehicle was or will be retired.
        out_of_service_date:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date on which this Vehicle was or will be retired.
        estimated_service_months:
          type: integer
          nullable: true
          description: The estimated number of months this Vehicle will be in service.
        estimated_replacement_mileage:
          type: string
          nullable: true
          description: |-
            The estimated number of miles before which this Vehicle will be
            replaced.
        estimated_resale_price_cents:
          type: integer
          nullable: true
          description: The estimated resale price of this Vehicle in cents.
        fuel_entries_count:
          type: integer
          minimum: 0
          description: The number of `Fuel Entries` associated with this Vehicle.
        service_entries_count:
          type: integer
          minimum: 0
          description: The number of `Service Entries` associated with this Vehicle.
        service_reminders_count:
          type: integer
          minimum: 0
          description: The number of `Service Reminders` associated with this Vehicle.
        vehicle_renewal_reminders_count:
          type: integer
          minimum: 0
          description: The number of `Vehicle Renewal Reminders` associated with this Vehicle.
        comments_count:
          type: integer
          minimum: 0
          description: The number of `Comments` associated with this Vehicle.
        documents_count:
          type: integer
          minimum: 0
          description: The number of documents attached to this Vehicle.
        images_count:
          type: integer
          minimum: 0
          description: The number of images attached to this Vehicle.
        issues_count:
          type: integer
          minimum: 0
          description: The number of `Issues` this Vehicle is associated with.
        work_orders_count:
          type: integer
          minimum: 0
          description: The number of `Work Orders` this Vehicle is associated with.
        labels:
          $ref: '#/components/schemas/Labels'
        group_ancestry:
          type: string
          nullable: true
          description: The ancestry of the Group associated with this Vehicle.
        color:
          type: string
          nullable: true
          description: The color of this Vehicle.
        license_plate:
          type: string
          nullable: true
          description: The license plate number of this Vehicle.
        vin:
          type: string
          nullable: true
          description: The Vehicle Identification Number of this Vehicle.
        year:
          type: string
          nullable: true
          description: This Vehicle's model year.
        make:
          type: string
          nullable: true
          description: The name of this Vehicle's manufacturer.
        model:
          type: string
          nullable: true
          description: The name of the model of this Vehicle.
        trim:
          type: string
          nullable: true
          description: The trim level of this Vehicle.
        registration_expiration_month:
          type: integer
          nullable: true
          minimum: 0
          maximum: 12
          description: The month in which this Vehicle's registration expires.
        registration_state:
          type: string
          nullable: true
          description: The state, province, or territory in which this Vehicle is registered.
        default_image_url_small:
          type: string
          nullable: true
          description: The URL of a small-sized version of the default image for this Vehicle.
        external_ids:
          type: object
          description: Any [External IDs](/docs/guides/vehicles/external-vehicle-ids) associated with this Vehicle.
        ai_enabled:
          type: boolean
          description: |-
            Whether this Vehicle has
            [Auto Integrate](https://help.fleetio.com/s/article/FAQ-Maintenance-Shop-Integration)
            enabled for it.
        assetable_type:
          type: string
          description: Assetable type for Vehicle is always `Vehicle` for vehicles.
          enum:
            - Vehicle
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        axle_config_id:
          type: integer
          description: The id of the `Axle Configuration` of this vehicle.
          nullable: true
        driver:
          $ref: '#/components/schemas/ContactMini'
        specs:
          $ref: '#/components/schemas/VehicleSpecs'
    VehicleOwnership:
      title: VehicleOwnership
      type: string
      enum:
        - owned
        - leased
        - rented
        - customer
        - financed
        - rent_to_own
    VehicleArchivedFilters:
      type: object
      x-codegen-deep-query-param-serializable-filter: true
      properties:
        name:
          $ref: '#/components/schemas/LikeEqFilter'
        vin:
          $ref: '#/components/schemas/LikeEqFilter'
        license_plate:
          $ref: '#/components/schemas/LikeEqFilter'
        external_id:
          $ref: '#/components/schemas/LikeFilter'
        archived_at:
          $ref: '#/components/schemas/LtLteGtGteFilter'
      additionalProperties: false
    VehicleArchivedFilteredBy:
      type: array
      description: The filters applied to the returned record set.  If you have filtered by custom field filters, these will be returned with the respective `like` or `eq` filter value.
      items:
        anyOf:
          - type: object
            properties:
              name:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              vin:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              license_plate:
                $ref: '#/components/schemas/LikeEqFilter'
          - type: object
            properties:
              external_id:
                $ref: '#/components/schemas/EqFilter'
          - type: object
            properties:
              archived_at:
                $ref: '#/components/schemas/LtLteGtGteFilter'
    Totalable:
      type: object
      properties:
        total_amount:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: The total amount.
        total_amount_cents:
          type: integer
          nullable: true
          description: The total amount in cents.
    VehicleFuelEntry:
      title: Fuel Entry
      x-tags:
        - Fuel Entries
      description: A Fuel Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/Totalable'
        - type: object
          required:
            - cost_per_hr
            - cost_per_km
            - cost_per_mi
            - date
            - external_id
            - fuel_type_id
            - fuel_type_name
            - kpl
            - liters
            - liters_per_hr
            - lp100k
            - mpg_uk
            - mpg_us
            - partial
            - personal
            - price_per_volume_unit
            - raw_transaction_data
            - reference
            - region
            - reset
            - uk_gallons
            - uk_gallons_per_hr
            - us_gallons
            - us_gallons_per_hr
            - usage_in_hr
            - usage_in_km
            - usage_in_mi
            - vehicle_id
            - vehicle_name
            - vendor_id
            - vendor_name
            - meter_entry
            - geolocation
          properties:
            cost_per_hr:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per hour since the last Fuel Entry.
            cost_per_km:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per km since the last Fuel Entry.
            cost_per_mi:
              type: number
              format: float
              nullable: true
              description: The automatically calculated cost per mi since the last Fuel Entry.
            date:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which this Fuel Entry was recorded.
            external_id:
              type: string
              nullable: true
              description: |-
                Used to uniquely identify Fuel Entries that are imported from external
                systems, such as Fleetcor and Wex.
            fuel_type_id:
              type: integer
              minimum: 1
              nullable: true
              description: The Fleetio `id` of the Fuel Type associated with this Fuel Entry.
            fuel_type_name:
              type: string
              nullable: true
              description: The name of the Fuel Type associated with this Fuel Entry.
            kpl:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded kilometers per liter (calculated automatically).
            liters:
              type: string
              nullable: true
              description: |
                The fuel volume amount in liters. This field will _only_ be used if the
                [Vehicle](/docs/api/vehicles) is [configured to use
                liters](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            liters_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average recorded liters per hour (calculated automatically).
            lp100k:
              type: number
              format: float
              nullable: true
              description: |-
                Running average recorded liters per 100 kilometers (calculated
                automatically).
            mpg_uk:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded miles per UK Gallon (calculated automatically).
            mpg_us:
              type: number
              format: float
              nullable: true
              description: |
                Running average recorded miles per US Gallon (calculated automatically).
            partial:
              type: boolean
              description: |
                Used to denote a partial fuel up as opposed to a complete fuel up. Learn
                more about partial fuel entries
                [here](https://help.fleetio.com/s/article/Partial-Fuel-Entries).
            personal:
              type: boolean
              description: Used to denote a personal expense.
            price_per_volume_unit:
              type: number
              format: float
              nullable: true
              description: The unit price for the Vehicle's volume unit.
            raw_transaction_data:
              type: object
              nullable: true
              description: This object is dynamically populated by external fuel card integrations.
            reference:
              type: string
              nullable: true
              description: |
                Optional data field for collecting information such as the invoice number,
                transaction id, or receipt number, for example.
            region:
              type: string
              nullable: true
            reset:
              type: boolean
              default: false
            uk_gallons:
              type: string
              description: |
                The fuel volume amount in UK gallons. This field will _only_ be used if
                the [Vehicle](/docs/api/vehicles) is [configured to use UK
                Gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            uk_gallons_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average of UK gallons used per hour. Calculated automatically.
            us_gallons:
              type: string
              description: |
                The fuel volume amount in US gallons. This field will _only_ be used if
                the [Vehicle](/docs/api/vehicles) is [configured to use US
                Gallons](https://help.fleetio.com/s/article/Fuel-Settings#vehicle-settings),
                otherwise it will be ignored.
            us_gallons_per_hr:
              type: number
              format: float
              nullable: true
              description: Running average of US gallons used per hour. Calculated automatically.
            usage_in_hr:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in hours since the most recent Fuel
                Entry.
            usage_in_km:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in kilometers since the most recent
                Fuel Entry.
            usage_in_mi:
              type: string
              nullable: true
              description: |-
                The automatically calculated usage in miles since the most recent
                Fuel Entry.
            vehicle_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The Fleetio `id` of the [Vehicle](/docs/api/vehicles) associated with this
                Fuel Entry.
            vehicle_name:
              type: string
              description: |
                The name of the [Vehicle](/docs/api/vehicles) associated with this Fuel
                Entry.
            vendor_id:
              type: integer
              minimum: 1
              nullable: true
              description: |
                The Fleetio `id` of the [Vendor](/docs/api/vendors) associated with this
                Fuel Entry.
            vendor_name:
              type: string
              nullable: true
              description: |-
                The name of the [Vendor](/docs/api/vendors) associated with this Fuel
                Entry.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            geolocation:
              $ref: '#/components/schemas/Geolocation'
    LinkedVehicle:
      title: Linked Vehicle
      x-tags:
        - Vehicles
      description: A Linked Vehicle
      type: object
      required:
        - id
        - name
        - default_image_url
      properties:
        id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the linked Vehicle.
        default_image_url:
          type: string
          nullable: true
          description: The URL of the default image for the linked Vehicle.
    PartsAndLaborSubTotalable:
      type: object
      properties:
        labor_subtotal:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: The total cost of labor for this record.
        labor_subtotal_cents:
          type: integer
          description: The total cost of labor in cents.
        parts_subtotal:
          type: number
          format: float
          nullable: true
          example: 1.23
          description: The total cost of parts for this record.
        parts_subtotal_cents:
          type: integer
          description: The total cost of parts in cents.
    SubTotalable:
      type: object
      properties:
        subtotal:
          description: The pre-tax subtotal amount.
          type: number
          format: float
          nullable: true
          example: 1.23
        subtotal_cents:
          type: integer
          nullable: true
          description: The pre-tax subtotal amount in cents.
    Taxable:
      allOf:
        - $ref: '#/components/schemas/TaxableParameters'
        - type: object
          properties:
            tax_1:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The primary tax amount.
            tax_2:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The secondary tax amount.
                Note that this secondary tax must be configured in
                your [Account Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
    VehicleServiceEntry:
      title: Service Entry
      x-tags:
        - Service Entries
      description: A Service Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - reference
            - vendor_id
            - vendor_name
            - vehicle_id
            - vehicle_name
            - custom_fields
            - started_at
            - completed_at
            - date
            - service_tasks
            - issues
            - meter_entry
          properties:
            completed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Service Entry was completed.
            reference:
              type: string
              nullable: true
              description: A reference number for this Service Entry.
            started_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Service Entry was started.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_name:
              type: string
              nullable: true
              description: The name of the `Vehicle` that this Service Entry was performed on.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            vendor_name:
              type: string
              nullable: true
              description: The name of the `Vendor` that performed this service.
            work_order_id:
              $ref: '#/components/schemas/NullableId'
            date:
              type: string
              description: |-
                The date and time of which this Service Entry was performed.
                Formatted according to ISO-8601 in `User`'s local time.
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
            service_tasks:
              type: array
              description: Any `Service Tasks` that were performed during this Service Entry.
              items:
                $ref: '#/components/schemas/ServiceTask'
            issues:
              type: array
              description: Any `Issues` that were created during this Service Entry.
              items:
                $ref: '#/components/schemas/Issue'
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
        - $ref: '#/components/schemas/PartsAndLaborSubTotalable'
        - $ref: '#/components/schemas/SubTotalable'
        - $ref: '#/components/schemas/Taxable'
        - $ref: '#/components/schemas/Totalable'
    VehicleVehicleAssignment:
      title: Vehicle Assignment
      x-tags:
        - Vehicle Assignments
      description: A Vehicle Assignment
      allOf:
        - $ref: '#/components/schemas/Record'
        - $ref: '#/components/schemas/Assignable'
        - type: object
          required:
            - vehicle_id
            - contact_id
            - custom_fields
            - started_at
            - ended_at
          properties:
            vehicle_id:
              $ref: '#/components/schemas/Id'
            contact_id:
              $ref: '#/components/schemas/Id'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            contact:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                default_image:
                  type: string
                  nullable: true
                full_name:
                  type: string
    Vendor:
      title: Vendor
      x-tags:
        - Vendors
      description: A Vendor
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - city
            - contact_email
            - contact_name
            - contact_phone
            - country
            - external_id
            - latitude
            - longitude
            - name
            - notes
            - phone
            - postal_code
            - region
            - street_address
            - street_address_line_2
            - website
            - fuel
            - service
            - parts
            - vehicle
            - archived_at
            - labels
            - custom_fields
          properties:
            name:
              type: string
              description: The name of the Vendor.
            phone:
              type: string
              nullable: true
              description: The phone number of the Vendor.
            street_address:
              type: string
              nullable: true
              description: The street address of the Vendor.
            street_address_line_2:
              type: string
              nullable: true
              description: The second line of the street address of the Vendor.
            city:
              type: string
              nullable: true
              description: The city of the Vendor.
            region:
              type: string
              nullable: true
              description: The region, state, province, or territory of the Vendor.
            postal_code:
              type: string
              nullable: true
              description: The postal code or ZIP code of the Vendor.
            country:
              type: string
              nullable: true
              description: The country of the Vendor.
            website:
              type: string
              nullable: true
              description: The website of the Vendor.
            notes:
              type: string
              nullable: true
              description: Additional notes about the Vendor.
            fuel:
              type: boolean
              nullable: true
              description: Indicates whether the Vendor provides fuel.
            service:
              type: boolean
              nullable: true
              description: Indicates whether the Vendor provides service.
            parts:
              type: boolean
              nullable: true
              description: Indicates whether the Vendor provides parts.
            vehicle:
              type: boolean
              nullable: true
              description: Indicates whether the Vendor provides vehicles.
            contact_name:
              type: string
              nullable: true
              description: The name of the contact person for the Vendor.
            contact_email:
              type: string
              nullable: true
              description: The email address of the contact person for the Vendor.
            contact_phone:
              type: string
              nullable: true
              description: The phone number of the contact person for the Vendor.
            latitude:
              type: number
              format: float
              nullable: true
              description: The latitude of the Vendor's location.
            longitude:
              type: number
              format: float
              nullable: true
              description: The longitude of the Vendor's location.
            external_id:
              type: string
              nullable: true
              description: The external identifier of the Vendor.
            archived_at:
              type: string
              nullable: true
              description: The date and time when the Vendor was archived, if applicable.
            labels:
              $ref: '#/components/schemas/Labels'
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
    VmrsReasonForRepair:
      title: VMRS Reason for Repair
      x-tags:
        - VMRS Reason for Repairs
      description: A VMRS Reason for Repair
      type: object
      properties:
        id:
          type: integer
        code:
          type: string
          description: The code associated with this reason for repair.
        name:
          type: string
          description: The name of this reason for repair.
        repair_type:
          type: string
          description: The type of repair this reason for repair is associated with.
        enabled:
          type: boolean
          description: Whether this reason for repair is enabled.
          default: true
    Webhook:
      title: Webhook
      x-tags:
        - Webhooks
      description: A Webhook
      type: object
      required:
        - account_id
        - url
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        all_events:
          type: boolean
          description: |-
            Indicates whether or not this Webhook should be triggered by all
            events.
        authorization:
          type: string
          nullable: true
          description: |-
            The authorization header to include in the request to the URL
            specified by `url`.
        description:
          type: string
          nullable: true
          description: A description of this Webhook.
        disabled_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the Webhook was disabled.
        disabled_reason:
          type: string
          nullable: true
          description: |-
            The reason this Webhook was disabled. This field is only present if
            `disabled_at` is present.
        enabled:
          type: boolean
          description: |-
            Indicates whether or not this Webhook is enabled. If `false`, the
            Webhook will not be triggered.
        failed_attempts:
          type: integer
          description: |-
            The number of times this Webhook has failed to be triggered. If this
            number exceeds the value of `3`, the Webhook will
            be disabled.
        shared_key:
          type: string
          description: The shared key to verify that incoming messages came from Fleetio.
        subscribed_events:
          type: object
          description: |-
            The events that this Webhook is subscribed to. If `all_events` is
            `true`, this field will be ignored.
          additionalProperties:
            type: boolean
        url:
          type: string
          format: uri
          description: |-
            The URL to which this Webhook will send a POST request when
            triggered.
    WebhookEvent:
      title: Webhook Event
      x-tags:
        - Webhook Events
      description: A Webhook Event
      type: object
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        attempts:
          type: integer
          description: The number of times Fleetio attempted to send this event to the Webhook endpoint.
        event:
          type: string
          description: The event that triggered this Webhook.
        last_error:
          type: string
          nullable: true
          description: The last error that occurred when attempting to trigger this Webhook.
        last_sent_at:
          nullable: true
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which this webhook event was last sent.
        payload:
          type: string
          description: The payload that was sent to the Webhook endpoint.
        response_body:
          type: string
          nullable: true
          description: The response body from the Webhook endpoint.
        response_code:
          type: integer
          nullable: true
          description: The response code from the Webhook endpoint.
        retried_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which this Webhook was last retried.
        status:
          type: string
          nullable: true
          description: The status of this Webhook event.
        webhook_id:
          $ref: '#/components/schemas/Id'
    WorkOrderStatus:
      title: Work Order Status
      x-tags:
        - Work Order Statuses
      description: A Work Order Status
      type: object
      required:
        - account_id
        - name
        - default
        - completed
        - position
        - color
        - description
        - work_orders_count
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        account_id:
          $ref: '#/components/schemas/Id'
        name:
          type: string
          description: The name of the Work Order Status.
        description:
          type: string
          nullable: true
          description: The description of the Work Order Status.
        color:
          type: string
          nullable: true
          description: The color of the Work Order Status seen in the UI.
        default:
          type: boolean
          description: Whether or not this is the default Work Order Status applied to new `Work Orders`.
        completed:
          type: boolean
          description: Whether Work Orders will be set to `completed` when they are moved to this status.
        position:
          type: integer
          description: The position of this Work Order Status in the list of statuses.
        work_orders_count:
          type: integer
          description: The number of `Work Orders` that are currently in this status.
    Issue_v2:
      title: Issue
      x-tags:
        - Issues
      description: An Issue
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - asset
            - asset_type
            - attachment_permissions
            - closed_at
            - closed_by
            - closed_note
            - description
            - due_date
            - due_meter_value
            - due_secondary_meter_value
            - is_overdue
            - number
            - reported_at
            - reported_by
            - resolvable
            - resolvable_type
            - resolved_at
            - resolved_by
            - resolved_note
            - state
            - submitted_inspection_form
            - summary
            - creation_type
            - fault
          properties:
            number:
              type: integer
              minimum: 1
              description: A unique identifier for the Issue.
            summary:
              type: string
              description: A summary of the Issue.
            description:
              type: string
              nullable: true
              description: A longer description of the Issue.
            state:
              type: string
              enum:
                - open
                - closed
                - resolved
              description: The Issue's current state.
            reported_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Issue was reported.
            reported_by:
              type: object
              nullable: true
              description: The `Contact` ID of the `User` who reported this Issue.
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            resolvable_type:
              type: string
              nullable: true
              enum:
                - ServiceEntry
                - WorkOrder
              description: The type of the object which can resolve this Issue.
            resolved_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Issue was resolved.
            resolved_by:
              type: object
              nullable: true
              description: The `Contact` ID of the `User` that resolved this Issue.
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            resolved_note:
              type: string
              default: ''
              description: Any notes associated with resolving this Issue.
            closed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which this Issue was closed.
            closed_by:
              type: object
              nullable: true
              description: The `Contact` ID of the `User` that closed this Issue.
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            closed_note:
              type: string
              default: ''
              description: Any notes associated with closing this Issue.
            due_date:
              type: string
              format: date
              example: '2023-03-14'
              nullable: true
              description: |-
                The date on which this Issue should be resolved by.
                Formatted according to ISO-8601 in `User`'s local time zone.
            due_meter_value:
              type: number
              format: float
              nullable: true
              description: The meter value at which this Issue should be resolved by.
            due_secondary_meter_value:
              type: number
              format: float
              nullable: true
              description: The secondary meter value at which this Issue should be resolved by.
            is_overdue:
              type: boolean
              description: |
                Indicates whether the Issue is overdue.
            issue_priority:
              $ref: '#/components/schemas/IssuePriority'
            resolvable:
              type: object
              nullable: true
              description: The ID of the object which can resolve this Issue.
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            creation_type:
              type: string
              enum:
                - manual
                - workflow
              description: Indicates if this Issue was created manually or by a workflow.
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            asset:
              type: object
              properties:
                id:
                  $ref: '#/components/schemas/Id'
                name:
                  type: string
                  description: The name of the asset associated with the Issue.
                image_url_medium:
                  type: string
                  nullable: true
                  description: The URL to a medium-sized image of the asset associated with the Issue.
                current_job:
                  type: object
                  nullable: true
                  description: The current job for the asset associated with the Issue, if any.
                  properties:
                    name:
                      type: string
                      description: The name of the job.
                    number:
                      type: string
                      description: The number of the job.
            asset_type:
              type: string
              description: The asset type that has the Issue.
              enum:
                - Vehicle
                - Equipment
            submitted_inspection_form:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            fault:
              type: object
              nullable: true
              properties:
                id:
                  $ref: '#/components/schemas/Id'
            watchers_count:
              type: integer
              description: The count of watchers associated with the Issue.
            comments_count:
              type: integer
              description: The count of `Comments` associated with the Issue.
            images_count:
              type: integer
              description: The count of images associated with the Issue.
            documents_count:
              type: integer
              description: The count of documents associated with the Issue.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            labels:
              type: array
              description: |-
                An array of labels associated with the Issue. Can be included in the response
                by passing `labels` in the `includes` query parameter.
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  name:
                    type: string
                    description: The name of the label.
                  color:
                    type: string
                    description: The color of the label.
    VmrsComponentable:
      allOf:
        - type: object
          properties:
            vmrs_reason_for_repair:
              type: object
              properties:
                account_id:
                  type: integer
                alias:
                  type: string
                  nullable: true
                code:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                name:
                  type: string
                repair_type:
                  type: string
                  nullable: true
                standard:
                  type: boolean
                standard_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_reason_for_repair:
                  type: object
                  nullable: true
              nullable: true
            vmrs_system_group:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            vmrs_system:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            vmrs_assembly:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
            vmrs_component:
              type: object
              properties:
                account_id:
                  type: number
                  nullable: true
                assembly_code:
                  type: string
                  nullable: true
                assembly_name:
                  type: string
                  nullable: true
                code_type:
                  type: string
                  enum:
                    - system_group
                    - system
                    - assembly
                    - component
                component_code:
                  type: string
                  nullable: true
                component_name:
                  type: string
                  nullable: true
                enabled:
                  type: boolean
                id:
                  type: integer
                permissions:
                  type: object
                  properties:
                    destroy:
                      type: boolean
                  nullable: true
                standard:
                  type: boolean
                system_code:
                  type: string
                  nullable: true
                system_group:
                  type: string
                  nullable: true
                system_group_code:
                  type: string
                  nullable: true
                system_name:
                  type: string
                  nullable: true
                type:
                  type: string
                vmrs_standard_system_assembly_component:
                  type: object
                  nullable: true
              nullable: true
    ServiceEntryLineItem_v2:
      title: Service Entry Line Item
      x-tags:
        - Service Entries
      description: A Service Entry Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - description
            - type
            - service_entry_line_item_id
            - service_reminder_id
            - vmrs_reason_for_repair
            - vmrs_system_group
            - vmrs_system
            - vmrs_assembly
            - vmrs_component
            - issues
          properties:
            description:
              type: string
              nullable: true
              description: A description of the service performed for this line item.
            type:
              $ref: '#/components/schemas/ServiceEntryLineItemType'
            service_entry_id:
              type: integer
              description: The id of the `Service Entry` this line item belongs to.
            service_entry_line_item_id:
              type: integer
              nullable: true
              description: For nested line items. This value denotes the parent `Service Entry Line Item`.
            service_reminder_id:
              type: integer
              nullable: true
              description: If this line item is linked to a Service Reminder, this ID will be set.
            service_task:
              $ref: '#/components/schemas/ServiceTask'
            issues:
              type: array
              items:
                $ref: '#/components/schemas/Issue'
              description: Any `Issues` this line item is linked to.
            subtotal:
              type: number
              format: float
              description: The pre-tax subtotal for this line item.
            parts_cost:
              type: number
              format: float
              description: The parts cost for this line item.
            labor_cost:
              type: number
              format: float
              description: The labor cost for this line item.
        - $ref: '#/components/schemas/VmrsComponentable'
    VmrsComponentableParameters:
      type: object
      properties:
        vmrs_system_id:
          $ref: '#/components/schemas/NullableId'
        vmrs_assembly_id:
          $ref: '#/components/schemas/NullableId'
        vmrs_component_id:
          $ref: '#/components/schemas/NullableId'
        vmrs_reason_for_repair_id:
          $ref: '#/components/schemas/NullableId'
        vmrs_system_group_id:
          $ref: '#/components/schemas/NullableId'
    ServiceEntryLineItem_v2_Created:
      title: Service Entry Line Item
      x-tags:
        - Service Entries
      description: A Service Entry Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - title
            - description
            - position
            - linking_source
            - vehicle_id
            - service_entry_line_item_id
            - service_reminder_id
            - service_entry_id
            - service_task_id
            - service_code_id
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            title:
              type: string
              nullable: true
              description: A title for this line item.
            description:
              type: string
              nullable: true
              description: A description of the service performed for this line item.
            position:
              type: integer
              nullable: true
              description: The position of this line item in the list of line items.
            linking_source:
              type: string
              nullable: true
              enum:
                - manual
                - automatic_algorithm
                - service_code_mapper
            vehicle_id:
              $ref: '#/components/schemas/Id'
            service_entry_line_item_id:
              type: integer
              nullable: true
              description: For nested line items. This value denotes the parent `Service Entry Line Item`.
            service_reminder_id:
              type: integer
              nullable: true
              description: If this line item is linked to a Service Reminder, this ID will be set.
            service_entry_id:
              $ref: '#/components/schemas/Id'
            service_task_id:
              $ref: '#/components/schemas/Id'
            service_code_id:
              $ref: '#/components/schemas/NullableId'
            import_id:
              $ref: '#/components/schemas/NullableId'
            labor_cost_cents:
              type: integer
              description: The labor cost in cents for this line item.
            parts_cost_cents:
              type: integer
              description: The parts cost in cents for this line item.
            subtotal_cents:
              type: integer
              description: The pre-tax subtotal in cents for this line item.
        - $ref: '#/components/schemas/VmrsComponentableParameters'
    ServiceReminder_v2:
      title: Service Reminder
      x-tags:
        - Service Reminders
      description: A Service Reminder
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            active:
              type: boolean
              description: Indicates whether the Service Reminder is currently active.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            service_task_id:
              $ref: '#/components/schemas/NullableId'
            service_task_name:
              type: string
              nullable: true
              description: The name of the `Service Task` associated with the Service Reminder, if applicable.
            service_task_description:
              type: string
              nullable: true
              description: |-
                The description of service performed in the `Service Task` associated with
                the Service Reminder, if applicable.
            time_interval:
              type: integer
              nullable: true
              description: |-
                The number of time units according to `time_frequency` between each occurrence
                of the Service Reminder.
            time_frequency:
              $ref: '#/components/schemas/Frequency'
            next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time when the Service Reminder is next due.
                Formatted according to ISO-8601 in `User`'s local time.
            due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time when the Service Reminder will be considered due soon.
                Formatted according to ISO-8601 in `User`'s local time.
            due_soon_time_threshold_interval:
              type: integer
              nullable: true
              description: |-
                The number of time units according to `due_soon_time_threshold_frequency`
                between `due_soon_at` occurrences.
            due_soon_time_threshold_frequency:
              $ref: '#/components/schemas/Frequency'
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: |-
                The date and time at which the vehicle associated with the Service Reminder
                was archived, if applicable.
            forecasted_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next due service.
            forecasted_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the Service Reminder to be due soon.
            starting_interval:
              type: boolean
              nullable: true
              description: Indicates whether the Service Reminder has a starting interval.
            starting_meter_interval:
              type: string
              nullable: true
              description: The starting meter interval for this Service Reminder.
            starting_secondary_meter_interval:
              type: string
              nullable: true
              description: The starting secondary meter interval for this Service Reminder.
            starting_time_interval:
              type: integer
              nullable: true
              description: |-
                The starting time interval according to `starting_time_frequency`
                for time-based Service Reminders, if applicable.
            starting_time_frequency:
              $ref: '#/components/schemas/Frequency'
            snooze_until:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time until which the Service Reminder is snoozed.
            incomplete_work_orders:
              type: array
              description: Any incomplete Work Orders associated with the Service Reminder.
              items:
                type: object
                nullable: true
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  number:
                    type: integer
                    description: The incomplete `Work Order`'s number.
                  issued_date:
                    type: string
                    format: date-time
                    description: |-
                      The date and time when the incomplete `Work Order` was issued.
                      Formatted according to ISO-8601 in `User`'s local time.
            service_task_subtasks:
              type: array
              description: Any `Service Task Subtasks` associated with the Service Reminder.
              items:
                type: object
                nullable: true
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  name:
                    type: string
                    description: The name of the `Service Task Subtask`.
                  description:
                    type: string
                    description: The description of the `Service Task Subtask`.
            secondary_meter_interval:
              type: string
              nullable: true
              description: The number of secondary meter units between each occurrence of the Service Reminder.
            next_due_secondary_meter_value:
              type: string
              nullable: true
              description: The secondary meter value at which the Service Reminder is next due, if applicable.
            due_soon_secondary_meter_value:
              type: string
              nullable: true
              description: The secondary meter value at which the Service Reminder is due soon, if applicable.
            due_soon_secondary_meter_threshold:
              type: string
              nullable: true
              description: The secondary meter value threshold to which this Service Reminder will be due soon.
            service_reminder_status_name:
              type: string
              nullable: true
              description: The name of the Service Reminder status, if applicable.
            secondary_meter:
              type: boolean
              description: Indicates whether the Service Reminder is associated with a secondary meter.
            meter_interval:
              type: string
              nullable: true
              description: The meter interval of which this Service Reminder takes place.
            next_due_meter_value:
              type: string
              nullable: true
              description: The meter value at which the Service Reminder is next due, if applicable.
            due_soon_meter_value:
              type: string
              nullable: true
              description: The meter value at which the Service Reminder is due soon, if applicable.
            due_soon_meter_threshold:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The meter value threshold to which this Service Reminder will be due soon.
            meter_remaining_until_due:
              type: integer
              nullable: true
              description: The remaining meter units until the Service Reminder is due.
            secondary_meter_remaining_until_due:
              type: integer
              nullable: true
              description: The remaining secondary meter units until the Service Reminder is due.
            vehicle_meter_unit:
              type: string
              enum:
                - mi
                - km
                - hr
            vehicle_secondary_meter_unit:
              type: string
              nullable: true
              enum:
                - mi
                - km
                - hr
            forecasted_primary_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the primary Service Reminder to be due soon.
            forecasted_primary_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next primary due Service Reminder.
            forecasted_secondary_due_soon_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the secondary Service Reminder to be due soon.
            forecasted_secondary_next_due_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The forecasted date and time for the next secondary due Service Reminder.
            users:
              type: array
              description: A list of `Users` associated with the Service Reminder.
              items:
                type: object
                properties:
                  id:
                    $ref: '#/components/schemas/Id'
                  name:
                    type: string
                    nullable: true
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            latest_occurrence:
              $ref: '#/components/schemas/ServiceEntry'
            service_program_line_item:
              $ref: '#/components/schemas/ServiceProgramLineItem'
            watchers_count:
              type: integer
              description: The count of watchers associated with the record.
            is_watched:
              type: boolean
              description: Indicates whether the record is being watched.
        - $ref: '#/components/schemas/Commentable'
    VendorMini:
      title: Vendor
      x-tags:
        - Vendors
      description: A Vendor
      type: object
      nullable: true
      required:
        - city
        - country
        - external_id
        - name
        - phone
        - postal_code
        - region
      properties:
        name:
          type: string
          description: The name of the Vendor.
        phone:
          type: string
          nullable: true
          description: The phone number of the Vendor.
        city:
          type: string
          nullable: true
          description: The city of the Vendor.
        region:
          type: string
          nullable: true
          description: The region, state, province, or territory of the Vendor.
        postal_code:
          type: string
          nullable: true
          description: The postal code or ZIP code of the Vendor.
        country:
          type: string
          nullable: true
          description: The country of the Vendor.
        external_id:
          type: string
          nullable: true
          description: The external identifier of the Vendor.
    WorkOrderSummary:
      title: Work Order
      x-tags:
        - Work Orders
      description: A Work Order
      type: object
      required:
        - id
        - number
        - completed_at
        - description
        - ending_meter_same_as_start
        - duration_in_seconds
        - invoice_number
        - created_by_id
        - issued_at
        - issued_by_id
        - contact_id
        - purchase_order_number
        - scheduled_at
        - started_at
        - vehicle_id
        - vendor_id
        - expected_completed_at
        - work_order_status_id
        - work_order_status_name
        - documents_count
        - images_count
        - comments_count
        - state
        - created_at
        - updated_at
        - contact
        - vehicle
        - vendor
      properties:
        id:
          type: integer
        number:
          type: string
          description: The unique number of this Work Order.
        completed_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the Work Order was completed.
        description:
          type: string
          nullable: true
          description: A description of this Work Order.
        ending_meter_same_as_start:
          type: boolean
          description: |-
            Indicates whether or not the ending meter is the same as the starting
            meter.
        duration_in_seconds:
          type: integer
          nullable: true
          description: |-
            The number of seconds elapsed between beginning this Work Order and
            completing it.
        invoice_number:
          type: string
          nullable: true
          description: The number of the `Invoice` associated with this Work Order.
        created_by_id:
          type: integer
          description: The id of the `User` who created this Work Order.
        state:
          type: string
          enum:
            - active
            - completed
          description: |-
            Indicates whether this Work Order is currently active or has already
            been completed.
        issued_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which the Work Order was issued.
        issued_by_id:
          type: integer
          nullable: true
          description: The id of the issuer of this Work Order.
        contact_id:
          type: integer
          nullable: true
          description: The id of the `Contact` assigned to this Work Order.
        purchase_order_number:
          type: string
          nullable: true
          description: The purchase order number for this Work Order.
        scheduled_at:
          type: string
          format: date-time
          nullable: true
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which the Work Order was scheduled.
        started_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the Work Order was started.
        expected_completed_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          nullable: true
          description: The date and time at which the Work Order is expected to be completed.
        vehicle_id:
          type: integer
          description: The id of the `Vehicle` associated with this Work Order.
        work_order_status_id:
          type: integer
          description: The id of the `WorkOrderStatus` for this Work Order.
        work_order_status_color:
          type: string
          description: The color of the `Work Order Status` for this Work Order.
          nullable: true
        work_order_status_name:
          type: string
          description: The name of the `Work Order Status` for this Work Order.
        documents_count:
          type: integer
          description: The count of associated documents.
        images_count:
          type: integer
          description: The count of the associated images.
        comments_count:
          type: integer
          description: The count of associated comments.
        created_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which the Work Order was created.
        updated_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which the Work Order was last updated.
        labor_time_in_seconds:
          nullable: true
          type: integer
          description: The sum, in seconds, of the duration of all labor line items of a `completed` Work Order.
        attachment_permissions:
          $ref: '#/components/schemas/AttachmentPermissions'
        custom_fields:
          $ref: '#/components/schemas/CustomFields'
        contact:
          $ref: '#/components/schemas/ContactMini'
        vehicle:
          $ref: '#/components/schemas/VehicleMini'
        vendor:
          $ref: '#/components/schemas/VendorMini'
    WorkOrderSubLineItemsAttributes:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The ID of this Work Order Sub Line Item.
            Required if this is a Work Order Sub Line Item being updated.
        type:
          type: string
          enum:
            - WorkOrderPartLineItem
            - WorkOrderLaborLineItem
        item_id:
          type: integer
          description: The ID of the `Part` or `Contact` associated with this Work Order Line Item.
        item_type:
          type: string
          enum:
            - Part
            - Contact
        quantity:
          type: number
          format: float
          description: The quantity of the `Part` or `Contact` associated with this Work Order Line Item.
        part_location_detail_id:
          type: integer
          description: |-
            This ID refers to the details of the `Part` at a specific `Part Location`.
            You can send a GET request to `https://secure.fleetio.com/api/v1/parts/:id`
            to get any `part_location_detail_id`(s) for a `Part`.
            The `id` attribute under the `part_locations` object is the value
            that corresponds to this parameter.
        position:
          type: integer
          description: The position of this Work Order Line Item in a list of line items.
        description:
          type: string
          description: The description of this Work Order Line Item.
        inventory_set_id:
          type: integer
          description: |-
            The ID of the `Inventory Set` associated with this Work Order Line Item.
            This is only required if the Part is associated with an
            [Inventory Set](/docs/api/v-3-part-location-detail-inventory-sets-index).
        vmrs_reason_for_repair_id:
          type: integer
          description: The ID of the VMRS Reason for Repair associated with this Work Order Line Item.
        vmrs_system_group_id:
          type: integer
          description: The ID of the VMRS System Group associated with this Work Order Line Item.
        vmrs_system_id:
          type: integer
          description: The ID of the VMRS System associated with this Work Order Line Item.
        vmrs_assembly_id:
          type: integer
          description: The ID of the VMRS Assembly associated with this Work Order Line Item.
        vmrs_component_id:
          type: integer
          description: The ID of the VMRS Component associated with this Work Order Line Item.
        labor_time_entries_attributes:
          type: array
          items:
            type: object
            properties:
              started_at:
                type: string
                format: date-time
                description: |-
                  The date and time at which this Labor Time Entry was started.
                  We recommend using [ISO-8601](/docs/overview/date-formatting)
                  formatted dates to avoid ambiguity.
              ended_at:
                type: string
                format: date-time
                description: |-
                  The date and time at which this Labor Time Entry was ended.
                  We recommend using [ISO-8601](/docs/overview/date-formatting)
                  formatted dates to avoid ambiguity.
              contact_id:
                $ref: '#/components/schemas/NullableId'
    WorkOrderLineItemsAttributes:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The ID of this Work Order Line Item.
            Required if this is a Work Order Line Item being updated.
        item_type:
          type: string
          description: The Type of the item associated with this Work Order Line Item.
          enum:
            - Issue
            - ServiceTask
        item_name:
          type: string
          description: The name of the item associated with this Work Order Line Item.
        description:
          type: string
          description: A description of this Work Order Line Item.
        item_id:
          type: integer
          description: The ID of the item associated with this Work Order Line Item.
        labor_cost:
          type: number
          format: float
          description: The cost of labor of this line item.
        parts_cost:
          type: number
          format: float
          description: The cost of `Parts` of this line item.
        position:
          type: integer
          description: The position of this line item in a list of line items.
        subtotal:
          type: number
          format: float
          description: The subtotal of this line item.
        type:
          type: string
          enum:
            - WorkOrderServiceTaskLineItem
            - WorkOrderFreeTextLineItem
        vmrs_reason_for_repair_id:
          type: integer
          description: The ID of the VMRS Reason for Repair associated with this Work Order Line Item.
        vmrs_system_group_id:
          type: integer
          description: The ID of the VMRS System Group associated with this Work Order Line Item.
        vmrs_system_id:
          type: integer
          description: The ID of the VMRS System associated with this Work Order Line Item.
        vmrs_assembly_id:
          type: integer
          description: The ID of the VMRS Assembly associated with this Work Order Line Item.
        vmrs_component_id:
          type: integer
          description: The ID of the VMRS Component associated with this Work Order Line Item.
        issue_ids:
          type: array
          description: The IDs of any `Issues` associated with this Work Order Line Item.
          items:
            type: integer
        work_order_sub_line_items_attributes:
          type: array
          description: A list of any `Work Order Sub Line Items` to be added.
          items:
            $ref: '#/components/schemas/WorkOrderSubLineItemsAttributes'
        work_order_part_line_items_attributes:
          type: array
          description: A list of any `Work Order Part Line Items` to be added.
          items:
            $ref: '#/components/schemas/WorkOrderSubLineItemsAttributes'
        work_order_labor_line_items_attributes:
          type: array
          description: A list of any `Work Order Labor Line Items` to be added.
          items:
            $ref: '#/components/schemas/WorkOrderSubLineItemsAttributes'
    LaborTimeEntry:
      title: Labor Time Entry
      x-tags:
        - Work Orders
      description: A Labor Time Entry
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            account_id:
              $ref: '#/components/schemas/Id'
            contact_id:
              $ref: '#/components/schemas/Id'
            duration_in_seconds:
              type: integer
            ended_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
            laborable_id:
              $ref: '#/components/schemas/Id'
            laborable_type:
              type: string
              enum:
                - WorkOrderSubLineItem
            started_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
            data:
              type: object
              properties:
                clock_in_latitude:
                  type: number
                  format: float
                clock_in_longitude:
                  type: number
                  format: float
                clock_out_latitude:
                  type: number
                  format: float
                clock_out_longitude:
                  type: number
                  format: float
            active:
              type: boolean
              description: Indicates whether this Labor Time Entry is active.
    WorkOrderSubLineItem_ForContact:
      title: Work Order Sub Line Item
      x-tags:
        - Work Orders
      description: A Work Order Sub Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            description:
              type: string
              nullable: true
              description: The description of the sub line item.
            item_id:
              $ref: '#/components/schemas/Id'
            item_type:
              type: string
              enum:
                - Contact
            work_order_line_item_id:
              $ref: '#/components/schemas/NullableId'
            quantity:
              type: number
              format: float
              description: The quantity of this sub line item.
            part_location_detail_id:
              $ref: '#/components/schemas/NullableId'
            position:
              type: integer
              minimum: 0
              nullable: true
              description: The position of this sub line item in a list of sub line items.
            item_name:
              type: string
              description: The name of this sub line item.
            unit_cost:
              type: number
              format: float
              description: The unit cost of this sub line item.
            contact:
              $ref: '#/components/schemas/Contact'
            labor_time_entries:
              type: array
              items:
                $ref: '#/components/schemas/LaborTimeEntry'
    WorkOrderSubLineItem_ForPart:
      title: Work Order Sub Line Item
      x-tags:
        - Work Orders
      description: A Work Order Sub Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          properties:
            description:
              type: string
              nullable: true
              description: The description of this sub line item.
            item_id:
              type: integer
              description: The ID of the `Part` associated with this sub line item.
            item_type:
              type: string
              enum:
                - Part
            work_order_line_item_id:
              $ref: '#/components/schemas/NullableId'
            quantity:
              type: number
              format: float
              description: The quantity of this sub line item.
            part_location_detail_id:
              $ref: '#/components/schemas/NullableId'
            position:
              type: integer
              nullable: true
              description: The position of this sub line item in a list of sub line items.
            item_name:
              type: string
              description: The name of this sub line item.
            unit_cost:
              type: number
              format: float
              nullable: true
              description: The unit cost of this sub line item.
            part:
              $ref: '#/components/schemas/Part'
    WorkOrderSubLineItem:
      anyOf:
        - $ref: '#/components/schemas/WorkOrderSubLineItem_ForContact'
        - $ref: '#/components/schemas/WorkOrderSubLineItem_ForPart'
    WorkOrderLineItem:
      title: Work Order Line Item
      x-tags:
        - Work Orders
      description: A Work Order Line Item
      type: object
      required:
        - item_id
        - item_type
        - item_name
        - position
        - work_order_line_item_id
        - description
        - issues
        - work_order_sub_line_items
        - vmrs_reason_for_repair
        - vmrs_system_group
        - vmrs_system
        - vmrs_assembly
        - vmrs_component
      properties:
        id:
          type: integer
          minimum: 1
        created_at:
          description: The date and time at which this record was created.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        updated_at:
          description: The date and time at which this record was most recently updated.
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
        description:
          type: string
          nullable: true
          description: A description of this Work Order Line Item.
        title:
          type: string
          description: The title of this Work Order Line Item.
        item_id:
          type: integer
          description: The ID of the item associated with this Work Order Line Item.
        item_type:
          type: string
          description: The type of item associated with this Work Order Line Item.
          enum:
            - Issue
            - ServiceTask
        work_order_line_item_id:
          type: integer
          nullable: true
        item_name:
          type: string
          description: The name of the item associated with this Work Order Line Item.
        position:
          type: integer
          nullable: true
          description: The position of this Work Order Line Item in a list of Work Order Line Items.
        issues:
          type: array
          description: Any `Issues` associated with this Work Order Line Item.
          items:
            type: object
            properties:
              id:
                type: integer
                description: The ID of the `Issue`.
              name:
                type: string
                description: The name of the `Issue`.
        vmrs_reason_for_repair:
          type: object
          properties:
            account_id:
              type: integer
            alias:
              type: string
              nullable: true
            code:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            name:
              type: string
            repair_type:
              type: string
              nullable: true
            standard:
              type: boolean
            standard_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_reason_for_repair:
              type: object
              nullable: true
          nullable: true
        vmrs_system_group:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_system:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_assembly:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        vmrs_component:
          type: object
          properties:
            account_id:
              type: number
              nullable: true
            assembly_code:
              type: string
              nullable: true
            assembly_name:
              type: string
              nullable: true
            code_type:
              type: string
              enum:
                - system_group
                - system
                - assembly
                - component
            component_code:
              type: string
              nullable: true
            component_name:
              type: string
              nullable: true
            enabled:
              type: boolean
            id:
              type: integer
            permissions:
              type: object
              properties:
                destroy:
                  type: boolean
              nullable: true
            standard:
              type: boolean
            system_code:
              type: string
              nullable: true
            system_group:
              type: string
              nullable: true
            system_group_code:
              type: string
              nullable: true
            system_name:
              type: string
              nullable: true
            type:
              type: string
            vmrs_standard_system_assembly_component:
              type: object
              nullable: true
          nullable: true
        work_order_sub_line_items:
          type: array
          items:
            $ref: '#/components/schemas/WorkOrderSubLineItem'
        subtotal:
          description: The pre-tax subtotal amount.
          type: number
          format: float
          nullable: true
          example: 1.23
        subtotal_cents:
          type: integer
          nullable: true
          description: The pre-tax subtotal amount in cents.
        labor_cost:
          description: The cost of labor units worked.
          type: number
          format: float
          nullable: true
          example: 1.23
        parts_cost:
          description: The cost of parts.
          type: number
          format: float
          nullable: true
          example: 1.23
        parts_cost_cents:
          description: The parts cost amount in cents.
          type: integer
          nullable: true
        labor_cost_cents:
          description: The cost of labor units worked, in cents.
          type: integer
          nullable: true
    WorkOrder:
      title: Work Order
      x-tags:
        - Work Orders
      description: A Work Order
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - number
            - completed_at
            - description
            - ending_meter_same_as_start
            - duration_in_seconds
            - invoice_number
            - created_by_id
            - issued_at
            - issued_by_id
            - issued_by_name
            - contact_id
            - contact_name
            - purchase_order_number
            - scheduled_at
            - started_at
            - vehicle_id
            - vehicle_name
            - vendor_id
            - vendor_name
            - work_order_status_id
            - work_order_status_name
            - state
            - custom_fields
            - work_order_line_items
            - labor_time_entries
            - work_order_sub_line_items
            - labels
            - issues
            - work_order_status_color
            - vmrs_repair_priority_class
            - discount
            - discount_type
            - discount_percentage
            - parts_subtotal
            - labor_subtotal
            - subtotal
            - tax_1
            - tax_1_type
            - tax_1_percentage
            - tax_2
            - tax_2_type
            - tax_2_percentage
            - total_amount
          properties:
            number:
              type: string
              description: The unique number of this Work Order.
            completed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Work Order was completed.
            description:
              type: string
              nullable: true
              description: A description of this Work Order.
            ending_meter_same_as_start:
              type: boolean
              description: |-
                Indicates whether or not the ending meter is the same as the starting
                meter.
            duration_in_seconds:
              type: integer
              nullable: true
              description: |-
                The number of seconds elapsed between beginning this Work Order and
                completing it.
            invoice_number:
              type: string
              nullable: true
              description: The number of the `Invoice` associated with this Work Order.
            created_by_id:
              type: integer
              description: The id of the `User` who created this Work Order.
            state:
              type: string
              enum:
                - active
                - completed
              description: |-
                Indicates whether this Work Order is currently active or has already
                been completed.
            issued_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              description: The date and time at which the Work Order was issued.
            issued_by_id:
              $ref: '#/components/schemas/NullableId'
            issued_by_name:
              type: string
              nullable: true
              description: |-
                The name of the `Contact` associated with the `User` who issued this Work
                Order.
            contact_id:
              $ref: '#/components/schemas/NullableId'
            contact_name:
              type: string
              nullable: true
              description: The name of the `Contact` currently assigned to this Work Order.
            purchase_order_number:
              type: string
              nullable: true
              description: The number of any `Purchase Order` associated with this Work Order.
            started_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Work Order was started.
            expected_completed_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Work Order is expected to be completed.
            contact_image_url:
              type: string
              nullable: true
              description: The URL of the image associated with the `Contact` currently assigned to this Work Order.
            work_order_sub_line_items:
              type: array
              items:
                $ref: '#/components/schemas/WorkOrderSubLineItem'
            scheduled_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
              description: The date and time at which the Work Order was scheduled.
            vehicle_id:
              $ref: '#/components/schemas/Id'
            vehicle_name:
              type: string
              description: The name of the `Vehicle` associated with this Work Order.
            vendor_id:
              $ref: '#/components/schemas/NullableId'
            vendor_name:
              type: string
              nullable: true
              description: The name of the `Vendor` associated with this Work Order.
            work_order_status_id:
              $ref: '#/components/schemas/Id'
            work_order_status_name:
              type: string
              description: The name of the `Work Order Status` associated with this Work Order.
            work_order_status_color:
              type: string
              nullable: true
              description: The color of the `Work Order Status` seen in the UI.
            custom_fields:
              $ref: '#/components/schemas/CustomFields'
            work_order_line_items:
              type: array
              items:
                $ref: '#/components/schemas/WorkOrderLineItem'
            labor_time_entries:
              type: array
              items:
                $ref: '#/components/schemas/LaborTimeEntry'
            meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            starting_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            ending_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            secondary_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            starting_secondary_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            ending_secondary_meter_entry:
              $ref: '#/components/schemas/VehicleMeterEntry'
            attachment_permissions:
              $ref: '#/components/schemas/AttachmentPermissions'
            vmrs_repair_priority_class:
              type: object
              description: The VMRS Repair Priority Class associated with this Work Order.
              properties:
                id:
                  type: integer
                  description: The ID of the VMRS Repair Priority Class.
                code:
                  type: string
                  description: The code of the VMRS Repair Priority Class.
                name:
                  type: string
                  description: The name of the VMRS Repair Priority Class.
                color:
                  type: string
                  description: The color of the VMRS Repair Priority Class.
              nullable: true
            labels:
              $ref: '#/components/schemas/Labels'
            issues:
              type: array
              description: Any `Issues` associated with this Work Order.
              items:
                type: object
                properties:
                  id:
                    type: integer
                    description: The ID of the `Issue`.
                  name:
                    type: string
                    description: The name of the `Issue`.
            watchers_count:
              type: integer
              description: The number of `Users` watching this Work Order.
            is_watched:
              type: boolean
              description: Indicates whether the current `User` is watching this Work Order.
            discount_type:
              $ref: '#/components/schemas/DiscountType'
            discount_percentage:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The discount percentage. This field should be present when
                `discount_type` is set to `percentage`.
            discount:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The discount amount.
            parts_subtotal:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The total cost of parts for this record.
            labor_subtotal:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The total cost of labor for this record.
            subtotal:
              description: The pre-tax subtotal amount.
              type: number
              format: float
              nullable: true
              example: 1.23
            tax_1_type:
              $ref: '#/components/schemas/TaxType'
            tax_1_percentage:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The primary tax percentage amount. This field should be present when
                `tax_1_type` is set to `percentage`.
            tax_2_type:
              $ref: '#/components/schemas/TaxType'
            tax_2_percentage:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The secondary tax percentage amount. This field should be present when `tax_2_type` is
                set to `percentage`. Note that this secondary tax must be configured in
                your [Account Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
            tax_1:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The primary tax amount.
            tax_2:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: |-
                The secondary tax amount.
                Note that this secondary tax must be configured in
                your [Account Settings](https://help.fleetio.com/s/article/Account-Settings#tax).
            parts_markup_type:
              $ref: '#/components/schemas/PartMarkupType'
            parts_markup:
              $ref: '#/components/schemas/PartMarkup'
            parts_markup_percentage:
              $ref: '#/components/schemas/PartMarkupPercentage'
            labor_markup_type:
              $ref: '#/components/schemas/LaborMarkupType'
            labor_markup:
              $ref: '#/components/schemas/LaborMarkup'
            labor_markup_percentage:
              $ref: '#/components/schemas/LaborMarkupPercentage'
            total_amount:
              type: number
              format: float
              nullable: true
              example: 1.23
              description: The total amount.
            labor_time_in_seconds:
              nullable: true
              type: integer
              description: The sum, in seconds, of the duration of all labor line items of a `completed` Work Order.
        - $ref: '#/components/schemas/Commentable'
        - $ref: '#/components/schemas/Imageable'
        - $ref: '#/components/schemas/Documentable'
    WorkOrderLineItem_Created:
      title: Work Order Line Item
      x-tags:
        - Work Orders
      description: A Work Order Line Item
      allOf:
        - $ref: '#/components/schemas/Record'
        - type: object
          required:
            - work_order_id
            - item_type
            - item_id
            - parts_cost_cents
            - labor_cost_cents
            - subtotal_cents
          properties:
            title:
              type: string
              nullable: true
              description: The title of this line item.
            description:
              type: string
              nullable: true
              description: A description of this Work Order Line Item.
            position:
              type: integer
              nullable: true
              description: The position of this Work Order Line Item in a list of Work Order Line Items.
            item_id:
              type: integer
              description: The ID of the item associated with this Work Order Line Item.
            item_type:
              type: string
              description: The type of item associated with this Work Order Line Item.
              enum:
                - Issue
                - ServiceTask
            work_order_id:
              type: integer
              description: The ID of the `Work Order` that this line item belongs to.
            parts_cost_cents:
              type: integer
              description: The cost of `Parts` in cents of this line item.
            labor_cost_cents:
              type: integer
              description: The cost of labor in cents of this line item.
            service_reminder_id:
              type: integer
              nullable: true
              description: The ID of the `Service Reminder` associated with this line item, if applicable.
            subtotal_cents:
              type: string
              description: The subtotal in cents of this line item.
            work_order_line_item_id:
              type: integer
              nullable: true
            vehicle_id:
              type: integer
              nullable: true
            vehicle_archived_at:
              type: string
              format: date-time
              example: '2023-03-14T13:46:27-06:00'
              nullable: true
        - $ref: '#/components/schemas/VmrsComponentableParameters'
    InspectionItem:
      title: Inspection Item
      type: object
      properties:
        id:
          type: integer
          example: 88
          description: The ID of the Inspection Item.
        inspection_form_version_id:
          type: integer
          example: 50
          description: The ID of the Inspection Form version to which this item belongs.
        account_id:
          type: integer
          example: 18
          description: The Fleetio Account ID associated with this Inspection Item.
        type:
          type: string
          description: The type or category of the Inspection Item.
          enum:
            - InspectionDateItem
            - InspectionDatetimeItem
            - InspectionDropdownItem
            - InspectionFreeTextItem
            - InspectionMeterEntryItem
            - InspectionNumericItem
            - InspectionPassFailItem
            - InspectionPhotoItem
            - InspectionSectionItem
            - InspectionSignatureItem
            - InspectionSingleCheckboxItem
        label:
          type: string
          example: Odometer Reading
          description: The label or name of the Inspection Item.
        short_description:
          type: string
          nullable: true
          example: Meter Entry Inspection Item.
          description: A brief description of the Inspection Item.
        instructions:
          type: string
          nullable: true
          example: Complete this Inspection Item by entering the odometer reading.
          description: Instructions or guidance for completing the Inspection Item.
        required:
          type: boolean
          example: true
          description: Indicates whether this Inspection Item is required to be completed.
        position:
          type: integer
          example: 1
          description: The position or order of the Inspection Item within the form.
        require_remark_for_fail:
          type: boolean
          example: false
          description: Indicates whether a remark is required for a "Fail" result.
        pass_label:
          type: string
          nullable: true
          example: Pass
          description: The label for a "Pass" result.
        fail_label:
          type: string
          nullable: true
          example: Fail
          description: The label for a "Fail" result.
        reuse_pass_fail_label:
          type: boolean
          example: true
          description: Indicates whether to reuse pass/fail labels for this item.
        require_secondary_meter_if_one_exists:
          type: boolean
          example: true
          description: Indicates whether a Secondary Meter Entry is required, if a secondary meter is in use.
        created_at:
          type: string
          format: date-time
          example: '2023-09-20T11:00:19.952-05:00'
          description: The date and time when the Inspection Item was created.
        updated_at:
          type: string
          format: date-time
          example: '2016-07-27T20:38:56.454-05:00'
          description: The date and time when the Inspection Item was last updated.
        version_key:
          type: string
          nullable: true
          example: 6552b703-e366-420d-873a-2a4ca0f73acc
          description: The version key associated with the Inspection Item.
        na_label:
          type: string
          nullable: true
          example: N/A
          description: The label for "Not Applicable" option.
        enable_na_option_for_submission:
          type: boolean
          example: false
          description: Indicates whether the "Not Applicable" option is enabled for submission.
        require_remark_for_pass:
          type: boolean
          example: false
          description: Indicates whether a remark is required for a "Pass" result.
        dropdown_options:
          type: array
          items:
            type: string
          description: An array of options for an `InspectionDropdownItem`.
        numeric_range_min:
          type: number
          nullable: true
          example: 3
          description: The minimum value allowed for an InspectionNumericItem.
        numeric_range_max:
          type: number
          nullable: true
          example: 5
          description: The maximum value allowed for an InspectionNumericItem.
        require_meter_entry_photo_verification:
          type: boolean
          example: false
          description: Indicates whether a photo of the meter is required for verification.
    InspectionForm:
      title: Inspection Form
      x-tags:
        - Inspection Forms
      description: An Inspection Form
      type: object
      properties:
        id:
          type: integer
          example: 20
          description: The ID of the Inspection Form.
        title:
          type: string
          example: Driver Vehicle Inspection Report (Full)
          description: The title or name of the Inspection Form.
        description:
          type: string
          example: As required by the US Dept. of Transportation (DOT) Federal Motor Carrier Safety Regulations in FMCSA 396.11.a.1
          description: A brief description or explanation of the Inspection Form's purpose or requirements.
        updated_at:
          type: string
          format: date-time
          example: '2023-09-20T08:46:11Z'
          description: The date and time when the Inspection Form was last updated. Formatted according to ISO-8601 in UTC.
        archived_at:
          type: string
          format: date-time
          nullable: true
          description: The date and time when the Inspection Form was archived, if applicable.
        require_live_photo:
          type: boolean
          example: false
          description: Indicates whether live photos are required as part of the inspection.
        version:
          type: integer
          example: 8
          nullable: true
          description: The version number of the Inspection Form.
        current_form_version_id:
          type: integer
          example: 50
          nullable: true
          description: The ID of the current version of the Inspection Form.
        workflow_assign_user_to_vehicle_enabled:
          type: boolean
          example: false
          description: Indicates whether the workflow allows assigning `Users` to `Vehicles` for inspections.
        inspection_items:
          type: array
          items:
            $ref: '#/components/schemas/InspectionItem'
    InventorySet:
      title: Inventory Set
      x-tags:
        - Parts
      description: An Inventory Set
      type: object
      required:
        - part_id
        - added_at
        - original_quantity
        - available_quantity
        - leftover_quantity
        - used_quantity
        - unit_cost_cents
        - purchase_order_number
      properties:
        id:
          $ref: '#/components/schemas/Id'
        part:
          type: object
        part_id:
          type: integer
          description: The Fleetio ID for the `Part` associated with this Inventory Set.
        part_location_detail_id:
          $ref: '#/components/schemas/Id'
        part_location_detail:
          type: object
        added_at:
          type: string
          format: date-time
          example: '2023-03-14T13:46:27-06:00'
          description: The date and time at which this Inventory Set was added.
        available_quantity:
          type: number
          format: float
          description: The number of `Parts` available for use in this Inventory Set.
        leftover_quantity:
          type: number
          format: float
          nullable: true
          description: The number of `Parts` which have not been used in this Inventory Set.
        original_quantity:
          type: number
          format: float
          description: The number of `Parts` which were originally added to this Inventory Set.
        purchase_order_number:
          type: integer
          nullable: true
          description: |-
            The number of the `Purchase Order` which was used to purchase this
            Inventory Set.
        unit_cost_cents:
          type: number
          format: float
          description: The cost of each `Part` in this Inventory Set in cents.
        used_quantity:
          type: number
          format: float
          nullable: true
          description: The number of `Parts` which have been used in this Inventory Set.
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
  responses:
    Unauthorized:
      description: Request could not be authenticated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    UnexpectedError:
      description: Something unexpected happened
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    Forbidden:
      description: Insufficient permission to perform this operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    UnprocessableEntity:
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
          example:
            errors:
              field1:
                - error1
                - error2
              field2:
                - error3
    NotFound:
      description: The requested resource could not be located
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    RequestError:
      description: The format or parameters of the request was invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
  parameters:
    RecordId:
      name: id
      in: path
      required: true
      schema:
        type: string
        pattern: ^[0-9]+$
      description: The id of the relevant record
    PurchaseOrderNumber:
      name: number
      in: path
      required: true
      schema:
        type: string
        pattern: ^[0-9]+$
      description: The Purchase Order Number
    VehicleId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: |-
        The Fleetio ID of the relevant Vehicle.

        You may also look up Vehicles by their VIN, license plate, or other
        external ID. See the guide on [External Vehicle
        Ids](/docs/guides/vehicles/external-vehicle-ids) for information on how to set this
        up.
    WatchableType:
      name: watchable_type
      in: path
      required: true
      schema:
        type: string
        enum:
          - charging_entry
          - contact_renewal_reminder
          - equipment
          - expense_entry
          - fuel_entry
          - issue
          - purchase_order
          - service_entry
          - service_reminder
          - vehicle
          - vehicle_assignment
          - vehicle_renewal_reminder
          - vendor
          - work_order
      description: The Watchable type
