POST | /v1/VehicleWithOptimal | Get Vehicle by Vin and a more optimal option if available |
---|
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 GetVehicleWithOptimalRequest() =
member val VehicleIdentifier:String = null with get,set
member val IncludeAllocatedToBackOrder:Boolean = new Boolean() with get,set
member val Gssn:String = null with get,set
member val IsOneAdmin:Boolean = new Boolean() with get,set
member val MotabilityPricingId:Nullable<Int32> = new Nullable<Int32>() with get,set
[<AllowNullLiteral>]
type Model() =
member val Id:Int32 = new Int32() with get,set
member val Description:String = null with get,set
member val DisplayName:String = null with get,set
member val ImageUrlSmall:String = null with get,set
member val ImageUrlMedium:String = null with get,set
member val ImageUrlLarge:String = null with get,set
member val Specialist:Boolean = new Boolean() with get,set
member val Priority:Int32 = new Int32() with get,set
member val ExcludeFromOnlineShowroomFilters:Nullable<Boolean> = new Nullable<Boolean>() with get,set
[<AllowNullLiteral>]
type BodyStyle() =
member val Id:Int32 = new Int32() with get,set
member val Description:String = null with get,set
member val Models:ResizeArray<Model> = null with get,set
[<AllowNullLiteral>]
type Brand() =
member val Id:Int32 = new Int32() with get,set
member val Description:String = null with get,set
member val DisplayName:String = null with get,set
member val BodyStyles:ResizeArray<BodyStyle> = null with get,set
[<AllowNullLiteral>]
type Engine() =
member val Id:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Badge:String = null with get,set
[<AllowNullLiteral>]
type Media() =
member val NoImage:Boolean = new Boolean() with get,set
member val MainImageUrl: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 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 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 RetailerGroupId:String = null with get,set
member val RetailerGroupName:String = null with get,set
member val IsOnline:Boolean = new Boolean() with get,set
member val IsNewCarRetailer:Boolean = new Boolean() with get,set
member val IsUsedCarRetailer:Boolean = new 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 smart:Boolean = new Boolean() with get,set
member val DisplayPhoneNumberNew:String = null with get,set
member val DisplayPhoneNumberUsed:String = null with get,set
member val Latitude:Decimal = new Decimal() with get,set
member val Longitude:Decimal = new Decimal() with get,set
member val smartDescription:String = null with get,set
member val smartWebsite:String = null with get,set
member val smartPhone:String = null with get,set
member val LegacyId:String = null with get,set
member val Agent:Boolean = new Boolean() with get,set
member val MarketAreaId:Int32 = new Int32() with get,set
member val DigitalLoungeParentGssnId:String = null with get,set
member val SendLeadsToDigitalLoungeParent:Boolean = new Boolean() with get,set
member val OpeningTimes:RetailerOpeningTimes = null with get,set
[<AllowNullLiteral>]
type VehicleConsumption() =
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 Equipment() =
member val Id:Int32 = new 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 VehicleEquipmentCategory() =
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 VehicleEmissionClass() =
member val Colour:String = null with get,set
member val Rating:String = 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 VehicleIntegratedServiceCareOption() =
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 VehicleDetailDto() =
member val BodyStyle:String = null with get,set
member val Vin:String = null with get,set
member val Description:String = null with get,set
member val Colour:String = null with get,set
member val ColourCode:String = null with get,set
member val ColourDescription:String = null with get,set
member val ColourGroup:String = null with get,set
member val Model:String = null with get,set
member val CommissionNumber:String = null with get,set
member val BrandId:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Brand:Brand = null with get,set
member val Engine:Engine = null with get,set
member val EngineBadge:String = null with get,set
member val Media:Media = null with get,set
member val Line:String = null with get,set
member val UpholsteryCode:String = null with get,set
member val UpholsteryType:String = null with get,set
member val Upholstery:String = null with get,set
member val UpholsteryDescription:String = null with get,set
member val AvailablePackages:ResizeArray<String> = null with get,set
member val Packages:ResizeArray<String> = null with get,set
member val P11D:Decimal = new Decimal() with get,set
member val PortArrivalDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
member val Prices:ResizeArray<Price> = null with get,set
member val TransmissionType:String = null with get,set
member val FuelType:String = null with get,set
member val VehicleClass:String = null with get,set
member val ProductRange:String = null with get,set
member val VehicleType:String = null with get,set
member val Emission:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val IsAvailableOnline:Boolean = new Boolean() with get,set
member val UnderOffer:Boolean = new Boolean() with get,set
member val IsExcluded:Boolean = new Boolean() with get,set
member val IsSellable:Boolean = new Boolean() with get,set
member val OnHold:Boolean = new Boolean() with get,set
member val ElectricConsumption:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ElectricRange:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val ImageUrl:String = null with get,set
member val Baumuster:String = null with get,set
member val Retailer:Retailer = null with get,set
member val Bm7NST:String = null with get,set
member val OTR:Decimal = new Decimal() with get,set
member val ActualPrice:Decimal = new Decimal() 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:String = null with get,set
member val IsSmartDisplayRetailer:Boolean = new Boolean() with get,set
member val IsSpecialistCar:Boolean = new Boolean() with get,set
member val Age:Nullable<Int32> = new Nullable<Int32>() with get,set
member val Secured:Boolean = new Boolean() with get,set
member val IsHOBackOrderAccountVehicle:Boolean = new Boolean() with get,set
member val IsAllocatedToBackOrder:Boolean = new Boolean() with get,set
member val UsageCode:String = null with get,set
member val EmissionCombined:Nullable<Decimal> = new Nullable<Decimal>() with get,set
member val NormalisedEmissionDirective:String = null with get,set
member val HasMildHybridEquipmentCode:Boolean = new Boolean() with get,set
member val RetailPriceExVat:Decimal = new Decimal() with get,set
member val RetailPrice_IncVAT:Decimal = new Decimal() with get,set
member val RetailPrice_ExVAT:Decimal = new Decimal() with get,set
member val ModelId:Int32 = new Int32() with get,set
member val VID:String = null with get,set
member val ProductionDate:String = null with get,set
member val FullModelYearCode:String = null with get,set
member val ChassisNumber:String = null with get,set
member val EligibleForIntegratedServiceCare:Boolean = new Boolean() with get,set
member val AccountType:String = null with get,set
member val ConsumptionCombined:VehicleConsumption = null with get,set
member val ConsumptionExtraUrban:VehicleConsumption = null with get,set
member val ConsumptionUrban:VehicleConsumption = null with get,set
member val WltpFuelConsumptionCombined:VehicleConsumption = null with get,set
member val WltpFuelConsumptionExtraHigh:VehicleConsumption = null with get,set
member val WltpFuelConsumptionHigh:VehicleConsumption = null with get,set
member val WltpFuelConsumptionLow:VehicleConsumption = null with get,set
member val WltpFuelConsumptionMedium:VehicleConsumption = null with get,set
member val Equipment:ResizeArray<Equipmentv2> = null with get,set
member val EquipmentCategories:ResizeArray<VehicleEquipmentCategory> = null with get,set
member val EnergyEfficiencyClass:VehicleEmissionClass = null with get,set
member val VehicleData:ResizeArray<VehicleAttribute> = null with get,set
member val IntegratedServiceCareOptions:ResizeArray<VehicleIntegratedServiceCareOption> = null with get,set
member val IspVehicleCustomerDescriptions:ResizeArray<String> = null with get,set
[<AllowNullLiteral>]
type VehicleError() =
member val Field:String = null with get,set
member val Message:String = null with get,set
[<AllowNullLiteral>]
type GetVehicleResponse() =
member val Vehicle:VehicleDetailDto = null with get,set
member val Errors:ResizeArray<VehicleError> = null with get,set
[<AllowNullLiteral>]
type GetVehicleWithOptimalResponse() =
inherit GetVehicleResponse()
member val OptimumVehicle:VehicleDetailDto = null with get,set
F# GetVehicleWithOptimalRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/VehicleWithOptimal HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
VehicleIdentifier: String,
IncludeAllocatedToBackOrder: False,
Gssn: String,
IsOneAdmin: False,
MotabilityPricingId: 0
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { OptimumVehicle: { BodyStyle: String, Vin: String, Description: String, Colour: String, ColourCode: String, ColourDescription: String, ColourGroup: String, Model: String, CommissionNumber: String, BrandId: 0, Brand: { Id: 0, Description: String, DisplayName: String, BodyStyles: [ { Id: 0, Description: String, Models: [ { Id: 0, Description: String, DisplayName: String, ImageUrlSmall: String, ImageUrlMedium: String, ImageUrlLarge: String, Specialist: False, Priority: 0, ExcludeFromOnlineShowroomFilters: False } ] } ] }, Engine: { Id: 0, Badge: String }, EngineBadge: String, Media: { NoImage: False, MainImageUrl: String }, Line: String, UpholsteryCode: String, UpholsteryType: String, Upholstery: String, UpholsteryDescription: String, AvailablePackages: [ String ], Packages: [ String ], P11D: 0, PortArrivalDate: 0001-01-01, Prices: [ { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } ], TransmissionType: String, FuelType: String, VehicleClass: String, ProductRange: String, VehicleType: String, Emission: 0, IsAvailableOnline: False, UnderOffer: False, IsExcluded: False, IsSellable: False, OnHold: False, ElectricConsumption: 0, ElectricRange: 0, ImageUrl: String, Baumuster: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, Bm7NST: String, OTR: 0, ActualPrice: 0, IsDisplayStock: False, DisplayRetailerId: 0, DisplayRetailer: String, DisplayRetailerGssnId: String, DisplayRetailerMarketAreaId: String, IsSmartDisplayRetailer: False, IsSpecialistCar: False, Age: 0, Secured: False, IsHOBackOrderAccountVehicle: False, IsAllocatedToBackOrder: False, UsageCode: String, EmissionCombined: 0, NormalisedEmissionDirective: String, HasMildHybridEquipmentCode: False, RetailPriceExVat: 0, RetailPrice_IncVAT: 0, RetailPrice_ExVAT: 0, ModelId: 0, VID: String, ProductionDate: String, FullModelYearCode: String, ChassisNumber: String, EligibleForIntegratedServiceCare: False, AccountType: String, ConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionExtraUrban: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionUrban: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionExtraHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionLow: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionMedium: { Id: 0, Lkm: 0, Mpg: 0 }, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ], EquipmentCategories: [ { Order: 0, Code: String, Description: String, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ] } ], EnergyEfficiencyClass: { Colour: String, Rating: String }, VehicleData: [ { Description: String, Value: String } ], IntegratedServiceCareOptions: [ { OptionCode: String, BM7NST: String, FullModelYear: String, IntegratedProductType: String, CustomerDescription: String, OneAgentProductType: String } ], IspVehicleCustomerDescriptions: [ String ] }, Vehicle: { BodyStyle: String, Vin: String, Description: String, Colour: String, ColourCode: String, ColourDescription: String, ColourGroup: String, Model: String, CommissionNumber: String, BrandId: 0, Brand: { Id: 0, Description: String, DisplayName: String, BodyStyles: [ { Id: 0, Description: String, Models: [ { Id: 0, Description: String, DisplayName: String, ImageUrlSmall: String, ImageUrlMedium: String, ImageUrlLarge: String, Specialist: False, Priority: 0, ExcludeFromOnlineShowroomFilters: False } ] } ] }, Engine: { Id: 0, Badge: String }, EngineBadge: String, Media: { NoImage: False, MainImageUrl: String }, Line: String, UpholsteryCode: String, UpholsteryType: String, Upholstery: String, UpholsteryDescription: String, AvailablePackages: [ String ], Packages: [ String ], P11D: 0, PortArrivalDate: 0001-01-01, Prices: [ { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } ], TransmissionType: String, FuelType: String, VehicleClass: String, ProductRange: String, VehicleType: String, Emission: 0, IsAvailableOnline: False, UnderOffer: False, IsExcluded: False, IsSellable: False, OnHold: False, ElectricConsumption: 0, ElectricRange: 0, ImageUrl: String, Baumuster: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, Bm7NST: String, OTR: 0, ActualPrice: 0, IsDisplayStock: False, DisplayRetailerId: 0, DisplayRetailer: String, DisplayRetailerGssnId: String, DisplayRetailerMarketAreaId: String, IsSmartDisplayRetailer: False, IsSpecialistCar: False, Age: 0, Secured: False, IsHOBackOrderAccountVehicle: False, IsAllocatedToBackOrder: False, UsageCode: String, EmissionCombined: 0, NormalisedEmissionDirective: String, HasMildHybridEquipmentCode: False, RetailPriceExVat: 0, RetailPrice_IncVAT: 0, RetailPrice_ExVAT: 0, ModelId: 0, VID: String, ProductionDate: String, FullModelYearCode: String, ChassisNumber: String, EligibleForIntegratedServiceCare: False, AccountType: String, ConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionExtraUrban: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionUrban: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionExtraHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionLow: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionMedium: { Id: 0, Lkm: 0, Mpg: 0 }, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ], EquipmentCategories: [ { Order: 0, Code: String, Description: String, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ] } ], EnergyEfficiencyClass: { Colour: String, Rating: String }, VehicleData: [ { Description: String, Value: String } ], IntegratedServiceCareOptions: [ { OptionCode: String, BM7NST: String, FullModelYear: String, IntegratedProductType: String, CustomerDescription: String, OneAgentProductType: String } ], IspVehicleCustomerDescriptions: [ String ] }, Errors: [ { Field: String, Message: String } ] }