Mercedes.Agency.Orchestration.API

<back to all web services

GetBackOrderRequest

BackOrder
Requires Authentication
The following routes are available for this service:
GET/v1/backorder/{Guid}Get Back Order by Guid
import 'package:servicestack/servicestack.dart';

class BackOrderHistory implements IConvertible
{
    int? Status;
    String? CommissionNumber;
    String? VIN;
    String? CustomerCriteria;
    String? AgentCriteria;
    DateTime? CreationDate;
    DateTime? MaintenanceDate;
    String? GasId;
    bool? Sellable;
    String? AdditionalInformation;
    String? Reason;
    String? ConfigCode;
    String? FleetBaseOrder;
    String? AssistanceDetail;
    String? AssistanceProvider;
    String? LinkedByUserType;
    String? MotabilityVTN;
    String? MotabilityBackOrderDropDown;
    DateTime? MotabilityValidFrom;
    DateTime? MotabilityValidTo;

    BackOrderHistory({this.Status,this.CommissionNumber,this.VIN,this.CustomerCriteria,this.AgentCriteria,this.CreationDate,this.MaintenanceDate,this.GasId,this.Sellable,this.AdditionalInformation,this.Reason,this.ConfigCode,this.FleetBaseOrder,this.AssistanceDetail,this.AssistanceProvider,this.LinkedByUserType,this.MotabilityVTN,this.MotabilityBackOrderDropDown,this.MotabilityValidFrom,this.MotabilityValidTo});
    BackOrderHistory.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Status = json['Status'];
        CommissionNumber = json['CommissionNumber'];
        VIN = json['VIN'];
        CustomerCriteria = json['CustomerCriteria'];
        AgentCriteria = json['AgentCriteria'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        MaintenanceDate = JsonConverters.fromJson(json['MaintenanceDate'],'DateTime',context!);
        GasId = json['GasId'];
        Sellable = json['Sellable'];
        AdditionalInformation = json['AdditionalInformation'];
        Reason = json['Reason'];
        ConfigCode = json['ConfigCode'];
        FleetBaseOrder = json['FleetBaseOrder'];
        AssistanceDetail = json['AssistanceDetail'];
        AssistanceProvider = json['AssistanceProvider'];
        LinkedByUserType = json['LinkedByUserType'];
        MotabilityVTN = json['MotabilityVTN'];
        MotabilityBackOrderDropDown = json['MotabilityBackOrderDropDown'];
        MotabilityValidFrom = JsonConverters.fromJson(json['MotabilityValidFrom'],'DateTime',context!);
        MotabilityValidTo = JsonConverters.fromJson(json['MotabilityValidTo'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Status': Status,
        'CommissionNumber': CommissionNumber,
        'VIN': VIN,
        'CustomerCriteria': CustomerCriteria,
        'AgentCriteria': AgentCriteria,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'MaintenanceDate': JsonConverters.toJson(MaintenanceDate,'DateTime',context!),
        'GasId': GasId,
        'Sellable': Sellable,
        'AdditionalInformation': AdditionalInformation,
        'Reason': Reason,
        'ConfigCode': ConfigCode,
        'FleetBaseOrder': FleetBaseOrder,
        'AssistanceDetail': AssistanceDetail,
        'AssistanceProvider': AssistanceProvider,
        'LinkedByUserType': LinkedByUserType,
        'MotabilityVTN': MotabilityVTN,
        'MotabilityBackOrderDropDown': MotabilityBackOrderDropDown,
        'MotabilityValidFrom': JsonConverters.toJson(MotabilityValidFrom,'DateTime',context!),
        'MotabilityValidTo': JsonConverters.toJson(MotabilityValidTo,'DateTime',context!)
    };

    getTypeName() => "BackOrderHistory";
    TypeContext? context = _ctx;
}

class Order implements IConvertible
{
    String? Guid;
    String? Reference;
    int? Status;
    String? CustomerId;
    String? MulesoftReference;
    String? GasId;
    String? OrderDate;
    String? OfferSnapShot;

    Order({this.Guid,this.Reference,this.Status,this.CustomerId,this.MulesoftReference,this.GasId,this.OrderDate,this.OfferSnapShot});
    Order.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Guid = json['Guid'];
        Reference = json['Reference'];
        Status = json['Status'];
        CustomerId = json['CustomerId'];
        MulesoftReference = json['MulesoftReference'];
        GasId = json['GasId'];
        OrderDate = json['OrderDate'];
        OfferSnapShot = json['OfferSnapShot'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Guid': Guid,
        'Reference': Reference,
        'Status': Status,
        'CustomerId': CustomerId,
        'MulesoftReference': MulesoftReference,
        'GasId': GasId,
        'OrderDate': OrderDate,
        'OfferSnapShot': OfferSnapShot
    };

    getTypeName() => "Order";
    TypeContext? context = _ctx;
}

class RetailerOpeningTime implements IConvertible
{
    String? Day;
    String? OpenFrom;
    String? OpenTo;
    String? Special;

    RetailerOpeningTime({this.Day,this.OpenFrom,this.OpenTo,this.Special});
    RetailerOpeningTime.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Day = json['Day'];
        OpenFrom = json['OpenFrom'];
        OpenTo = json['OpenTo'];
        Special = json['Special'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Day': Day,
        'OpenFrom': OpenFrom,
        'OpenTo': OpenTo,
        'Special': Special
    };

    getTypeName() => "RetailerOpeningTime";
    TypeContext? context = _ctx;
}

class RetailerOpeningTimes implements IConvertible
{
    List<RetailerOpeningTime>? New = [];
    List<RetailerOpeningTime>? Used = [];

    RetailerOpeningTimes({this.New,this.Used});
    RetailerOpeningTimes.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        New = JsonConverters.fromJson(json['New'],'List<RetailerOpeningTime>',context!);
        Used = JsonConverters.fromJson(json['Used'],'List<RetailerOpeningTime>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'New': JsonConverters.toJson(New,'List<RetailerOpeningTime>',context!),
        'Used': JsonConverters.toJson(Used,'List<RetailerOpeningTime>',context!)
    };

    getTypeName() => "RetailerOpeningTimes";
    TypeContext? context = _ctx;
}

class Retailer implements IConvertible
{
    int? Id;
    String? GssnId;
    String? Description;
    String? Street;
    String? City;
    String? Postcode;
    String? GoogleMapPostcode;
    String? Phone;
    String? Fax;
    String? Email;
    String? Website;
    String? RetailerGroupId;
    String? RetailerGroupName;
    bool? IsOnline;
    bool? IsNewCarRetailer;
    bool? IsUsedCarRetailer;
    bool? IsCentralRetailer;
    bool? ChatEnabled;
    bool? TradeInEnabled;
    bool? smart;
    String? DisplayPhoneNumberNew;
    String? DisplayPhoneNumberUsed;
    double? Latitude;
    double? Longitude;
    String? smartDescription;
    String? smartWebsite;
    String? smartPhone;
    String? LegacyId;
    bool? Agent;
    int? MarketAreaId;
    String? DigitalLoungeParentGssnId;
    bool? SendLeadsToDigitalLoungeParent;
    RetailerOpeningTimes? OpeningTimes;

    Retailer({this.Id,this.GssnId,this.Description,this.Street,this.City,this.Postcode,this.GoogleMapPostcode,this.Phone,this.Fax,this.Email,this.Website,this.RetailerGroupId,this.RetailerGroupName,this.IsOnline,this.IsNewCarRetailer,this.IsUsedCarRetailer,this.IsCentralRetailer,this.ChatEnabled,this.TradeInEnabled,this.smart,this.DisplayPhoneNumberNew,this.DisplayPhoneNumberUsed,this.Latitude,this.Longitude,this.smartDescription,this.smartWebsite,this.smartPhone,this.LegacyId,this.Agent,this.MarketAreaId,this.DigitalLoungeParentGssnId,this.SendLeadsToDigitalLoungeParent,this.OpeningTimes});
    Retailer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        GssnId = json['GssnId'];
        Description = json['Description'];
        Street = json['Street'];
        City = json['City'];
        Postcode = json['Postcode'];
        GoogleMapPostcode = json['GoogleMapPostcode'];
        Phone = json['Phone'];
        Fax = json['Fax'];
        Email = json['Email'];
        Website = json['Website'];
        RetailerGroupId = json['RetailerGroupId'];
        RetailerGroupName = json['RetailerGroupName'];
        IsOnline = json['IsOnline'];
        IsNewCarRetailer = json['IsNewCarRetailer'];
        IsUsedCarRetailer = json['IsUsedCarRetailer'];
        IsCentralRetailer = json['IsCentralRetailer'];
        ChatEnabled = json['ChatEnabled'];
        TradeInEnabled = json['TradeInEnabled'];
        smart = json['smart'];
        DisplayPhoneNumberNew = json['DisplayPhoneNumberNew'];
        DisplayPhoneNumberUsed = json['DisplayPhoneNumberUsed'];
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        smartDescription = json['smartDescription'];
        smartWebsite = json['smartWebsite'];
        smartPhone = json['smartPhone'];
        LegacyId = json['LegacyId'];
        Agent = json['Agent'];
        MarketAreaId = json['MarketAreaId'];
        DigitalLoungeParentGssnId = json['DigitalLoungeParentGssnId'];
        SendLeadsToDigitalLoungeParent = json['SendLeadsToDigitalLoungeParent'];
        OpeningTimes = JsonConverters.fromJson(json['OpeningTimes'],'RetailerOpeningTimes',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'GssnId': GssnId,
        'Description': Description,
        'Street': Street,
        'City': City,
        'Postcode': Postcode,
        'GoogleMapPostcode': GoogleMapPostcode,
        'Phone': Phone,
        'Fax': Fax,
        'Email': Email,
        'Website': Website,
        'RetailerGroupId': RetailerGroupId,
        'RetailerGroupName': RetailerGroupName,
        'IsOnline': IsOnline,
        'IsNewCarRetailer': IsNewCarRetailer,
        'IsUsedCarRetailer': IsUsedCarRetailer,
        'IsCentralRetailer': IsCentralRetailer,
        'ChatEnabled': ChatEnabled,
        'TradeInEnabled': TradeInEnabled,
        'smart': smart,
        'DisplayPhoneNumberNew': DisplayPhoneNumberNew,
        'DisplayPhoneNumberUsed': DisplayPhoneNumberUsed,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'smartDescription': smartDescription,
        'smartWebsite': smartWebsite,
        'smartPhone': smartPhone,
        'LegacyId': LegacyId,
        'Agent': Agent,
        'MarketAreaId': MarketAreaId,
        'DigitalLoungeParentGssnId': DigitalLoungeParentGssnId,
        'SendLeadsToDigitalLoungeParent': SendLeadsToDigitalLoungeParent,
        'OpeningTimes': JsonConverters.toJson(OpeningTimes,'RetailerOpeningTimes',context!)
    };

    getTypeName() => "Retailer";
    TypeContext? context = _ctx;
}

class MotabilityPricingCsv implements IConvertible
{
    // @DataMember(Order=0)
    int? Id;

    // @DataMember(Order=1)
    String? CriteriaBM7NST;

    // @DataMember(Order=2)
    String? VTN;

    // @DataMember(Order=3)
    String? BackOrderDropDown;

    // @DataMember(Order=4)
    String? CriteriaFullModelYearCode;

    // @DataMember(Order=5)
    String? CriteriaValidOptionCodes;

    // @DataMember(Order=6)
    String? CriteriaInvalidOptionCodes;

    // @DataMember(Order=7)
    double? PIPNet;

    // @DataMember(Order=8)
    double? PIPVat;

    // @DataMember(Order=9)
    double? PIPGross;

    // @DataMember(Order=10)
    double? WPMSNet;

    // @DataMember(Order=11)
    double? WPMSVat;

    // @DataMember(Order=12)
    double? WPMSGross;

    // @DataMember(Order=13)
    double? DiscountNet;

    // @DataMember(Order=14)
    double? DiscountVat;

    // @DataMember(Order=15)
    double? DiscountGross;

    // @DataMember(Order=16)
    double? ListPriceNet;

    // @DataMember(Order=17)
    double? ListPriceVat;

    // @DataMember(Order=18)
    double? ListPriceGross;

    // @DataMember(Order=19)
    double? DeliveryChargeNet;

    // @DataMember(Order=20)
    double? DeliveryChargeVat;

    // @DataMember(Order=21)
    double? DeliveryChargeGross;

    // @DataMember(Order=22)
    double? FuelChargeNet;

    // @DataMember(Order=23)
    double? FuelChargeVat;

    // @DataMember(Order=24)
    double? FuelChargeGross;

    // @DataMember(Order=25)
    double? NumberPlateFeeNet;

    // @DataMember(Order=26)
    double? NumberPlateFeeVat;

    // @DataMember(Order=27)
    double? NumberPlateFeeGross;

    // @DataMember(Order=28)
    double? FirstRegistrationFeeNet;

    // @DataMember(Order=29)
    double? FirstRegistrationFeeVat;

    // @DataMember(Order=30)
    double? FirstRegistrationFeeGross;

    // @DataMember(Order=31)
    double? RoadFundLicenceNet;

    // @DataMember(Order=32)
    double? RoadFundLicenceVat;

    // @DataMember(Order=33)
    double? RoadFundLicenceGross;

    // @DataMember(Order=34)
    DateTime? ValidFrom;

    // @DataMember(Order=35)
    DateTime? ValidTo;

    MotabilityPricingCsv({this.Id,this.CriteriaBM7NST,this.VTN,this.BackOrderDropDown,this.CriteriaFullModelYearCode,this.CriteriaValidOptionCodes,this.CriteriaInvalidOptionCodes,this.PIPNet,this.PIPVat,this.PIPGross,this.WPMSNet,this.WPMSVat,this.WPMSGross,this.DiscountNet,this.DiscountVat,this.DiscountGross,this.ListPriceNet,this.ListPriceVat,this.ListPriceGross,this.DeliveryChargeNet,this.DeliveryChargeVat,this.DeliveryChargeGross,this.FuelChargeNet,this.FuelChargeVat,this.FuelChargeGross,this.NumberPlateFeeNet,this.NumberPlateFeeVat,this.NumberPlateFeeGross,this.FirstRegistrationFeeNet,this.FirstRegistrationFeeVat,this.FirstRegistrationFeeGross,this.RoadFundLicenceNet,this.RoadFundLicenceVat,this.RoadFundLicenceGross,this.ValidFrom,this.ValidTo});
    MotabilityPricingCsv.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CriteriaBM7NST = json['CriteriaBM7NST'];
        VTN = json['VTN'];
        BackOrderDropDown = json['BackOrderDropDown'];
        CriteriaFullModelYearCode = json['CriteriaFullModelYearCode'];
        CriteriaValidOptionCodes = json['CriteriaValidOptionCodes'];
        CriteriaInvalidOptionCodes = json['CriteriaInvalidOptionCodes'];
        PIPNet = JsonConverters.toDouble(json['PIPNet']);
        PIPVat = JsonConverters.toDouble(json['PIPVat']);
        PIPGross = JsonConverters.toDouble(json['PIPGross']);
        WPMSNet = JsonConverters.toDouble(json['WPMSNet']);
        WPMSVat = JsonConverters.toDouble(json['WPMSVat']);
        WPMSGross = JsonConverters.toDouble(json['WPMSGross']);
        DiscountNet = JsonConverters.toDouble(json['DiscountNet']);
        DiscountVat = JsonConverters.toDouble(json['DiscountVat']);
        DiscountGross = JsonConverters.toDouble(json['DiscountGross']);
        ListPriceNet = JsonConverters.toDouble(json['ListPriceNet']);
        ListPriceVat = JsonConverters.toDouble(json['ListPriceVat']);
        ListPriceGross = JsonConverters.toDouble(json['ListPriceGross']);
        DeliveryChargeNet = JsonConverters.toDouble(json['DeliveryChargeNet']);
        DeliveryChargeVat = JsonConverters.toDouble(json['DeliveryChargeVat']);
        DeliveryChargeGross = JsonConverters.toDouble(json['DeliveryChargeGross']);
        FuelChargeNet = JsonConverters.toDouble(json['FuelChargeNet']);
        FuelChargeVat = JsonConverters.toDouble(json['FuelChargeVat']);
        FuelChargeGross = JsonConverters.toDouble(json['FuelChargeGross']);
        NumberPlateFeeNet = JsonConverters.toDouble(json['NumberPlateFeeNet']);
        NumberPlateFeeVat = JsonConverters.toDouble(json['NumberPlateFeeVat']);
        NumberPlateFeeGross = JsonConverters.toDouble(json['NumberPlateFeeGross']);
        FirstRegistrationFeeNet = JsonConverters.toDouble(json['FirstRegistrationFeeNet']);
        FirstRegistrationFeeVat = JsonConverters.toDouble(json['FirstRegistrationFeeVat']);
        FirstRegistrationFeeGross = JsonConverters.toDouble(json['FirstRegistrationFeeGross']);
        RoadFundLicenceNet = JsonConverters.toDouble(json['RoadFundLicenceNet']);
        RoadFundLicenceVat = JsonConverters.toDouble(json['RoadFundLicenceVat']);
        RoadFundLicenceGross = JsonConverters.toDouble(json['RoadFundLicenceGross']);
        ValidFrom = JsonConverters.fromJson(json['ValidFrom'],'DateTime',context!);
        ValidTo = JsonConverters.fromJson(json['ValidTo'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CriteriaBM7NST': CriteriaBM7NST,
        'VTN': VTN,
        'BackOrderDropDown': BackOrderDropDown,
        'CriteriaFullModelYearCode': CriteriaFullModelYearCode,
        'CriteriaValidOptionCodes': CriteriaValidOptionCodes,
        'CriteriaInvalidOptionCodes': CriteriaInvalidOptionCodes,
        'PIPNet': PIPNet,
        'PIPVat': PIPVat,
        'PIPGross': PIPGross,
        'WPMSNet': WPMSNet,
        'WPMSVat': WPMSVat,
        'WPMSGross': WPMSGross,
        'DiscountNet': DiscountNet,
        'DiscountVat': DiscountVat,
        'DiscountGross': DiscountGross,
        'ListPriceNet': ListPriceNet,
        'ListPriceVat': ListPriceVat,
        'ListPriceGross': ListPriceGross,
        'DeliveryChargeNet': DeliveryChargeNet,
        'DeliveryChargeVat': DeliveryChargeVat,
        'DeliveryChargeGross': DeliveryChargeGross,
        'FuelChargeNet': FuelChargeNet,
        'FuelChargeVat': FuelChargeVat,
        'FuelChargeGross': FuelChargeGross,
        'NumberPlateFeeNet': NumberPlateFeeNet,
        'NumberPlateFeeVat': NumberPlateFeeVat,
        'NumberPlateFeeGross': NumberPlateFeeGross,
        'FirstRegistrationFeeNet': FirstRegistrationFeeNet,
        'FirstRegistrationFeeVat': FirstRegistrationFeeVat,
        'FirstRegistrationFeeGross': FirstRegistrationFeeGross,
        'RoadFundLicenceNet': RoadFundLicenceNet,
        'RoadFundLicenceVat': RoadFundLicenceVat,
        'RoadFundLicenceGross': RoadFundLicenceGross,
        'ValidFrom': JsonConverters.toJson(ValidFrom,'DateTime',context!),
        'ValidTo': JsonConverters.toJson(ValidTo,'DateTime',context!)
    };

    getTypeName() => "MotabilityPricingCsv";
    TypeContext? context = _ctx;
}

enum MotabilityPricingStatus
{
    Pending,
    Current,
    RecentlyExpired,
    Expired,
}

class MotabilityPricing extends MotabilityPricingCsv implements IConvertible
{
    MotabilityPricingStatus? MotabilityPricingStatus;

    MotabilityPricing({this.MotabilityPricingStatus});
    MotabilityPricing.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        MotabilityPricingStatus = JsonConverters.fromJson(json['MotabilityPricingStatus'],'MotabilityPricingStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'MotabilityPricingStatus': JsonConverters.toJson(MotabilityPricingStatus,'MotabilityPricingStatus',context!)
    });

    getTypeName() => "MotabilityPricing";
    TypeContext? context = _ctx;
}

class CarConfigurator implements IConvertible
{
    int? Id;
    int? BackOrderId;
    String? ConfiguratorCode;
    String? GasId;
    int? Status;
    DateTime? DateOfLastUpdate;
    String? LastExceptionMessage;
    String? LastException;

    CarConfigurator({this.Id,this.BackOrderId,this.ConfiguratorCode,this.GasId,this.Status,this.DateOfLastUpdate,this.LastExceptionMessage,this.LastException});
    CarConfigurator.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        BackOrderId = json['BackOrderId'];
        ConfiguratorCode = json['ConfiguratorCode'];
        GasId = json['GasId'];
        Status = json['Status'];
        DateOfLastUpdate = JsonConverters.fromJson(json['DateOfLastUpdate'],'DateTime',context!);
        LastExceptionMessage = json['LastExceptionMessage'];
        LastException = json['LastException'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'BackOrderId': BackOrderId,
        'ConfiguratorCode': ConfiguratorCode,
        'GasId': GasId,
        'Status': Status,
        'DateOfLastUpdate': JsonConverters.toJson(DateOfLastUpdate,'DateTime',context!),
        'LastExceptionMessage': LastExceptionMessage,
        'LastException': LastException
    };

    getTypeName() => "CarConfigurator";
    TypeContext? context = _ctx;
}

class KeyInformation implements IConvertible
{
    String? BM7NST;
    String? ConfigurationDate;
    String? ModelYear;
    String? HalfYear;

    KeyInformation({this.BM7NST,this.ConfigurationDate,this.ModelYear,this.HalfYear});
    KeyInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BM7NST = json['BM7NST'];
        ConfigurationDate = json['ConfigurationDate'];
        ModelYear = json['ModelYear'];
        HalfYear = json['HalfYear'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BM7NST': BM7NST,
        'ConfigurationDate': ConfigurationDate,
        'ModelYear': ModelYear,
        'HalfYear': HalfYear
    };

    getTypeName() => "KeyInformation";
    TypeContext? context = _ctx;
}

class OrderingOptions implements IConvertible
{
    List<String>? Interior;
    List<String>? Exterior;
    List<String>? Other;

    OrderingOptions({this.Interior,this.Exterior,this.Other});
    OrderingOptions.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Interior = JsonConverters.fromJson(json['Interior'],'List<String>',context!);
        Exterior = JsonConverters.fromJson(json['Exterior'],'List<String>',context!);
        Other = JsonConverters.fromJson(json['Other'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Interior': JsonConverters.toJson(Interior,'List<String>',context!),
        'Exterior': JsonConverters.toJson(Exterior,'List<String>',context!),
        'Other': JsonConverters.toJson(Other,'List<String>',context!)
    };

    getTypeName() => "OrderingOptions";
    TypeContext? context = _ctx;
}

class CarConfiguratorResponse implements IConvertible
{
    String? Name;
    KeyInformation? KeyInformation;
    OrderingOptions? OrderingOptions;
    ResponseStatus? ResponseStatus;
    String? ConfiguratorCode;

    CarConfiguratorResponse({this.Name,this.KeyInformation,this.OrderingOptions,this.ResponseStatus,this.ConfiguratorCode});
    CarConfiguratorResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        KeyInformation = JsonConverters.fromJson(json['KeyInformation'],'KeyInformation',context!);
        OrderingOptions = JsonConverters.fromJson(json['OrderingOptions'],'OrderingOptions',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        ConfiguratorCode = json['ConfiguratorCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'KeyInformation': JsonConverters.toJson(KeyInformation,'KeyInformation',context!),
        'OrderingOptions': JsonConverters.toJson(OrderingOptions,'OrderingOptions',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'ConfiguratorCode': ConfiguratorCode
    };

    getTypeName() => "CarConfiguratorResponse";
    TypeContext? context = _ctx;
}

class BackOrderBase implements IConvertible
{
    String? Guid;
    int? Status;
    String? CustomerId;
    int? Id;
    String? Reference;
    String? Agent;
    String? Gssn;
    DateTime? CreationDate;
    DateTime? MaintenanceDate;
    String? CustomerCriteria;
    String? AgentCriteria;
    List<BackOrderHistory>? History;
    bool? IsAllocatedToOrder;
    String? Vin;
    String? CommissionNumber;
    Order? Order;
    String? Source;
    bool? Specialist;
    bool? OutrightPurchase;
    bool? Sellable;
    String? MulesoftReference;
    String? AdditionalInformation;
    String? ConfigCode;
    String? FleetBaseOrder;
    String? GasId;
    String? OutrightPurchaseCustomerIdentifier;
    Retailer? Retailer;
    int? CustomerMode;
    bool? CanEdit;
    String? DigitalLoungeGssnId;
    String? DigitalLounge;
    bool? Motability;
    MotabilityPricing? MotabilityPricing;
    String? LinkedByUserType;
    int? AssistanceProviderId;
    String? AssistanceProvider;
    String? AssistanceDetail;
    DateTime? LastAssistanceMessageDate;
    String? LastAssistanceUser;
    bool? IsCOPConverter;
    bool? IsEligibleCOPConverter;
    CarConfigurator? CarConfigurator;
    CarConfiguratorResponse? CarConfiguratorResponse;

    BackOrderBase({this.Guid,this.Status,this.CustomerId,this.Id,this.Reference,this.Agent,this.Gssn,this.CreationDate,this.MaintenanceDate,this.CustomerCriteria,this.AgentCriteria,this.History,this.IsAllocatedToOrder,this.Vin,this.CommissionNumber,this.Order,this.Source,this.Specialist,this.OutrightPurchase,this.Sellable,this.MulesoftReference,this.AdditionalInformation,this.ConfigCode,this.FleetBaseOrder,this.GasId,this.OutrightPurchaseCustomerIdentifier,this.Retailer,this.CustomerMode,this.CanEdit,this.DigitalLoungeGssnId,this.DigitalLounge,this.Motability,this.MotabilityPricing,this.LinkedByUserType,this.AssistanceProviderId,this.AssistanceProvider,this.AssistanceDetail,this.LastAssistanceMessageDate,this.LastAssistanceUser,this.IsCOPConverter,this.IsEligibleCOPConverter,this.CarConfigurator,this.CarConfiguratorResponse});
    BackOrderBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Guid = json['Guid'];
        Status = json['Status'];
        CustomerId = json['CustomerId'];
        Id = json['Id'];
        Reference = json['Reference'];
        Agent = json['Agent'];
        Gssn = json['Gssn'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        MaintenanceDate = JsonConverters.fromJson(json['MaintenanceDate'],'DateTime',context!);
        CustomerCriteria = json['CustomerCriteria'];
        AgentCriteria = json['AgentCriteria'];
        History = JsonConverters.fromJson(json['History'],'List<BackOrderHistory>',context!);
        IsAllocatedToOrder = json['IsAllocatedToOrder'];
        Vin = json['Vin'];
        CommissionNumber = json['CommissionNumber'];
        Order = JsonConverters.fromJson(json['Order'],'Order',context!);
        Source = json['Source'];
        Specialist = json['Specialist'];
        OutrightPurchase = json['OutrightPurchase'];
        Sellable = json['Sellable'];
        MulesoftReference = json['MulesoftReference'];
        AdditionalInformation = json['AdditionalInformation'];
        ConfigCode = json['ConfigCode'];
        FleetBaseOrder = json['FleetBaseOrder'];
        GasId = json['GasId'];
        OutrightPurchaseCustomerIdentifier = json['OutrightPurchaseCustomerIdentifier'];
        Retailer = JsonConverters.fromJson(json['Retailer'],'Retailer',context!);
        CustomerMode = json['CustomerMode'];
        CanEdit = json['CanEdit'];
        DigitalLoungeGssnId = json['DigitalLoungeGssnId'];
        DigitalLounge = json['DigitalLounge'];
        Motability = json['Motability'];
        MotabilityPricing = JsonConverters.fromJson(json['MotabilityPricing'],'MotabilityPricing',context!);
        LinkedByUserType = json['LinkedByUserType'];
        AssistanceProviderId = json['AssistanceProviderId'];
        AssistanceProvider = json['AssistanceProvider'];
        AssistanceDetail = json['AssistanceDetail'];
        LastAssistanceMessageDate = JsonConverters.fromJson(json['LastAssistanceMessageDate'],'DateTime',context!);
        LastAssistanceUser = json['LastAssistanceUser'];
        IsCOPConverter = json['IsCOPConverter'];
        IsEligibleCOPConverter = json['IsEligibleCOPConverter'];
        CarConfigurator = JsonConverters.fromJson(json['CarConfigurator'],'CarConfigurator',context!);
        CarConfiguratorResponse = JsonConverters.fromJson(json['CarConfiguratorResponse'],'CarConfiguratorResponse',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Guid': Guid,
        'Status': Status,
        'CustomerId': CustomerId,
        'Id': Id,
        'Reference': Reference,
        'Agent': Agent,
        'Gssn': Gssn,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'MaintenanceDate': JsonConverters.toJson(MaintenanceDate,'DateTime',context!),
        'CustomerCriteria': CustomerCriteria,
        'AgentCriteria': AgentCriteria,
        'History': JsonConverters.toJson(History,'List<BackOrderHistory>',context!),
        'IsAllocatedToOrder': IsAllocatedToOrder,
        'Vin': Vin,
        'CommissionNumber': CommissionNumber,
        'Order': JsonConverters.toJson(Order,'Order',context!),
        'Source': Source,
        'Specialist': Specialist,
        'OutrightPurchase': OutrightPurchase,
        'Sellable': Sellable,
        'MulesoftReference': MulesoftReference,
        'AdditionalInformation': AdditionalInformation,
        'ConfigCode': ConfigCode,
        'FleetBaseOrder': FleetBaseOrder,
        'GasId': GasId,
        'OutrightPurchaseCustomerIdentifier': OutrightPurchaseCustomerIdentifier,
        'Retailer': JsonConverters.toJson(Retailer,'Retailer',context!),
        'CustomerMode': CustomerMode,
        'CanEdit': CanEdit,
        'DigitalLoungeGssnId': DigitalLoungeGssnId,
        'DigitalLounge': DigitalLounge,
        'Motability': Motability,
        'MotabilityPricing': JsonConverters.toJson(MotabilityPricing,'MotabilityPricing',context!),
        'LinkedByUserType': LinkedByUserType,
        'AssistanceProviderId': AssistanceProviderId,
        'AssistanceProvider': AssistanceProvider,
        'AssistanceDetail': AssistanceDetail,
        'LastAssistanceMessageDate': JsonConverters.toJson(LastAssistanceMessageDate,'DateTime',context!),
        'LastAssistanceUser': LastAssistanceUser,
        'IsCOPConverter': IsCOPConverter,
        'IsEligibleCOPConverter': IsEligibleCOPConverter,
        'CarConfigurator': JsonConverters.toJson(CarConfigurator,'CarConfigurator',context!),
        'CarConfiguratorResponse': JsonConverters.toJson(CarConfiguratorResponse,'CarConfiguratorResponse',context!)
    };

    getTypeName() => "BackOrderBase";
    TypeContext? context = _ctx;
}

class Vehicle implements IConvertible
{
    String? Vin;

    Vehicle({this.Vin});
    Vehicle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Vin = json['Vin'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Vin': Vin
    };

    getTypeName() => "Vehicle";
    TypeContext? context = _ctx;
}

class VehicleCriteriaMatch implements IConvertible
{
    bool? Fuel;
    bool? Transmission;
    bool? Colour;
    bool? Upholstery;
    bool? Line;
    bool? Engine;
    bool? BodyStyle;
    bool? Packages;

    VehicleCriteriaMatch({this.Fuel,this.Transmission,this.Colour,this.Upholstery,this.Line,this.Engine,this.BodyStyle,this.Packages});
    VehicleCriteriaMatch.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Fuel = json['Fuel'];
        Transmission = json['Transmission'];
        Colour = json['Colour'];
        Upholstery = json['Upholstery'];
        Line = json['Line'];
        Engine = json['Engine'];
        BodyStyle = json['BodyStyle'];
        Packages = json['Packages'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Fuel': Fuel,
        'Transmission': Transmission,
        'Colour': Colour,
        'Upholstery': Upholstery,
        'Line': Line,
        'Engine': Engine,
        'BodyStyle': BodyStyle,
        'Packages': Packages
    };

    getTypeName() => "VehicleCriteriaMatch";
    TypeContext? context = _ctx;
}

enum OfferPriceProductType
{
    LIST_PRICE,
    NUMBER_PLATE_FEE,
    DELIVERY_CHARGE,
    FUEL_CHARGE,
    MANUFACTURER_OFFER,
    PERSONALISED_MONEYOFFER,
    PERSONALISED_NONMONEYOFFER,
    PERSONALISED_NONMONEYOFFER_NEG,
    SERVICE,
    SERVICE_NEG,
    GOVERNMENT_GRANT,
    OUTRIGHT_PURCHASE_DISCOUNT,
    VIP_OFFER,
    WALLBOX_OFFER,
    WALLBOX_OFFER_NEG,
    ROAD_FUND_LICENCE,
    FIRST_REGISTRATION_FEE,
    NOT_FOUND,
    ACCESSORY_OFFER,
    ACCESSORY_OFFER_NEG,
    MOTABILITY_DISCOUNT,
}

class Price implements IConvertible
{
    String? Id;
    String? Description;
    double? Net;
    double? VAT;
    double? Gross;
    OfferPriceProductType? Product;

    Price({this.Id,this.Description,this.Net,this.VAT,this.Gross,this.Product});
    Price.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        Net = JsonConverters.toDouble(json['Net']);
        VAT = JsonConverters.toDouble(json['VAT']);
        Gross = JsonConverters.toDouble(json['Gross']);
        Product = JsonConverters.fromJson(json['Product'],'OfferPriceProductType',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'Net': Net,
        'VAT': VAT,
        'Gross': Gross,
        'Product': JsonConverters.toJson(Product,'OfferPriceProductType',context!)
    };

    getTypeName() => "Price";
    TypeContext? context = _ctx;
}

class VehicleBaseDetail extends Vehicle implements ICommissionNumber, IConvertible
{
    String? Description;
    String? CommissionNumber;
    String? PortArrivalDate;
    String? OfferExpiryDate;
    String? Fuel;
    String? Transmission;
    String? TransmissionType;
    String? Colour;
    String? ColourDescription;
    String? ImageUrl;
    bool? Specialist;
    VehicleCriteriaMatch? VehicleCriteriaMatch;
    String? ColourGroup;
    String? Model;
    String? BodyStyle;
    String? Brand;
    String? Engine;
    String? EngineDescription;
    String? Line;
    String? Upholstery;
    String? UpholsteryDescription;
    List<String>? Packages = [];
    double? P11D;
    List<Price>? Prices = [];
    String? VehicleClass;
    String? ProductRange;
    String? VehicleType;
    double? Emission;
    String? Baumuster;
    bool? IsSellable;
    String? Bm7NST;
    double? ElectricRange;
    double? ElectricConsumption;
    bool? IsDisplayStock;
    int? DisplayRetailer_Id;
    String? DisplayRetailer;
    String? DisplayRetailerGssnId;
    Retailer? Retailer;
    int? Age;
    String? ModelYearCode;
    String? HalfModelYearCode;
    String? FullModelYearCode;
    String? ProductionDate;
    String? ChassisNumber;
    bool? EligibleForIntegratedServiceCare;

    VehicleBaseDetail({this.Description,this.CommissionNumber,this.PortArrivalDate,this.OfferExpiryDate,this.Fuel,this.Transmission,this.TransmissionType,this.Colour,this.ColourDescription,this.ImageUrl,this.Specialist,this.VehicleCriteriaMatch,this.ColourGroup,this.Model,this.BodyStyle,this.Brand,this.Engine,this.EngineDescription,this.Line,this.Upholstery,this.UpholsteryDescription,this.Packages,this.P11D,this.Prices,this.VehicleClass,this.ProductRange,this.VehicleType,this.Emission,this.Baumuster,this.IsSellable,this.Bm7NST,this.ElectricRange,this.ElectricConsumption,this.IsDisplayStock,this.DisplayRetailer_Id,this.DisplayRetailer,this.DisplayRetailerGssnId,this.Retailer,this.Age,this.ModelYearCode,this.HalfModelYearCode,this.FullModelYearCode,this.ProductionDate,this.ChassisNumber,this.EligibleForIntegratedServiceCare});
    VehicleBaseDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Description = json['Description'];
        CommissionNumber = json['CommissionNumber'];
        PortArrivalDate = json['PortArrivalDate'];
        OfferExpiryDate = json['OfferExpiryDate'];
        Fuel = json['Fuel'];
        Transmission = json['Transmission'];
        TransmissionType = json['TransmissionType'];
        Colour = json['Colour'];
        ColourDescription = json['ColourDescription'];
        ImageUrl = json['ImageUrl'];
        Specialist = json['Specialist'];
        VehicleCriteriaMatch = JsonConverters.fromJson(json['VehicleCriteriaMatch'],'VehicleCriteriaMatch',context!);
        ColourGroup = json['ColourGroup'];
        Model = json['Model'];
        BodyStyle = json['BodyStyle'];
        Brand = json['Brand'];
        Engine = json['Engine'];
        EngineDescription = json['EngineDescription'];
        Line = json['Line'];
        Upholstery = json['Upholstery'];
        UpholsteryDescription = json['UpholsteryDescription'];
        Packages = JsonConverters.fromJson(json['Packages'],'List<String>',context!);
        P11D = JsonConverters.toDouble(json['P11D']);
        Prices = JsonConverters.fromJson(json['Prices'],'List<Price>',context!);
        VehicleClass = json['VehicleClass'];
        ProductRange = json['ProductRange'];
        VehicleType = json['VehicleType'];
        Emission = JsonConverters.toDouble(json['Emission']);
        Baumuster = json['Baumuster'];
        IsSellable = json['IsSellable'];
        Bm7NST = json['Bm7NST'];
        ElectricRange = JsonConverters.toDouble(json['ElectricRange']);
        ElectricConsumption = JsonConverters.toDouble(json['ElectricConsumption']);
        IsDisplayStock = json['IsDisplayStock'];
        DisplayRetailer_Id = json['DisplayRetailer_Id'];
        DisplayRetailer = json['DisplayRetailer'];
        DisplayRetailerGssnId = json['DisplayRetailerGssnId'];
        Retailer = JsonConverters.fromJson(json['Retailer'],'Retailer',context!);
        Age = json['Age'];
        ModelYearCode = json['ModelYearCode'];
        HalfModelYearCode = json['HalfModelYearCode'];
        FullModelYearCode = json['FullModelYearCode'];
        ProductionDate = json['ProductionDate'];
        ChassisNumber = json['ChassisNumber'];
        EligibleForIntegratedServiceCare = json['EligibleForIntegratedServiceCare'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Description': Description,
        'CommissionNumber': CommissionNumber,
        'PortArrivalDate': PortArrivalDate,
        'OfferExpiryDate': OfferExpiryDate,
        'Fuel': Fuel,
        'Transmission': Transmission,
        'TransmissionType': TransmissionType,
        'Colour': Colour,
        'ColourDescription': ColourDescription,
        'ImageUrl': ImageUrl,
        'Specialist': Specialist,
        'VehicleCriteriaMatch': JsonConverters.toJson(VehicleCriteriaMatch,'VehicleCriteriaMatch',context!),
        'ColourGroup': ColourGroup,
        'Model': Model,
        'BodyStyle': BodyStyle,
        'Brand': Brand,
        'Engine': Engine,
        'EngineDescription': EngineDescription,
        'Line': Line,
        'Upholstery': Upholstery,
        'UpholsteryDescription': UpholsteryDescription,
        'Packages': JsonConverters.toJson(Packages,'List<String>',context!),
        'P11D': P11D,
        'Prices': JsonConverters.toJson(Prices,'List<Price>',context!),
        'VehicleClass': VehicleClass,
        'ProductRange': ProductRange,
        'VehicleType': VehicleType,
        'Emission': Emission,
        'Baumuster': Baumuster,
        'IsSellable': IsSellable,
        'Bm7NST': Bm7NST,
        'ElectricRange': ElectricRange,
        'ElectricConsumption': ElectricConsumption,
        'IsDisplayStock': IsDisplayStock,
        'DisplayRetailer_Id': DisplayRetailer_Id,
        'DisplayRetailer': DisplayRetailer,
        'DisplayRetailerGssnId': DisplayRetailerGssnId,
        'Retailer': JsonConverters.toJson(Retailer,'Retailer',context!),
        'Age': Age,
        'ModelYearCode': ModelYearCode,
        'HalfModelYearCode': HalfModelYearCode,
        'FullModelYearCode': FullModelYearCode,
        'ProductionDate': ProductionDate,
        'ChassisNumber': ChassisNumber,
        'EligibleForIntegratedServiceCare': EligibleForIntegratedServiceCare
    });

    getTypeName() => "VehicleBaseDetail";
    TypeContext? context = _ctx;
}

class VehicleConsumption implements IConvertible
{
    int? Id;
    double? Lkm;
    double? Mpg;

    VehicleConsumption({this.Id,this.Lkm,this.Mpg});
    VehicleConsumption.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Lkm = JsonConverters.toDouble(json['Lkm']);
        Mpg = JsonConverters.toDouble(json['Mpg']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Lkm': Lkm,
        'Mpg': Mpg
    };

    getTypeName() => "VehicleConsumption";
    TypeContext? context = _ctx;
}

class Equipment implements IConvertible
{
    int? Id;
    String? Code;
    String? Description;

    Equipment({this.Id,this.Code,this.Description});
    Equipment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Code = json['Code'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Code': Code,
        'Description': Description
    };

    getTypeName() => "Equipment";
    TypeContext? context = _ctx;
}

class Equipmentv2 extends Equipment implements IConvertible
{
    int? Importance;
    bool? IsAdditional;

    Equipmentv2({this.Importance,this.IsAdditional});
    Equipmentv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Importance = json['Importance'];
        IsAdditional = json['IsAdditional'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Importance': Importance,
        'IsAdditional': IsAdditional
    });

    getTypeName() => "Equipmentv2";
    TypeContext? context = _ctx;
}

class VehicleEquipmentCategory implements IConvertible
{
    int? Order;
    String? Code;
    String? Description;
    List<Equipmentv2>? Equipment;

    VehicleEquipmentCategory({this.Order,this.Code,this.Description,this.Equipment});
    VehicleEquipmentCategory.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Order = json['Order'];
        Code = json['Code'];
        Description = json['Description'];
        Equipment = JsonConverters.fromJson(json['Equipment'],'List<Equipmentv2>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Order': Order,
        'Code': Code,
        'Description': Description,
        'Equipment': JsonConverters.toJson(Equipment,'List<Equipmentv2>',context!)
    };

    getTypeName() => "VehicleEquipmentCategory";
    TypeContext? context = _ctx;
}

class VehicleEmissionClass implements IConvertible
{
    String? Colour;
    String? Rating;

    VehicleEmissionClass({this.Colour,this.Rating});
    VehicleEmissionClass.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Colour = json['Colour'];
        Rating = json['Rating'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Colour': Colour,
        'Rating': Rating
    };

    getTypeName() => "VehicleEmissionClass";
    TypeContext? context = _ctx;
}

class VehicleAttribute implements IConvertible
{
    String? Description;
    String? Value;

    VehicleAttribute({this.Description,this.Value});
    VehicleAttribute.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Description = json['Description'];
        Value = json['Value'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Description': Description,
        'Value': Value
    };

    getTypeName() => "VehicleAttribute";
    TypeContext? context = _ctx;
}

class VehicleIntegratedServiceCareOption implements IConvertible
{
    String? OptionCode;
    String? BM7NST;
    String? FullModelYear;
    String? IntegratedProductType;
    String? CustomerDescription;
    String? OneAgentProductType;

    VehicleIntegratedServiceCareOption({this.OptionCode,this.BM7NST,this.FullModelYear,this.IntegratedProductType,this.CustomerDescription,this.OneAgentProductType});
    VehicleIntegratedServiceCareOption.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        OptionCode = json['OptionCode'];
        BM7NST = json['BM7NST'];
        FullModelYear = json['FullModelYear'];
        IntegratedProductType = json['IntegratedProductType'];
        CustomerDescription = json['CustomerDescription'];
        OneAgentProductType = json['OneAgentProductType'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'OptionCode': OptionCode,
        'BM7NST': BM7NST,
        'FullModelYear': FullModelYear,
        'IntegratedProductType': IntegratedProductType,
        'CustomerDescription': CustomerDescription,
        'OneAgentProductType': OneAgentProductType
    };

    getTypeName() => "VehicleIntegratedServiceCareOption";
    TypeContext? context = _ctx;
}

class VehicleDetail extends VehicleBaseDetail implements IConvertible
{
    String? RetailPrice_ExVAT;
    String? OTR;
    String? ActualPrice;
    String? TotalOfferValue;
    bool? IsHOBackOrderAccountVehicle;
    VehicleConsumption? ConsumptionCombined;
    VehicleConsumption? ConsumptionExtraUrban;
    VehicleConsumption? ConsumptionUrban;
    VehicleConsumption? WltpFuelConsumptionCombined;
    VehicleConsumption? WltpFuelConsumptionExtraHigh;
    VehicleConsumption? WltpFuelConsumptionHigh;
    VehicleConsumption? WltpFuelConsumptionLow;
    VehicleConsumption? WltpFuelConsumptionMedium;
    List<VehicleEquipmentCategory>? EquipmentCategories;
    VehicleEmissionClass? VehicleEnergyEfficiencyClass;
    List<VehicleAttribute>? VehicleData;
    List<VehicleIntegratedServiceCareOption>? IntegratedProducts = [];
    List<String>? IspVehicleCustomerDescriptions;
    String? ColourCode;
    String? UpholsteryCode;

    VehicleDetail({this.RetailPrice_ExVAT,this.OTR,this.ActualPrice,this.TotalOfferValue,this.IsHOBackOrderAccountVehicle,this.ConsumptionCombined,this.ConsumptionExtraUrban,this.ConsumptionUrban,this.WltpFuelConsumptionCombined,this.WltpFuelConsumptionExtraHigh,this.WltpFuelConsumptionHigh,this.WltpFuelConsumptionLow,this.WltpFuelConsumptionMedium,this.EquipmentCategories,this.VehicleEnergyEfficiencyClass,this.VehicleData,this.IntegratedProducts,this.IspVehicleCustomerDescriptions,this.ColourCode,this.UpholsteryCode});
    VehicleDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        RetailPrice_ExVAT = json['RetailPrice_ExVAT'];
        OTR = json['OTR'];
        ActualPrice = json['ActualPrice'];
        TotalOfferValue = json['TotalOfferValue'];
        IsHOBackOrderAccountVehicle = json['IsHOBackOrderAccountVehicle'];
        ConsumptionCombined = JsonConverters.fromJson(json['ConsumptionCombined'],'VehicleConsumption',context!);
        ConsumptionExtraUrban = JsonConverters.fromJson(json['ConsumptionExtraUrban'],'VehicleConsumption',context!);
        ConsumptionUrban = JsonConverters.fromJson(json['ConsumptionUrban'],'VehicleConsumption',context!);
        WltpFuelConsumptionCombined = JsonConverters.fromJson(json['WltpFuelConsumptionCombined'],'VehicleConsumption',context!);
        WltpFuelConsumptionExtraHigh = JsonConverters.fromJson(json['WltpFuelConsumptionExtraHigh'],'VehicleConsumption',context!);
        WltpFuelConsumptionHigh = JsonConverters.fromJson(json['WltpFuelConsumptionHigh'],'VehicleConsumption',context!);
        WltpFuelConsumptionLow = JsonConverters.fromJson(json['WltpFuelConsumptionLow'],'VehicleConsumption',context!);
        WltpFuelConsumptionMedium = JsonConverters.fromJson(json['WltpFuelConsumptionMedium'],'VehicleConsumption',context!);
        EquipmentCategories = JsonConverters.fromJson(json['EquipmentCategories'],'List<VehicleEquipmentCategory>',context!);
        VehicleEnergyEfficiencyClass = JsonConverters.fromJson(json['VehicleEnergyEfficiencyClass'],'VehicleEmissionClass',context!);
        VehicleData = JsonConverters.fromJson(json['VehicleData'],'List<VehicleAttribute>',context!);
        IntegratedProducts = JsonConverters.fromJson(json['IntegratedProducts'],'List<VehicleIntegratedServiceCareOption>',context!);
        IspVehicleCustomerDescriptions = JsonConverters.fromJson(json['IspVehicleCustomerDescriptions'],'List<String>',context!);
        ColourCode = json['ColourCode'];
        UpholsteryCode = json['UpholsteryCode'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'RetailPrice_ExVAT': RetailPrice_ExVAT,
        'OTR': OTR,
        'ActualPrice': ActualPrice,
        'TotalOfferValue': TotalOfferValue,
        'IsHOBackOrderAccountVehicle': IsHOBackOrderAccountVehicle,
        'ConsumptionCombined': JsonConverters.toJson(ConsumptionCombined,'VehicleConsumption',context!),
        'ConsumptionExtraUrban': JsonConverters.toJson(ConsumptionExtraUrban,'VehicleConsumption',context!),
        'ConsumptionUrban': JsonConverters.toJson(ConsumptionUrban,'VehicleConsumption',context!),
        'WltpFuelConsumptionCombined': JsonConverters.toJson(WltpFuelConsumptionCombined,'VehicleConsumption',context!),
        'WltpFuelConsumptionExtraHigh': JsonConverters.toJson(WltpFuelConsumptionExtraHigh,'VehicleConsumption',context!),
        'WltpFuelConsumptionHigh': JsonConverters.toJson(WltpFuelConsumptionHigh,'VehicleConsumption',context!),
        'WltpFuelConsumptionLow': JsonConverters.toJson(WltpFuelConsumptionLow,'VehicleConsumption',context!),
        'WltpFuelConsumptionMedium': JsonConverters.toJson(WltpFuelConsumptionMedium,'VehicleConsumption',context!),
        'EquipmentCategories': JsonConverters.toJson(EquipmentCategories,'List<VehicleEquipmentCategory>',context!),
        'VehicleEnergyEfficiencyClass': JsonConverters.toJson(VehicleEnergyEfficiencyClass,'VehicleEmissionClass',context!),
        'VehicleData': JsonConverters.toJson(VehicleData,'List<VehicleAttribute>',context!),
        'IntegratedProducts': JsonConverters.toJson(IntegratedProducts,'List<VehicleIntegratedServiceCareOption>',context!),
        'IspVehicleCustomerDescriptions': JsonConverters.toJson(IspVehicleCustomerDescriptions,'List<String>',context!),
        'ColourCode': ColourCode,
        'UpholsteryCode': UpholsteryCode
    });

    getTypeName() => "VehicleDetail";
    TypeContext? context = _ctx;
}

class BackOrder extends BackOrderBase implements IConvertible
{
    VehicleDetail? Vehicle;

    BackOrder({this.Vehicle});
    BackOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Vehicle = JsonConverters.fromJson(json['Vehicle'],'VehicleDetail',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Vehicle': JsonConverters.toJson(Vehicle,'VehicleDetail',context!)
    });

    getTypeName() => "BackOrder";
    TypeContext? context = _ctx;
}

class BackOrderDetail extends BackOrder implements IConvertible
{
    bool? OrderCta;
    String? StatusName;
    bool? IsComplete;
    bool? IsCancelled;
    bool? CanShowVehicleDetails;

    BackOrderDetail({this.OrderCta,this.StatusName,this.IsComplete,this.IsCancelled,this.CanShowVehicleDetails});
    BackOrderDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        OrderCta = json['OrderCta'];
        StatusName = json['StatusName'];
        IsComplete = json['IsComplete'];
        IsCancelled = json['IsCancelled'];
        CanShowVehicleDetails = json['CanShowVehicleDetails'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'OrderCta': OrderCta,
        'StatusName': StatusName,
        'IsComplete': IsComplete,
        'IsCancelled': IsCancelled,
        'CanShowVehicleDetails': CanShowVehicleDetails
    });

    getTypeName() => "BackOrderDetail";
    TypeContext? context = _ctx;
}

class LookupValue implements IConvertible
{
    int? Id;
    String? Label;

