| 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 |
|---|
namespace Mercedes.Agency.API.Shared.Enums
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type KeyInformation() =
member val BM7NST:String = null with get,set
member val ConfigurationDate:String = null with get,set
member val ModelYear:String = null with get,set
member val HalfYear:String = null with get,set
[<AllowNullLiteral>]
type EquipmentCache() =
member val Code:String = null with get,set
member val Description:String = null with get,set
member val StandardFlag:String = null with get,set
member val Price:Decimal = new Decimal() with get,set
member val Category:String = null with get,set
member val Importance:String = null with get,set
[<AllowNullLiteral>]
type OrderingOptions() =
member val Interior:ResizeArray<String> = null with get,set
member val Exterior:ResizeArray<String> = null with get,set
member val Options:ResizeArray<String> = null with get,set
member val WheelOptions:ResizeArray<EquipmentCache> = null with get,set
member val TrimOptions:ResizeArray<EquipmentCache> = null with get,set
member val OptionCodes:ResizeArray<EquipmentCache> = null with get,set
[<AllowNullLiteral>]
type CarConfiguratorResponse() =
member val Name:String = null with get,set
member val KeyInformation:KeyInformation = null with get,set
member val OrderingOptions:OrderingOptions = null with get,set
member val ResponseStatus:ResponseStatus = null with get,set
member val ConfiguratorCode:String = null with get,set
[<AllowNullLiteral>]
type BackOrderVehicleDetailsBrand() =
member val Description:String = null with get,set
[<AllowNullLiteral>]
type Engine() =
member val Id:Int32 = new Int32() with get,set
member val Badge:String = null with get,set
member val CubicCapacity:Int32 = new Int32() with get,set
member val Cyclinders:Int32 = new Int32() with get,set
member val HorsePower:String = null with get,set
member val Kw:String = null with get,set
member val Selected:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type VehicleAuditDetails() =
member val UserId:String = null with get,set
member val Status:Boolean = new Boolean() with get,set
member val Notes:String = null with get,set
member val CreationDate:String = null with get,set
[<AllowNullLiteral>]
type RetailerService() =
member val Id:Int32 = new Int32() with get,set
member val Description:String = null with get,set
member val Priority:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type RetailerServices() =
member val New:ResizeArray<RetailerService> = null with get,set
member val Used:ResizeArray<RetailerService> = null with get,set
[<AllowNullLiteral>]
type RetailerOpeningTime() =
member val Day:String = null with get,set
member val OpenFrom:String = null with get,set
member val OpenTo:String = null with get,set
member val Special:String = null with get,set
[<AllowNullLiteral>]
type RetailerOpeningTimes() =
member val New:ResizeArray<RetailerOpeningTime> = null with get,set
member val Used:ResizeArray<RetailerOpeningTime> = null with get,set
[<AllowNullLiteral>]
type Retailer() =
member val Id:Int32 = new Int32() with get,set
member val GssnId:String = null with get,set
member val Description:String = null with get,set
member val Street:String = null with get,set
member val City:String = null with get,set
member val District:String = null with get,set
member val Postcode:String = null with get,set
member val GoogleMapPostcode:String = null with get,set
member val Phone:String = null with get,set
member val Fax:String = null with get,set
member val Email:String = null with get,set
member val Website:String = null with get,set
member val Latitude:Double = new Double() with get,set
member val Longitude:Double = new Double() with get,set
member val RetailerGroup_Id:Nullable<Int32> = new Nullable<Int32>() with get,set
member val RetailerGroupId:String = null with get,set
member val RetailerGroupName:String = null with get,set
member val Distance:Double = new Double() with get,set
member val PaymentServiceGuid:String = null with get,set
member val IsOnline:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val IsNewCarRetailer:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val IsUsedCarRetailer:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val IsCentralRetailer:Boolean = new Boolean() with get,set
member val ChatEnabled:Boolean = new Boolean() with get,set
member val TradeInEnabled:Boolean = new Boolean() with get,set
member val DisplayPhoneNumberNew:String = null with get,set
member val DisplayPhoneNumberUsed:String = null with get,set
member val Services:RetailerServices = null with get,set
member val smart:Boolean = new Boolean() with get,set
member val smartDescription:String = null with get,set
member val smartWebsite:String = null with get,set
member val smartEmail:String = null with get,set
member val smartPhone:String = null with get,set
member val AdditionalInformation:String = null with get,set
member val LegacyId:String = null with get,set
member val DriveTime:Decimal = new Decimal() with get,set
member val Agent:Boolean = new Boolean() with get,set
member val Port:Nullable<Int32> = new Nullable<Int32>() with get,set
member val PortName:String = null with get,set
member val MarketAreaId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val MarketAreaName:String = null with get,set
member val MaintenanceDate:String = null with get,set
member val MaintenanceSource:String = null with get,set
member val STPAccountNumbers:String = null with get,set
member val CampaignExcluded:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val DigitalLoungeParentGssnId:String = null with get,set
member val SendLeadsToDigitalLoungeParent:Boolean = new Boolean() with get,set
member val IsExcludedFromImport:Boolean = new Boolean() with get,set
member val OpeningTimes:RetailerOpeningTimes = null with get,set
[<AllowNullLiteral>]
type Media() =
member val ImageCount:Int32 = new Int32() with get,set
member val MainImageUrl:String = null with get,set
member val MainImageUrlMobile:String = null with get,set
member val NoImage:Boolean = new Boolean() with get,set
member val ThreeSixtyDegreeImageUrls:String[] = null with get,set
member val ThreeSixtyDegreeMobileImageUrls:String[] = null with get,set
member val VehicleImageUrls:String[] = null with get,set
member val VehicleMobileImageUrls:String[] = null with get,set
type OfferPriceProductType =
| LIST_PRICE = 0
| NUMBER_PLATE_FEE = 1
| DELIVERY_CHARGE = 2
| FUEL_CHARGE = 3
| MANUFACTURER_OFFER = 4
| PERSONALISED_MONEYOFFER = 5
| PERSONALISED_NONMONEYOFFER = 6
| PERSONALISED_NONMONEYOFFER_NEG = 7
| SERVICE = 8
| SERVICE_NEG = 9
| GOVERNMENT_GRANT = 10
| OUTRIGHT_PURCHASE_DISCOUNT = 11
| VIP_OFFER = 12
| WALLBOX_OFFER = 13
| WALLBOX_OFFER_NEG = 14
| ROAD_FUND_LICENCE = 15
| FIRST_REGISTRATION_FEE = 16
| NOT_FOUND = 17
| ACCESSORY_OFFER = 18
| ACCESSORY_OFFER_NEG = 19
| MOTABILITY_DISCOUNT = 20
[<AllowNullLiteral>]
type Price() =
member val Id:String = null with get,set
member val Description:String = null with get,set
member val Net:Decimal = new Decimal() with get,set
member val VAT:Decimal = new Decimal() with get,set
member val Gross:Decimal = new Decimal() with get,set
member val Product:OfferPriceProductType = new OfferPriceProductType() with get,set
[<AllowNullLiteral>]
type Consumption() =
member val Id:Int32 = new Int32() with get,set
member val Lkm:Decimal = new Decimal() with get,set
member val Mpg:Decimal = new Decimal() with get,set
[<AllowNullLiteral>]
type EmissionClass() =
member val Colour:String = null with get,set
member val Rating:String = null with get,set
[<AllowNullLiteral>]
type Equipment() =
member val Id:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
[<AllowNullLiteral>]
type Equipmentv2() =
inherit Equipment()
member val Importance:Int32 = new Int32() with get,set
member val IsAdditional:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type EquipmentCategoryv2() =
member val Order:Int32 = new Int32() with get,set
member val Code:String = null with get,set
member val Description:String = null with get,set
member val Equipment:ResizeArray<Equipmentv2> = null with get,set
[<AllowNullLiteral>]
type VehicleAttribute() =
member val Description:String = null with get,set
member val Value:String = null with get,set
[<AllowNullLiteral>]
type IntegratedServiceCareOptions() =
member val OptionCode:String = null with get,set
member val BM7NST:String = null with get,set
member val FullModelYear:String = null with get,set
member val IntegratedProductType:String = null with get,set
member val CustomerDescription:String = null with get,set
member val OneAgentProductType:String = null with get,set
[<AllowNullLiteral>]
type BackOrderVehicleDetails() =
member val Vin:String = null with get,set
member val CommissionNumber:String = null with get,set
member val Description:String = null with get,set
member val ShortDescription:String = null with get,set
member val ModelId:Int32 = new Int32() with get,set
member val Model:String = null with get,set
member val FullModelYearCode:String = null with get,set
member val BrandId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Brand:BackOrderVehicleDetailsBrand = null with get,set
member val RetailerId:Int32 = new Int32() with get,set
member val ImageUrl:String = null with get,set
member val Colour:String = null with get,set
member val ColourCode:String = null with get,set
member val FuelType:String = null with get,set
member val FuelTypeId:Int32 = new Int32() with get,set
member val Transmission:String = null with get,set
member val TransmissionType:String = null with get,set
member val Engine:Engine = null with get,set
member val EngineBadge:String = null with get,set
member val Package:String = null with get,set
member val Line:String = null with get,set
member val Upholstery:String = null with get,set
member val UpholsteryCode:String = null with get,set
member val UsageCode:String = null with get,set
member val Account:String = null with get,set
member val AccountType:String = null with get,set
member val NST:String = null with get,set
member val Baumuster:String = null with get,set
member val ElectricRange:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ElectricConsumption:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ActualPrice:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val OTRPrice:Decimal = new Decimal() with get,set
member val RetailPriceExVat:Decimal = new Decimal() with get,set
member val P11D:Decimal = new Decimal() with get,set
member val VehicleType:String = null with get,set
member val UpholsteryDescription:String = null with get,set
member val UpholsteryType:String = null with get,set
member val BodyStyle:String = null with get,set
member val BodyStyleStyleCode:String = null with get,set
member val BodyStyleStyleCodeElectric:String = null with get,set
member val BodyStyleStyleCodeHybrid:String = null with get,set
member val AvailablePackages:ResizeArray<String> = null with get,set
member val Mapped_Line:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Secured:Boolean = new Boolean() with get,set
member val Bm7NST:String = null with get,set
member val IsAvailableOnline:Boolean = new Boolean() with get,set
member val IsSpecialistCar:Boolean = new Boolean() with get,set
member val IsSellable:Boolean = new Boolean() with get,set
member val UnderOffer:Boolean = new Boolean() with get,set
member val VehicleAuditDetails:ResizeArray<VehicleAuditDetails> = null with get,set
member val Retailer:Retailer = null with get,set
member val Media:Media = null with get,set
member val Emission:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ColourGroup:String = null with get,set
member val VehicleClass:String = null with get,set
member val ProductRange:String = null with get,set
member val IsHOBackOrderAccountVehicle:Boolean = new Boolean() with get,set
member val IsAllocatedToBackOrder:Boolean = new Boolean() with get,set
member val InBackOrderAccount:Boolean = new Boolean() with get,set
member val DeliveryCharge:Decimal = new Decimal() with get,set
member val DeliveryChargeNet:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val DeliveryChargeVAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val Plates:Decimal = new Decimal() with get,set
member val PlatesNet:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val PlatesVAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val FuelCharge:Decimal = new Decimal() with get,set
member val FuelChargeNet:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val FuelChargeVAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val RetailPrice_ExVAT:Decimal = new Decimal() with get,set
member val RetailPrice_IncVAT:Decimal = new Decimal() with get,set
member val VED_Year1:Decimal = new Decimal() with get,set
member val VED_Year2:Decimal = new Decimal() with get,set
member val FirstRegFee:Decimal = new Decimal() with get,set
member val OTR_Value:Decimal = new Decimal() with get,set
member val OTR:Decimal = new Decimal() with get,set
member val Prices:ResizeArray<Price> = null with get,set
member val ProductionDate:String = null with get,set
member val PortArrivalDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Location:String = null with get,set
member val IsDisplayStock:Boolean = new Boolean() with get,set
member val DisplayRetailerId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val DisplayRetailer:String = null with get,set
member val DisplayRetailerGssnId:String = null with get,set
member val DisplayRetailerMarketAreaId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val IsSmartDisplayRetailer:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val ColourDescription:String = null with get,set
member val Creation:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Modified:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val VATQualifyingNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
member val VATQualifying:Boolean = new Boolean() with get,set
member val CurrentRetailerOfferPrice:Decimal = new Decimal() with get,set
member val GssnId:String = null with get,set
member val NoImage:Boolean = new Boolean() with get,set
member val RegistrationNumber:String = null with get,set
member val RegistrationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Mileage:Nullable<Int32> = new Nullable<Int32>() with get,set
member val TradeInDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val VID:String = null with get,set
member val EmissionCombined:String = null with get,set
member val EmissionDirective:String = null with get,set
member val NormalisedEmissionDirective:String = null with get,set
member val HasMildHybridEquipmentCode:Boolean = new Boolean() with get,set
member val Acceleration:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ChassisNumber:String = null with get,set
member val NumberOfDoors:String = null with get,set
member val NumberOfSeats:String = null with get,set
member val SpecialInfo:Boolean = new Boolean() with get,set
member val EligibleForIntegratedServiceCare:Boolean = new Boolean() with get,set
member val ConsumptionCombined:Consumption = null with get,set
member val ConsumptionExtraUrban:Consumption = null with get,set
member val ConsumptionUrban:Consumption = null with get,set
member val WltpFuelConsumptionCombined:Consumption = null with get,set
member val WltpFuelConsumptionExtraHigh:Consumption = null with get,set
member val WltpFuelConsumptionHigh:Consumption = null with get,set
member val WltpFuelConsumptionLow:Consumption = null with get,set
member val WltpFuelConsumptionMedium:Consumption = null with get,set
member val EnergyEfficiencyClass:EmissionClass = null with get,set
member val Equipment:ResizeArray<Equipmentv2> = null with get,set
member val EquipmentAdditional:ResizeArray<Equipment> = null with get,set
member val EquipmentCategories:ResizeArray<EquipmentCategoryv2> = null with get,set
member val VehicleData:ResizeArray<VehicleAttribute> = null with get,set
member val IntegratedServiceCareOptions:ResizeArray<IntegratedServiceCareOptions> = null with get,set
member val IspVehicleCustomerDescriptions:ResizeArray<String> = null with get,set
member val MarketingCode:String = null with get,set
member val EligibleForMaTransfer:Boolean = new Boolean() with get,set
member val ConfirmedProductionDate:String = null with get,set
member val ForecastedArrivalDate:String = null with get,set
[<AllowNullLiteral>]
type Package() =
member val Id:Int32 = new Int32() with get,set
member val Description:String = null with get,set
[<AllowNullLiteral>]
type BackOrderVehicleDetailsWithPackages() =
inherit BackOrderVehicleDetails()
member val Packages:ICollection<Package> = null with get,set
member val PackageNames:String = null with get,set
[<AllowNullLiteral>]
type CarConfiguratorVehicle() =
inherit BackOrderVehicleDetailsWithPackages()
member val ModelYearCode:String = null with get,set
member val HalfModelYearCode:String = null with get,set
member val ActiveOffers:ResizeArray<Int32> = null with get,set
member val EligibleForMotability:Boolean = new Boolean() with get,set
member val NearestPort:Nullable<Boolean> = new Nullable<Boolean>() with get,set
[<AllowNullLiteral>]
type CarConfiguratorStockMatch() =
member val Vehicle:CarConfiguratorVehicle = null with get,set
member val IsSellable:Boolean = new Boolean() with get,set
member val VehicleWheels:String = null with get,set
member val VehicleTrim:String = null with get,set
member val VehicleAdditionalOptionCodes:ResizeArray<String> = null with get,set
member val FullModelYearDifferences:ResizeArray<String> = null with get,set
member val PaintDifferences:ResizeArray<String> = null with get,set
member val UpholsteryDifferences:ResizeArray<String> = null with get,set
member val WheelDifferences:ResizeArray<String> = null with get,set
member val TrimDifferences:ResizeArray<String> = null with get,set
member val EquipmentDifferences:ResizeArray<String> = null with get,set
member val Differences:ResizeArray<String> = null with get,set
member val ExactMatch:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type CarConfiguratorStockMatches() =
member val SellableMatches:ResizeArray<CarConfiguratorStockMatch> = null with get,set
member val NonSellableMatches:ResizeArray<CarConfiguratorStockMatch> = null with get,set
[<AllowNullLiteral>]
type CarConfiguratorStockResponse() =
member val TotalVehicles:Int32 = new Int32() with get,set
member val CarConfiguratorResponse:CarConfiguratorResponse = null with get,set
member val ExactMatches:CarConfiguratorStockMatches = null with get,set
member val CloseMatches:CarConfiguratorStockMatches = null with get,set
[<AllowNullLiteral>]
type CarConfiguratorStockRequest() =
interface IPost
///<summary>
///The configurator code to search on
///</summary>
[<ApiMember(Description="The configurator code to search on", IsRequired=true)>]
member val ConfiguratorCode:String = null with get,set
///<summary>
///Whether to return sellable vehicles
///</summary>
[<ApiMember(Description="Whether to return sellable vehicles")>]
member val IsSellable:Nullable<Boolean> = new Nullable<Boolean>() with get,set
///<summary>
///Whether to only get exact matches
///</summary>
[<ApiMember(Description="Whether to only get exact matches")>]
member val ExactMatch:Boolean = new Boolean() with get,set
///<summary>
///Whether to restrict vehicles response to a GSSN
///</summary>
[<ApiMember(Description="Whether to restrict vehicles response to a GSSN")>]
member val GSSN:String = null with get,set
F# CarConfiguratorStockRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
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: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
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":[{}]}}