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
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator;
using Mercedes.Agency.Orchestration.API.Business.Poco;
using Mercedes.Agency.API.Shared.POCO.CarConfigurator;
using Mercedes.OS.Vehicle.Shared.POCO;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.OS.Vehicle.Shared.POCO.Filters.v2;

namespace Mercedes.Agency.API.Shared.POCO
{
    public partial class Price
    {
        public virtual string Id { get; set; }
        public virtual string Description { get; set; }
        public virtual decimal Net { get; set; }
        public virtual decimal VAT { get; set; }
        public virtual decimal Gross { get; set; }
        public virtual OfferPriceProductType Product { get; set; }
    }

    public partial class RetailerOpeningTime
    {
        public virtual string Day { get; set; }
        public virtual string OpenFrom { get; set; }
        public virtual string OpenTo { get; set; }
        public virtual string Special { get; set; }
    }

    public partial class VehicleAttribute
    {
        public virtual string? Description { get; set; }
        public virtual string? Value { get; set; }
    }

}

namespace Mercedes.Agency.API.Shared.POCO.CarConfigurator
{
    public partial class CarConfiguratorResponse
    {
        public virtual string? Name { get; set; }
        public virtual KeyInformation? KeyInformation { get; set; }
        public virtual OrderingOptions? OrderingOptions { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual string? ConfiguratorCode { get; set; }
    }

    public partial class KeyInformation
    {
        public virtual string? BM7NST { get; set; }
        public virtual string? ConfigurationDate { get; set; }
        public virtual string? ModelYear { get; set; }
        public virtual string? HalfYear { get; set; }
        public virtual string? TypeClass { get; set; }
        public virtual bool IsPrivateVan { get; set; }
    }

    public partial class OrderingOptions
    {
        public virtual List<string>? Interior { get; set; }
        public virtual List<string>? Exterior { get; set; }
        public virtual List<string>? Options { get; set; }
        public virtual List<EquipmentCache> WheelOptions { get; set; } = [];
        public virtual List<EquipmentCache> TrimOptions { get; set; } = [];
        public virtual List<EquipmentCache> EquipmentOptionCodes { get; set; } = [];
        public virtual List<EquipmentCache> OptionCodes { get; set; } = [];
    }

}

namespace Mercedes.Agency.Orchestration.API.Business.Poco
{
    public partial class CarConfiguratorStockMatches
    {
        public virtual List<CarConfiguratorStockMatch> SellableMatches { get; set; } = [];
        public virtual List<CarConfiguratorStockMatch> NonSellableMatches { get; set; } = [];
    }

