| POST | /v1/CarConfiguratorStock | Validate and save a car configurator code for a vehicle search | This endpoint calls Agency API to validate and save a car configurator code. The code is validated and saved in the database and returns a response from a third party CCS which provides car configuration details. These get saved to open search and used to perform a vehicle search |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class CarConfiguratorStockRequest : IPost
{
/**
* The configurator code to search on
*/
@ApiMember(Description="The configurator code to search on", IsRequired=true)
open var ConfiguratorCode:String? = null
/**
* Whether to return sellable vehicles
*/
@ApiMember(Description="Whether to return sellable vehicles")
open var IsSellable:Boolean? = null
/**
* Whether to only get exact matches
*/
@ApiMember(Description="Whether to only get exact matches")
open var ExactMatch:Boolean? = null
/**
* Whether to restrict vehicles response to a GSSN
*/
@ApiMember(Description="Whether to restrict vehicles response to a GSSN")
open var GSSN:String? = null
}
open class CarConfiguratorStockResponse
{
open var TotalVehicles:Int? = null
open var CarConfiguratorResponse:CarConfiguratorResponse? = null
open var ExactMatches:CarConfiguratorStockMatches? = null
open var CloseMatches:CarConfiguratorStockMatches? = null
}
open class CarConfiguratorResponse
{
open var Name:String? = null
open var KeyInformation:KeyInformation? = null
open var OrderingOptions:OrderingOptions? = null
open var ResponseStatus:ResponseStatus? = null
open var ConfiguratorCode:String? = null
}
open class KeyInformation
{
open var BM7NST:String? = null
open var ConfigurationDate:String? = null
open var ModelYear:String? = null
open var HalfYear:String? = null
}
open class OrderingOptions
{
open var Interior:ArrayList<String>? = null
open var Exterior:ArrayList<String>? = null
open var Options:ArrayList<String>? = null
open var WheelOptions:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
open var TrimOptions:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
open var OptionCodes:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
}
open class EquipmentCache
{
open var Code:String? = null
open var Description:String? = null
open var StandardFlag:String? = null
open var Price:BigDecimal? = null
open var Category:String? = null
open var Importance:String? = null
}
open class CarConfiguratorStockMatches
{
open var SellableMatches:ArrayList<CarConfiguratorStockMatch> = ArrayList<CarConfiguratorStockMatch>()
open var NonSellableMatches:ArrayList<CarConfiguratorStockMatch> = ArrayList<CarConfiguratorStockMatch>()
}
open class CarConfiguratorStockMatch
{
open var Vehicle:CarConfiguratorVehicle? = null
open var IsSellable:Boolean? = null
open var VehicleWheels:String? = null
open var VehicleTrim:String? = null
open var VehicleAdditionalOptionCodes:ArrayList<String> = ArrayList<String>()
open var FullModelYearDifferences:ArrayList<String> = ArrayList<String>()
open var PaintDifferences:ArrayList<String> = ArrayList<String>()
open var UpholsteryDifferences:ArrayList<String> = ArrayList<String>()
open var WheelDifferences:ArrayList<String> = ArrayList<String>()
open var TrimDifferences:ArrayList<String> = ArrayList<String>()
open var EquipmentDifferences:ArrayList<String> = ArrayList<String>()
open var Differences:ArrayList<String> = ArrayList<String>()
open var ExactMatch:Boolean? = null
}
open class CarConfiguratorVehicle : BackOrderVehicleDetailsWithPackages()
{
open var ModelYearCode:String? = null
open var HalfModelYearCode:String? = null
open var ActiveOffers:ArrayList<Int> = ArrayList<Int>()
open var EligibleForMotability:Boolean? = null
open var NearestPort:Boolean? = null
}
open class BackOrderVehicleDetailsWithPackages : BackOrderVehicleDetails(), IPackages
{
override var Packages:ArrayList<Package>? = null
open var PackageNames:String? = null
}
open class BackOrderVehicleDetails : IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails
{
open var Vin:String? = null
open var CommissionNumber:String? = null
open var Description:String? = null
open var ShortDescription:String? = null
open var ModelId:Int? = null
open var Model:String? = null
open var FullModelYearCode:String? = null
override var BrandId:Int? = null
open var Brand:BackOrderVehicleDetailsBrand? = null
open var RetailerId:Int? = null
override var ImageUrl:String? = null
open var Colour:String? = null
open var ColourCode:String? = null
open var FuelType:String? = null
open var FuelTypeId:Int? = null
open var Transmission:String? = null
open var TransmissionType:String? = null
open var Engine:Engine? = null
open var EngineBadge:String? = null
open var Package:String? = null
open var Line:String? = null
open var Upholstery:String? = null
open var UpholsteryCode:String? = null
open var UsageCode:String? = null
open var Account:String? = null
open var AccountType:String? = null
open var NST:String? = null
open var Baumuster:String? = null
open var ElectricRange:BigDecimal? = null
open var ElectricConsumption:BigDecimal? = null
open var ActualPrice:BigDecimal? = null
open var OTRPrice:BigDecimal? = null
open var RetailPriceExVat:BigDecimal? = null
open var P11D:BigDecimal? = null
override var VehicleType:String? = null
open var UpholsteryDescription:String? = null
open var UpholsteryType:String? = null
open var BodyStyle:String? = null
open var BodyStyleStyleCode:String? = null
open var BodyStyleStyleCodeElectric:String? = null
open var BodyStyleStyleCodeHybrid:String? = null
open var AvailablePackages:ArrayList<String>? = null
open var Mapped_Line:Int? = null
open var Secured:Boolean? = null
open var Bm7NST:String? = null
open var IsAvailableOnline:Boolean? = null
open var IsSpecialistCar:Boolean? = null
open var IsSellable:Boolean? = null
open var UnderOffer:Boolean? = null
open var VehicleAuditDetails:ArrayList<VehicleAuditDetails>? = null
open var Retailer:Retailer? = null
open var Media:Media? = null
open var Emission:BigDecimal? = null
open var ColourGroup:String? = null
open var VehicleClass:String? = null
open var ProductRange:String? = null
open var IsHOBackOrderAccountVehicle:Boolean? = null
open var IsAllocatedToBackOrder:Boolean? = null
open var InBackOrderAccount:Boolean? = null
override var DeliveryCharge:BigDecimal? = null
override var DeliveryChargeNet:BigDecimal? = null
override var DeliveryChargeVAT:BigDecimal? = null
override var Plates:BigDecimal? = null
override var PlatesNet:BigDecimal? = null
override var PlatesVAT:BigDecimal? = null
override var FuelCharge:BigDecimal? = null
override var FuelChargeNet:BigDecimal? = null
override var FuelChargeVAT:BigDecimal? = null
override var RetailPrice_ExVAT:BigDecimal? = null
override var RetailPrice_IncVAT:BigDecimal? = null
override var VED_Year1:BigDecimal? = null
override var VED_Year2:BigDecimal? = null
override var FirstRegFee:BigDecimal? = null
override var OTR_Value:BigDecimal? = null
open var OTR:BigDecimal? = null
override var Prices:ArrayList<Price>? = null
open var ProductionDate:String? = null
open var PortArrivalDate:Date? = null
open var Location:String? = null
open var IsDisplayStock:Boolean? = null
open var DisplayRetailerId:Int? = null
open var DisplayRetailer:String? = null
open var DisplayRetailerGssnId:String? = null
open var DisplayRetailerMarketAreaId:Int? = null
open var IsSmartDisplayRetailer:Boolean? = null
open var ColourDescription:String? = null
open var Creation:Date? = null
open var Modified:Date? = null
open var VATQualifyingNumber:Int? = null
open var VATQualifying:Boolean? = null
open var CurrentRetailerOfferPrice:BigDecimal? = null
open var GssnId:String? = null
open var NoImage:Boolean? = null
open var RegistrationNumber:String? = null
open var RegistrationDate:Date? = null
open var Mileage:Int? = null
open var TradeInDate:Date? = null
open var VID:String? = null
open var EmissionCombined:String? = null
open var EmissionDirective:String? = null
open var NormalisedEmissionDirective:String? = null
open var HasMildHybridEquipmentCode:Boolean? = null
open var Acceleration:BigDecimal? = null
override var ChassisNumber:String? = null
override var NumberOfDoors:String? = null
override var NumberOfSeats:String? = null
override var SpecialInfo:Boolean? = null
override var EligibleForIntegratedServiceCare:Boolean? = null
override var ConsumptionCombined:Consumption? = null
override var ConsumptionExtraUrban:Consumption? = null
override var ConsumptionUrban:Consumption? = null
override var WltpFuelConsumptionCombined:Consumption? = null
override var WltpFuelConsumptionExtraHigh:Consumption? = null
override var WltpFuelConsumptionHigh:Consumption? = null
override var WltpFuelConsumptionLow:Consumption? = null
override var WltpFuelConsumptionMedium:Consumption? = null
override var EnergyEfficiencyClass:EmissionClass? = null
override var Equipment:ArrayList<Equipmentv2>? = null
override var EquipmentAdditional:ArrayList<Equipment>? = null
override var EquipmentCategories:ArrayList<EquipmentCategoryv2>? = null
override var VehicleData:ArrayList<VehicleAttribute>? = null
override var IntegratedServiceCareOptions:ArrayList<IntegratedServiceCareOptions>? = null
override var IspVehicleCustomerDescriptions:ArrayList<String>? = null
open var MarketingCode:String? = null
open var EligibleForMaTransfer:Boolean? = null
open var ConfirmedProductionDate:String? = null
open var ForecastedArrivalDate:String? = null
}
open class BackOrderVehicleDetailsBrand
{
open var Description:String? = null
}
open class Engine
{
open var Id:Int? = null
open var Badge:String? = null
open var CubicCapacity:Int? = null
open var Cyclinders:Int? = null
open var HorsePower:String? = null
open var Kw:String? = null
open var Selected:Boolean? = null
}
open class VehicleAuditDetails
{
open var UserId:String? = null
open var Status:Boolean? = null
open var Notes:String? = null
open var CreationDate:String? = null
}
open class Retailer
{
open var Id:Int? = null
open var GssnId:String? = null
open var Description:String? = null
open var Street:String? = null
open var City:String? = null
open var District:String? = null
open var Postcode:String? = null
open var GoogleMapPostcode:String? = null
open var Phone:String? = null
open var Fax:String? = null
open var Email:String? = null
open var Website:String? = null
open var Latitude:Double? = null
open var Longitude:Double? = null
open var RetailerGroup_Id:Int? = null
open var RetailerGroupId:String? = null
open var RetailerGroupName:String? = null
open var Distance:Double? = null
open var PaymentServiceGuid:String? = null
open var IsOnline:Boolean? = null
open var IsNewCarRetailer:Boolean? = null
open var IsUsedCarRetailer:Boolean? = null
open var IsCentralRetailer:Boolean? = null
open var ChatEnabled:Boolean? = null
open var TradeInEnabled:Boolean? = null
open var DisplayPhoneNumberNew:String? = null
open var DisplayPhoneNumberUsed:String? = null
open var Services:RetailerServices? = null
open var smart:Boolean? = null
open var smartDescription:String? = null
open var smartWebsite:String? = null
open var smartEmail:String? = null
open var smartPhone:String? = null
open var AdditionalInformation:String? = null
open var LegacyId:String? = null
open var DriveTime:BigDecimal? = null
open var Agent:Boolean? = null
open var Port:Int? = null
open var PortName:String? = null
open var MarketAreaId:Int? = null
open var MarketAreaName:String? = null
open var MaintenanceDate:String? = null
open var MaintenanceSource:String? = null
open var STPAccountNumbers:String? = null
open var CampaignExcluded:Boolean? = null
open var DigitalLoungeParentGssnId:String? = null
open var SendLeadsToDigitalLoungeParent:Boolean? = null
open var IsExcludedFromImport:Boolean? = null
open var OpeningTimes:RetailerOpeningTimes? = null
}
open class RetailerServices
{
open var New:ArrayList<RetailerService>? = null
open var Used:ArrayList<RetailerService>? = null
}
open class RetailerService
{
open var Id:Int? = null
open var Description:String? = null
open var Priority:Boolean? = null
}
open class RetailerOpeningTimes
{
open var New:ArrayList<RetailerOpeningTime> = ArrayList<RetailerOpeningTime>()
open var Used:ArrayList<RetailerOpeningTime> = ArrayList<RetailerOpeningTime>()
}
open class RetailerOpeningTime
{
open var Day:String? = null
open var OpenFrom:String? = null
open var OpenTo:String? = null
open var Special:String? = null
}
open class Media
{
open var ImageCount:Int? = null
open var MainImageUrl:String? = null
open var MainImageUrlMobile:String? = null
open var NoImage:Boolean? = null
open var ThreeSixtyDegreeImageUrls:ArrayList<String>? = null
open var ThreeSixtyDegreeMobileImageUrls:ArrayList<String>? = null
open var VehicleImageUrls:ArrayList<String>? = null
open var VehicleMobileImageUrls:ArrayList<String>? = null
}
open class Price
{
open var Id:String? = null
open var Description:String? = null
open var Net:BigDecimal? = null
open var VAT:BigDecimal? = null
open var Gross:BigDecimal? = null
open var Product:OfferPriceProductType? = null
}
enum class OfferPriceProductType
{
ListPrice,
NumberPlateFee,
DeliveryCharge,
FuelCharge,
ManufacturerOffer,
PersonalisedMoneyoffer,
PersonalisedNonmoneyoffer,
PersonalisedNonmoneyofferNeg,
Service,
ServiceNeg,
GovernmentGrant,
OutrightPurchaseDiscount,
VipOffer,
WallboxOffer,
WallboxOfferNeg,
RoadFundLicence,
FirstRegistrationFee,
NotFound,
AccessoryOffer,
AccessoryOfferNeg,
MotabilityDiscount,
}
open class Consumption
{
open var Id:Int? = null
open var Lkm:BigDecimal? = null
open var Mpg:BigDecimal? = null
}
open class EmissionClass
{
open var Colour:String? = null
open var Rating:String? = null
}
open class Equipmentv2 : Equipment()
{
open var Importance:Int? = null
open var IsAdditional:Boolean? = null
}
open class Equipment
{
open var Id:Int? = null
open var Code:String? = null
open var Description:String? = null
}
open class EquipmentCategoryv2
{
open var Order:Int? = null
open var Code:String? = null
open var Description:String? = null
open var Equipment:ArrayList<Equipmentv2>? = null
}
open class VehicleAttribute
{
open var Description:String? = null
open var Value:String? = null
}
open class IntegratedServiceCareOptions
{
open var OptionCode:String? = null
open var BM7NST:String? = null
open var FullModelYear:String? = null
open var IntegratedProductType:String? = null
open var CustomerDescription:String? = null
open var OneAgentProductType:String? = null
}
open class Package
{
open var Id:Int? = null
open var Description:String? = null
}
Kotlin CarConfiguratorStockRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/CarConfiguratorStock HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: application/json
Content-Type: application/json
Content-Length: length
{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"TotalVehicles":4,"CarConfiguratorResponse":{"Name":"String","KeyInformation":{"BM7NST":"String","ConfigurationDate":"String","ModelYear":"String","HalfYear":"String"},"OrderingOptions":{"Interior":["String"],"Exterior":["String"],"Options":["String"],"WheelOptions":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}],"TrimOptions":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}],"OptionCodes":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"ConfiguratorCode":"String"},"ExactMatches":{"SellableMatches":[{}],"NonSellableMatches":[{}]},"CloseMatches":{"SellableMatches":[{}],"NonSellableMatches":[{}]}}