# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-10-09 23:01:18 Version: 10.20 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk #MakePartial: True #MakeVirtual: True #MakeInternal: False #MakeDataContractsExtensible: False #AddReturnMarker: True #AddDescriptionAsComments: True #AddDataContractAttributes: False #AddIndexesToDataMembers: False #AddGeneratedCodeAttributes: False #AddResponseStatus: False #AddImplicitVersion: #InitializeCollections: False #ExportValueTypes: False IncludeTypes: VehicleByCommissionNumberRequest.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module IReturn def response_type() = T def get_type_name() = 'IReturn' end module IGet end class VehicleDataBase include ServiceStack::DTO # @return [String] attr_accessor :vin # @return [String] attr_accessor :description # @return [String] attr_accessor :model # @return [String] attr_accessor :otr # @return [String] attr_accessor :retail_price_ex_v_a_t # @return [String] attr_accessor :actual_price # @return [String] attr_accessor :p11_d # @return [String] attr_accessor :fuel_type # @return [String] attr_accessor :transmission # @return [String] attr_accessor :transmission_type # @return [String] attr_accessor :colour # @return [String] attr_accessor :colour_code # @return [String] attr_accessor :colour_description # @return [String] attr_accessor :commission_number # @return [TrueClass] attr_accessor :offer_available # @return [Integer] attr_accessor :campaign_discount_offer_total # @return [Integer] attr_accessor :campaign_discount_offer_total_current # @return [Integer] attr_accessor :campaign_discount_offer_total_pending # @return [Integer] attr_accessor :campaign_service_offer_total # @return [Integer] attr_accessor :campaign_service_offer_total_current # @return [Integer] attr_accessor :campaign_service_offer_total_pending # @return [Integer] attr_accessor :campaign_custom_offer_total # @return [Integer] attr_accessor :campaign_personalised_offer_total_current # @return [Integer] attr_accessor :campaign_personalised_offer_total_pending # @return [Integer] attr_accessor :campaign_personalised_offer_total # @return [Integer] attr_accessor :campaign_custom_offer_total_current # @return [Integer] attr_accessor :campaign_custom_offer_total_pending # @return [Integer] attr_accessor :campaign_other_offer_total # @return [Integer] attr_accessor :campaign_other_offer_total_current # @return [Integer] attr_accessor :campaign_other_offer_total_pending # @return [Integer] attr_accessor :retailer_discount_offer_total # @return [Integer] attr_accessor :retailer_discount_offer_total_current # @return [Integer] attr_accessor :retailer_discount_offer_total_pending # @return [Integer] attr_accessor :retailer_service_offer_total # @return [Integer] attr_accessor :retailer_service_offer_total_current # @return [Integer] attr_accessor :retailer_service_offer_total_pending # @return [Integer] attr_accessor :retailer_custom_offer_total # @return [Integer] attr_accessor :retailer_custom_offer_total_current # @return [Integer] attr_accessor :retailer_custom_offer_total_pending # @return [Integer] attr_accessor :retailer_warranty_offer_total # @return [Integer] attr_accessor :retailer_warranty_offer_total_current # @return [Integer] attr_accessor :retailer_warranty_offer_total_pending # @return [Integer] attr_accessor :retailer_offer_total # @return [Integer] attr_accessor :retailer_offer_total_current # @return [Integer] attr_accessor :retailer_offer_total_pending # @return [Integer] attr_accessor :campaign_offer_total # @return [Integer] attr_accessor :campaign_offer_total_current # @return [Integer] attr_accessor :campaign_offer_total_pending # @return [Integer] attr_accessor :campaign_and_offer_total # @return [Integer] attr_accessor :campaign_and_offer_total_current # @return [Integer] attr_accessor :campaign_and_offer_total_pending # @return [Integer] attr_accessor :offer_total # @return [Integer] attr_accessor :offer_total_current # @return [Integer] attr_accessor :offer_total_pending # @return [String] attr_accessor :creation # @return [String] attr_accessor :modified # @return [Integer] attr_accessor :electric_range # @return [Integer] attr_accessor :electric_consumption # @return [DateTime] attr_accessor :port_arrival_date # @return [Integer] attr_accessor :days_since_port_arrival # @return [BigDecimal] attr_accessor :retail_price_inc_v_a_t # @return [String] attr_accessor :body_style # @return [String] attr_accessor :upholstery # @return [String] attr_accessor :upholstery_code # @return [String] attr_accessor :upholstery_type # @return [List] attr_accessor :package_names # @return [String] attr_accessor :line # @return [String] attr_accessor :mapped_line # @return [BigDecimal] attr_accessor :current_retailer_offer_price # @return [String] attr_accessor :retail_price # @return [TrueClass] attr_accessor :vat_qualifying # @return [Integer] attr_accessor :retailer_id # @return [String] attr_accessor :gssn_id # @return [TrueClass] attr_accessor :no_image # @return [String] attr_accessor :image_url # @return [TrueClass] attr_accessor :is_available_online # @return [TrueClass] attr_accessor :is_back_ordered # @return [String] attr_accessor :creation_date # @return [String] attr_accessor :maintenance_date # @return [String] attr_accessor :registration_number # @return [DateTime] attr_accessor :registration_date # @return [Integer] attr_accessor :mileage # @return [DateTime] attr_accessor :trade_in_date # @return [String] attr_accessor :source # @return [String] attr_accessor :vehicle_type # @return [String] attr_accessor :offer_amount # @return [String] attr_accessor :offer_expiry # @return [Array] attr_accessor :active_offers # @return [Integer] attr_accessor :campaign_messages_total # @return [TrueClass] attr_accessor :under_offer # @return [TrueClass] attr_accessor :is_display_stock # @return [String] attr_accessor :display_retailer # @return [String] attr_accessor :display_retailer_gssn_id # @return [String] attr_accessor :location # @return [String] attr_accessor :account # @return [String] attr_accessor :account_type # @return [String] attr_accessor :usage_code # @return [String] attr_accessor :bm7_n_s_t # @return [TrueClass] attr_accessor :is_sellable # @return [TrueClass] attr_accessor :secured # @return [TrueClass] attr_accessor :specialist # @return [TrueClass] attr_accessor :is_motability_retailer # @return [String] attr_accessor :upholstery_description # @return [TrueClass] attr_accessor :in_back_order_account # @return [String] attr_accessor :full_model_year_code # @return [String] attr_accessor :baumuster # @return [TrueClass] attr_accessor :is_motability # @return [BigDecimal] attr_accessor :pip_advance_rental_gross # @return [BigDecimal] attr_accessor :wpms_advance_rental_gross # @return [List] attr_accessor :isp_vehicle_customer_descriptions # @return [TrueClass] attr_accessor :eligible_for_ma_transfer # @return [String] attr_accessor :confirmed_production_date # @return [String] attr_accessor :forecasted_arrival_date def self.properties { vin: { name: 'vin' }, description: { name: 'description' }, model: { name: 'model' }, otr: { name: 'otr' }, retail_price_ex_v_a_t: { name: 'retailPriceExVAT' }, actual_price: { name: 'actualPrice' }, p11_d: { name: 'p11D' }, fuel_type: { name: 'fuelType' }, transmission: { name: 'transmission' }, transmission_type: { name: 'transmissionType' }, colour: { name: 'colour' }, colour_code: { name: 'colourCode' }, colour_description: { name: 'colourDescription' }, commission_number: { name: 'commissionNumber' }, offer_available: { name: 'offerAvailable' }, campaign_discount_offer_total: { name: 'campaignDiscountOfferTotal' }, campaign_discount_offer_total_current: { name: 'campaignDiscountOfferTotalCurrent' }, campaign_discount_offer_total_pending: { name: 'campaignDiscountOfferTotalPending' }, campaign_service_offer_total: { name: 'campaignServiceOfferTotal' }, campaign_service_offer_total_current: { name: 'campaignServiceOfferTotalCurrent' }, campaign_service_offer_total_pending: { name: 'campaignServiceOfferTotalPending' }, campaign_custom_offer_total: { name: 'campaignCustomOfferTotal' }, campaign_personalised_offer_total_current: { name: 'campaignPersonalisedOfferTotalCurrent' }, campaign_personalised_offer_total_pending: { name: 'campaignPersonalisedOfferTotalPending' }, campaign_personalised_offer_total: { name: 'campaignPersonalisedOfferTotal' }, campaign_custom_offer_total_current: { name: 'campaignCustomOfferTotalCurrent' }, campaign_custom_offer_total_pending: { name: 'campaignCustomOfferTotalPending' }, campaign_other_offer_total: { name: 'campaignOtherOfferTotal' }, campaign_other_offer_total_current: { name: 'campaignOtherOfferTotalCurrent' }, campaign_other_offer_total_pending: { name: 'campaignOtherOfferTotalPending' }, retailer_discount_offer_total: { name: 'retailerDiscountOfferTotal' }, retailer_discount_offer_total_current: { name: 'retailerDiscountOfferTotalCurrent' }, retailer_discount_offer_total_pending: { name: 'retailerDiscountOfferTotalPending' }, retailer_service_offer_total: { name: 'retailerServiceOfferTotal' }, retailer_service_offer_total_current: { name: 'retailerServiceOfferTotalCurrent' }, retailer_service_offer_total_pending: { name: 'retailerServiceOfferTotalPending' }, retailer_custom_offer_total: { name: 'retailerCustomOfferTotal' }, retailer_custom_offer_total_current: { name: 'retailerCustomOfferTotalCurrent' }, retailer_custom_offer_total_pending: { name: 'retailerCustomOfferTotalPending' }, retailer_warranty_offer_total: { name: 'retailerWarrantyOfferTotal' }, retailer_warranty_offer_total_current: { name: 'retailerWarrantyOfferTotalCurrent' }, retailer_warranty_offer_total_pending: { name: 'retailerWarrantyOfferTotalPending' }, retailer_offer_total: { name: 'retailerOfferTotal' }, retailer_offer_total_current: { name: 'retailerOfferTotalCurrent' }, retailer_offer_total_pending: { name: 'retailerOfferTotalPending' }, campaign_offer_total: { name: 'campaignOfferTotal' }, campaign_offer_total_current: { name: 'campaignOfferTotalCurrent' }, campaign_offer_total_pending: { name: 'campaignOfferTotalPending' }, campaign_and_offer_total: { name: 'campaignAndOfferTotal' }, campaign_and_offer_total_current: { name: 'campaignAndOfferTotalCurrent' }, campaign_and_offer_total_pending: { name: 'campaignAndOfferTotalPending' }, offer_total: { name: 'offerTotal' }, offer_total_current: { name: 'offerTotalCurrent' }, offer_total_pending: { name: 'offerTotalPending' }, creation: { name: 'creation' }, modified: { name: 'modified' }, electric_range: { name: 'electricRange' }, electric_consumption: { name: 'electricConsumption' }, port_arrival_date: { name: 'portArrivalDate', type: DateTime }, days_since_port_arrival: { name: 'daysSincePortArrival' }, retail_price_inc_v_a_t: { name: 'retailPriceIncVAT' }, body_style: { name: 'bodyStyle' }, upholstery: { name: 'upholstery' }, upholstery_code: { name: 'upholsteryCode' }, upholstery_type: { name: 'upholsteryType' }, package_names: { name: 'packageNames' }, line: { name: 'line' }, mapped_line: { name: 'mappedLine' }, current_retailer_offer_price: { name: 'currentRetailerOfferPrice' }, retail_price: { name: 'retailPrice' }, vat_qualifying: { name: 'vatQualifying' }, retailer_id: { name: 'retailerId' }, gssn_id: { name: 'gssnId' }, no_image: { name: 'noImage' }, image_url: { name: 'imageUrl' }, is_available_online: { name: 'isAvailableOnline' }, is_back_ordered: { name: 'isBackOrdered' }, creation_date: { name: 'creationDate' }, maintenance_date: { name: 'maintenanceDate' }, registration_number: { name: 'registrationNumber' }, registration_date: { name: 'registrationDate', type: DateTime }, mileage: { name: 'mileage' }, trade_in_date: { name: 'tradeInDate', type: DateTime }, source: { name: 'source' }, vehicle_type: { name: 'vehicleType' }, offer_amount: { name: 'offerAmount' }, offer_expiry: { name: 'offerExpiry' }, active_offers: { name: 'activeOffers' }, campaign_messages_total: { name: 'campaignMessagesTotal' }, under_offer: { name: 'underOffer' }, is_display_stock: { name: 'isDisplayStock' }, display_retailer: { name: 'displayRetailer' }, display_retailer_gssn_id: { name: 'displayRetailerGssnId' }, location: { name: 'location' }, account: { name: 'account' }, account_type: { name: 'accountType' }, usage_code: { name: 'usageCode' }, bm7_n_s_t: { name: 'bm7NST' }, is_sellable: { name: 'isSellable' }, secured: { name: 'secured' }, specialist: { name: 'specialist' }, is_motability_retailer: { name: 'isMotabilityRetailer' }, upholstery_description: { name: 'upholsteryDescription' }, in_back_order_account: { name: 'inBackOrderAccount' }, full_model_year_code: { name: 'fullModelYearCode' }, baumuster: { name: 'baumuster' }, is_motability: { name: 'isMotability' }, pip_advance_rental_gross: { name: 'pipAdvanceRentalGross' }, wpms_advance_rental_gross: { name: 'wpmsAdvanceRentalGross' }, isp_vehicle_customer_descriptions: { name: 'ispVehicleCustomerDescriptions' }, eligible_for_ma_transfer: { name: 'eligibleForMaTransfer' }, confirmed_production_date: { name: 'confirmedProductionDate' }, forecasted_arrival_date: { name: 'forecastedArrivalDate' }, } end end class VehicleData < VehicleDataBase # @return [String] attr_accessor :engine def self.properties { engine: { name: 'engine' }, } end end class Equipment include ServiceStack::DTO # @return [Integer] attr_accessor :id # @return [String] attr_accessor :code # @return [String] attr_accessor :description def self.properties { id: { name: 'id' }, code: { name: 'code' }, description: { name: 'description' }, } end end class VehicleIdentifierData < VehicleData # @return [String] attr_accessor :retailer # @return [TrueClass] attr_accessor :has_motability_error # @return [List] attr_accessor :equipment # @return [String] attr_accessor :vehicle_class def self.properties { retailer: { name: 'retailer' }, has_motability_error: { name: 'hasMotabilityError' }, equipment: { name: 'equipment', type: [Equipment] }, vehicle_class: { name: 'vehicleClass' }, } end end class OfferVehicle include ServiceStack::DTO # @return [String] attr_accessor :retail_price_ex_v_a_t def self.properties { retail_price_ex_v_a_t: { name: 'retailPriceExVAT' }, } end end class Offer include ServiceStack::DTO # @return [Integer] attr_accessor :id # @return [String] attr_accessor :offer_type # @return [String] attr_accessor :campaign_name # @return [String] attr_accessor :from # @return [String] attr_accessor :to # @return [String] attr_accessor :value # @return [BigDecimal] attr_accessor :net # @return [OfferVehicle] attr_accessor :offer_vehicle # @return [TrueClass] attr_accessor :pending # @return [String] attr_accessor :document_url # @return [TrueClass] attr_accessor :personalised # @return [TrueClass] attr_accessor :is_personalised_monetary_offer # @return [TrueClass] attr_accessor :campaign_v_i_p_discount # @return [BigDecimal] attr_accessor :offer_value_net # @return [TrueClass] attr_accessor :campaign_government_grant def self.properties { id: { name: 'id' }, offer_type: { name: 'offerType' }, campaign_name: { name: 'campaignName' }, from: { name: 'from' }, to: { name: 'to' }, value: { name: 'value' }, net: { name: 'net' }, offer_vehicle: { name: 'offerVehicle', type: OfferVehicle }, pending: { name: 'pending' }, document_url: { name: 'documentUrl' }, personalised: { name: 'personalised' }, is_personalised_monetary_offer: { name: 'isPersonalisedMonetaryOffer' }, campaign_v_i_p_discount: { name: 'campaignVIPDiscount' }, offer_value_net: { name: 'offerValueNet' }, campaign_government_grant: { name: 'campaignGovernmentGrant' }, } end end class PersonalisedOffer < Offer # @return [String] attr_accessor :category # @return [String] attr_accessor :description # @return [String] attr_accessor :reference # @return [Integer] attr_accessor :campaign_id # @return [TrueClass] attr_accessor :certificate_required # @return [TrueClass] attr_accessor :auto_select def self.properties { category: { name: 'category' }, description: { name: 'description' }, reference: { name: 'reference' }, campaign_id: { name: 'campaignId' }, certificate_required: { name: 'certificateRequired' }, auto_select: { name: 'autoSelect' }, } end end class Message include ServiceStack::DTO # @return [Integer] attr_accessor :id # @return [String] attr_accessor :vin # @return [Integer] attr_accessor :campaign_id # @return [String] attr_accessor :value # @return [String] attr_accessor :campaign_description # @return [String] attr_accessor :from # @return [String] attr_accessor :to # @return [String] attr_accessor :document_url def self.properties { id: { name: 'id' }, vin: { name: 'vin' }, campaign_id: { name: 'campaignId' }, value: { name: 'value' }, campaign_description: { name: 'campaignDescription' }, from: { name: 'from' }, to: { name: 'to' }, document_url: { name: 'documentUrl' }, } end end class OfferHistory include ServiceStack::DTO # @return [Integer] attr_accessor :id # @return [String] attr_accessor :audit_type # @return [String] attr_accessor :offer_type # @return [String] attr_accessor :source # @return [String] attr_accessor :from # @return [String] attr_accessor :to # @return [TrueClass] attr_accessor :personalised # @return [String] attr_accessor :value # @return [String] attr_accessor :net # @return [String] attr_accessor :vat # @return [String] attr_accessor :description # @return [String] attr_accessor :vin # @return [String] attr_accessor :gssn # @return [String] attr_accessor :creation # @return [String] attr_accessor :modified # @return [String] attr_accessor :user_id # @return [Integer] attr_accessor :user # @return [Integer] attr_accessor :offer_id # @return [String] attr_accessor :commission_number # @return [Integer] attr_accessor :campaign_id # @return [String] attr_accessor :campaign_description # @return [DateTime] attr_accessor :creation_date # @return [TrueClass] attr_accessor :is_used_car_offer def self.properties { id: { name: 'id' }, audit_type: { name: 'auditType' }, offer_type: { name: 'offerType' }, source: { name: 'source' }, from: { name: 'from' }, to: { name: 'to' }, personalised: { name: 'personalised' }, value: { name: 'value' }, net: { name: 'net' }, vat: { name: 'vat' }, description: { name: 'description' }, vin: { name: 'vin' }, gssn: { name: 'gssn' }, creation: { name: 'creation' }, modified: { name: 'modified' }, user_id: { name: 'userId' }, user: { name: 'user' }, offer_id: { name: 'offerId' }, commission_number: { name: 'commissionNumber' }, campaign_id: { name: 'campaignId' }, campaign_description: { name: 'campaignDescription' }, creation_date: { name: 'creationDate', type: DateTime }, is_used_car_offer: { name: 'isUsedCarOffer' }, } end end class FinanceOffer include ServiceStack::DTO # @return [String] attr_accessor :campaign_description # @return [String] attr_accessor :terms_and_conditions # @return [String] attr_accessor :label # @return [Integer] attr_accessor :campaign_id # @return [String] attr_accessor :document_url # @return [String] attr_accessor :from # @return [Integer] attr_accessor :id # @return [String] attr_accessor :to # @return [String] attr_accessor :value # @return [String] attr_accessor :vin # @return [TrueClass] attr_accessor :enabled # @return [TrueClass] attr_accessor :pending # @return [String] attr_accessor :offer_type def self.properties { campaign_description: { name: 'campaignDescription' }, terms_and_conditions: { name: 'termsAndConditions' }, label: { name: 'label' }, campaign_id: { name: 'campaignId' }, document_url: { name: 'documentUrl' }, from: { name: 'from' }, id: { name: 'id' }, to: { name: 'to' }, value: { name: 'value' }, vin: { name: 'vin' }, enabled: { name: 'enabled' }, pending: { name: 'pending' }, offer_type: { name: 'offerType' }, } end end class VehicleByIdentifierResponse include ServiceStack::DTO # @return [List] attr_accessor :campaign_offers # @return [List] attr_accessor :campaign_personalised_offers # @return [List] attr_accessor :campaign_voucher_offers # @return [List] attr_accessor :campaign_government_grant_offers # @return [List] attr_accessor :campaign_messages # @return [List] attr_accessor :offer_histories # @return [List] attr_accessor :finance_offers def self.properties { campaign_offers: { name: 'campaignOffers', type: [Offer] }, campaign_personalised_offers: { name: 'campaignPersonalisedOffers', type: [PersonalisedOffer] }, campaign_voucher_offers: { name: 'campaignVoucherOffers', type: [PersonalisedOffer] }, campaign_government_grant_offers: { name: 'campaignGovernmentGrantOffers', type: [Offer] }, campaign_messages: { name: 'campaignMessages', type: [Message] }, offer_histories: { name: 'offerHistories', type: [OfferHistory] }, finance_offers: { name: 'financeOffers', type: [FinanceOffer] }, } end end class VehicleByCommissionNumberResponse < VehicleByIdentifierResponse # @return [VehicleIdentifierData] attr_accessor :vehicle def self.properties { vehicle: { name: 'vehicle', type: VehicleIdentifierData }, } end end # @Route("/v1/{VehicleType}/Vehicle/{vehicleIdentifier}", "GET") class VehicleByCommissionNumberRequest include ServiceStack::DTO # @return [String] attr_accessor :vehicle_identifier # @return [String] attr_accessor :vehicle_type def self.properties { vehicle_identifier: { name: 'vehicleIdentifier' }, vehicle_type: { name: 'vehicleType' }, } end def response_type() = VehicleByCommissionNumberResponse def get_type_name() = 'VehicleByCommissionNumberRequest' def get_method() = 'GET' end