    LookupValue({this.Id,this.Label});
    LookupValue.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Label = json['Label'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Label': Label
    };

    getTypeName() => "LookupValue";
    TypeContext? context = _ctx;
}

class GetBackOrderResponse implements IConvertible
{
    BackOrderDetail? BackOrder;
    VehicleDetail? Vehicle;
    List<LookupValue>? AssistanceProviders = [];
    CarConfiguratorResponse? CarConfiguration;

    GetBackOrderResponse({this.BackOrder,this.Vehicle,this.AssistanceProviders,this.CarConfiguration});
    GetBackOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BackOrder = JsonConverters.fromJson(json['BackOrder'],'BackOrderDetail',context!);
        Vehicle = JsonConverters.fromJson(json['Vehicle'],'VehicleDetail',context!);
        AssistanceProviders = JsonConverters.fromJson(json['AssistanceProviders'],'List<LookupValue>',context!);
        CarConfiguration = JsonConverters.fromJson(json['CarConfiguration'],'CarConfiguratorResponse',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BackOrder': JsonConverters.toJson(BackOrder,'BackOrderDetail',context!),
        'Vehicle': JsonConverters.toJson(Vehicle,'VehicleDetail',context!),
        'AssistanceProviders': JsonConverters.toJson(AssistanceProviders,'List<LookupValue>',context!),
        'CarConfiguration': JsonConverters.toJson(CarConfiguration,'CarConfiguratorResponse',context!)
    };

