Mercedes.Agency.Orchestration.API

<back to all web services

CarConfiguratorStockRequest

CarConfigurator
Requires Authentication
The following routes are available for this service:
POST/v1/CarConfiguratorStockValidate and save a car configurator code for a vehicle searchThis 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 .csv suffix or ?format=csv

HTTP + CSV

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/csv
Content-Type: text/csv
Content-Length: length

{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
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":[{}]}}