---
openapi: 3.0.3
info:
  title: FleetYards.net API
  version: v1
  license:
    name: GNU General Public License v3.0
    url: https://github.com/fleetyards/fleetyards/blob/main/LICENSE
  x-logo:
    url: https://fleetyards.net/docs/logo.png
    altText: FleetYards.net logo
servers:
- url: http://api.fleetyards.test/v1
  description: Dev Server
- url: https://api.fleetyards.net/v1
  description: Production Server
- url: https://api.fleetyards.dev/v1
  description: Staging Server
security: []
paths:
  "/celestial-objects":
    get:
      summary: Celestial Objects List
      operationId: celestialObjects
      description: Get a List of Celestial Objects
      tags:
      - CelestialObjects
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/CelestialObjectQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CelestialObject"
  "/celestial-objects/{slug}":
    parameters:
    - name: slug
      in: path
      description: slug
      schema:
        type: string
      required: true
    get:
      summary: Celestial Object Detail
      operationId: celestialObject
      description: Get Detail of a Celestial Object referenced by its Slug
      tags:
      - CelestialObjects
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CelestialObject"
        '404':
          description: not_found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/commodities/types":
    get:
      summary: Commodity Types
      deprecated: true
      operationId: DEPRECATEDcommodityTypes
      tags:
      - Commodities
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/commodities":
    get:
      summary: Commodities list
      operationId: commodities
      tags:
      - Commodities
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 50
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/CommodityQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Commodity"
  "/commodity-prices":
    post:
      summary: Create Commodity Price
      operationId: createPrice
      tags:
      - CommodityPrices
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CommodityPrice"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CommodityPriceInput"
        required: true
  "/components/class_filters":
    get:
      summary: Commodity Types
      deprecated: true
      operationId: DEPRECATEDcomponentClasses
      tags:
      - Components
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/components/item_type_filters":
    get:
      summary: Commodity Types
      deprecated: true
      operationId: DEPRECATEDcomponentItemTypes
      tags:
      - Components
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/components":
    get:
      summary: Components list
      operationId: components
      tags:
      - Components
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 50
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ComponentQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Component"
  "/equipment":
    get:
      summary: Equipment list
      operationId: equipment
      tags:
      - Equipment
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 50
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/EquipmentQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Equipment"
  "/features":
    get:
      summary: Feature Flags for User
      operationId: features
      tags:
      - Features
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  "/filters/commodities/types":
    get:
      summary: Commodity Types
      operationId: commodityTypes
      tags:
      - CommodityFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/filters/commodity-prices/time-ranges":
    get:
      summary: Commodity Types
      operationId: commodityPriceTimeRanges
      tags:
      - CommodityPriceFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/filters/components/classes":
    get:
      summary: Commodity Types
      operationId: componentClasses
      tags:
      - ComponentFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/filters/components/item-types":
    get:
      summary: Commodity Types
      operationId: componentItemTypes
      tags:
      - ComponentFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/filters/shop-commodities/commodity-type-options":
    get:
      summary: Shop Commodity Commodity Type Options
      operationId: commodityTypeOptions
      tags:
      - ShopCommodityFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/CommodityItemType"
  "/filters/shop-commodities/sub-categories":
    get:
      summary: Shop Commodity Sub Categories
      operationId: shopCommoditySubCategories
      tags:
      - ShopCommodityFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/filters/shops/types":
    get:
      summary: Shop types
      operationId: shopTypes
      tags:
      - ShopFilters
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/fleets/check":
    post:
      summary: Check Fleet FID Availability
      operationId: checkFID
      tags:
      - Fleets
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetCheck"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetCheckInput"
        required: true
  "/fleets":
    post:
      summary: Create Fleet
      operationId: createFleet
      tags:
      - Fleets
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Fleet"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetCreateInput"
        required: true
  "/fleets/current":
    get:
      summary: Fleets for current User -> use GET /fleets/my
      deprecated: true
      operationId: DEPRECATEDcurrentFleets
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fleet"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{slug}":
    parameters:
    - name: slug
      in: path
      description: slug
      required: true
      schema:
        type: string
    delete:
      summary: Destroy Fleet
      operationId: removeFleet
      tags:
      - Fleets
      description: You are not the owner of this Fleet
      responses:
        '204':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    get:
      summary: Fleet Detail
      operationId: fleet
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Fleet"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    put:
      summary: Update Fleet
      operationId: updateFleet
      tags:
      - Fleets
      parameters: []
      description: You are not an Admin or Officer of this Fleet
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Fleet"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          multipart/form-data:
            schema:
              "$ref": "#/components/schemas/FleetUpdateInput"
        required: true
  "/fleets/find-by-invite/{token}":
    parameters:
    - name: token
      in: path
      description: Fleet Invite Token
      required: true
      schema:
        type: string
    post:
      summary: Find Fleet by Invite
      operationId: findByInvite
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Fleet"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/invite-urls":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    post:
      summary: Create Invite Url
      operationId: createInviteUrl
      tags:
      - FleetInviteUrls
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetInviteUrl"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetInviteUrlCreateInput"
        required: true
    get:
      summary: Fleet Invite Urls List
      operationId: inviteUrls
      tags:
      - fleetInviteUrls
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FleetInviteUrl"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/invite-urls/{token}":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: token
      in: path
      description: Invite Url Token
      required: true
      schema:
        type: string
    delete:
      summary: Remove Invite Url
      operationId: removeInviteUrl
      tags:
      - FleetInviteUrls
      description: You are not the owner of this Fleet
      responses:
        '204':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/use-invite":
    post:
      summary: Create Membership by Invite
      operationId: useInvite
      tags:
      - FleetInviteUrls
      parameters: []
      description: User is already a member of this fleet
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetMembershipCreateInput"
        required: true
  "/fleets/invites":
    get:
      summary: Fleet Invites current User
      operationId: fleetInvites
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FleetMember"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members/{username}/accept":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Accept Member
      operationId: acceptMember
      tags:
      - FleetMembers
      description: No Member found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    post:
      summary: Create Member
      operationId: createMember
      tags:
      - FleetMembers
      parameters: []
      description: You are not the owner of this Fleet
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetMemberCreateInput"
        required: true
    put:
      summary: Update Membership -> use PUT /fleets/{fleetSlug}/membership
      deprecated: true
      operationId: DEPRECATEDupdateMembership
      tags:
      - FleetMembers
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetMembershipUpdateInput"
        required: true
    get:
      summary: Fleet Member List
      operationId: fleetMembers
      tags:
      - FleetMembers
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetMemberQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members/{username}/decline":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Decline Member
      operationId: declineMember
      tags:
      - FleetMembers
      description: No Member found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members/{username}/demote":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Demote Member
      operationId: demoteMember
      tags:
      - FleetMembers
      description: No Member found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members/current":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: My Fleet Membership -> use GET /fleets/{fleetSlug}/membership
      deprecated: true
      operationId: DEPRECATEDfleetMembership
      tags:
      - FleetMembers
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
  "/fleets/{fleetSlug}/members/{username}/accept-request":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Accept Member -> use GET /fleets/{fleetSlug}/members/{username}/accept
      deprecated: true
      operationId: DEPRECATEDacceptMember
      tags:
      - FleetMembers
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
  "/fleets/{fleetSlug}/members/{username}/decline-request":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Decline Member -> use GET /fleets/{fleetSlug}/members/{username}/decline
      deprecated: true
      operationId: DEPRECATEDdeclineMember
      tags:
      - FleetMembers
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
  "/fleets/{fleetSlug}/members/accept-invite":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    put:
      summary: Accept Membership -> use GET /fleets/{fleetSlug}/membership/accept
      deprecated: true
      operationId: DEPRECATEDacceptMembership
      tags:
      - FleetMembers
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
  "/fleets/{fleetSlug}/members/decline-invite":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    put:
      summary: Decline Membership -> use GET /fleets/{fleetSlug}/membership/decline
      deprecated: true
      operationId: DEPRECATEDdeclineMembership
      tags:
      - FleetMembers
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
  "/fleets/{fleetSlug}/members/leave":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    delete:
      summary: Leave Fleet -> use DELETE /fleets/{fleetSlug}/membership
      deprecated: true
      operationId: DEPRECATEDleaveFleet
      tags:
      - FleetMembers
      responses:
        '204':
          description: successful
  "/fleets/{fleetSlug}/members/{username}":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: username
      required: true
      schema:
        type: string
    delete:
      summary: Remove Fleet Member
      operationId: removeMember
      tags:
      - FleetMembers
      description: You are not the owner of this Fleet
      responses:
        '204':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/members/{username}/promote":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    put:
      summary: Promote Member
      operationId: promoteMember
      tags:
      - FleetMembers
      description: No Member found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/membership/accept":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    put:
      summary: Accept Membership
      operationId: acceptMembership
      tags:
      - FleetMembership
      description: No Membership found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/membership/decline":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    put:
      summary: Decline Membership
      operationId: declineMembership
      tags:
      - FleetMembership
      description: No Membership found
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/membership":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    delete:
      summary: Leave Fleet
      operationId: leaveFleet
      tags:
      - FleetMembership
      responses:
        '204':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    get:
      summary: Fleet Membership Detail
      operationId: membership
      tags:
      - FleetMembership
      description: Membership for this slug and user does not exist
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    put:
      summary: Update Membership
      operationId: updateMembership
      tags:
      - FleetMembership
      parameters: []
      description: Fleet for this slug and user does not exist
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMember"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/FleetMembershipUpdateInput"
        required: true
  "/fleets/my":
    get:
      summary: Fleets for current User
      operationId: myFleets
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Fleet"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/members":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Members Stats
      operationId: fleetMembersStats
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMembersStats"
  "/fleets/{fleetSlug}/stats/model-counts":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats Model Counts
      operationId: fleetModelCounts
      tags:
      - FleetStats
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetModelCountsStats"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/models-by-classification":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats - Models by Classification
      operationId: fleetModelsByClassification
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/models-by-manufacturer":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats - Models by Manufacturer
      operationId: fleetModelsByManufacturer
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/models-by-production-status":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats - Models by Production Status
      operationId: fleetModelsByProductionStatus
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/models-by-size":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats - Models by Size
      operationId: fleetModelsBySize
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/vehicles-by-model":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats - Vehicles by Model
      operationId: fleetVehiclesByModel
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/BarChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/stats/vehicles":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Vehicles Stats
      operationId: fleetVehiclesStats
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetVehiclesStats"
  "/fleets/{fleetSlug}/public-vehicles":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Public Vehicles -> use GET /fleets/{fleetSlug}/public/vehicles
      deprecated: true
      operationId: DEPRECATEDfleetPublicVehicles
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - "$ref": "#/components/schemas/Model"
                  - "$ref": "#/components/schemas/VehiclePublic"
  "/fleets/{fleetSlug}/fleetchart":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Fleetchart -> use GET /fleets/{fleetSlug}/vehicles
      deprecated: true
      operationId: DEPRECATEDfleetFleetchart
      tags:
      - Fleets
      responses:
        '200':
          description: successful
  "/fleets/{fleetSlug}/public-fleetchart":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Public Fleetchart -> use GET /fleets/{fleetSlug}/public/vehicles
      deprecated: true
      operationId: DEPRECATEDpublicFleetFleetchart
      tags:
      - Fleets
      responses:
        '200':
          description: successful
  "/fleets/{fleetSlug}/quick-stats":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Vehicle QuickStats -> use GET /fleets/{fleetSlug}/stats/vehicles
      deprecated: true
      operationId: DEPRECATEDfleetVehicleQuickStats
      tags:
      - Fleets
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetVehiclesStats"
  "/fleets/{fleetSlug}/model-counts":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Stats Model Counts -> use GET /fleets/{fleetSlug}/stats/model-counts
      operationId: DEPRECATEDfleetStatsModelCounts
      deprecated: true
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetModelCountsStats"
  "/fleets/{fleetSlug}/public-model-counts":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Stats Model Counts -> use GET /public/fleets/{fleetSlug}/stats/model-counts
      operationId: DEPRECATEDpublicFleetStatsModelCounts
      deprecated: true
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetModelCountsStats"
  "/fleets/{fleetSlug}/embed":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Vehicles Embed for the Fleetyards Widget -> use GET /public/fleets/{fleetSlug}/vehicles/embed
      deprecated: true
      operationId: DEPRECATEDfleetVehiclesEmbed
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
  "/fleets/{fleetSlug}/vehicles/export":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Vehicles List
      operationId: fleetVehiclesExport
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FleetVehicleExport"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/fleets/{fleetSlug}/vehicles":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Fleet Vehicles List
      operationId: fleetVehicles
      tags:
      - Fleets
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      - name: grouped
        in: query
        required: false
        schema:
          type: boolean
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - "$ref": "#/components/schemas/Model"
                  - "$ref": "#/components/schemas/VehiclePublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar":
    delete:
      summary: Clear your personal Hangar
      operationId: hangarDestroy
      tags:
      - Hangar
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    get:
      summary: Your personal Hangar
      operationId: hangar
      tags:
      - Hangar
      security:
      - SessionCookie: []
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/export":
    get:
      summary: Export your personal Hangar
      operationId: hangarExport
      tags:
      - Hangar
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehicleExport"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/groups":
    post:
      summary: HangarGroup create
      operationId: hangarGroupCreate
      tags:
      - HangarGroups
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/HangarGroupCreateInput"
        required: true
    get:
      summary: HangarGroup list
      operationId: hangarGroups
      tags:
      - HangarGroups
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/HangarGroup"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/groups/{id}":
    parameters:
    - name: id
      in: path
      description: HangarGroup ID
      schema:
        type: string
        format: uuid
      required: true
    delete:
      summary: HangarGroup Destroy
      operationId: hangarGroupDestroy
      tags:
      - HangarGroups
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    put:
      summary: HangarGroup Update
      operationId: hangarGroupUpdate
      tags:
      - HangarGroups
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/HangarGroupUpdateInput"
        required: true
  "/hangar/groups/sort":
    put:
      summary: HangarGroup sort
      operationId: hangarGroupSort
      tags:
      - HangarGroups
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/import":
    put:
      summary: Import to your personal Hangar
      operationId: hangarImport
      tags:
      - Hangar
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarImportResult"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: string
        required: true
  "/hangar/items":
    get:
      summary: Your personal Hangar items
      operationId: hangarItems
      tags:
      - Hangar
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/move-all-ingame-to-wishlist":
    put:
      summary: Move all Ingame Ships from your Hangar to your Wishlist
      operationId: moveAllIngameToWishlist
      tags:
      - Hangar
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/stats/models-by-classification":
    get:
      summary: Hangar Stats - Models by Classification
      operationId: hangarModelsByClassification
      tags:
      - HangarStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/stats/models-by-manufacturer":
    get:
      summary: Hangar Stats - Models by Manufacturer
      operationId: hangarModelsByManufacturer
      tags:
      - HangarStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/stats/models-by-production-status":
    get:
      summary: Hangar Stats - Models by Production Status
      operationId: hangarModelsByProductionStatus
      tags:
      - HangarStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/stats/models-by-size":
    get:
      summary: Hangar Stats - Models by Size
      operationId: hangarModelsBySize
      tags:
      - HangarStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/stats":
    get:
      summary: Your Hangar Stats
      operationId: hangarStats
      tags:
      - HangarStats
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarStats"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/hangar/sync-rsi-hangar":
    put:
      summary: Sync RSI Hangar
      operationId: syncRsiHangar
      tags:
      - Hangar
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarSyncResult"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  "$ref": "#/components/schemas/SyncRsiHangarInput"
              required:
              - import
        required: true
  "/hangar-groups":
    get:
      summary: HangarGroup list
      tags:
      - HangarGroups
      operationId: DEPRECATEDgetHangarGroups
      deprecated: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/HangarGroup"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    post:
      summary: HangarGroup create
      tags:
      - HangarGroups
      operationId: DEPRECATEDcreateHangarGroup
      deprecated: true
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/HangarGroupCreateInput"
        required: true
  "/hangar-groups/{id}":
    parameters:
    - name: id
      in: path
      description: HangarGroup ID
      schema:
        type: string
        format: uuid
      required: true
    delete:
      summary: HangarGroup Destroy
      tags:
      - HangarGroups
      operationId: DEPRECATEDdestroyHangarGroup
      deprecated: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    put:
      summary: HangarGroup Update
      tags:
      - HangarGroups
      operationId: DEPRECATEDupdateHangarGroup
      deprecated: true
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarGroup"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/HangarGroupUpdateInput"
        required: true
  "/hangar-groups/sort":
    put:
      summary: HangarGroup sort
      tags:
      - HangarGroups
      operationId: DEPRECATEDsortHangarGroups
      deprecated: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/images":
    get:
      summary: Images list
      operationId: images
      tags:
      - Images
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ImageQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Image"
  "/images/random":
    get:
      summary: Images random list
      operationId: imagesRandom
      description: Get a randomized List of 14 Images
      tags:
      - Images
      parameters:
      - name: limit
        in: query
        schema:
          type: number
          minimum: 1
          maximum: 30
          default: 14
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Image"
  "/manufacturers/with-models":
    get:
      summary: with_models manufacturer
      tags:
      - Manufacturers
      operationId: DEPRECATEDgetManufacturersWithModels
      deprecated: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Manufacturer"
  "/manufacturers":
    get:
      summary: Manufacturers list
      operationId: manufacturers
      tags:
      - Manufacturers
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ManufacturerQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Manufacturer"
  "/model-paints":
    get:
      summary: Model Paints List
      operationId: paints
      tags:
      - ModelPaints
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ModelPaintQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelPaint"
  "/models/with-docks":
    get:
      summary: Models with Docks
      operationId: modelsWithDocks
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
  "/models/unscheduled":
    get:
      summary: Unscheduled Models
      operationId: modelsUnschduled
      tags:
      - Models
      responses:
        '200':
          description: successful
  "/models/latest":
    get:
      summary: Latest Models
      operationId: modelsLatest
      tags:
      - Models
      responses:
        '200':
          description: successful
  "/models/slugs":
    get:
      summary: Available Model-Slugs
      operationId: modelsSlugs
      tags:
      - Models
      responses:
        '200':
          description: successful
  "/models/updated":
    get:
      summary: Updated Models
      operationId: modelsUpdated
      tags:
      - Models
      parameters:
      - name: from
        in: query
        schema:
          type: string
          format: datetime
        required: false
      - name: to
        in: query
        schema:
          type: string
          default: now
          format: datetime
        required: false
      responses:
        '200':
          description: successful
        '304':
          description: not modified
  "/models/embed":
    get:
      summary: Embed Models
      operationId: embed
      tags:
      - Models
      responses:
        '200':
          description: successful
  "/models/filters":
    get:
      summary: Model Filters
      operationId: modelFilters
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/models/classifications":
    get:
      summary: Model classifications
      operationId: modelClassifications
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/models/production-states":
    get:
      summary: Model Production states
      operationId: modelProductionStates
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/models/focus":
    get:
      summary: Model focus
      operationId: modelFocus
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/models/sizes":
    get:
      summary: Model Sizes
      operationId: modelSizes
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/models/cargo-options":
    get:
      summary: Model Cargo options
      operationId: cargoOptions
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
  "/models":
    get:
      summary: Models List
      operationId: models
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ModelQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Model"
  "/models/{slug}":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Detail
      operationId: model
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ModelExtended"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/hardpoints":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Hardpoints
      operationId: modelHardpoints
      tags:
      - Models
      parameters:
      - name: source
        in: query
        schema:
          "$ref": "#/components/schemas/ModelHardpointSourceEnum"
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelHardpoint"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/images":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Images
      operationId: modelImages
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Image"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/videos":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Videos
      operationId: modelVideos
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 8
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Video"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/variants":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Variants
      operationId: modelVariants
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Model"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/loaners":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Loaners
      operationId: modelLoaners
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Model"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/snub-crafts":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Snubcrafts
      operationId: modelSnubCrafts
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Model"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/modules":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Modules
      operationId: modelModules
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelModule"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/module-packages":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Module Packages
      operationId: modelModulePackages
      tags:
      - Models
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelModulePackage"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/upgrades":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Upgrades
      operationId: modelUpgrades
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelUpgrade"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/paints":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Paints
      operationId: modelPaints
      tags:
      - Models
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ModelPaint"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/models/{slug}/store-image":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Storeimage
      operationId: modelStoreImage
      deprecated: true
      tags:
      - Models
      responses:
        '302':
          description: successful
  "/models/{slug}/fleetchart-image":
    parameters:
    - name: slug
      in: path
      description: Model slug
      required: true
      schema:
        type: string
    get:
      summary: Model Fleetchart Image
      operationId: modelFleetchartImage
      deprecated: true
      tags:
      - Models
      responses:
        '302':
          description: successful
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/password/request":
    post:
      summary: Request Password reset
      operationId: requestPasswordReset
      tags:
      - Password
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PasswordRequestInput"
        required: true
  "/password":
    put:
      summary: Update password
      operationId: updatePassword
      tags:
      - Password
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PasswordInput"
        required: true
  "/password/{token}":
    parameters:
    - name: token
      in: path
      required: true
      schema:
        type: string
    put:
      summary: Update Password with Token
      operationId: updatePasswordWithToken
      tags:
      - Password
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ValidationError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/PasswordInput"
        required: true
  "/public/fleets/{fleetSlug}/stats/members":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Members Stats
      operationId: publicFleetMembersStats
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetMembersStatsPublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/fleets/{fleetSlug}/stats/model-counts":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Stats Model Counts
      operationId: publicFleetStatsModelCounts
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetModelCountsStats"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/fleets/{fleetSlug}/stats/vehicles":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Vehicles Stats
      operationId: publicFleetVehiclesStats
      tags:
      - FleetStats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FleetVehiclesStats"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/fleets/{fleetSlug}/vehicles/embed":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Vehicles Embed for the Fleetyards Widget
      operationId: publicFleetVehiclesEmbed
      tags:
      - Fleets
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/fleets/{fleetSlug}/vehicles":
    parameters:
    - name: fleetSlug
      in: path
      description: Fleet slug
      required: true
      schema:
        type: string
    get:
      summary: Public Fleet Vehicles List
      operationId: publicFleetVehicles
      tags:
      - Fleets
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/FleetVehicleQuery"
        style: deepObject
        explode: true
        required: false
      - name: grouped
        in: query
        required: false
        schema:
          type: boolean
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - "$ref": "#/components/schemas/Model"
                  - "$ref": "#/components/schemas/VehiclePublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/hangars/embed":
    get:
      summary: Public Hangar embed
      operationId: publicHangarEmbed
      tags:
      - PublicHangar
      parameters:
      - name: usernames
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarEmbedQuery"
        style: deepObject
        explode: true
        required: true
      responses:
        '200':
          description: empty response
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
  "/public/hangars/{username}/groups":
    parameters:
    - name: username
      in: path
      description: Username
      required: true
      schema:
        type: string
    get:
      summary: HangarGroup list
      operationId: publicHangarGroups
      tags:
      - PublicHangarGroups
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/HangarGroupPublic"
  "/public/hangars/{username}":
    parameters:
    - name: username
      in: path
      required: true
      schema:
        type: string
    get:
      summary: Public Hangar
      operationId: publicHangar
      tags:
      - PublicHangar
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/hangars/{username}/stats":
    parameters:
    - name: username
      in: path
      description: username
      required: true
      schema:
        type: string
    get:
      summary: Public Hangar Stats
      operationId: publicHangarStats
      tags:
      - PublicHangarStats
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarStatsPublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/public/wishlists/{username}":
    parameters:
    - name: username
      in: path
      required: true
      schema:
        type: string
    get:
      summary: Your Wishlist
      operationId: get
      tags:
      - PublicWishlist
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/roadmap":
    get:
      summary: Roadmap Items
      operationId: roadmapItems
      tags:
      - Roadmap
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/RoadmapItemQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/RoadmapItem"
  "/roadmap/weeks":
    get:
      summary: Roadmap Weeks
      operationId: roadmapWeeks
      tags:
      - Roadmap
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/RoadmapWeek"
  "/sc-data/version":
    get:
      summary: SC Data Version
      operationId: scDataVersion
      tags:
      - Versions
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ScDataVersion"
  "/search":
    get:
      summary: list searches
      operationId: search
      tags:
      - Search
      parameters:
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/SearchQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/SearchResult"
  "/sessions/confirm-access":
    post:
      summary: confirm_access session
      operationId: confirmAccess
      tags:
      - Sessions
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ConfirmAccessInput"
        required: true
  "/sessions":
    post:
      summary: create session
      operationId: createSession
      tags:
      - Sessions
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardMessage"
        '400':
          description: bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SessionInput"
        required: true
    delete:
      summary: delete session
      operationId: deleteSession
      tags:
      - Sessions
      responses:
        '200':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/stations/{stationSlug}/shops/{slug}/commodities":
    parameters:
    - name: slug
      in: path
      required: true
      schema:
        type: string
    - name: stationSlug
      in: path
      required: true
      schema:
        type: string
    get:
      summary: Shop Commodity list
      operationId: shopCommodities
      tags:
      - Shops
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: search
        in: query
        required: false
        schema:
          type: string
      - name: query
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ShopCommodityQuery"
        style: deepObject
        explode: true
        required: false
      - name: order
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ShopCommodityOrderQuery"
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/ShopCommodity"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/shops/shop-types":
    get:
      summary: Shop types
      deprecated: true
      operationId: DEPRECATEDshopsTypes
      tags:
      - Shops
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/shops":
    get:
      summary: Shops list
      operationId: shops
      tags:
      - Shops
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/ShopQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Shop"
  "/stations/{stationSlug}/shops/{slug}":
    parameters:
    - name: stationSlug
      in: path
      description: Station slug
      required: true
      schema:
        type: string
    - name: slug
      in: path
      description: Shop slug
      required: true
      schema:
        type: string
    get:
      summary: Shop Detail
      operationId: shop
      tags:
      - Shops
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Shop"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/starsystems":
    get:
      summary: Starsystems list
      operationId: starsystems
      tags:
      - Starsystems
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 15
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/StarsystemQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Starsystem"
  "/starsystems/{slug}":
    parameters:
    - name: slug
      in: path
      description: Starsystem slug
      schema:
        type: string
      required: true
    get:
      summary: Starsystem Detail
      operationId: starsystem
      tags:
      - Starsystems
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Starsystem"
        '404':
          description: not_found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/stations/station-types":
    get:
      summary: Station types
      operationId: stationsTypes
      tags:
      - Stations
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/stations/ship-sizes":
    get:
      summary: Station Ship sizes
      operationId: stationsShipSizes
      tags:
      - Stations
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/stations/classifications":
    get:
      summary: Station classifications
      operationId: stationsClassifications
      tags:
      - Stations
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/FilterOption"
  "/stations":
    get:
      summary: Stations list
      operationId: stations
      tags:
      - Stations
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 10
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/StationQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Station"
  "/stations/{slug}":
    parameters:
    - name: slug
      in: path
      description: Station slug
      schema:
        type: string
      required: true
    get:
      summary: Station Detail
      operationId: station
      tags:
      - Stations
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Station"
        '404':
          description: not_found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/stations/{slug}/images":
    parameters:
    - name: slug
      in: path
      description: Station slug
      schema:
        type: string
      required: true
    get:
      summary: Station Images
      operationId: stationImages
      tags:
      - Stations
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Image"
        '404':
          description: not_found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/stats/components-by-class":
    get:
      summary: Stats Components by Class
      operationId: componentsByClass
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/models-by-classification":
    get:
      summary: Stats Models by Classification
      operationId: modelsByClassification
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/models-by-manufacturer":
    get:
      summary: Stats Models by Manufacturer
      operationId: modelsByManufacturer
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/models-by-production-status":
    get:
      summary: Stats Models by Production-Status
      operationId: modelsByProductionStatus
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/models-by-size":
    get:
      summary: Stats Models by Size
      operationId: modelsBySize
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/models-per-month":
    get:
      summary: Stats Models per Month
      operationId: modelsPerMonth
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/PieChartStats"
  "/stats/quick-stats":
    get:
      summary: Stats
      operationId: stats
      tags:
      - Stats
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Stats"
  "/trade-routes":
    get:
      summary: Trade Routes
      operationId: tradeRoutes
      tags:
      - TradeRoutes
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 50
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/TradeRouteQuery"
        style: deepObject
        explode: true
        required: false
      - name: cacheId
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/TradeRoute"
  "/users/current":
    get:
      summary: My Data
      deprecated: true
      operationId: DEPRECATEDcurrent
      tags:
      - Users
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/User"
  "/users/me":
    get:
      summary: My Data
      operationId: me
      tags:
      - Users
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/User"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/vehicles/bulk":
    put:
      summary: Update multiple vehicles
      operationId: vehicleUpdateBulk
      tags:
      - Vehicles
      parameters: []
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VehicleBulkUpdateInput"
        required: true
  "/vehicles/destroy-bulk":
    put:
      summary: Destroy multiple Vehicles
      operationId: vehicleDestroyBulk
      tags:
      - Vehicles
      parameters: []
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VehicleBulkDestroyInput"
        required: true
  "/vehicles/check-serial":
    post:
      summary: Check Vehicle Serial
      operationId: vehicleCheckSerial
      tags:
      - Vehicles
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/VehicleCheckSerialResponse"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VehicleCheckSerialInput"
        required: true
  "/vehicles":
    post:
      summary: Create new Vehicle
      operationId: vehicleCreate
      tags:
      - Vehicles
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Vehicle"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VehicleCreateInput"
        required: true
    get:
      summary: Vehicles List -> use GET /hangar
      deprecated: true
      operationId: DEPRECATEDgetVehicles
      tags:
      - Vehicles
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
  "/vehicles/fleetchart":
    get:
      summary: Vehicle Fleetchart List -> use GET /hangar
      deprecated: true
      operationId: DEPRECATEDgetVehiclesFleetchart
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
  "/vehicles/export":
    get:
      summary: Vehicle Export -> use GET /hangar/export
      deprecated: true
      operationId: DEPRECATEDgetVehiclesExport
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehicleExport"
  "/vehicles/import":
    put:
      summary: Vehicle import -> use PUT /hangar/import
      deprecated: true
      operationId: DEPRECATEDputVehiclesImport
      tags:
      - Vehicles
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HangarImportResult"
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: string
        required: true
  "/vehicles/destroy-all":
    delete:
      summary: Vehicle Destroy all -> use DELETE /hangar
      deprecated: true
      operationId: DEPRECATEDdeleteVehiclesDestroyAll
      tags:
      - Vehicles
      responses:
        '204':
          description: successful
  "/vehicles/embed":
    get:
      summary: Vehicle embed -> use GET /public/hangar/embed
      deprecated: true
      operationId: DEPRECATEDgetVehiclesEmbed
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
  "/vehicles/hangar-items":
    get:
      summary: Vehicle Hangar items -> use GET /hangar/items
      deprecated: true
      operationId: DEPRECATEDgetVehiclesHangarItems
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  "/vehicles/hangar":
    get:
      summary: Vehicle hangar -> no replacement
      deprecated: true
      operationId: DEPRECATEDgetVehiclesHangar
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
  "/vehicles/quick-stats":
    get:
      summary: Vehicle Quickstats -> use GET /hangar/stats
      deprecated: true
      operationId: DEPRECATEDgetVehiclesQuickStats
      tags:
      - Vehicles - Stats
      responses:
        '200':
          description: successful
  "/vehicles/stats/models-by-size":
    get:
      summary: Vehicle Models by size -> use GET /hangar/stats/models-by-size
      deprecated: true
      operationId: DEPRECATEDgetVehiclesStatsModelsBySize
      tags:
      - Vehicles - Stats
      responses:
        '200':
          description: successful
  "/vehicles/stats/models-by-production-status":
    get:
      summary: Vehicle Models by ProductionStatus -> use GET /hangar/stats/models-by-production-status
      deprecated: true
      operationId: DEPRECATEDgetVehiclesStatsModelsByProductionStatus
      tags:
      - Vehicles - Stats
      responses:
        '200':
          description: successful
  "/vehicles/stats/models-by-manufacturer":
    get:
      summary: models_by_manufacturer vehicle
      deprecated: true
      operationId: DEPRECATEDgetVehiclesStatsModelsByManufacturer
      tags:
      - Vehicles - Stats
      responses:
        '200':
          description: successful
  "/vehicles/stats/models-by-classification":
    get:
      summary: models_by_classification vehicle
      deprecated: true
      operationId: DEPRECATEDgetVehiclesStatsModelsByClassification
      tags:
      - Vehicles - Stats
      responses:
        '200':
          description: successful
  "/vehicles/{id}":
    parameters:
    - name: id
      in: path
      description: id
      schema:
        type: string
        format: uuid
      required: true
    get:
      summary: public vehicle
      deprecated: true
      operationId: DEPRECATEDgetPublicVehicles
      tags:
      - Vehicles - Public
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
    delete:
      summary: Delete Vehicle
      operationId: destroyVehicle
      tags:
      - Vehicles
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Vehicle"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    put:
      summary: Update Vehicle
      operationId: updateVehicle
      tags:
      - Vehicles
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Vehicle"
        '404':
          description: not found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VehicleUpdateInput"
        required: true
  "/vehicles/{id}/fleetchart":
    parameters:
    - name: id
      in: path
      description: username
      required: true
      schema:
        type: string
    get:
      summary: public_fleetchart vehicle
      deprecated: true
      operationId: DEPRECATEDgetPublicFleetchart
      tags:
      - Vehicles - Public
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehiclePublic"
  "/vehicles/{id}/quick-stats":
    parameters:
    - name: id
      in: path
      description: username
      required: true
      schema:
        type: string
    get:
      summary: public_quick_stats vehicle
      deprecated: true
      operationId: DEPRECATEDgetPublicQuickStats
      tags:
      - Vehicles - Public
      responses:
        '200':
          description: successful
  "/vehicles/destroy-all-ingame":
    delete:
      summary: Delete all ingame bought Vehicles
      operationId: destroyAllIngame
      tags:
      - Vehicles
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/version":
    get:
      summary: Version of Fleetyards
      operationId: version
      tags:
      - Versions
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Version"
  "/wishlist":
    delete:
      summary: Clear your Wishlist
      operationId: destroyWishlist
      tags:
      - Wishlist
      responses:
        '204':
          description: successful
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
    get:
      summary: Your Wishlist
      operationId: getWishlist
      tags:
      - Wishlist
      parameters:
      - name: page
        in: query
        schema:
          type: string
          default: '1'
        required: false
      - name: perPage
        in: query
        schema:
          type: string
          default: 30
        required: false
      - name: q
        in: query
        schema:
          type: object
          "$ref": "#/components/schemas/HangarQuery"
        style: deepObject
        explode: true
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/Vehicle"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/wishlist/export":
    get:
      summary: Export your Wishlist
      operationId: exportWishlist
      tags:
      - Wishlist
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  "$ref": "#/components/schemas/VehicleExport"
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
  "/wishlist/items":
    get:
      summary: Your Wishlist items
      operationId: wishlistItems
      tags:
      - Wishlist
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/StandardError"
components:
  parameters:
    PageParameter:
      name: page
      in: query
      schema:
        type: string
        default: '1'
      required: false
    SortingParameter:
      name: s
      in: query
      schema:
        type: array
        items:
          type: string
      description: Sorting
      required: false
  schemas:
    BarChartStats:
      type: object
      properties:
        label:
          type: string
        count:
          type: integer
        tooltip:
          type: string
      additionalProperties: false
      required:
      - label
      - count
      - tooltip
      title: BarChartStats
    BaseList:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: BaseList
    Commodity:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        type:
          "$ref": "#/components/schemas/CommodityTypeEnum"
        typeLabel:
          type: string
        availability:
          type: object
          properties:
            listedAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - listedAt
          - boughtAt
          - soldAt
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageIsFallback:
          type: boolean
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - media
      - createdAt
      - updatedAt
      title: Commodity
    Component:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        availability:
          type: object
          properties:
            listedAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - listedAt
          - boughtAt
          - soldAt
        class:
          type: string
        grade:
          type: string
        itemClass:
          type: string
        itemClassLabel:
          type: string
        itemType:
          type: string
        itemTypeLabel:
          type: string
        manufacturer:
          "$ref": "#/components/schemas/Manufacturer"
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        typeData:
          oneOf:
          - "$ref": "#/components/schemas/ComponentQuantumDrive"
        size:
          type: string
        trackingSignal:
          type: string
        trackingSignalLabel:
          type: string
        type:
          type: string
        typeLabel:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageIsFallback:
          type: boolean
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - media
      - createdAt
      - updatedAt
      title: Component
    ComponentQuantumDrive:
      type: object
      properties:
        fuelRate:
          type: number
        jumpRange:
          type: number
        standardJump:
          "$ref": "#/components/schemas/ComponentQuantumDriveJump"
        splineJump:
          "$ref": "#/components/schemas/ComponentQuantumDriveJump"
      additionalProperties: false
      required:
      - fuelRate
      - jumpRange
      - standardJump
      - splineJump
      title: ComponentQuantumDrive
    ComponentQuantumDriveJump:
      type: object
      properties:
        speed:
          type: number
        stage1AccelerationRate:
          type: number
        stage2AccelerationRate:
          type: number
        spoolUpTime:
          type: number
        cooldown:
          type: number
      additionalProperties: false
      required:
      - speed
      - stage1AccelerationRate
      - stage2AccelerationRate
      - spoolUpTime
      - cooldown
      title: ComponentQuantumDriveJump
    Dock:
      type: object
      properties:
        name:
          type: string
        group:
          type: string
        size:
          "$ref": "#/components/schemas/DockShipSizeEnum"
        sizeLabel:
          type: string
        type:
          "$ref": "#/components/schemas/DockTypeEnum"
        typeLabel:
          type: string
      additionalProperties: false
      required:
      - name
      - size
      - sizeLabel
      - type
      - typeLabel
      title: Dock
    DockCount:
      type: object
      properties:
        count:
          type: integer
        size:
          type: string
        type:
          type: string
        typeLabel:
          type: string
      additionalProperties: false
      required:
      - size
      - count
      - type
      - typeLabel
      title: DockCount
    BoughtViaEnum:
      type: string
      enum:
      - pledge_store
      - ingame
      title: BoughtViaEnum
    CommodityTypeEnum:
      type: string
      enum:
      - gas
      - metal
      - mineral
      - non_metals
      - agricultural_supply
      - food
      - medical_supply
      - processed_goods
      - waste
      - scrap
      - vice
      - harvestable
      - consumer_goods
      title: CommodityTypeEnum
    ComponentClassEnum:
      type: string
      enum:
      - RSIModular
      - RSIWeapon
      - RSIAvionic
      - RSIPropulsion
      - RSIThruster
      title: ComponentClassEnum
    DockShipSizeEnum:
      type: string
      enum:
      - extra_extra_small
      - extra_small
      - small
      - medium
      - large
      - extra_large
      - capital
      title: DockShipSizeEnum
    DockTypeEnum:
      type: string
      enum:
      - vehiclepad
      - garage
      - landingpad
      - dockingport
      - hangar
      title: DockTypeEnum
    EquipmentTypeEnum:
      type: string
      enum:
      - undersuit
      - armor
      - weapon
      - tool
      - clothing
      - medical
      - weapon_attachment
      - hacking_tool
      title: EquipmentTypeEnum
    FleetMembershipRoleEnum:
      type: string
      enum:
      - admin
      - officer
      - member
      title: FleetMembershipRoleEnum
    FleetMembershipShipsFilterEnum:
      type: string
      enum:
      - all
      - hangar_group
      - hide
      title: FleetMembershipShipsFilterEnum
    FleetMembershipStatusEnum:
      type: string
      enum:
      - created
      - invited
      - requested
      - accepted
      - declined
      title: FleetMembershipStatusEnum
    GalleryTypeEnum:
      type: string
      enum:
      - Model
      - Station
      - Album
      title: GalleryTypeEnum
    HabitationTypeEnum:
      type: string
      enum:
      - container
      - small_apartment
      - medium_apartment
      - large_apartment
      - suite
      title: HabitationTypeEnum
    ModelHardpointCategoryEnum:
      type: string
      enum:
      - main
      - retro
      - vtol
      - fixed
      - gimbal
      - joint
      - manned_turret
      - remote_turret
      - missile_turret
      - missile_rack
      - qed
      - emp
      title: ModelHardpointCategoryEnum
    ModelHardpointGroupEnum:
      type: string
      enum:
      - avionic
      - system
      - propulsion
      - thruster
      - weapon
      title: ModelHardpointGroupEnum
    ModelHardpointSizeEnum:
      type: string
      enum:
      - vehicle
      - one
      - two
      - three
      - four
      - five
      - six
      - seven
      - eight
      - nine
      - ten
      - eleven
      - twelve
      - snub
      - small
      - medium
      - large
      - capital
      - tbd
      title: ModelHardpointSizeEnum
    ModelHardpointSourceEnum:
      type: string
      enum:
      - ship_matrix
      - game_files
      title: ModelHardpointSourceEnum
    ModelHardpointSubCategoryEnum:
      type: string
      enum:
      - retro_thrusters
      - vtol_thrusters
      - manned_turrets
      - remote_turrets
      - missile_turret
      title: ModelHardpointSubCategoryEnum
    ModelHardpointTypeEnum:
      type: string
      enum:
      - radar
      - computers
      - fuel_intakes
      - fuel_tanks
      - jump_modules
      - quantum_fuel_tanks
      - power_plants
      - coolers
      - shield_generators
      - quantum_drives
      - main_thrusters
      - maneuvering_thrusters
      - weapons
      - turrets
      - missiles
      - qed
      - emp
      - utility_items
      title: ModelHardpointTypeEnum
    OrderDirectionEnum:
      type: string
      enum:
      - asc
      - desc
      title: OrderDirectionEnum
    RsiHangarItemKindEnum:
      type: string
      enum:
      - ship
      - component
      - upgrade
      - skin
      title: RsiHangarItemKindEnum
    SearchResultTypeEnum:
      type: string
      enum:
      - Model
      - Component
      - Shop
      - Station
      - CelestialObject
      - Starsystem
      - Equipment
      - Commodity
      title: SearchResultTypeEnum
    ShopCommodityCategoryEnum:
      type: string
      enum:
      - model
      - equipment
      - commodity
      - component
      - modelmodule
      - modelpaint
      title: ShopCommodityCategoryEnum
    ShopCommodityItemTypeEnum:
      type: string
      enum:
      - Model
      - Equipment
      - Commodity
      - Component
      - ModelModule
      - ModelPaint
      title: ShopCommodityItemTypeEnum
    ShopTypeEnum:
      type: string
      enum:
      - clothing
      - armor
      - weapons
      - components
      - armor_and_weapons
      - superstore
      - ships
      - admin
      - bar
      - hospital
      - salvage
      - resources
      - rental
      - computers
      - blackmarket
      - mining_equipment
      - equipment
      - courier
      - refinery
      - pharmacy
      - cargo
      - souvenirs
      - kiosk
      - ship_customizations
      title: ShopTypeEnum
    StationClassificationEnum:
      type: string
      enum:
      - city
      - trading
      - mining
      - salvaging
      - farming
      - science
      - security
      - rest_stop
      - settlement
      - town
      - drug_lab
      - cargo
      - derelict
      - prison
      - spaceport
      title: StationClassificationEnum
    StationSizeEnum:
      type: string
      enum:
      - small
      - medium
      - large
      title: StationSizeEnum
    StationTypeEnum:
      type: string
      enum:
      - landing_zone
      - station
      - asteroid_station
      - district
      - outpost
      - aid_shelter
      - ugf
      title: StationTypeEnum
    VideoTypeEnum:
      type: string
      enum:
      - youtube
      title: VideoTypeEnum
    Equipment:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        availability:
          type: object
          properties:
            listedAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - listedAt
          - boughtAt
          - soldAt
        backpackCompatibility:
          type: string
        coreCompatibility:
          type: string
        damageReduction:
          type: string
        description:
          type: string
        extras:
          type: string
        grade:
          type: string
        itemType:
          type: string
        itemTypeLabel:
          type: string
        manufacturer:
          "$ref": "#/components/schemas/Manufacturer"
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        range:
          type: string
        rateOfFire:
          type: string
        size:
          type: string
        slot:
          type: string
        slotLabel:
          type: string
        storage:
          type: string
        temperatureRating:
          type: string
        type:
          type: string
        typeLabel:
          type: string
        volume:
          type: string
        weaponClass:
          type: string
        weaponClassLabel:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageIsFallback:
          type: boolean
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - media
      - createdAt
      - updatedAt
      title: Equipment
    FieldError:
      type: object
      properties:
        attribute:
          type: string
        messages:
          type: array
          items:
            "$ref": "#/components/schemas/StandardError"
      additionalProperties: false
      required:
      - attribute
      - messages
      title: FieldError
    FilterOption:
      type: object
      properties:
        category:
          type: string
        icon:
          type: string
        name:
          type: string
          deprecated: true
        label:
          type: string
        value:
          type: string
      additionalProperties: false
      required:
      - name
      - value
      - category
      title: FilterOption
    Gallery:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
        name:
          type: string
        slug:
          type: string
      additionalProperties: false
      required:
      - id
      - type
      - name
      - slug
      title: Gallery
    Habitation:
      type: object
      properties:
        name:
          type: string
        habitationName:
          type: string
        type:
          "$ref": "#/components/schemas/HabitationTypeEnum"
        typeLabel:
          type: string
      additionalProperties: false
      required:
      - name
      - type
      - typeLabel
      title: Habitation
    HabitationCount:
      type: object
      properties:
        count:
          type: integer
        type:
          type: string
        typeLabel:
          type: string
      additionalProperties: false
      required:
      - count
      - type
      - typeLabel
      title: HabitationCount
    Manufacturer:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        code:
          type: string
        logo:
          type: string
        longName:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - name
      - slug
      - createdAt
      - updatedAt
      title: Manufacturer
    MediaImage:
      type: object
      properties:
        large:
          type: string
          format: uri
        medium:
          type: string
          format: uri
        small:
          type: string
          format: uri
        source:
          type: string
          format: uri
      additionalProperties: false
      required:
      - source
      - small
      - medium
      - large
      title: MediaImage
    Meta:
      type: object
      properties:
        pagination:
          "$ref": "#/components/schemas/Pagination"
      additionalProperties: false
      title: Meta
    ShopCommodityOrder:
      type: object
      properties:
        name:
          "$ref": "#/components/schemas/OrderDirectionEnum"
      additionalProperties: false
      title: ShopCommodityOrder
    Pagination:
      type: object
      properties:
        currentPage:
          type: integer
        totalPages:
          type: integer
        defaultPerPage:
          type: integer
        maxPerPage:
          type: integer
        perPageSteps:
          type: array
          items:
            oneOf:
            - type: string
            - type: integer
      additionalProperties: false
      required:
      - currentPage
      - totalPages
      title: Pagination
    PieChartStats:
      type: object
      properties:
        name:
          type: string
        "y":
          type: integer
        selected:
          type: boolean
        sliced:
          type: boolean
      additionalProperties: false
      required:
      - name
      - "y"
      - selected
      - sliced
      title: PieChartStats
    ScDataVersion:
      type: object
      properties:
        version:
          type: string
      additionalProperties: false
      required:
      - version
      title: ScDataVersion
    Session:
      type: object
      properties:
        pagination:
          "$ref": "#/components/schemas/Pagination"
      additionalProperties: false
      title: Session
    Shop:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        buying:
          type: boolean
        location:
          type: string
        locationLabel:
          type: string
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        refineryTerminal:
          type: boolean
        rental:
          type: boolean
        selling:
          type: boolean
        station:
          "$ref": "#/components/schemas/StationShop"
        stationLabel:
          type: string
        type:
          "$ref": "#/components/schemas/ShopTypeEnum"
        typeLabel:
          type: string
        celestialObject:
          "$ref": "#/components/schemas/CelestialObject"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - type
      - typeLabel
      - stationLabel
      - locationLabel
      - rental
      - buying
      - selling
      - media
      - refineryTerminal
      - station
      - createdAt
      - updatedAt
      title: Shop
    CelestialObjectSortEnum:
      type: string
      enum:
      - name asc
      - name desc
      - parent_id asc
      - parent_id desc
      - designation asc
      - designation desc
      title: CelestialObjectSortEnum
    FleetMembershipSortEnum:
      type: string
      enum:
      - user_rsi_handle asc
      - user_rsi_handle desc
      - user_username asc
      - user_username desc
      - created_at asc
      - created_at desc
      - accepted_at asc
      - accepted_at desc
      title: FleetMembershipSortEnum
    FleetVehicleSortEnum:
      type: string
      enum:
      - model_name asc
      - model_name desc
      - created_at asc
      - created_at desc
      - updated_at asc
      - updated_at desc
      title: FleetVehicleSortEnum
    ModelSortEnum:
      type: string
      enum:
      - name asc
      - name desc
      - created_at asc
      - created_at desc
      title: ModelSortEnum
    RoadmapItemSortEnum:
      type: string
      enum:
      - name asc
      - name desc
      - rsi_category_id asc
      - rsi_category_id desc
      title: RoadmapItemSortEnum
    StationSortEnum:
      type: string
      enum:
      - name asc
      - name desc
      - station_type asc
      - station_type desc
      title: StationSortEnum
    TradeRouteSortEnum:
      type: string
      enum:
      - average_profit_per_unit_percent asc
      - average_profit_per_unit_percent desc
      - profit_per_unit_percent asc
      - profit_per_unit_percent desc
      - average_profit_per_unit asc
      - average_profit_per_unit desc
      - profit_per_unit asc
      - profit_per_unit desc
      - origin_shop_station_name asc
      - origin_shop_station_name desc
      - created_at asc
      - created_at desc
      title: TradeRouteSortEnum
    VehicleSortEnum:
      type: string
      enum:
      - flagship desc
      - flagship asc
      - name asc
      - name desc
      - model_name asc
      - model_name desc
      - created_at asc
      - created_at desc
      - updated_at asc
      - updated_at desc
      title: VehicleSortEnum
    StandardError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      additionalProperties: false
      required:
      - code
      - message
      title: StandardError
    StandardMessage:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      additionalProperties: false
      required:
      - code
      - message
      title: StandardMessage
    StationShop:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
      additionalProperties: false
      required:
      - name
      - slug
      title: StationShop
    ValidationError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        errors:
          type: array
          items:
            "$ref": "#/components/schemas/FieldError"
      additionalProperties: false
      required:
      - code
      - message
      title: ValidationError
    Version:
      type: object
      properties:
        version:
          type: string
        codename:
          type: string
      additionalProperties: false
      required:
      - version
      - codename
      title: Version
    ViewImage:
      type: object
      properties:
        source:
          type: string
          format: uri
        small:
          type: string
          format: uri
        medium:
          type: string
          format: uri
        large:
          type: string
          format: uri
        xlarge:
          type: string
          format: uri
        width:
          type: integer
        height:
          type: integer
      additionalProperties: false
      required:
      - source
      - small
      - medium
      - large
      - xlarge
      - width
      - height
      title: ViewImage
    CargoOption:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
        cargo:
          type: number
      additionalProperties: false
      required:
      - name
      - value
      - cargo
      title: CargoOption
    CargoOptions:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/CargoOption"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: CargoOptions
    CelestialObject:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        designation:
          type: string
        description:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        habitable:
          type: boolean
          nullable: true
        fairchanceact:
          type: boolean
          nullable: true
        subType:
          type: string
          nullable: true
        size:
          type: string
          nullable: true
        danger:
          type: integer
          nullable: true
        economy:
          type: integer
          nullable: true
        population:
          type: integer
          nullable: true
        locationLabel:
          type: string
          nullable: true
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        starsystem:
          "$ref": "#/components/schemas/Starsystem"
        parent:
          "$ref": "#/components/schemas/CelestialObject"
        moons:
          type: array
          items:
            "$ref": "#/components/schemas/CelestialObject"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: url
          deprecated: true
        storeImageLarge:
          type: string
          deprecated: true
        storeImageMedium:
          type: string
          deprecated: true
        storeImageSmall:
          type: string
          deprecated: true
      additionalProperties: false
      required:
      - name
      - slug
      - designation
      - starsystem
      - media
      - createdAt
      - updatedAt
      title: CelestialObject
    CelestialObjects:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/CelestialObject"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: CelestialObjects
    CommodityItemType:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
      additionalProperties: false
      required:
      - name
      - value
      title: CommodityItemType
    CommodityPrice:
      type: object
      properties:
        id:
          type: string
          format: uuid
        price:
          type: number
          format: float
        timeRange:
          type: string
          nullable: true
        type:
          type: string
        shopCommodityId:
          type: string
          format: uuid
        confirmed:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - price
      - type
      - shopCommodityId
      - confirmed
      - createdAt
      - updatedAt
      title: CommodityPrice
    Fleet:
      type: object
      properties:
        myRole:
          "$ref": "#/components/schemas/FleetMembershipRoleEnum"
        primary:
          type: boolean
        myFleet:
          type: boolean
        id:
          type: string
          format: uuid
        fid:
          type: string
        rsiSid:
          type: string
        ts:
          type: string
        discord:
          type: string
        youtube:
          type: string
        twitch:
          type: string
        guilded:
          type: string
        homepage:
          type: string
        name:
          type: string
        slug:
          type: string
        description:
          type: string
        publicFleet:
          type: boolean
        publicFleetStats:
          type: boolean
        logo:
          type: string
        backgroundImage:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - fid
      - name
      - slug
      - publicFleet
      - publicFleetStats
      - createdAt
      - updatedAt
      title: Fleet
    FleetCheck:
      type: object
      properties:
        taken:
          type: boolean
      additionalProperties: false
      required:
      - taken
      title: FleetCheck
    FleetInviteUrl:
      type: object
      properties:
        token:
          type: string
        url:
          type: string
          format: uri
        expiresAfter:
          type: string
          format: date-time
        expiresAfterLabel:
          type: string
        expired:
          type: boolean
        limit:
          type: integer
        limitReached:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - token
      - url
      - createdAt
      - updatedAt
      title: FleetInviteUrl
    FleetMember:
      type: object
      properties:
        id:
          type: string
          format: uuid
        username:
          type: string
        role:
          "$ref": "#/components/schemas/FleetMembershipRoleEnum"
        roleLabel:
          type: string
        status:
          "$ref": "#/components/schemas/FleetMembershipStatusEnum"
        avatar:
          type: string
        rsiHandle:
          type: string
        homepage:
          type: string
        discord:
          type: string
        youtube:
          type: string
        twitch:
          type: string
        guilded:
          type: string
        shipsFilter:
          "$ref": "#/components/schemas/FleetMembershipShipsFilterEnum"
        hangarGroupId:
          type: string
          format: uuid
        fleetSlug:
          type: string
        fleetName:
          type: string
        fleet:
          "$ref": "#/components/schemas/Fleet"
        primary:
          type: boolean
        hangarUpdatedAt:
          type: string
          format: date-time
        invitedAt:
          type: string
          format: date-time
        invitedAtLabel:
          type: string
        requestedAt:
          type: string
          format: date-time
        requestedAtLabel:
          type: string
        acceptedAt:
          type: string
          format: date-time
        acceptedAtLabel:
          type: string
        declinedAt:
          type: string
          format: date-time
        declinedAtLabel:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - username
      - role
      - roleLabel
      - shipsFilter
      - fleetSlug
      - fleetName
      - createdAt
      - updatedAt
      title: FleetMember
    FleetMembersStats:
      type: object
      properties:
        total:
          type: integer
        metrics:
          type: object
          properties:
            totalAdmins:
              type: integer
            totalOfficers:
              type: integer
            totalMembers:
              type: integer
          additionalProperties: false
          required:
          - totalAdmins
          - totalOfficers
          - totalMembers
      additionalProperties: false
      required:
      - total
      - metrics
      title: FleetMembersStats
    FleetMembersStatsPublic:
      type: object
      properties:
        total:
          type: integer
      additionalProperties: false
      required:
      - total
      title: FleetMembersStatsPublic
    FleetModelCountsStats:
      type: object
      properties:
        modelCounts:
          type: object
          additionalProperties:
            type: integer
      additionalProperties: false
      required:
      - modelCounts
      title: FleetModelCountsStats
    FleetVehicleExport:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        shipCode:
          type: string
        manufacturerName:
          type: string
        manufacturerCode:
          type: string
        paintSlug:
          type: string
        shipName:
          type: string
        shipSerial:
          type: string
        wanted:
          type: boolean
        flagship:
          type: boolean
        public:
          type: boolean
        saleNotify:
          type: boolean
        nameVisible:
          type: boolean
        groups:
          type: array
          items:
            type: string
        modules:
          type: array
          items:
            type: string
        upgrades:
          type: array
          items:
            type: string
        username:
          type: string
          nullable: true
        userAvatar:
          type: string
          format: uri
          nullable: true
        userRsiHandle:
          type: string
          nullable: true
      additionalProperties: false
      required:
      - name
      - slug
      - manufacturerName
      - wanted
      - flagship
      - public
      - saleNotify
      - nameVisible
      - groups
      - modules
      - upgrades
      title: FleetVehicleExport
    FleetVehiclesStats:
      type: object
      properties:
        total:
          type: integer
        classifications:
          type: array
          items:
            "$ref": "#/components/schemas/HangarClassificationMetric"
        metrics:
          "$ref": "#/components/schemas/HangarMetrics"
      additionalProperties: false
      required:
      - total
      - classifications
      - metrics
      title: FleetVehiclesStats
    HangarGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        color:
          type: string
        public:
          type: boolean
        sort:
          type: integer
        vehiclesCount:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - color
      - public
      - createdAt
      - updatedAt
      title: HangarGroup
    HangarGroupMetric:
      type: object
      properties:
        id:
          type: string
          format: uuid
        slug:
          type: string
        count:
          type: integer
      additionalProperties: false
      required:
      - id
      - slug
      - count
      title: HangarGroupMetric
    HangarGroupPublic:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        color:
          type: string
        sort:
          type: integer
        vehiclesCount:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - color
      - createdAt
      - updatedAt
      title: HangarGroupPublic
    Hangar:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Vehicle"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Hangar
    HangarClassificationMetric:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        count:
          type: integer
      additionalProperties: false
      required:
      - name
      - label
      - count
      title: HangarClassificationMetric
    HangarImportResult:
      type: object
      properties:
        success:
          type: boolean
        missing:
          type: array
          items:
            type: string
        imported:
          type: array
          items:
            type: string
      additionalProperties: false
      required:
      - success
      - missing
      - imported
      title: HangarImportResult
    HangarMetrics:
      type: object
      properties:
        totalMoney:
          type: number
        totalCredits:
          type: number
        totalMinCrew:
          type: integer
        totalMaxCrew:
          type: integer
        totalCargo:
          type: number
      additionalProperties: false
      required:
      - totalMoney
      - totalCredits
      - totalMinCrew
      - totalMaxCrew
      - totalCargo
      title: HangarMetrics
    HangarPublic:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/VehiclePublic"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: HangarPublic
    HangarStats:
      type: object
      properties:
        total:
          type: integer
        wishlistTotal:
          type: integer
        classifications:
          type: array
          items:
            "$ref": "#/components/schemas/HangarClassificationMetric"
        groups:
          type: array
          items:
            "$ref": "#/components/schemas/HangarGroupMetric"
        metrics:
          "$ref": "#/components/schemas/HangarMetrics"
      additionalProperties: false
      required:
      - total
      - wishlistTotal
      - classifications
      - groups
      - metrics
      title: HangarStats
    HangarStatsPublic:
      type: object
      properties:
        total:
          type: integer
        classifications:
          type: array
          items:
            "$ref": "#/components/schemas/HangarClassificationMetric"
        groups:
          type: array
          items:
            "$ref": "#/components/schemas/HangarGroupMetric"
      additionalProperties: false
      required:
      - total
      - classifications
      - groups
      title: HangarStatsPublic
    HangarSyncResult:
      type: object
      properties:
        importedVehicles:
          type: array
          items:
            type: string
            format: uuid
        foundVehicles:
          type: array
          items:
            type: string
            format: uuid
        movedVehiclesToWanted:
          type: array
          items:
            type: string
            format: uuid
        missingModels:
          type: array
          items:
            type: string
        importedComponents:
          type: array
          items:
            type: string
            format: uuid
        foundComponents:
          type: array
          items:
            type: string
            format: uuid
        missingComponents:
          type: array
          items:
            type: string
        missingComponentVehicles:
          type: array
          items:
            type: string
        importedUpgrades:
          type: array
          items:
            type: string
            format: uuid
        foundUpgrades:
          type: array
          items:
            type: string
            format: uuid
        missingUpgrades:
          type: array
          items:
            type: string
        missingUpgradeVehicles:
          type: array
          items:
            type: string
      additionalProperties: false
      required:
      - importedVehicles
      - foundVehicles
      - movedVehiclesToWanted
      - missingModels
      - importedComponents
      - foundComponents
      - missingComponents
      - missingComponentVehicles
      - importedUpgrades
      - foundUpgrades
      - missingUpgrades
      - missingUpgradeVehicles
      title: HangarSyncResult
    Image:
      type: object
      properties:
        id:
          type: string
          format: uuid
        background:
          type: boolean
        bigUrl:
          type: string
          format: uri
        caption:
          type: string
        name:
          type: string
        smallUrl:
          type: string
          format: uri
        type:
          type: string
        url:
          type: string
          format: uri
        width:
          type: number
        height:
          type: number
        gallery:
          "$ref": "#/components/schemas/Gallery"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - name
      - url
      - type
      - background
      - smallUrl
      - bigUrl
      - createdAt
      - updatedAt
      title: Image
    Images:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Image"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Images
    CommodityPriceInput:
      type: object
      properties:
        commodityItemId:
          type: string
          format: uuid
        commodityItemType:
          type: string
        path:
          type: string
          enum:
          - buy
          - sell
          - rental
        shopId:
          type: string
          format: uuid
        timeRange:
          type: string
      additionalProperties: false
      required:
      - commodityItemId
      - commodityItemType
      - path
      - shopId
      title: CommodityPriceInput
    ConfirmAccessInput:
      type: object
      properties:
        password:
          type: string
      additionalProperties: false
      required:
      - password
      title: ConfirmAccessInput
    FleetCheckInput:
      type: object
      properties:
        fid:
          type: string
      additionalProperties: false
      title: FleetCheckInput
    FleetCreateInput:
      type: object
      properties:
        fid:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        publicFleet:
          type: boolean
        homepage:
          type: string
        rsiSid:
          type: string
        discord:
          type: string
        ts:
          type: string
        youtube:
          type: string
        twitch:
          type: string
        guilded:
          type: string
      additionalProperties: false
      required:
      - fid
      - name
      title: FleetCreateInput
    FleetInviteUrlCreateInput:
      type: object
      properties:
        limit:
          type: integer
        expiresAfterMinutes:
          type: integer
      additionalProperties: false
      title: FleetInviteUrlCreateInput
    FleetMemberCreateInput:
      type: object
      properties:
        username:
          type: string
      additionalProperties: false
      title: FleetMemberCreateInput
    FleetMembershipCreateInput:
      type: object
      properties:
        token:
          type: string
      additionalProperties: false
      title: FleetMembershipCreateInput
    FleetMembershipUpdateInput:
      type: object
      properties:
        primary:
          type: boolean
        shipsFilter:
          "$ref": "#/components/schemas/FleetMembershipShipsFilterEnum"
      additionalProperties: false
      title: FleetMembershipUpdateInput
    FleetUpdateInput:
      type: object
      properties:
        fid:
          type: string
        name:
          type: string
        logo:
          type: string
          format: binary
        removeLogo:
          type: boolean
        backgroundImage:
          type: string
          format: binary
        removeBackground:
          type: boolean
        description:
          type: string
        publicFleet:
          type: boolean
        homepage:
          type: string
        rsiSid:
          type: string
        discord:
          type: string
        ts:
          type: string
        youtube:
          type: string
        twitch:
          type: string
        guilded:
          type: string
      additionalProperties: false
      title: FleetUpdateInput
    HangarGroupCreateInput:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
        sort:
          type: integer
          nullable: true
        public:
          type: boolean
          nullable: true
      additionalProperties: false
      required:
      - name
      - color
      title: HangarGroupCreateInput
    HangarGroupUpdateInput:
      type: object
      properties:
        name:
          type: string
          nullable: true
        color:
          type: string
          nullable: true
        sort:
          type: integer
          nullable: true
        public:
          type: boolean
          nullable: true
      additionalProperties: false
      title: HangarGroupUpdateInput
    PasswordInput:
      type: object
      properties:
        currentPassword:
          type: string
        password:
          type: string
        passwordConfirmation:
          type: string
      additionalProperties: false
      title: PasswordInput
    PasswordRequestInput:
      type: object
      properties:
        email:
          type: string
      additionalProperties: false
      title: PasswordRequestInput
    RsiHangarItemInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        customName:
          type: string
          nullable: true
        type:
          "$ref": "#/components/schemas/RsiHangarItemKindEnum"
      additionalProperties: false
      required:
      - id
      - name
      - type
      title: RsiHangarItemInput
    SessionInput:
      type: object
      properties:
        login:
          type: string
          description: Username or email
        password:
          type: string
        rememberMe:
          type: boolean
      additionalProperties: false
      required:
      - login
      - password
      title: SessionInput
    SyncRsiHangarInput:
      type: array
      items:
        "$ref": "#/components/schemas/RsiHangarItemInput"
      title: SyncRsiHangarInput
    VehicleBulkDestroyInput:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
      additionalProperties: false
      required:
      - ids
      title: VehicleBulkDestroyInput
    VehicleBulkUpdateInput:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
        wanted:
          type: boolean
          nullable: true
        public:
          type: boolean
          nullable: true
        hangarGroupIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
      additionalProperties: false
      required:
      - ids
      title: VehicleBulkUpdateInput
    VehicleCheckSerialInput:
      type: object
      properties:
        serial:
          type: string
      additionalProperties: false
      required:
      - serial
      title: VehicleCheckSerialInput
    VehicleCreateInput:
      type: object
      properties:
        modelId:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
        serial:
          type: string
          nullable: true
        wanted:
          type: boolean
          nullable: true
        nameVisible:
          type: boolean
          nullable: true
        public:
          type: boolean
          nullable: true
        saleNotify:
          type: boolean
          nullable: true
        flagship:
          type: boolean
          nullable: true
        modelPaintId:
          type: string
          format: uuid
          nullable: true
        boughtVia:
          "$ref": "#/components/schemas/BoughtViaEnum"
          nullable: true
        hangarGroupIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        modelModuleIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        modelUpgradeIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        alternativeNames:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
      required:
      - modelId
      title: VehicleCreateInput
    VehicleUpdateInput:
      type: object
      properties:
        name:
          type: string
          nullable: true
        serial:
          type: string
          nullable: true
        wanted:
          type: boolean
          nullable: true
        nameVisible:
          type: boolean
          nullable: true
        public:
          type: boolean
          nullable: true
        saleNotify:
          type: boolean
          nullable: true
        flagship:
          type: boolean
          nullable: true
        modelPaintId:
          type: string
          format: uuid
          nullable: true
        boughtVia:
          "$ref": "#/components/schemas/BoughtViaEnum"
          nullable: true
        hangarGroupIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        modelModuleIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        modelUpgradeIds:
          type: array
          items:
            type: string
            format: uuid
          nullable: true
        alternativeNames:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties: false
      title: VehicleUpdateInput
    Manufacturers:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Manufacturer"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Manufacturers
    ModelHardpoint:
      type: object
      properties:
        id:
          type: string
          format: uuid
        category:
          "$ref": "#/components/schemas/ModelHardpointCategoryEnum"
        categoryLabel:
          type: string
        component:
          "$ref": "#/components/schemas/Component"
        details:
          type: string
        group:
          "$ref": "#/components/schemas/ModelHardpointGroupEnum"
        itemSlots:
          type: string
        key:
          type: string
        loadoutIdentifier:
          type: string
          format: uuid
        loadouts:
          type: array
          items:
            "$ref": "#/components/schemas/ModelHardpointLoadout"
        mount:
          type: string
        name:
          type: string
        size:
          "$ref": "#/components/schemas/ModelHardpointSizeEnum"
        sizeLabel:
          type: string
        source:
          "$ref": "#/components/schemas/ModelHardpointSourceEnum"
        subCategory:
          "$ref": "#/components/schemas/ModelHardpointSubCategoryEnum"
        subCategoryLabel:
          type: string
        type:
          "$ref": "#/components/schemas/ModelHardpointTypeEnum"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - key
      - type
      - group
      - createdAt
      - updatedAt
      title: ModelHardpoint
    ModelHardpointLoadout:
      type: object
      properties:
        id:
          type: string
          format: uuid
        component:
          "$ref": "#/components/schemas/Component"
          nullable: true
        name:
          type: string
      additionalProperties: false
      required:
      - id
      - name
      title: ModelHardpointLoadout
    ModelLoaner:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
      additionalProperties: false
      required:
      - name
      - slug
      title: ModelLoaner
    Model:
      type: object
      properties:
        id:
          type: string
          format: uuid
        scIdentifier:
          type: string
        name:
          type: string
        slug:
          type: string
        availability:
          type: object
          properties:
            listedAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            rentalAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - listedAt
          - boughtAt
          - soldAt
          - rentalAt
        brochure:
          type: string
        classification:
          type: string
        classificationLabel:
          type: string
        crew:
          type: object
          properties:
            max:
              type: integer
            maxLabel:
              type: string
            min:
              type: integer
            minLabel:
              type: string
          additionalProperties: false
        description:
          type: string
        erkulIdentifier:
          type: string
        focus:
          type: string
        hasImages:
          type: boolean
        hasModules:
          type: boolean
        hasPaints:
          type: boolean
        hasUpgrades:
          type: boolean
        hasVideos:
          type: boolean
        holo:
          type: string
        holoColored:
          type: boolean
          deprecated: true
        lastUpdatedAt:
          type: string
          format: date-time
        lastUpdatedAtLabel:
          type: string
        links:
          type: object
          properties:
            salesPageUrl:
              type: string
            storeUrl:
              type: string
          additionalProperties: false
        loaners:
          type: array
          items:
            "$ref": "#/components/schemas/ModelLoaner"
        manufacturer:
          "$ref": "#/components/schemas/Manufacturer"
        media:
          type: object
          properties:
            angledView:
              "$ref": "#/components/schemas/ViewImage"
            angledViewColored:
              "$ref": "#/components/schemas/ViewImage"
            fleetchartImage:
              type: string
            frontView:
              "$ref": "#/components/schemas/ViewImage"
            frontViewColored:
              "$ref": "#/components/schemas/ViewImage"
            sideView:
              "$ref": "#/components/schemas/ViewImage"
            sideViewColored:
              "$ref": "#/components/schemas/ViewImage"
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
            topView:
              "$ref": "#/components/schemas/ViewImage"
            topViewColored:
              "$ref": "#/components/schemas/ViewImage"
          additionalProperties: false
        metrics:
          type: object
          properties:
            beam:
              type: number
            beamLabel:
              type: string
            cargo:
              type: number
            cargoLabel:
              type: string
            fleetchartLength:
              type: number
            height:
              type: number
            heightLabel:
              type: string
            hydrogenFuelTankSize:
              type: number
            isGroundVehicle:
              type: boolean
            length:
              type: number
            lengthLabel:
              type: string
            mass:
              type: number
            massLabel:
              type: string
            quantumFuelTankSize:
              type: number
            size:
              type: string
            sizeLabel:
              type: string
          additionalProperties: false
        onSale:
          type: boolean
        pledgePrice:
          type: number
        pledgePriceLabel:
          type: string
        price:
          type: number
        priceLabel:
          type: string
        productionNote:
          type: string
        productionStatus:
          type: string
        rsiId:
          type: integer
        rsiName:
          type: string
        rsiSlug:
          type: string
        speeds:
          type: object
          properties:
            groundAcceleration:
              type: number
            groundDecceleration:
              type: number
            groundMaxSpeed:
              type: number
            groundReverseSpeed:
              type: number
            maxSpeed:
              type: number
            maxSpeedAcceleration:
              type: number
            maxSpeedDecceleration:
              type: number
            pitch:
              type: number
            roll:
              type: number
            scmSpeed:
              type: number
            scmSpeedAcceleration:
              type: number
            scmSpeedDecceleration:
              type: number
            yaw:
              type: number
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        afterburnerGroundSpeed:
          type: number
          deprecated: true
        afterburnerSpeed:
          type: number
          deprecated: true
        angledView:
          type: string
          deprecated: true
        angledViewHeight:
          type: number
          deprecated: true
        angledViewLarge:
          type: string
          deprecated: true
        angledViewMedium:
          type: string
          deprecated: true
        angledViewSmall:
          type: string
          deprecated: true
        angledViewWidth:
          type: number
          deprecated: true
        angledViewXlarge:
          type: string
          deprecated: true
        beam:
          type: number
          deprecated: true
        beamLabel:
          type: string
          deprecated: true
        cargo:
          type: number
          deprecated: true
        cargoLabel:
          type: string
          deprecated: true
        fleetchartImage:
          type: string
          deprecated: true
        fleetchartLength:
          type: number
          deprecated: true
        groundSpeed:
          type: number
          deprecated: true
        height:
          type: number
          deprecated: true
        heightLabel:
          type: string
          deprecated: true
        hydrogenFuelTankSize:
          type: number
          deprecated: true
        length:
          type: number
          deprecated: true
        lengthLabel:
          type: string
          deprecated: true
        mass:
          type: number
          deprecated: true
        massLabel:
          type: number
          deprecated: true
        maxCrew:
          type: integer
          deprecated: true
        maxCrewLabel:
          type: string
          deprecated: true
        minCrew:
          type: integer
          deprecated: true
        minCrewLabel:
          type: string
          deprecated: true
        pitchMax:
          type: number
          deprecated: true
        quantumFuelTankSize:
          type: number
          deprecated: true
        rollMax:
          type: number
          deprecated: true
        salesPageUrl:
          type: string
          deprecated: true
        scmSpeed:
          type: number
          deprecated: true
        sideView:
          type: string
          deprecated: true
        sideViewHeight:
          type: number
          deprecated: true
        sideViewLarge:
          type: string
          deprecated: true
        sideViewMedium:
          type: string
          deprecated: true
        sideViewSmall:
          type: string
          deprecated: true
        sideViewWidth:
          type: number
          deprecated: true
        sideViewXlarge:
          type: string
          deprecated: true
        size:
          type: string
          deprecated: true
        sizeLabel:
          type: string
          deprecated: true
        storeImage:
          type: string
          deprecated: true
        storeImageLarge:
          type: string
          deprecated: true
        storeImageMedium:
          type: string
          deprecated: true
        storeImageSmall:
          type: string
          deprecated: true
        storeUrl:
          type: string
          deprecated: true
        topView:
          type: string
          deprecated: true
        topViewHeight:
          type: number
          deprecated: true
        topViewLarge:
          type: string
          deprecated: true
        topViewMedium:
          type: string
          deprecated: true
        topViewSmall:
          type: string
          deprecated: true
        topViewWidth:
          type: number
          deprecated: true
        topViewXlarge:
          type: string
          deprecated: true
        xaxisAcceleration:
          type: number
          deprecated: true
        yawMax:
          type: number
          deprecated: true
        yaxisAcceleration:
          type: number
          deprecated: true
        zaxisAcceleration:
          type: number
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - crew
      - hasImages
      - hasModules
      - hasPaints
      - hasUpgrades
      - hasVideos
      - links
      - loaners
      - media
      - metrics
      - onSale
      - speeds
      - createdAt
      - updatedAt
      title: Model
    ModelExtended:
      type: object
      properties:
        id:
          type: string
          format: uuid
        scIdentifier:
          type: string
        name:
          type: string
        slug:
          type: string
        availability:
          type: object
          properties:
            listedAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            rentalAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - listedAt
          - boughtAt
          - soldAt
          - rentalAt
        brochure:
          type: string
        classification:
          type: string
        classificationLabel:
          type: string
        crew:
          type: object
          properties:
            max:
              type: integer
            maxLabel:
              type: string
            min:
              type: integer
            minLabel:
              type: string
          additionalProperties: false
        description:
          type: string
        erkulIdentifier:
          type: string
        focus:
          type: string
        hasImages:
          type: boolean
        hasModules:
          type: boolean
        hasPaints:
          type: boolean
        hasUpgrades:
          type: boolean
        hasVideos:
          type: boolean
        holo:
          type: string
        holoColored:
          type: boolean
          deprecated: true
        lastUpdatedAt:
          type: string
          format: date-time
        lastUpdatedAtLabel:
          type: string
        links:
          type: object
          properties:
            salesPageUrl:
              type: string
            storeUrl:
              type: string
            self:
              type: string
              format: uri
            frontend:
              type: string
              format: uri
          additionalProperties: false
        loaners:
          type: array
          items:
            "$ref": "#/components/schemas/ModelLoaner"
        manufacturer:
          "$ref": "#/components/schemas/Manufacturer"
        media:
          type: object
          properties:
            angledView:
              "$ref": "#/components/schemas/ViewImage"
            angledViewColored:
              "$ref": "#/components/schemas/ViewImage"
            fleetchartImage:
              type: string
            frontView:
              "$ref": "#/components/schemas/ViewImage"
            frontViewColored:
              "$ref": "#/components/schemas/ViewImage"
            sideView:
              "$ref": "#/components/schemas/ViewImage"
            sideViewColored:
              "$ref": "#/components/schemas/ViewImage"
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
            topView:
              "$ref": "#/components/schemas/ViewImage"
            topViewColored:
              "$ref": "#/components/schemas/ViewImage"
          additionalProperties: false
        metrics:
          type: object
          properties:
            beam:
              type: number
            beamLabel:
              type: string
            cargo:
              type: number
            cargoLabel:
              type: string
            fleetchartLength:
              type: number
            height:
              type: number
            heightLabel:
              type: string
            hydrogenFuelTankSize:
              type: number
            isGroundVehicle:
              type: boolean
            length:
              type: number
            lengthLabel:
              type: string
            mass:
              type: number
            massLabel:
              type: string
            quantumFuelTankSize:
              type: number
            size:
              type: string
            sizeLabel:
              type: string
          additionalProperties: false
        onSale:
          type: boolean
        pledgePrice:
          type: number
        pledgePriceLabel:
          type: string
        price:
          type: number
        priceLabel:
          type: string
        productionNote:
          type: string
        productionStatus:
          type: string
        rsiId:
          type: integer
        rsiName:
          type: string
        rsiSlug:
          type: string
        speeds:
          type: object
          properties:
            groundAcceleration:
              type: number
            groundDecceleration:
              type: number
            groundMaxSpeed:
              type: number
            groundReverseSpeed:
              type: number
            maxSpeed:
              type: number
            maxSpeedAcceleration:
              type: number
            maxSpeedDecceleration:
              type: number
            pitch:
              type: number
            roll:
              type: number
            scmSpeed:
              type: number
            scmSpeedAcceleration:
              type: number
            scmSpeedDecceleration:
              type: number
            yaw:
              type: number
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        afterburnerGroundSpeed:
          type: number
          deprecated: true
        afterburnerSpeed:
          type: number
          deprecated: true
        angledView:
          type: string
          deprecated: true
        angledViewHeight:
          type: number
          deprecated: true
        angledViewLarge:
          type: string
          deprecated: true
        angledViewMedium:
          type: string
          deprecated: true
        angledViewSmall:
          type: string
          deprecated: true
        angledViewWidth:
          type: number
          deprecated: true
        angledViewXlarge:
          type: string
          deprecated: true
        beam:
          type: number
          deprecated: true
        beamLabel:
          type: string
          deprecated: true
        cargo:
          type: number
          deprecated: true
        cargoLabel:
          type: string
          deprecated: true
        fleetchartImage:
          type: string
          deprecated: true
        fleetchartLength:
          type: number
          deprecated: true
        groundSpeed:
          type: number
          deprecated: true
        height:
          type: number
          deprecated: true
        heightLabel:
          type: string
          deprecated: true
        hydrogenFuelTankSize:
          type: number
          deprecated: true
        length:
          type: number
          deprecated: true
        lengthLabel:
          type: string
          deprecated: true
        mass:
          type: number
          deprecated: true
        massLabel:
          type: number
          deprecated: true
        maxCrew:
          type: integer
          deprecated: true
        maxCrewLabel:
          type: string
          deprecated: true
        minCrew:
          type: integer
          deprecated: true
        minCrewLabel:
          type: string
          deprecated: true
        pitchMax:
          type: number
          deprecated: true
        quantumFuelTankSize:
          type: number
          deprecated: true
        rollMax:
          type: number
          deprecated: true
        salesPageUrl:
          type: string
          deprecated: true
        scmSpeed:
          type: number
          deprecated: true
        sideView:
          type: string
          deprecated: true
        sideViewHeight:
          type: number
          deprecated: true
        sideViewLarge:
          type: string
          deprecated: true
        sideViewMedium:
          type: string
          deprecated: true
        sideViewSmall:
          type: string
          deprecated: true
        sideViewWidth:
          type: number
          deprecated: true
        sideViewXlarge:
          type: string
          deprecated: true
        size:
          type: string
          deprecated: true
        sizeLabel:
          type: string
          deprecated: true
        storeImage:
          type: string
          deprecated: true
        storeImageLarge:
          type: string
          deprecated: true
        storeImageMedium:
          type: string
          deprecated: true
        storeImageSmall:
          type: string
          deprecated: true
        storeUrl:
          type: string
          deprecated: true
        topView:
          type: string
          deprecated: true
        topViewHeight:
          type: number
          deprecated: true
        topViewLarge:
          type: string
          deprecated: true
        topViewMedium:
          type: string
          deprecated: true
        topViewSmall:
          type: string
          deprecated: true
        topViewWidth:
          type: number
          deprecated: true
        topViewXlarge:
          type: string
          deprecated: true
        xaxisAcceleration:
          type: number
          deprecated: true
        yawMax:
          type: number
          deprecated: true
        yaxisAcceleration:
          type: number
          deprecated: true
        zaxisAcceleration:
          type: number
          deprecated: true
        dockCounts:
          type: array
          items:
            "$ref": "#/components/schemas/DockCount"
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - crew
      - hasImages
      - hasModules
      - hasPaints
      - hasUpgrades
      - hasVideos
      - links
      - loaners
      - media
      - metrics
      - onSale
      - speeds
      - createdAt
      - updatedAt
      - dockCounts
      title: ModelExtended
    Models:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Model"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Models
    ModelModulePackage:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        pledgePrice:
          type: number
        modules:
          type: array
          items:
            "$ref": "#/components/schemas/ModelModule"
        media:
          type: object
          properties:
            angledView:
              "$ref": "#/components/schemas/ViewImage"
            sideView:
              "$ref": "#/components/schemas/ViewImage"
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
            topView:
              "$ref": "#/components/schemas/ViewImage"
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        hasStoreImage:
          type: boolean
          deprecated: true
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
        angledView:
          type: string
          deprecated: true
        angledViewHeight:
          type: number
          deprecated: true
        angledViewLarge:
          type: string
          deprecated: true
        angledViewMedium:
          type: string
          deprecated: true
        angledViewSmall:
          type: string
          deprecated: true
        angledViewWidth:
          type: number
          deprecated: true
        angledViewXlarge:
          type: string
          deprecated: true
        sideView:
          type: string
          deprecated: true
        sideViewHeight:
          type: number
          deprecated: true
        sideViewLarge:
          type: string
          deprecated: true
        sideViewMedium:
          type: string
          deprecated: true
        sideViewSmall:
          type: string
          deprecated: true
        sideViewWidth:
          type: number
          deprecated: true
        sideViewXlarge:
          type: string
          deprecated: true
        topView:
          type: string
          deprecated: true
        topViewHeight:
          type: number
          deprecated: true
        topViewLarge:
          type: string
          deprecated: true
        topViewMedium:
          type: string
          deprecated: true
        topViewSmall:
          type: string
          deprecated: true
        topViewWidth:
          type: number
          deprecated: true
        topViewXlarge:
          type: string
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - modules
      - media
      - createdAt
      - updatedAt
      title: ModelModulePackage
    ModelModulePackages:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/ModelModulePackage"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: ModelModulePackages
    ModelModule:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        availability:
          type: object
          properties:
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - boughtAt
          - soldAt
        description:
          type: string
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        pledgePrice:
          type: number
        productionStatus:
          type: string
        manufacturer:
          "$ref": "#/components/schemas/Manufacturer"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        hasStoreImage:
          type: boolean
          deprecated: true
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - availability
      - media
      - createdAt
      - updatedAt
      title: ModelModule
    ModelModules:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/ModelModule"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: ModelModules
    ModelPaint:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        description:
          type: string
        lastUpdatedAt:
          type: string
          format: date-time
        lastUpdatedAtLabel:
          type: string
        availability:
          type: object
          properties:
            boughtAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
            soldAt:
              type: array
              items:
                "$ref": "#/components/schemas/ShopCommodity"
          additionalProperties: false
          required:
          - boughtAt
          - soldAt
        media:
          type: object
          properties:
            angledView:
              "$ref": "#/components/schemas/ViewImage"
            fleetchartImage:
              type: string
            sideView:
              "$ref": "#/components/schemas/ViewImage"
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
            topView:
              "$ref": "#/components/schemas/ViewImage"
          additionalProperties: false
        nameWithModel:
          type: string
        rsiId:
          type: integer
        rsiName:
          type: string
        rsiSlug:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        angledView:
          type: string
          format: uri
          deprecated: true
        angledViewHeight:
          type: number
          deprecated: true
        angledViewLarge:
          type: string
          format: uri
          deprecated: true
        angledViewMedium:
          type: string
          format: uri
          deprecated: true
        angledViewSmall:
          type: string
          format: uri
          deprecated: true
        angledViewWidth:
          type: number
          deprecated: true
        angledViewXlarge:
          type: string
          format: uri
          deprecated: true
        fleetchartImage:
          type: string
          format: uri
          deprecated: true
        hasStoreImage:
          type: boolean
        sideView:
          type: string
          format: uri
          deprecated: true
        sideViewHeight:
          type: number
          deprecated: true
        sideViewLarge:
          type: string
          format: uri
          deprecated: true
        sideViewMedium:
          type: string
          format: uri
          deprecated: true
        sideViewSmall:
          type: string
          format: uri
          deprecated: true
        sideViewWidth:
          type: number
          deprecated: true
        sideViewXlarge:
          type: string
          format: uri
          deprecated: true
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
        topView:
          type: string
          format: uri
          deprecated: true
        topViewHeight:
          type: number
          deprecated: true
        topViewLarge:
          type: string
          format: uri
          deprecated: true
        topViewMedium:
          type: string
          format: uri
          deprecated: true
        topViewSmall:
          type: string
          format: uri
          deprecated: true
        topViewWidth:
          type: number
          deprecated: true
        topViewXlarge:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - availability
      - media
      - createdAt
      - updatedAt
      title: ModelPaint
    ModelUpgrade:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        pledgePrice:
          type: number
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - media
      - createdAt
      - updatedAt
      title: ModelUpgrade
    CelestialObjectQuery:
      type: object
      properties:
        starsystemEq:
          type: string
        nameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
        searchCont:
          type: string
        parentEq:
          type: string
        parentIdNull:
          type: boolean
        main:
          type: boolean
          deprecated: true
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/CelestialObjectSortEnum"
          - "$ref": "#/components/schemas/CelestialObjectSortEnum"
      additionalProperties: false
      title: CelestialObjectQuery
    CommodityQuery:
      type: object
      properties:
        nameCont:
          type: string
        idIn:
          type: array
          items:
            type: string
            format: uuid
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: CommodityQuery
    ComponentQuery:
      type: object
      properties:
        nameCont:
          type: string
        idIn:
          type: array
          items:
            type: string
            format: uuid
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ComponentQuery
    EquipmentQuery:
      type: object
      properties:
        nameCont:
          type: string
        idIn:
          type: array
          items:
            type: string
            format: uuid
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: EquipmentQuery
    FleetMemberQuery:
      type: object
      properties:
        usernameCont:
          type: string
        nameCont:
          type: string
          deprecated: true
          description: Use usernameCont instead
        roleIn:
          type: array
          items:
            "$ref": "#/components/schemas/FleetMembershipRoleEnum"
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/FleetMembershipSortEnum"
          - "$ref": "#/components/schemas/FleetMembershipSortEnum"
      additionalProperties: false
      title: FleetMemberQuery
    FleetVehicleQuery:
      type: object
      properties:
        beamGteq:
          type: number
        beamLteq:
          type: number
        classificationIn:
          type: array
          items:
            type: string
        focusIn:
          type: array
          items:
            type: string
        heightGteq:
          type: number
        heightLteq:
          type: number
        lengthGteq:
          type: number
        lengthLteq:
          type: number
        manufacturerIn:
          type: array
          items:
            type: string
        onSaleEq:
          type: boolean
        pledgePriceGteq:
          type: number
        pledgePriceLteq:
          type: number
        pledgePriceIn:
          type: array
          items:
            type: number
        priceGteq:
          type: number
        priceLteq:
          type: number
        priceIn:
          type: array
          items:
            type: number
        productionStatusIn:
          type: array
          items:
            type: string
        searchCont:
          type: string
        sizeIn:
          type: array
          items:
            type: string
        modelNameCont:
          type: string
        modelNameOrModelDescriptionCont:
          type: string
        loanerEq:
          type: boolean
        memberIn:
          type: array
          items:
            type: string
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/FleetVehicleSortEnum"
          - "$ref": "#/components/schemas/FleetVehicleSortEnum"
      additionalProperties: false
      title: FleetVehicleQuery
    HangarEmbedQuery:
      type: array
      items:
        type: string
      title: HangarEmbedQuery
    HangarQuery:
      type: object
      properties:
        beamGteq:
          type: number
        beamLteq:
          type: number
        classificationIn:
          type: array
          items:
            type: string
        descriptionCont:
          type: string
        focusIn:
          type: array
          items:
            type: string
        heightGteq:
          type: number
        heightLteq:
          type: number
        idIn:
          type: array
          items:
            type: string
        idNotIn:
          type: array
          items:
            type: string
        lengthGteq:
          type: number
        lengthLteq:
          type: number
        manufacturerIn:
          type: array
          items:
            type: string
        nameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
        nameOrDescriptionCont:
          type: string
        onSaleEq:
          type: boolean
        pledgePriceGteq:
          type: number
        pledgePriceLteq:
          type: number
        pledgePriceIn:
          type: array
          items:
            type: number
        priceGteq:
          type: number
        priceLteq:
          type: number
        priceIn:
          type: array
          items:
            type: number
        productionStatusIn:
          type: array
          items:
            type: string
        searchCont:
          type: string
        sizeIn:
          type: array
          items:
            type: string
        modelNameOrModelDescriptionCont:
          type: string
        publicEq:
          type: boolean
        loanerEq:
          type: boolean
        boughtViaEq:
          "$ref": "#/components/schemas/BoughtViaEnum"
        hangarGroupsIn:
          type: array
          items:
            type: string
        hangarGroupsNotIn:
          type: array
          items:
            type: string
        willItFit:
          type: string
          format: uuid
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/VehicleSortEnum"
          - "$ref": "#/components/schemas/VehicleSortEnum"
      additionalProperties: false
      title: HangarQuery
    ImageQuery:
      type: object
      properties:
        modelIn:
          type: array
          items:
            type: string
        stationIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ImageQuery
    ManufacturerQuery:
      type: object
      properties:
        withModels:
          type: boolean
        nameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ManufacturerQuery
    ModelPaintQuery:
      type: object
      properties:
        nameCont:
          type: string
        idEq:
          type: string
          format: uuid
        modelSlugEq:
          type: string
        idIn:
          type: array
          items:
            type: string
            format: uuid
        idNotIn:
          type: array
          items:
            type: string
            format: uuid
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ModelPaintQuery
    ModelQuery:
      type: object
      properties:
        beamGteq:
          type: number
        beamLteq:
          type: number
        classificationIn:
          type: array
          items:
            type: string
        descriptionCont:
          type: string
        focusIn:
          type: array
          items:
            type: string
        heightGteq:
          type: number
        heightLteq:
          type: number
        idIn:
          type: array
          items:
            type: string
        idNotIn:
          type: array
          items:
            type: string
        lengthGteq:
          type: number
        lengthLteq:
          type: number
        manufacturerIn:
          type: array
          items:
            type: string
        nameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
        nameOrDescriptionCont:
          type: string
        onSaleEq:
          type: boolean
        pledgePriceGteq:
          type: number
        pledgePriceLteq:
          type: number
        pledgePriceIn:
          type: array
          items:
            type: number
        priceGteq:
          type: number
        priceLteq:
          type: number
        priceIn:
          type: array
          items:
            type: number
        productionStatusIn:
          type: array
          items:
            type: string
        searchCont:
          type: string
        sizeIn:
          type: array
          items:
            type: string
        willItFit:
          type: string
          format: uuid
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/ModelSortEnum"
          - "$ref": "#/components/schemas/ModelSortEnum"
      additionalProperties: false
      title: ModelQuery
    RoadmapItemQuery:
      type: object
      properties:
        nameCont:
          type: string
        releasedEq:
          type: boolean
        updatedAtGteq:
          type: string
          format: date-time
        updatedAtLteq:
          type: string
          format: date-time
        lastUpdatedAtLteq:
          type: string
          format: date-time
        lastUpdatedAtGteq:
          type: string
          format: date-time
        activeEq:
          type: boolean
        lastUpdatedAtLt:
          type: string
          format: date-time
        rsiReleaseIdGteq:
          type: string
          format: date-time
        rsiCategoryIdIn:
          type: array
          items:
            type: string
        activeIn:
          type: array
          items:
            type: boolean
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/RoadmapItemSortEnum"
          - "$ref": "#/components/schemas/RoadmapItemSortEnum"
      additionalProperties: false
      title: RoadmapItemQuery
    SearchQuery:
      type: object
      properties:
        search:
          type: string
      additionalProperties: false
      title: SearchQuery
    ShopCommodityOrderQuery:
      type: object
      properties:
        name:
          type: string
          enum:
          - asc
          - desc
      additionalProperties: false
      title: ShopCommodityOrderQuery
    ShopCommodityQuery:
      type: object
      properties:
        priceGteq:
          type: number
        priceLteq:
          type: number
        name:
          type: array
          items:
            type: string
        manufacturerSlug:
          type: array
          items:
            type: string
        category:
          type: array
          items:
            type: string
        subCategory:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ShopCommodityQuery
    ShopQuery:
      type: object
      properties:
        searchCont:
          type: string
        nameCont:
          type: string
        commodityNameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
        modelIn:
          type: array
          items:
            type: string
        equipmentIn:
          type: array
          items:
            type: string
        componentIn:
          type: array
          items:
            type: string
        commodityIn:
          type: array
          items:
            type: string
        shopTypeIn:
          type: array
          items:
            type: string
        commodityCategoryIn:
          type: array
          items:
            type: string
        stationIn:
          type: array
          items:
            type: string
        celestialObjectIn:
          type: array
          items:
            type: string
        starsystemIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: ShopQuery
    StarsystemQuery:
      type: object
      properties:
        searchCont:
          type: string
        nameCont:
          type: string
        nameIn:
          type: array
          items:
            type: string
      additionalProperties: false
      title: StarsystemQuery
    StationQuery:
      type: object
      properties:
        searchCont:
          type: string
        nameCont:
          type: string
        slugEq:
          type: string
        celestialObjectEq:
          type: string
        cargoHubEq:
          type: boolean
        refineryEq:
          type: boolean
        withShops:
          type: boolean
        habsNotNull:
          type: boolean
        commodityItemType:
          type: string
        nameIn:
          type: array
          items:
            type: string
        celestialObjectIn:
          type: array
          items:
            type: string
        starsystemIn:
          type: array
          items:
            type: string
        stationTypeIn:
          type: array
          items:
            type: string
        shopsShopTypeIn:
          type: array
          items:
            type: string
        docksShipSizeIn:
          type: array
          items:
            type: string
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/StationSortEnum"
          - "$ref": "#/components/schemas/StationSortEnum"
      additionalProperties: false
      title: StationQuery
    TradeRouteQuery:
      type: object
      properties:
        cargoShip:
          type: string
        originStationIn:
          type: array
          items:
            type: string
        destinationStationIn:
          type: array
          items:
            type: string
        originCelestialObjectIn:
          type: array
          items:
            type: string
        destinationCelestialObjectIn:
          type: array
          items:
            type: string
        originStarsystemIn:
          type: array
          items:
            type: string
        destinationStarsystemIn:
          type: array
          items:
            type: string
        commodityIn:
          type: array
          items:
            type: string
        commodityTypeIn:
          type: array
          items:
            "$ref": "#/components/schemas/CommodityTypeEnum"
        commodityTypeNotIn:
          type: array
          items:
            "$ref": "#/components/schemas/CommodityTypeEnum"
        sorts:
          oneOf:
          - type: array
            items:
              "$ref": "#/components/schemas/TradeRouteSortEnum"
          - "$ref": "#/components/schemas/TradeRouteSortEnum"
      additionalProperties: false
      title: TradeRouteQuery
    RoadmapItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        release:
          type: string
        releaseDescription:
          type: string
        rsiReleaseId:
          type: integer
        description:
          type: string
        body:
          type: string
        rsiCategoryId:
          type: integer
        image:
          type: string
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
              nullable: true
          additionalProperties: false
        released:
          type: boolean
        committed:
          type: boolean
        active:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        model:
          "$ref": "#/components/schemas/Model"
        lastVersionChangedAt:
          type: string
          format: date-time
        lastVersionChangedAtLabel:
          type: string
        lastVersion:
          type: string
        storeImage:
          type: string
          deprecated: true
        storeImageLarge:
          type: string
          deprecated: true
        storeImageMedium:
          type: string
          deprecated: true
        storeImageSmall:
          type: string
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - release
      - rsiReleaseId
      - description
      - body
      - rsiCategoryId
      - image
      - media
      - released
      - committed
      - active
      - createdAt
      - updatedAt
      - lastVersionChangedAt
      - lastVersionChangedAtLabel
      title: RoadmapItem
    RoadmapWeek:
      type: object
      properties:
        value:
          type: integer
        query:
          type: object
          properties:
            lastUpdatedAtGteq:
              type: string
              format: date
            lastUpdatedAtLt:
              type: string
              format: date
        label:
          type: string
      additionalProperties: false
      required:
      - value
      - query
      - label
      title: RoadmapWeek
    SearchResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          "$ref": "#/components/schemas/SearchResultTypeEnum"
        item:
          oneOf:
          - "$ref": "#/components/schemas/Model"
          - "$ref": "#/components/schemas/Component"
          - "$ref": "#/components/schemas/Commodity"
          - "$ref": "#/components/schemas/Equipment"
          - "$ref": "#/components/schemas/ModelModule"
          - "$ref": "#/components/schemas/ModelPaint"
          - "$ref": "#/components/schemas/Shop"
          - "$ref": "#/components/schemas/Station"
          - "$ref": "#/components/schemas/CelestialObject"
          - "$ref": "#/components/schemas/Starsystem"
      additionalProperties: false
      required:
      - id
      - type
      - item
      title: SearchResult
    ShopCommodity:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        description:
          type: string
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        category:
          "$ref": "#/components/schemas/ShopCommodityCategoryEnum"
        subCategory:
          anyOf:
          - type: string
          - "$ref": "#/components/schemas/ComponentClassEnum"
          - "$ref": "#/components/schemas/EquipmentTypeEnum"
          - "$ref": "#/components/schemas/CommodityTypeEnum"
        subCategoryLabel:
          type: string
        prices:
          type: object
          properties:
            averageBuyPrice:
              type: number
            averageRentalPrice1Day:
              type: number
            averageRentalPrice30Days:
              type: number
            averageRentalPrice3Days:
              type: number
            averageRentalPrice7Days:
              type: number
            averageSellPrice:
              type: number
            buyPrice:
              type: number
            rentalPrice1Day:
              type: number
            rentalPrice30Days:
              type: number
            rentalPrice3Days:
              type: number
            rentalPrice7Days:
              type: number
            sellPrice:
              type: number
            pricePerUnit:
              type: boolean
          additionalProperties: false
          required:
          - pricePerUnit
        locationLabel:
          type: string
        confirmed:
          type: boolean
        commodityItemType:
          "$ref": "#/components/schemas/ShopCommodityItemTypeEnum"
        commodityItemId:
          type: string
          format: uuid
        shop:
          "$ref": "#/components/schemas/Shop"
        item:
          oneOf:
          - "$ref": "#/components/schemas/Model"
          - "$ref": "#/components/schemas/Component"
          - "$ref": "#/components/schemas/Commodity"
          - "$ref": "#/components/schemas/Equipment"
          - "$ref": "#/components/schemas/ModelModule"
          - "$ref": "#/components/schemas/ModelPaint"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - id
      - name
      - slug
      - prices
      - confirmed
      - commodityItemType
      - commodityItemId
      - shop
      - media
      - prices
      - createdAt
      - updatedAt
      title: ShopCommodity
    Shops:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Shop"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Shops
    Starsystem:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        danger:
          type: string
        description:
          type: string
        economy:
          type: string
        locationLabel:
          type: string
        mapX:
          type: string
        mapY:
          type: string
        population:
          type: string
        size:
          type: string
        status:
          type: string
        type:
          type: string
        media:
          type: object
          properties:
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        celestialObjects:
          type: array
          items:
            "$ref": "#/components/schemas/CelestialObject"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - name
      - slug
      - media
      - createdAt
      - updatedAt
      title: Starsystem
    Starsystems:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Starsystem"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Starsystems
    Station:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        cargoHub:
          type: boolean
        type:
          "$ref": "#/components/schemas/StationTypeEnum"
        typeLabel:
          type: string
        size:
          "$ref": "#/components/schemas/StationSizeEnum"
        sizeLabel:
          type: string
        classification:
          "$ref": "#/components/schemas/StationClassificationEnum"
        classificationLabel:
          type: string
        description:
          type: string
        dockCounts:
          type: array
          items:
            "$ref": "#/components/schemas/DockCount"
        habitable:
          type: boolean
        habitationCounts:
          type: array
          items:
            "$ref": "#/components/schemas/HabitationCount"
        hasImages:
          type: boolean
        locationLabel:
          type: string
        location:
          type: string
        media:
          type: object
          properties:
            backgroundImage:
              type: string
            storeImage:
              "$ref": "#/components/schemas/MediaImage"
          additionalProperties: false
        refinery:
          type: boolean
        shopListLabel:
          type: string
        celestialObject:
          "$ref": "#/components/schemas/CelestialObject"
        starsystem:
          "$ref": "#/components/schemas/Starsystem"
        shops:
          type: array
          items:
            "$ref": "#/components/schemas/Shop"
        docks:
          type: array
          items:
            "$ref": "#/components/schemas/Dock"
        habitations:
          type: array
          items:
            "$ref": "#/components/schemas/Habitation"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        backgroundImage:
          type: string
          format: uri
          deprecated: true
        storeImage:
          type: string
          format: uri
          deprecated: true
        storeImageLarge:
          type: string
          format: uri
          deprecated: true
        storeImageMedium:
          type: string
          format: uri
          deprecated: true
        storeImageSmall:
          type: string
          format: uri
          deprecated: true
      additionalProperties: false
      required:
      - name
      - slug
      - type
      - typeLabel
      - size
      - sizeLabel
      - classification
      - classificationLabel
      - habitable
      - hasImages
      - media
      - refinery
      - cargoHub
      - celestialObject
      - createdAt
      - updatedAt
      title: Station
    Stations:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Station"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Stations
    Stats:
      type: object
      properties:
        shipsCountYear:
          type: integer
        shipsCountTotal:
          type: integer
      additionalProperties: false
      required:
      - shipsCountYear
      - shipsCountTotal
      title: Stats
    TradeRoute:
      type: object
      properties:
        id:
          type: string
          format: uuid
        origin:
          "$ref": "#/components/schemas/TradeRouteLeg"
        destination:
          "$ref": "#/components/schemas/TradeRouteLeg"
        commodity:
          "$ref": "#/components/schemas/TradeRouteCommodity"
        buyPrice:
          type: number
        averageBuyPrice:
          type: number
        sellPrice:
          type: number
        averageSellPrice:
          type: number
        profitPerUnit:
          type: number
        averageProfitPerUnit:
          type: number
        profitPerUnitPercent:
          type: number
        averageProfitPerUnitPercent:
          type: number
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - createdAt
      - updatedAt
      title: TradeRoute
    TradeRouteCommodity:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        type:
          "$ref": "#/components/schemas/CommodityTypeEnum"
      additionalProperties: false
      required:
      - name
      - slug
      - type
      title: TradeRouteCommodity
    TradeRouteLeg:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        type:
          "$ref": "#/components/schemas/StationTypeEnum"
        locationLabel:
          type: string
        shop:
          type: string
        shopSlug:
          type: string
        planet:
          type: string
        planetSlug:
          type: string
        starsystem:
          type: string
        starsystemSlug:
          type: string
      additionalProperties: false
      required:
      - name
      - slug
      - locationLabel
      - shop
      - shopSlug
      - planet
      - planetSlug
      - starsystem
      - starsystemSlug
      title: TradeRouteLeg
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
        username:
          type: string
        email:
          type: string
        unconfirmedEmail:
          type: string
        avatar:
          type: string
        rsiHandle:
          type: string
        discord:
          type: string
        youtube:
          type: string
        twitch:
          type: string
        guilded:
          type: string
        homepage:
          type: string
        saleNotify:
          type: boolean
        publicHangar:
          type: boolean
        publicHangarUrl:
          type: string
        publicHangarLoaners:
          type: boolean
        publicWishlist:
          type: boolean
        publicWishlistUrl:
          type: string
        hideOwner:
          type: boolean
        twoFactorRequired:
          type: boolean
        twoFactorQrCodeUrl:
          type: string
        twoFactorProvisioningUrl:
          type: string
        hangarUpdatedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - username
      - email
      - saleNotify
      - publicHangar
      - publicHangarLoaners
      - publicWishlist
      - hideOwner
      - twoFactorRequired
      - createdAt
      - updatedAt
      title: User
    Vehicle:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        serial:
          type: string
        alternativeNames:
          type: array
          items:
            type: string
        boughtVia:
          "$ref": "#/components/schemas/BoughtViaEnum"
        boughtViaLabel:
          type: string
        flagship:
          type: boolean
        hangarGroupIds:
          type: array
          items:
            type: string
            format: uuid
        hangarGroups:
          type: array
          items:
            "$ref": "#/components/schemas/HangarGroup"
        loaner:
          type: boolean
        model:
          "$ref": "#/components/schemas/Model"
        modelModuleIds:
          type: array
          items:
            type: string
            format: uuid
        modelUpgradeIds:
          type: array
          items:
            type: string
            format: uuid
        modulePackage:
          "$ref": "#/components/schemas/ModelModulePackage"
        nameVisible:
          type: boolean
        paint:
          "$ref": "#/components/schemas/ModelPaint"
        public:
          type: boolean
        saleNotify:
          type: boolean
        upgrade:
          "$ref": "#/components/schemas/ModelUpgrade"
        wanted:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - model
      - wanted
      - boughtVia
      - loaner
      - flagship
      - public
      - nameVisible
      - saleNotify
      - alternativeNames
      - modelUpgradeIds
      - hangarGroupIds
      - hangarGroups
      - modelModuleIds
      - createdAt
      - updatedAt
      title: Vehicle
    VehicleCheckSerialResponse:
      type: object
      properties:
        serialTaken:
          type: boolean
      additionalProperties: false
      required:
      - serialTaken
      title: VehicleCheckSerialResponse
    VehicleExport:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        shipCode:
          type: string
        manufacturerName:
          type: string
        manufacturerCode:
          type: string
        paintSlug:
          type: string
        shipName:
          type: string
        shipSerial:
          type: string
        wanted:
          type: boolean
        flagship:
          type: boolean
        public:
          type: boolean
        saleNotify:
          type: boolean
        nameVisible:
          type: boolean
        groups:
          type: array
          items:
            type: string
        modules:
          type: array
          items:
            type: string
        upgrades:
          type: array
          items:
            type: string
      additionalProperties: false
      required:
      - name
      - slug
      - manufacturerName
      - wanted
      - flagship
      - public
      - saleNotify
      - nameVisible
      - groups
      - modules
      - upgrades
      title: VehicleExport
    VehiclePublic:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        slug:
          type: string
        serial:
          type: string
        hangarGroupIds:
          type: array
          items:
            type: string
            format: uuid
        hangarGroups:
          type: array
          items:
            "$ref": "#/components/schemas/HangarGroupPublic"
        loaner:
          type: boolean
        model:
          "$ref": "#/components/schemas/Model"
        username:
          type: string
          nullable: true
        userAvatar:
          type: string
          format: uri
          nullable: true
        userRsiHandle:
          type: string
          nullable: true
        modelModuleIds:
          type: array
          items:
            type: string
            format: uuid
        modelUpgradeIds:
          type: array
          items:
            type: string
            format: uuid
        modulePackage:
          "$ref": "#/components/schemas/ModelModulePackage"
        upgrade:
          "$ref": "#/components/schemas/ModelUpgrade"
        paint:
          "$ref": "#/components/schemas/ModelPaint"
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - model
      - loaner
      - modelUpgradeIds
      - hangarGroupIds
      - hangarGroups
      - modelModuleIds
      - createdAt
      - updatedAt
      title: VehiclePublic
    Video:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          "$ref": "#/components/schemas/VideoTypeEnum"
        url:
          type: string
          format: uri
        videoId:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
      - id
      - url
      - videoId
      - type
      - createdAt
      - updatedAt
      title: Video
    Videos:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            "$ref": "#/components/schemas/Video"
        meta:
          "$ref": "#/components/schemas/Meta"
      additionalProperties: false
      required:
      - items
      - meta
      title: Videos
  securitySchemes:
    SessionCookie:
      type: apiKey
      description: Session Cookie
      name: FLTYRD
      in: cookie