    getTypeName() => "GetBackOrderResponse";
    TypeContext? context = _ctx;
}

class GetBackOrderRequest implements IGet, IConvertible
{
    String? Guid;

    GetBackOrderRequest({this.Guid});
    GetBackOrderRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Guid = json['Guid'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Guid': Guid
    };

    getTypeName() => "GetBackOrderRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'prod_api_agency_orch_mb_dhc.rapp_customers.co.uk', types: <String, TypeInfo> {
    'BackOrderHistory': TypeInfo(TypeOf.Class, create:() => BackOrderHistory()),
    'Order': TypeInfo(TypeOf.Class, create:() => Order()),
    'RetailerOpeningTime': TypeInfo(TypeOf.Class, create:() => RetailerOpeningTime()),
    'RetailerOpeningTimes': TypeInfo(TypeOf.Class, create:() => RetailerOpeningTimes()),
    'List<RetailerOpeningTime>': TypeInfo(TypeOf.Class, create:() => <RetailerOpeningTime>[]),
    'Retailer': TypeInfo(TypeOf.Class, create:() => Retailer()),
    'MotabilityPricingCsv': TypeInfo(TypeOf.Class, create:() => MotabilityPricingCsv()),
    'MotabilityPricingStatus': TypeInfo(TypeOf.Enum, enumValues:MotabilityPricingStatus.values),
    'MotabilityPricing': TypeInfo(TypeOf.Class, create:() => MotabilityPricing()),
    'CarConfigurator': TypeInfo(TypeOf.Class, create:() => CarConfigurator()),
    'KeyInformation': TypeInfo(TypeOf.Class, create:() => KeyInformation()),
    'OrderingOptions': TypeInfo(TypeOf.Class, create:() => OrderingOptions()),
    'CarConfiguratorResponse': TypeInfo(TypeOf.Class, create:() => CarConfiguratorResponse()),
    'BackOrderBase': TypeInfo(TypeOf.Class, create:() => BackOrderBase()),
    'List<BackOrderHistory>': TypeInfo(TypeOf.Class, create:() => <BackOrderHistory>[]),
    'Vehicle': TypeInfo(TypeOf.Class, create:() => Vehicle()),
    'VehicleCriteriaMatch': TypeInfo(TypeOf.Class, create:() => VehicleCriteriaMatch()),
    'OfferPriceProductType': TypeInfo(TypeOf.Enum, enumValues:OfferPriceProductType.values),
    'Price': TypeInfo(TypeOf.Class, create:() => Price()),
    'VehicleBaseDetail': TypeInfo(TypeOf.Class, create:() => VehicleBaseDetail()),
    'List<Price>': TypeInfo(TypeOf.Class, create:() => <Price>[]),
    'VehicleConsumption': TypeInfo(TypeOf.Class, create:() => VehicleConsumption()),
    'Equipment': TypeInfo(TypeOf.Class, create:() => Equipment()),
    'Equipmentv2': TypeInfo(TypeOf.Class, create:() => Equipmentv2()),
    'VehicleEquipmentCategory': TypeInfo(TypeOf.Class, create:() => VehicleEquipmentCategory()),
    'List<Equipmentv2>': TypeInfo(TypeOf.Class, create:() => <Equipmentv2>[]),
    'VehicleEmissionClass': TypeInfo(TypeOf.Class, create:() => VehicleEmissionClass()),
    'VehicleAttribute': TypeInfo(TypeOf.Class, create:() => VehicleAttribute()),
    'VehicleIntegratedServiceCareOption': TypeInfo(TypeOf.Class, create:() => VehicleIntegratedServiceCareOption()),
    'VehicleDetail': TypeInfo(TypeOf.Class, create:() => VehicleDetail()),
    'List<VehicleEquipmentCategory>': TypeInfo(TypeOf.Class, create:() => <VehicleEquipmentCategory>[]),
    'List<VehicleAttribute>': TypeInfo(TypeOf.Class, create:() => <VehicleAttribute>[]),
    'List<VehicleIntegratedServiceCareOption>': TypeInfo(TypeOf.Class, create:() => <VehicleIntegratedServiceCareOption>[]),
    'BackOrder': TypeInfo(TypeOf.Class, create:() => BackOrder()),
    'BackOrderDetail': TypeInfo(TypeOf.Class, create:() => BackOrderDetail()),
    'LookupValue': TypeInfo(TypeOf.Class, create:() => LookupValue()),
    'GetBackOrderResponse': TypeInfo(TypeOf.Class, create:() => GetBackOrderResponse()),
    'List<LookupValue>': TypeInfo(TypeOf.Class, create:() => <LookupValue>[]),
    'GetBackOrderRequest': TypeInfo(TypeOf.Class, create:() => GetBackOrderRequest()),
});