    public partial class CarConfiguratorStockResponse
    {
        public virtual int TotalVehicles { get; set; }
        public virtual CarConfiguratorResponse CarConfiguratorResponse { get; set; }
        public virtual CarConfiguratorStockMatches ExactMatches { get; set; }
        public virtual CarConfiguratorStockMatches CloseMatches { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.ServiceModel.BackOrders.CarConfigurator
{
    public partial class CarConfiguratorStockRequest
        : IPost
    {
        ///<summary>
        ///The configurator code to search on
        ///</summary>
        [ApiMember(Description="The configurator code to search on", IsRequired=true)]
        public virtual string ConfiguratorCode { get; set; }

        ///<summary>
        ///Whether to return sellable vehicles
        ///</summary>
        [ApiMember(Description="Whether to return sellable vehicles")]
        public virtual bool? IsSellable { get; set; }

        ///<summary>
        ///Whether to only get exact matches
        ///</summary>
        [ApiMember(Description="Whether to only get exact matches")]
        public virtual bool ExactMatch { get; set; }

        ///<summary>
        ///Whether to restrict vehicles response to a GSSN
        ///</summary>
        [ApiMember(Description="Whether to restrict vehicles response to a GSSN")]
        public virtual string? GSSN { get; set; }
    }

}

namespace Mercedes.OS.Vehicle.Shared.POCO
{
    public partial class BackOrderVehicleDetails
        : IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails
    {
        public virtual string? Vin { get; set; }
        public virtual string? CommissionNumber { get; set; }
        public virtual string? Description { get; set; }
        public virtual string? ShortDescription { get; set; }
        public virtual int ModelId { get; set; }
        public virtual string? Model { get; set; }
        public virtual string? FullModelYearCode { get; set; }
        public virtual int? BrandId { get; set; }
        public virtual BackOrderVehicleDetailsBrand? Brand { get; set; }
        public virtual int RetailerId { get; set; }
        public virtual string? ImageUrl { get; set; }
        public virtual string? Colour { get; set; }
        public virtual string? ColourCode { get; set; }
        public virtual string? FuelType { get; set; }
        public virtual int FuelTypeId { get; set; }
        public virtual string? Transmission { get; set; }
        public virtual string? TransmissionType { get; set; }
        public virtual Engine? Engine { get; set; }
        public virtual string? EngineBadge { get; set; }
        public virtual string? Package { get; set; }
        public virtual string? Line { get; set; }
        public virtual string? MappedLine { get; set; }
        public virtual string? Upholstery { get; set; }
        public virtual string? UpholsteryCode { get; set; }
        public virtual string? UsageCode { get; set; }
        public virtual string? Account { get; set; }
        public virtual string? AccountType { get; set; }
        public virtual string? NST { get; set; }
        public virtual string? Baumuster { get; set; }
        public virtual decimal? ElectricRange { get; set; }
        public virtual decimal? ElectricConsumption { get; set; }
        public virtual decimal? ActualPrice { get; set; }
        public virtual decimal OTRPrice { get; set; }
        public virtual decimal RetailPriceExVat { get; set; }
        public virtual decimal P11D { get; set; }
        public virtual string? VehicleType { get; set; }
        public virtual string? UpholsteryDescription { get; set; }
        public virtual string? UpholsteryType { get; set; }
        public virtual string? BodyStyle { get; set; }
        public virtual string? BodyStyleStyleCode { get; set; }
        public virtual string? BodyStyleStyleCodeElectric { get; set; }
        public virtual string? BodyStyleStyleCodeHybrid { get; set; }
        public virtual List<string>? AvailablePackages { get; set; }
        public virtual int? Mapped_Line { get; set; }
        public virtual bool Secured { get; set; }
        public virtual string? Bm7NST { get; set; }
        public virtual bool IsAvailableOnline { get; set; }
        public virtual bool IsSpecialistCar { get; set; }
        public virtual bool IsSellable { get; set; }
        public virtual bool UnderOffer { get; set; }
        public virtual List<VehicleAuditDetails>? VehicleAuditDetails { get; set; }
        public virtual Retailer? Retailer { get; set; }
        public virtual Media? Media { get; set; }
        public virtual decimal? Emission { get; set; }
        public virtual string? ColourGroup { get; set; }
        public virtual string? VehicleClass { get; set; }
        public virtual string? ProductRange { get; set; }
        public virtual bool IsHOBackOrderAccountVehicle { get; set; }
        public virtual bool IsAllocatedToBackOrder { get; set; }
        public virtual bool InBackOrderAccount { get; set; }
        public virtual decimal DeliveryCharge { get; set; }
        public virtual decimal? DeliveryChargeNet { get; set; }
        public virtual decimal? DeliveryChargeVAT { get; set; }
        public virtual decimal Plates { get; set; }
        public virtual decimal? PlatesNet { get; set; }
        public virtual decimal? PlatesVAT { get; set; }
        public virtual decimal FuelCharge { get; set; }
        public virtual decimal? FuelChargeNet { get; set; }
        public virtual decimal? FuelChargeVAT { get; set; }
        public virtual decimal RetailPrice_ExVAT { get; set; }
        public virtual decimal RetailPrice_IncVAT { get; set; }
        public virtual decimal VED_Year1 { get; set; }
        public virtual decimal VED_Year2 { get; set; }
        public virtual decimal FirstRegFee { get; set; }
        public virtual decimal OTR_Value { get; set; }
        public virtual decimal OTR { get; set; }
        public virtual List<Price>? Prices { get; set; }
        public virtual string? ProductionDate { get; set; }
        public virtual DateTime? PortArrivalDate { get; set; }
        public virtual string? Location { get; set; }
        public virtual bool IsDisplayStock { get; set; }
        public virtual int? DisplayRetailerId { get; set; }
        public virtual string? DisplayRetailer { get; set; }
        public virtual string? DisplayRetailerGssnId { get; set; }
        public virtual int? DisplayRetailerMarketAreaId { get; set; }
        public virtual bool? IsSmartDisplayRetailer { get; set; }
        public virtual string? ColourDescription { get; set; }
        public virtual DateTime? Creation { get; set; }
        public virtual DateTime? Modified { get; set; }
        public virtual int? VATQualifyingNumber { get; set; }
        public virtual bool VATQualifying { get; set; }
        public virtual decimal CurrentRetailerOfferPrice { get; set; }
        public virtual string? GssnId { get; set; }
        public virtual bool NoImage { get; set; }
        public virtual string? RegistrationNumber { get; set; }
        public virtual DateTime? RegistrationDate { get; set; }
        public virtual int? Mileage { get; set; }
        public virtual DateTime? TradeInDate { get; set; }
        public virtual string? VID { get; set; }
        public virtual string? EmissionCombined { get; set; }
        public virtual string? EmissionDirective { get; set; }
        public virtual string? NormalisedEmissionDirective { get; set; }
        public virtual bool HasMildHybridEquipmentCode { get; set; }
        public virtual decimal? Acceleration { get; set; }
        public virtual string? ChassisNumber { get; set; }
        public virtual string? NumberOfDoors { get; set; }
        public virtual string? NumberOfSeats { get; set; }
        public virtual bool SpecialInfo { get; set; }
        public virtual bool EligibleForIntegratedServiceCare { get; set; }
        public virtual Consumption? ConsumptionCombined { get; set; }
        public virtual Consumption? ConsumptionExtraUrban { get; set; }
        public virtual Consumption? ConsumptionUrban { get; set; }
        public virtual Consumption? WltpFuelConsumptionCombined { get; set; }
        public virtual Consumption? WltpFuelConsumptionExtraHigh { get; set; }
        public virtual Consumption? WltpFuelConsumptionHigh { get; set; }
        public virtual Consumption? WltpFuelConsumptionLow { get; set; }
        public virtual Consumption? WltpFuelConsumptionMedium { get; set; }
        public virtual EmissionClass? EnergyEfficiencyClass { get; set; }
        public virtual List<Equipmentv2>? Equipment { get; set; }
        public virtual List<Equipment>? EquipmentAdditional { get; set; }
        public virtual List<EquipmentCategoryv2>? EquipmentCategories { get; set; }
        public virtual List<VehicleAttribute>? VehicleData { get; set; }
        public virtual List<IntegratedServiceCareOptions>? IntegratedServiceCareOptions { get; set; }
        public virtual List<string>? IspVehicleCustomerDescriptions { get; set; }
        public virtual string? MarketingCode { get; set; }
        public virtual bool EligibleForMaTransfer { get; set; }
        public virtual string? ConfirmedProductionDate { get; set; }
        public virtual string? ForecastedArrivalDate { get; set; }
        public virtual string? CesarIdShipToParty { get; set; }
    }

    public partial class BackOrderVehicleDetailsBrand
    {
        public virtual string? Description { get; set; }
    }

    public partial class BackOrderVehicleDetailsWithPackages
        : BackOrderVehicleDetails, IPackages
    {
        public virtual ICollection<Package> Packages { get; set; }
        public virtual string PackageNames { get; set; }
    }

    public partial class CarConfiguratorStockMatch
    {
        public virtual CarConfiguratorVehicle Vehicle { get; set; }
        public virtual bool IsSellable { get; set; }
        public virtual string? VehicleWheels { get; set; }
        public virtual string? VehicleTrim { get; set; }
        public virtual List<EquipmentCache> VehicleKeyEquipment { get; set; } = [];
        public virtual List<EquipmentCache> VehicleAdditionalOptionCodes { get; set; } = [];
        public virtual List<string> FullModelYearDifferences { get; set; } = [];
        public virtual List<string> PaintDifferences { get; set; } = [];
        public virtual List<string> UpholsteryDifferences { get; set; } = [];
        public virtual List<string> WheelDifferences { get; set; } = [];
        public virtual List<string> TrimDifferences { get; set; } = [];
        public virtual List<string> EquipmentDifferences { get; set; } = [];
        public virtual List<string> KeyEquipmentDifferences { get; set; } = [];
        public virtual List<string> Differences { get; set; } = [];
        public virtual bool ExactMatch { get; set; }
        public virtual List<string> OnCarNotConfig { get; set; } = [];
    }

    public partial class CarConfiguratorVehicle
        : BackOrderVehicleDetailsWithPackages
    {
        public virtual string? ModelYearCode { get; set; }
        public virtual string? HalfModelYearCode { get; set; }
        public virtual List<int> ActiveOffers { get; set; } = [];
        public virtual bool EligibleForMotability { get; set; }
        public virtual bool? NearestPort { get; set; }
    }

    public partial class Consumption
    {
        public virtual int Id { get; set; }
        public virtual decimal Lkm { get; set; }
        public virtual decimal Mpg { get; set; }
    }

    public partial class EmissionClass
    {
        public virtual string? Colour { get; set; }
        public virtual string? Rating { get; set; }
    }

    public partial class Engine
    {
        public virtual int Id { get; set; }
        public virtual string? Badge { get; set; }
        public virtual int CubicCapacity { get; set; }
        public virtual int Cyclinders { get; set; }
        public virtual string? HorsePower { get; set; }
        public virtual string? Kw { get; set; }
        public virtual bool Selected { get; set; }
    }

    public partial class Equipment
    {
        public virtual int? Id { get; set; }
        public virtual string? Code { get; set; }
        public virtual string? Description { get; set; }
    }

    public partial class EquipmentCache
    {
        public virtual string Code { get; set; }
        public virtual string Description { get; set; }
        public virtual string StandardFlag { get; set; }
        public virtual decimal Price { get; set; }
        public virtual string Category { get; set; }
        public virtual string Importance { get; set; }
    }

    public partial class EquipmentCategoryv2
    {
        public virtual int Order { get; set; }
        public virtual string? Code { get; set; }
        public virtual string? Description { get; set; }
        public virtual List<Equipmentv2>? Equipment { get; set; }
    }

    public partial class Equipmentv2
        : Equipment
    {
        public virtual int Importance { get; set; }
        public virtual bool IsAdditional { get; set; }
    }

    public partial class IntegratedServiceCareOptions
    {
        public virtual string? OptionCode { get; set; }
        public virtual string? BM7NST { get; set; }
        public virtual string? FullModelYear { get; set; }
        public virtual string? IntegratedProductType { get; set; }
        public virtual string? CustomerDescription { get; set; }
        public virtual string? OneAgentProductType { get; set; }
    }

    public partial class Media
    {
        public virtual int ImageCount { get; set; }
        public virtual string? MainImageUrl { get; set; }
        public virtual string? MainImageUrlMobile { get; set; }
        public virtual bool NoImage { get; set; }
        public virtual string[]? ThreeSixtyDegreeImageUrls { get; set; }
        public virtual string[]? ThreeSixtyDegreeMobileImageUrls { get; set; }
        public virtual string[]? VehicleImageUrls { get; set; }
        public virtual string[]? VehicleMobileImageUrls { get; set; }
    }

    public partial class Retailer
    {
        public virtual int Id { get; set; }
        public virtual string? GssnId { get; set; }
        public virtual string? Description { get; set; }
        public virtual string? Street { get; set; }
        public virtual string? City { get; set; }
        public virtual string? District { get; set; }
        public virtual string? Postcode { get; set; }
        public virtual string? GoogleMapPostcode { get; set; }
        public virtual string? Phone { get; set; }
        public virtual string? Fax { get; set; }
        public virtual string? Email { get; set; }
        public virtual string? Website { get; set; }
        public virtual double Latitude { get; set; }
        public virtual double Longitude { get; set; }
        public virtual int? RetailerGroup_Id { get; set; }
        public virtual string? RetailerGroupId { get; set; }
        public virtual string? RetailerGroupName { get; set; }
        public virtual double Distance { get; set; }
        public virtual string? PaymentServiceGuid { get; set; }
        public virtual bool? IsOnline { get; set; }
        public virtual bool? IsNewCarRetailer { get; set; }
        public virtual bool? IsUsedCarRetailer { get; set; }
        public virtual bool IsCentralRetailer { get; set; }
        public virtual bool ChatEnabled { get; set; }
        public virtual bool TradeInEnabled { get; set; }
        public virtual string? DisplayPhoneNumberNew { get; set; }
        public virtual string? DisplayPhoneNumberUsed { get; set; }
        public virtual RetailerServices? Services { get; set; }
        public virtual bool smart { get; set; }
        public virtual string? smartDescription { get; set; }
        public virtual string? smartWebsite { get; set; }
        public virtual string? smartEmail { get; set; }
        public virtual string? smartPhone { get; set; }
        public virtual string? AdditionalInformation { get; set; }
        public virtual string? LegacyId { get; set; }
        public virtual decimal DriveTime { get; set; }
        public virtual bool Agent { get; set; }
        public virtual int? Port { get; set; }
        public virtual string? PortName { get; set; }
        public virtual int? MarketAreaId { get; set; }
        public virtual string? MarketAreaName { get; set; }
        public virtual string? MaintenanceDate { get; set; }
        public virtual string? MaintenanceSource { get; set; }
        public virtual string? STPAccountNumbers { get; set; }
        public virtual bool? CampaignExcluded { get; set; }
        public virtual string? DigitalLoungeParentGssnId { get; set; }
        public virtual bool SendLeadsToDigitalLoungeParent { get; set; }
        public virtual bool IsExcludedFromImport { get; set; }
        public virtual RetailerOpeningTimes? OpeningTimes { get; set; }
        public virtual int? RegionId { get; set; }
        public virtual string RegionName { get; set; }
    }

    public partial class RetailerOpeningTimes
    {
        public virtual List<RetailerOpeningTime> New { get; set; } = [];
        public virtual List<RetailerOpeningTime> Used { get; set; } = [];
    }

    public partial class RetailerService
    {
        public virtual int Id { get; set; }
        public virtual string? Description { get; set; }
        public virtual bool Priority { get; set; }
    }

    public partial class RetailerServices
    {
        public virtual List<RetailerService>? New { get; set; }
        public virtual List<RetailerService>? Used { get; set; }
    }

    public partial class VehicleAuditDetails
    {
        public virtual string? UserId { get; set; }
        public virtual bool Status { get; set; }
        public virtual string? Notes { get; set; }
        public virtual string? CreationDate { get; set; }
    }

}

namespace Mercedes.OS.Vehicle.Shared.POCO.Filters.v2
{
    public partial class Package
    {
        public virtual int Id { get; set; }
        public virtual string? Description { get; set; }
    }

}

C# CarConfiguratorStockRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + 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","TypeClass":"String","IsPrivateVan":false},"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"}],"EquipmentOptionCodes":[{"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":[{}]}}