Outdoorsy Rentals API

The Rentals API from Outdoorsy — 16 operation(s) for rentals.

OpenAPI Specification

outdoorsy-rentals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Outdoorsy Rentals API
  version: 0.0.1
  description: 'Operations tagged Rentals across 2 of this provider''s published API definitions: outdoorsy-openapi-original.json, outdoorsy-search-openapi-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /v0
tags:
- name: Rentals
paths:
  /rentals/{rental_id}/delivery:
    post:
      description: Get the delivery price for a rental for a given location
      operationId: getDeliveryPrice
      parameters:
      - x-go-name: RentalID
        name: rental_id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/deliveryPriceResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      tags:
      - Rentals
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryRequest'
        required: true
  /availability:
    get:
      tags:
      - Rentals
      summary: Returns list of available rentals for a given date range.
      operationId: listAvailability
      parameters:
      - x-go-name: RentalID
        name: rental_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: OwnerID
        name: owner_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: CampgroundID
        name: campground_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: From
        name: from
        in: query
        schema:
          type: string
      - x-go-name: To
        name: to
        in: query
        schema:
          type: string
      - x-go-name: OverrideProtections
        name: override_protections
        in: query
        schema:
          type: boolean
      - x-go-name: IncludeChildren
        name: include_children
        in: query
        schema:
          type: boolean
      - x-go-name: BookingID
        name: booking_id
        in: query
        schema:
          type: integer
          format: int64
      - description: 'IncludeMarketplaceOnlyBlocks, if true, includes unavailable bookings

          marked with outdoorsy_marketplace_only metadata. By default, these blocks

          are excluded. Set to true for Outdoorsy marketplace bookings (combo bookings).'
        name: IncludeMarketplaceOnlyBlocks
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/listAvailabilityResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
  /rentals:
    get:
      description: GET /rentals/{rental_id}/fleet-vehicle
      tags:
      - Rentals
      summary: 'Read many rentals

        GetFleetVehicle retrieves vehicle data from the Fleet service for a rental.

        This includes real-time information like odometer reading, connection status, and other attributes.

        The frontend can use this data to update mileage fields or display vehicle status.'
      operationId: listRentals
      parameters:
      - x-go-name: Near
        name: near
        in: query
        schema:
          type: string
      - x-go-name: Radius
        name: radius
        in: query
        schema:
          type: number
          format: double
      - x-go-name: From
        name: from
        in: query
        schema:
          type: string
      - x-go-name: To
        name: to
        in: query
        schema:
          type: string
      - x-go-name: CreatedFrom
        name: created_from
        in: query
        schema:
          type: string
      - x-go-name: CreatedTo
        name: created_to
        in: query
        schema:
          type: string
      - x-go-name: Sleeps
        name: sleeps
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SleepsAdults
        name: sleeps_adults
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SleepsKids
        name: sleeps_kids
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Seatbelts
        name: seatbelts
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Type
        name: type
        in: query
        schema:
          type: string
      - x-go-name: PriceMin
        name: price_min
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: PriceMax
        name: price_max
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: YearMin
        name: year_min
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: YearMax
        name: year_max
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Order
        name: order
        in: query
        schema:
          type: string
      - x-go-name: OwnerID
        name: owner_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Limit
        name: limit
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Unlimited
        name: unlimited
        in: query
        schema:
          type: string
      - x-go-name: Offset
        name: offset
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Status
        name: status
        in: query
        schema:
          type: string
      - x-go-name: BoundsNE
        name: bounds_NE
        in: query
        schema:
          type: string
      - x-go-name: BoundsSW
        name: bounds_SW
        in: query
        schema:
          type: string
      - x-go-name: InsuranceState
        name: insurance_state
        in: query
        schema:
          type: string
      - x-go-name: Exclude
        name: exclude
        in: query
        schema:
          type: string
      - x-go-name: LocationID
        name: location_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: LocationIDs
        name: location_ids
        in: query
        schema:
          type: string
      - x-go-name: Hidden
        name: hidden
        in: query
        schema:
          type: string
      - x-go-name: IncludeVariableFees
        name: include_variable_fees
        in: query
        schema:
          type: string
      - x-go-name: IDs
        name: ids
        in: query
        schema:
          type: string
      - x-go-name: Address
        name: address
        in: query
        schema:
          type: string
      - x-go-name: ParentID
        name: parent_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: IncludeChildren
        name: include_children
        in: query
        schema:
          type: string
      - x-go-name: Locale
        name: locale
        in: query
        schema:
          type: string
      - x-go-name: PresentmentCurrency
        name: presentment_currency
        in: query
        schema:
          type: string
      - x-go-name: RentalCategory
        name: rental_category
        in: query
        schema:
          type: string
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      responses: {}
    post:
      description: Create rental
      tags:
      - Rentals
      operationId: createRentalRequest
      parameters:
      - $ref: '#/components/schemas/RentalImages'
        x-go-name: Images
        name: images
        in: query
      - x-go-name: ID
        name: id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Name
        name: name
        in: query
        schema:
          type: string
      - x-go-name: VehicleTitle
        name: vehicle_title
        in: query
        schema:
          type: string
      - x-go-name: Type
        name: type
        in: query
        schema:
          type: string
      - x-go-name: Description
        name: description
        in: query
        schema:
          type: string
      - x-go-name: Sleeps
        name: sleeps
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Seatbelts
        name: seatbelts
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: MinimumRenterAge
        name: minimum_renter_age
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SleepsAdults
        name: sleeps_adults
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SleepsKids
        name: sleeps_kids
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Summary
        name: summary
        in: query
        schema:
          type: string
      - $ref: '#/components/schemas/DBInterfaceMap'
        x-go-name: Features
        name: features
        in: query
      - $ref: '#/components/schemas/Price'
        x-go-name: Price
        name: price
        in: query
      - $ref: '#/components/schemas/activePrice'
        x-go-name: ActivePrice
        name: active_price
        in: query
      - $ref: '#/components/schemas/activeOptions'
        x-go-name: ActiveOptions
        name: active_options
        in: query
      - $ref: '#/components/schemas/Home'
        x-go-name: Home
        name: home
        in: query
      - $ref: '#/components/schemas/Vehicle'
        x-go-name: Vehicle
        name: vehicle
        in: query
      - x-go-name: Published
        name: published
        in: query
        schema:
          type: boolean
      - x-go-name: PublishedFieldErrors
        name: publish_field_errors
        in: query
        schema:
          type: array
          items:
            type: string
      - x-go-name: UnpublishReason
        name: unpublish_reason
        in: query
        schema:
          type: string
      - x-go-name: LastUnpublishDate
        x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        name: last_unpublish_date
        in: query
        schema:
          type: string
      - x-go-name: GroupOnMap
        name: group_on_map
        in: query
        schema:
          type: boolean
      - x-go-name: PrimaryImageURL
        name: primary_image_url
        in: query
        schema:
          type: string
      - x-go-name: PrimaryImageID
        name: primary_image_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: InteriorPrimaryImageURL
        name: interior_primary_image_url
        in: query
        schema:
          type: string
      - x-go-name: InteriorPrimaryImageID
        name: interior_primary_image_id
        in: query
        schema:
          type: integer
          format: int64
      - $ref: '#/components/schemas/DBMSISlice'
        x-go-name: CheckoutQuestions
        name: checkout_questions
        in: query
      - x-go-name: HasCheckoutQuestions
        name: has_checkout_questions
        in: query
        schema:
          type: boolean
      - x-go-name: Position
        name: position
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: External
        name: external
        in: query
        schema:
          type: boolean
      - $ref: '#/components/schemas/DBInterfaceMap'
        x-go-name: Settings
        name: settings
        in: query
      - $ref: '#/components/schemas/DBInterfaceMap'
        x-go-name: ListingSteps
        name: listing_steps
        in: query
      - x-go-name: DescriptionIncluded
        name: description_included
        in: query
        schema:
          type: string
      - x-go-name: DescriptionRecommendations
        name: description_recommendations
        in: query
        schema:
          type: string
      - x-go-name: DescriptionOther
        name: description_other
        in: query
        schema:
          type: string
      - $ref: '#/components/schemas/PrepFee'
        x-go-name: PrepFee
        name: prep_fee
        in: query
      - $ref: '#/components/schemas/UnitLocale'
        x-go-name: Locale
        name: locale
        in: query
      - $ref: '#/components/schemas/Plan'
        x-go-name: InsurancePlan
        name: insurance_plan_id
        in: query
      - x-go-name: WaivedInsuranceText
        name: waived_insurance_text
        in: query
        schema:
          type: string
      - x-go-name: CustomInsuranceText
        name: custom_insurance_text
        in: query
        schema:
          type: string
      - x-go-name: InsuranceCoverage
        name: insurance_coverage
        in: query
        schema:
          type: string
      - x-go-name: RequireRoadside
        name: require_roadside
        in: query
        schema:
          type: boolean
      - x-go-name: CurrentLocationID
        name: current_location_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: MileageUsageItem
        name: mileage_usage_item_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: GeneratorUsageItem
        name: generator_usage_item_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: DeliveryUsageItem
        name: delivery_usage_item_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: CancelPolicy
        description: 'configurable rental options. must be stored as a pointer so we can know

          if it is unset in the database or not and fall back to the user level'
        name: cancel_policy
        in: query
        schema:
          type: string
      - x-go-name: CancelPolicyComboBookings
        name: cancel_policy_combo_bookings
        in: query
        schema:
          type: string
      - $ref: '#/components/schemas/NullFloat64'
        x-go-name: DepositPercentage
        name: deposit_percentage
        in: query
      - x-go-name: MinimumDeposit
        name: minimum_deposit
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: MinimumDays
        name: minimum_days
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: InstantBook
        name: instant_book
        in: query
        schema:
          type: boolean
      - x-go-name: InstantBookLeeway
        name: instant_book_leeway
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: InstantBookType
        name: instant_book_type
        in: query
        schema:
          type: string
      - x-go-name: RequestLessThanMinimumDays
        name: request_less_than_minimum_days
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: InsuranceRenterAdjustable
        name: insurance_renter_adjustable
        in: query
        schema:
          type: boolean
      - x-go-name: TurnaroundDaysAfter
        name: turnaround_days_after
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: BookingLeewayDays
        name: booking_leeway_days
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: RequireInsurance
        name: require_insurance
        in: query
        schema:
          type: boolean
      - x-go-name: SmartPricingEnabled
        name: smart_pricing_enabled
        in: query
        schema:
          type: boolean
      - x-go-name: SmartPricingMode
        name: smart_pricing_mode
        in: query
        schema:
          type: string
      - x-go-name: SmartPricingMin
        name: smart_pricing_min
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: SmartPricingMax
        name: smart_pricing_max
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: NYInsuranceWarning
        name: ny_insurance_warning
        in: query
        schema:
          type: boolean
      - x-go-name: OneWayRentalRequests
        name: one_way_rental_requests
        in: query
        schema:
          type: boolean
      - x-go-name: OneWayRentalMaximumRadius
        name: one_way_rental_maximum_radius
        in: query
        schema:
          type: integer
          format: int64
      - $ref: '#/components/schemas/TaxRate'
        x-go-name: TaxRate
        name: tax_rate_id
        in: query
      - x-go-name: TaxRateIDs
        name: tax_rate_ids
        in: query
        schema:
          type: array
          items:
            type: integer
            format: int64
      - x-go-name: ExemptRentalSalesTax
        name: exempt_rental_sales_tax
        in: query
        schema:
          type: boolean
      - $ref: '#/components/schemas/RentalConsignment'
        x-go-name: Consignment
        name: consignment
        in: query
      - x-go-name: Items
        name: items
        in: query
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RentalItem'
      - x-go-name: InstantBookBanned
        description: Rental-level instant book ban (stored in metadata, combo bookings only)
        name: instant_book_banned
        in: query
        schema:
          type: boolean
      - x-go-name: InstantBookBanDate
        name: instant_book_ban_date
        in: query
        schema:
          type: string
      - x-go-name: OriginalURL
        description: Importing
        name: original_url
        in: query
        schema:
          type: string
      - x-go-name: InternalNotes
        name: internal_notes
        in: query
        schema:
          type: string
      - x-go-name: Created
        x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        description: Admin, owner Fields
        name: created
        in: query
        schema:
          type: string
      - x-go-name: LastPublished
        x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        name: last_published
        in: query
        schema:
          type: string
      - x-go-name: FirstPublished
        x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        name: first_published
        in: query
        schema:
          type: string
      - x-go-name: SnoozeExpirationDate
        name: snooze_expiration_date
        in: query
        schema:
          type: string
      - x-go-name: Updated
        x-go-type: github.com/outdoorsy/api/clocks.RfcTime
        name: updated
        in: query
        schema:
          type: string
      - x-go-name: Sort
        description: Admin Fields
        name: sort
        in: query
        schema:
          type: number
          format: double
      - $ref: '#/components/schemas/DBInterfaceMap'
        x-go-name: SortMetrics
        name: sort_metrics
        in: query
      - x-go-name: Hidden
        name: hidden
        in: query
        schema:
          type: boolean
      - x-go-name: HiddenReason
        name: hidden_reason
        in: query
        schema:
          type: string
      - x-go-name: ImportID
        name: import_id
        in: query
        schema:
          type: string
      - x-go-name: InternalID
        name: internal_id
        in: query
        schema:
          type: string
      - x-go-name: RoamlyPolicyNumber
        name: roamly_policy_number
        in: query
        schema:
          type: string
      - x-go-name: Inactive
        name: inactive
        in: query
        schema:
          type: boolean
      - x-go-name: ExternalSiteURL
        name: external_site_url
        in: query
        schema:
          type: string
      - x-go-name: AutoInsuranceType
        name: auto_insurance_type
        in: query
        schema:
          type: string
      - $ref: '#/components/schemas/DistributedRatings'
        x-go-name: DistributedRatings
        name: distributed_ratings
        in: query
      - $ref: '#/components/schemas/AverageRatings'
        x-go-name: AverageRatings
        name: average_ratings
        in: query
      - $ref: '#/components/schemas/AverageReviews'
        x-go-name: AverageReviews
        name: average_reviews
        in: query
      - $ref: '#/components/schemas/ReviewScores'
        x-go-name: ReviewScores
        name: review_scores
        in: query
      - $ref: '#/components/schemas/RentalFullReview'
        x-go-name: LatestReview
        description: special fields populated before response, but not stored in DB
        name: latest_review
        in: query
      - $ref: '#/components/schemas/VinCheck'
        x-go-name: VinCheck
        name: vin_check
        in: query
      - x-go-name: HasCompletedLYRV
        name: has_completed_lyrv
        in: query
        schema:
          type: boolean
      - x-go-name: TuroVehicleID
        name: turo_vehicle_id
        in: query
        schema:
          type: string
      - x-go-name: TollspotID
        name: tollspot_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: RejectedImagesCount
        description: holds the count of images with status rejected and ignore rejected false
        name: rejected_images_count
        in: query
        schema:
          type: integer
          format: int64
      - $ref: '#/components/schemas/IMap'
        x-go-name: Metadata
        name: metadata
        in: query
      - x-go-name: CanManageTaxRates
        description: used by dashboard to disable tax editing
        name: can_manage_tax_rates
        in: query
        schema:
          type: boolean
      - x-go-name: UseSystemTaxRates
        description: used by rental listing page to display system tax notice
        name: use_system_tax_rates
        in: query
        schema:
          type: boolean
      - x-go-name: IsEligibleForSystemTaxRates
        description: For wheelbase so we can show when a rental will use system tax rates
        name: eligible_for_system_tax_rates
        in: query
        schema:
          type: boolean
      - x-go-name: IsEligibleForCustomTaxRates
        description: We allow custom taxes for Quebec which has also system tax rates
        name: eligible_for_custom_tax_rates
        in: query
        schema:
          type: boolean
      - x-go-name: ParentID
        description: grouping functionality
        name: parent_id
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: ImagesVerified
        description: moderation
        name: images_verified
        in: query
        schema:
          type: boolean
      - x-go-name: ImagesVerifiedBy
        name: images_verified_by
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: PhotoScore
        name: photo_score
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: ReviewStatus
        name: review_status
        in: query
        schema:
          type: string
      - x-go-name: ReviewNotes
        name: review_notes
        in: query
        schema:
          type: string
      - x-go-name: Tags
        name: tags
        in: query
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TagRental'
      - x-go-name: FreeFormTyped
        description: free form typed flag
        name: free_form_typed
        in: query
        schema:
          type: boolean
      - $ref: '#/components/schemas/StayDetails'
        x-go-name: Stay
        name: stay
        in: query
      - $ref: '#/components/schemas/CampsiteCategory'
        x-go-name: CampsiteCategory
        name: campsite_category
        in: query
      - x-go-name: RentalCategory
        name: rental_category
        in: query
        schema:
          type: string
      - x-go-name: CheckIn
        name: check_in
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: CheckOut
        name: check_out
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: BypassNewYorkRegulations
        description: Admins can mark a vehicle to bypass New York regulations check
        name: bypass_new_york_regulations
        in: query
        schema:
          type: boolean
      - $ref: '#/components/schemas/PetFee'
        x-go-name: PetFee
        name: pet_fee
        in: query
      - x-go-name: ODStaysOptIn
        name: od_stays_opt_in
        in: query
        schema:
          type: boolean
      - x-go-name: ODStaysOptInEligible
        name: od_stays_opt_in_eligible
        in: query
        schema:
          type: boolean
      - x-go-name: ODStaysOptInMissingRequirements
        name: od_stays_opt_in_missing_requirements
        in: query
        schema:
          type: array
          items:
            type: string
      - x-go-name: SDWaiverEnabled
        name: sd_waiver_enabled
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/createRentalResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
  /rentals/vehicle-types:
    get:
      description: Read available vehicle types and return them in 2 arrays - towables and drivables
      tags:
      - Rentals
      operationId: listVehicleTypes
      parameters:
      - $ref: '#/components/schemas/RentalTypesOptions'
        name: Body
        in: query
      responses:
        '200':
          $ref: '#/components/responses/getVehicleTypesResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
  /rentals/{id}:
    get:
      description: Read one rental
      tags:
      - Rentals
      operationId: getRentalById
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/getRentalResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
    delete:
      description: Delete rental
      tags:
      - Rentals
      operationId: deleteRentalById
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/noContentResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
    patch:
      description: Update rental
      tags:
      - Rentals
      operationId: updateRentalRequest
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/updateRentalResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Rental'
  /rentals/{id}/complete-consignment:
    post:
      tags:
      - Rentals
      summary: Create consignment for a rental.
      operationId: consignmentCompleteResponse
      responses:
        '200':
          $ref: '#/components/responses/consignmentCompleteResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsignmentRequest'
  /rentals/{id}/duplicate:
    post:
      description: Duplicate a rental
      tags:
      - Rentals
      operationId: duplicateRental
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          $ref: '#/components/responses/createRentalResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Rental'
  /rentals/{id}/price:
    patch:
      description: Update Rental Price
      tags:
      - Rentals
      operationId: updateRentalPriceRequest
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/noContentResponse'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RentalPriceRequest'
  /rentals/{id}/remove:
    post:
      description: Remove rental
      tags:
      - Rentals
      operationId: rentalRemoveRequest
      parameters:
      - x-go-name: ID
        name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          $ref: '#/components/responses/noContentResponse'
        '400':
          $ref: '#/components/responses/badRequestError'
        '401':
          $ref: '#/components/responses/unauthorizedError'
        '404':
          $ref: '#/components/responses/notFoundError'
        default:
          $ref: '#/components/responses/genericError'
      security:
      - Bearer:
        - '[]'
      - API-Key:
        - '[]'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RentalRemoveRequest'
  /rentals/{id}/vin:
    patch:

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