Dart GetBackOrderRequest 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

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/backorder/{Guid} HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"BackOrder":{"OrderCta":false,"StatusName":"0","IsComplete":false,"IsCancelled":false,"CanShowVehicleDetails":false,"Vehicle":{"RetailPrice_ExVAT":"String","OTR":"String","ActualPrice":"String","TotalOfferValue":"String","IsHOBackOrderAccountVehicle":false,"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},"EquipmentCategories":[{"Order":0,"Code":"String","Description":"String","Equipment":[{"Importance":0,"IsAdditional":false,"Id":0,"Code":"String","Description":"String"}]}],"VehicleEnergyEfficiencyClass":{"Colour":"String","Rating":"String"},"VehicleData":[{"Description":"String","Value":"String"}],"IntegratedProducts":[{"OptionCode":"String","BM7NST":"String","FullModelYear":"String","IntegratedProductType":"String","CustomerDescription":"String","OneAgentProductType":"String"}],"IspVehicleCustomerDescriptions":["String"],"ColourCode":"String","UpholsteryCode":"String","Description":"String","CommissionNumber":"String","PortArrivalDate":"String","OfferExpiryDate":"String","Fuel":"String","Transmission":"String","TransmissionType":"String","Colour":"String","ColourDescription":"String","ImageUrl":"String","Specialist":false,"VehicleCriteriaMatch":{"Fuel":false,"Transmission":false,"Colour":false,"Upholstery":false,"Line":false,"Engine":false,"BodyStyle":false,"Packages":false},"ColourGroup":"String","Model":"String","BodyStyle":"String","Brand":"String","Engine":"String","EngineDescription":"String","Line":"String","Upholstery":"String","UpholsteryDescription":"String","Packages":["String"],"P11D":0,"Prices":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Product":"LIST_PRICE"}],"VehicleClass":"String","ProductRange":"String","VehicleType":"String","Emission":0,"Baumuster":"String","IsSellable":false,"Bm7NST":"String","ElectricRange":0,"ElectricConsumption":0,"IsDisplayStock":false,"DisplayRetailer_Id":0,"DisplayRetailer":"String","DisplayRetailerGssnId":"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"}]}},"Age":0,"ModelYearCode":"String","HalfModelYearCode":"String","FullModelYearCode":"String","ProductionDate":"String","ChassisNumber":"String","EligibleForIntegratedServiceCare":false,"Vin":"String"},"Guid":"String","Status":0,"CustomerId":"String","Id":0,"Reference":"String","Agent":"String","Gssn":"String","CreationDate":"\/Date(-62135596800000-0000)\/","MaintenanceDate":"\/Date(-62135596800000-0000)\/","CustomerCriteria":"String","AgentCriteria":"String","History":[{"Status":0,"CommissionNumber":"String","VIN":"String","CustomerCriteria":"String","AgentCriteria":"String","CreationDate":"\/Date(-62135596800000-0000)\/","MaintenanceDate":"\/Date(-62135596800000-0000)\/","GasId":"String","Sellable":false,"AdditionalInformation":"String","Reason":"String","ConfigCode":"String","FleetBaseOrder":"String","AssistanceDetail":"String","AssistanceProvider":"String","LinkedByUserType":"String","MotabilityVTN":"String","MotabilityBackOrderDropDown":"String","MotabilityValidFrom":"\/Date(-62135596800000-0000)\/","MotabilityValidTo":"\/Date(-62135596800000-0000)\/"}],"IsAllocatedToOrder":false,"Vin":"String","CommissionNumber":"String","Order":{"Guid":"00000000000000000000000000000000","Reference":"String","Status":0,"CustomerId":"String","MulesoftReference":"String","GasId":"String","OrderDate":"String","OfferSnapShot":"String"},"Source":"String","Specialist":false,"OutrightPurchase":false,"Sellable":false,"MulesoftReference":"String","AdditionalInformation":"String","ConfigCode":"String","FleetBaseOrder":"String","GasId":"String","OutrightPurchaseCustomerIdentifier":"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"}]}},"CustomerMode":0,"CanEdit":false,"DigitalLoungeGssnId":"String","DigitalLounge":"String","Motability":false,"MotabilityPricing":{"MotabilityPricingStatus":"Pending","Id":0,"CriteriaBM7NST":"String","VTN":"String","BackOrderDropDown":"String","CriteriaFullModelYearCode":"String","CriteriaValidOptionCodes":"String","CriteriaInvalidOptionCodes":"String","PIPNet":0,"PIPVat":0,"PIPGross":0,"WPMSNet":0,"WPMSVat":0,"WPMSGross":0,"DiscountNet":0,"DiscountVat":0,"DiscountGross":0,"ListPriceNet":0,"ListPriceVat":0,"ListPriceGross":0,"DeliveryChargeNet":0,"DeliveryChargeVat":0,"DeliveryChargeGross":0,"FuelChargeNet":0,"FuelChargeVat":0,"FuelChargeGross":0,"NumberPlateFeeNet":0,"NumberPlateFeeVat":0,"NumberPlateFeeGross":0,"FirstRegistrationFeeNet":0,"FirstRegistrationFeeVat":0,"FirstRegistrationFeeGross":0,"RoadFundLicenceNet":0,"RoadFundLicenceVat":0,"RoadFundLicenceGross":0,"ValidFrom":"\/Date(-62135596800000-0000)\/","ValidTo":"\/Date(-62135596800000-0000)\/"},"LinkedByUserType":"String","AssistanceProviderId":0,"AssistanceProvider":"String","AssistanceDetail":"String","LastAssistanceMessageDate":"\/Date(-62135596800000-0000)\/","LastAssistanceUser":"String","IsCOPConverter":false,"IsEligibleCOPConverter":false,"CarConfigurator":{"Id":0,"BackOrderId":0,"ConfiguratorCode":"String","GasId":"String","Status":0,"DateOfLastUpdate":"\/Date(-62135596800000-0000)\/","LastExceptionMessage":"String","LastException":"String"},"CarConfiguratorResponse":{"Name":"String","KeyInformation":{"BM7NST":"String","ConfigurationDate":"String","ModelYear":"String","HalfYear":"String"},"OrderingOptions":{"Interior":["String"],"Exterior":["String"],"Other":["String"]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"ConfiguratorCode":"String"}},"Vehicle":{"RetailPrice_ExVAT":"String","OTR":"String","ActualPrice":"String","TotalOfferValue":"String","IsHOBackOrderAccountVehicle":false,"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},"EquipmentCategories":[{"Order":0,"Code":"String","Description":"String","Equipment":[{"Importance":0,"IsAdditional":false,"Id":0,"Code":"String","Description":"String"}]}],"VehicleEnergyEfficiencyClass":{"Colour":"String","Rating":"String"},"VehicleData":[{"Description":"String","Value":"String"}],"IntegratedProducts":[{"OptionCode":"String","BM7NST":"String","FullModelYear":"String","IntegratedProductType":"String","CustomerDescription":"String","OneAgentProductType":"String"}],"IspVehicleCustomerDescriptions":["String"],"ColourCode":"String","UpholsteryCode":"String","Description":"String","CommissionNumber":"String","PortArrivalDate":"String","OfferExpiryDate":"String","Fuel":"String","Transmission":"String","TransmissionType":"String","Colour":"String","ColourDescription":"String","ImageUrl":"String","Specialist":false,"VehicleCriteriaMatch":{"Fuel":false,"Transmission":false,"Colour":false,"Upholstery":false,"Line":false,"Engine":false,"BodyStyle":false,"Packages":false},"ColourGroup":"String","Model":"String","BodyStyle":"String","Brand":"String","Engine":"String","EngineDescription":"String","Line":"String","Upholstery":"String","UpholsteryDescription":"String","Packages":["String"],"P11D":0,"Prices":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Product":"LIST_PRICE"}],"VehicleClass":"String","ProductRange":"String","VehicleType":"String","Emission":0,"Baumuster":"String","IsSellable":false,"Bm7NST":"String","ElectricRange":0,"ElectricConsumption":0,"IsDisplayStock":false,"DisplayRetailer_Id":0,"DisplayRetailer":"String","DisplayRetailerGssnId":"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"}]}},"Age":0,"ModelYearCode":"String","HalfModelYearCode":"String","FullModelYearCode":"String","ProductionDate":"String","ChassisNumber":"String","EligibleForIntegratedServiceCare":false,"Vin":"String"},"AssistanceProviders":[{}],"CarConfiguration":{"Name":"String","KeyInformation":{"BM7NST":"String","ConfigurationDate":"String","ModelYear":"String","HalfYear":"String"},"OrderingOptions":{"Interior":["String"],"Exterior":["String"],"Other":["String"]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"ConfiguratorCode":"String"}}