Mercedes.Agency.Orchestration.API

<back to all web services

GetVehicleRequest

Vehicle
Requires Authentication
The following routes are available for this service:
POST/v1/vehicleGet Vehicle by Vin
import 'package:servicestack/servicestack.dart';

class GetVehicleRequest implements IConvertible
{
    String? Vin;
    bool? IncludeAllocatedToOrder;
    String? Gssn;
    bool? IsOneAdmin;

    GetVehicleRequest({this.Vin,this.IncludeAllocatedToOrder,this.Gssn,this.IsOneAdmin});
    GetVehicleRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Model implements IConvertible
{
    int? Id;
    String? Description;
    String? DisplayName;
    String? ImageUrlSmall;
    String? ImageUrlMedium;
    String? ImageUrlLarge;
    bool? Specialist;
    int? Priority;
    bool? ExcludeFromOnlineShowroomFilters;

    Model({this.Id,this.Description,this.DisplayName,this.ImageUrlSmall,this.ImageUrlMedium,this.ImageUrlLarge,this.Specialist,this.Priority,this.ExcludeFromOnlineShowroomFilters});
    Model.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        DisplayName = json['DisplayName'];
        ImageUrlSmall = json['ImageUrlSmall'];
        ImageUrlMedium = json['ImageUrlMedium'];
        ImageUrlLarge = json['ImageUrlLarge'];
        Specialist = json['Specialist'];
        Priority = json['Priority'];
        ExcludeFromOnlineShowroomFilters = json['ExcludeFromOnlineShowroomFilters'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'DisplayName': DisplayName,
        'ImageUrlSmall': ImageUrlSmall,
        'ImageUrlMedium': ImageUrlMedium,
        'ImageUrlLarge': ImageUrlLarge,
        'Specialist': Specialist,
        'Priority': Priority,
        'ExcludeFromOnlineShowroomFilters': ExcludeFromOnlineShowroomFilters
    };

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

class BodyStyle implements IConvertible
{
    int? Id;
    String? Description;
    List<Model>? Models;

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

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        Models = JsonConverters.fromJson(json['Models'],'List<Model>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'Models': JsonConverters.toJson(Models,'List<Model>',context!)
    };

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

class Brand implements IConvertible
{
    int? Id;
    String? Description;
    String? DisplayName;
    List<BodyStyle>? BodyStyles;

    Brand({this.Id,this.Description,this.DisplayName,this.BodyStyles});
    Brand.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        DisplayName = json['DisplayName'];
        BodyStyles = JsonConverters.fromJson(json['BodyStyles'],'List<BodyStyle>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'DisplayName': DisplayName,
        'BodyStyles': JsonConverters.toJson(BodyStyles,'List<BodyStyle>',context!)
    };

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

class Engine implements IConvertible
{
    int? Id;
    String? Badge;

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

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

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

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

class Media implements IConvertible
{
    bool? NoImage;
    String? MainImageUrl;

    Media({this.NoImage,this.MainImageUrl});
    Media.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

    getTypeName() => "Media";
    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 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 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 VehicleDetailDto implements IConvertible
{
    String? BodyStyle;
    String? Vin;
    String? Description;
    String? Colour;
    String? ColourCode;
    String? ColourDescription;
    String? ColourGroup;
    String? Model;
    String? CommissionNumber;
    int? BrandId;
    Brand? Brand;
    Engine? Engine;
    String? EngineBadge;
    Media? Media;
    String? Line;
    String? UpholsteryCode;
    String? UpholsteryType;
    String? Upholstery;
    String? UpholsteryDescription;
    List<String>? AvailablePackages = [];
    List<String>? Packages = [];
    double? P11D;
    DateTime? PortArrivalDate;
    List<Price>? Prices = [];
    String? TransmissionType;
    String? FuelType;
    String? VehicleClass;
    String? ProductRange;
    String? VehicleType;
    double? Emission;
    bool? IsAvailableOnline;
    bool? UnderOffer;
    bool? IsExcluded;
    bool? IsSellable;
    bool? OnHold;
    double? ElectricConsumption;
    double? ElectricRange;
    String? ImageUrl;
    String? Baumuster;
    Retailer? Retailer;
    String? Bm7NST;
    double? OTR;
    double? ActualPrice;
    bool? IsDisplayStock;
    int? DisplayRetailerId;
    String? DisplayRetailer;
    String? DisplayRetailerGssnId;
    String? DisplayRetailerMarketAreaId;
    bool? IsSmartDisplayRetailer;
    bool? IsSpecialistCar;
    int? Age;
    bool? Secured;
    bool? IsHOBackOrderAccountVehicle;
    bool? IsAllocatedToBackOrder;
    String? UsageCode;
    double? EmissionCombined;
    String? NormalisedEmissionDirective;
    bool? HasMildHybridEquipmentCode;
    double? RetailPriceExVat;
    double? RetailPrice_IncVAT;
    double? RetailPrice_ExVAT;
    int? ModelId;
    String? VID;
    String? ProductionDate;
    String? FullModelYearCode;
    String? ChassisNumber;
    bool? EligibleForIntegratedServiceCare;
    String? AccountType;
    VehicleConsumption? ConsumptionCombined;
    VehicleConsumption? ConsumptionExtraUrban;
    VehicleConsumption? ConsumptionUrban;
    VehicleConsumption? WltpFuelConsumptionCombined;
    VehicleConsumption? WltpFuelConsumptionExtraHigh;
    VehicleConsumption? WltpFuelConsumptionHigh;
    VehicleConsumption? WltpFuelConsumptionLow;
    VehicleConsumption? WltpFuelConsumptionMedium;
    List<Equipmentv2>? Equipment;
    List<VehicleEquipmentCategory>? EquipmentCategories;
    VehicleEmissionClass? EnergyEfficiencyClass;
    List<VehicleAttribute>? VehicleData;
    List<VehicleIntegratedServiceCareOption>? IntegratedServiceCareOptions = [];
    List<String>? IspVehicleCustomerDescriptions;

    VehicleDetailDto({this.BodyStyle,this.Vin,this.Description,this.Colour,this.ColourCode,this.ColourDescription,this.ColourGroup,this.Model,this.CommissionNumber,this.BrandId,this.Brand,this.Engine,this.EngineBadge,this.Media,this.Line,this.UpholsteryCode,this.UpholsteryType,this.Upholstery,this.UpholsteryDescription,this.AvailablePackages,this.Packages,this.P11D,this.PortArrivalDate,this.Prices,this.TransmissionType,this.FuelType,this.VehicleClass,this.ProductRange,this.VehicleType,this.Emission,this.IsAvailableOnline,this.UnderOffer,this.IsExcluded,this.IsSellable,this.OnHold,this.ElectricConsumption,this.ElectricRange,this.ImageUrl,this.Baumuster,this.Retailer,this.Bm7NST,this.OTR,this.ActualPrice,this.IsDisplayStock,this.DisplayRetailerId,this.DisplayRetailer,this.DisplayRetailerGssnId,this.DisplayRetailerMarketAreaId,this.IsSmartDisplayRetailer,this.IsSpecialistCar,this.Age,this.Secured,this.IsHOBackOrderAccountVehicle,this.IsAllocatedToBackOrder,this.UsageCode,this.EmissionCombined,this.NormalisedEmissionDirective,this.HasMildHybridEquipmentCode,this.RetailPriceExVat,this.RetailPrice_IncVAT,this.RetailPrice_ExVAT,this.ModelId,this.VID,this.ProductionDate,this.FullModelYearCode,this.ChassisNumber,this.EligibleForIntegratedServiceCare,this.AccountType,this.ConsumptionCombined,this.ConsumptionExtraUrban,this.ConsumptionUrban,this.WltpFuelConsumptionCombined,this.WltpFuelConsumptionExtraHigh,this.WltpFuelConsumptionHigh,this.WltpFuelConsumptionLow,this.WltpFuelConsumptionMedium,this.Equipment,this.EquipmentCategories,this.EnergyEfficiencyClass,this.VehicleData,this.IntegratedServiceCareOptions,this.IspVehicleCustomerDescriptions});
    VehicleDetailDto.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BodyStyle = json['BodyStyle'];
        Vin = json['Vin'];
        Description = json['Description'];
        Colour = json['Colour'];
        ColourCode = json['ColourCode'];
        ColourDescription = json['ColourDescription'];
        ColourGroup = json['ColourGroup'];
        Model = json['Model'];
        CommissionNumber = json['CommissionNumber'];
        BrandId = json['BrandId'];
        Brand = JsonConverters.fromJson(json['Brand'],'Brand',context!);
        Engine = JsonConverters.fromJson(json['Engine'],'Engine',context!);
        EngineBadge = json['EngineBadge'];
        Media = JsonConverters.fromJson(json['Media'],'Media',context!);
        Line = json['Line'];
        UpholsteryCode = json['UpholsteryCode'];
        UpholsteryType = json['UpholsteryType'];
        Upholstery = json['Upholstery'];
        UpholsteryDescription = json['UpholsteryDescription'];
        AvailablePackages = JsonConverters.fromJson(json['AvailablePackages'],'List<String>',context!);
        Packages = JsonConverters.fromJson(json['Packages'],'List<String>',context!);
        P11D = JsonConverters.toDouble(json['P11D']);
        PortArrivalDate = JsonConverters.fromJson(json['PortArrivalDate'],'DateTime',context!);
        Prices = JsonConverters.fromJson(json['Prices'],'List<Price>',context!);
        TransmissionType = json['TransmissionType'];
        FuelType = json['FuelType'];
        VehicleClass = json['VehicleClass'];
        ProductRange = json['ProductRange'];
        VehicleType = json['VehicleType'];
        Emission = JsonConverters.toDouble(json['Emission']);
        IsAvailableOnline = json['IsAvailableOnline'];
        UnderOffer = json['UnderOffer'];
        IsExcluded = json['IsExcluded'];
        IsSellable = json['IsSellable'];
        OnHold = json['OnHold'];
        ElectricConsumption = JsonConverters.toDouble(json['ElectricConsumption']);
        ElectricRange = JsonConverters.toDouble(json['ElectricRange']);
        ImageUrl = json['ImageUrl'];
        Baumuster = json['Baumuster'];
        Retailer = JsonConverters.fromJson(json['Retailer'],'Retailer',context!);
        Bm7NST = json['Bm7NST'];
        OTR = JsonConverters.toDouble(json['OTR']);
        ActualPrice = JsonConverters.toDouble(json['ActualPrice']);
        IsDisplayStock = json['IsDisplayStock'];
        DisplayRetailerId = json['DisplayRetailerId'];
        DisplayRetailer = json['DisplayRetailer'];
        DisplayRetailerGssnId = json['DisplayRetailerGssnId'];
        DisplayRetailerMarketAreaId = json['DisplayRetailerMarketAreaId'];
        IsSmartDisplayRetailer = json['IsSmartDisplayRetailer'];
        IsSpecialistCar = json['IsSpecialistCar'];
        Age = json['Age'];
        Secured = json['Secured'];
        IsHOBackOrderAccountVehicle = json['IsHOBackOrderAccountVehicle'];
        IsAllocatedToBackOrder = json['IsAllocatedToBackOrder'];
        UsageCode = json['UsageCode'];
        EmissionCombined = JsonConverters.toDouble(json['EmissionCombined']);
        NormalisedEmissionDirective = json['NormalisedEmissionDirective'];
        HasMildHybridEquipmentCode = json['HasMildHybridEquipmentCode'];
        RetailPriceExVat = JsonConverters.toDouble(json['RetailPriceExVat']);
        RetailPrice_IncVAT = JsonConverters.toDouble(json['RetailPrice_IncVAT']);
        RetailPrice_ExVAT = JsonConverters.toDouble(json['RetailPrice_ExVAT']);
        ModelId = json['ModelId'];
        VID = json['VID'];
        ProductionDate = json['ProductionDate'];
        FullModelYearCode = json['FullModelYearCode'];
        ChassisNumber = json['ChassisNumber'];
        EligibleForIntegratedServiceCare = json['EligibleForIntegratedServiceCare'];
        AccountType = json['AccountType'];
        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!);
        Equipment = JsonConverters.fromJson(json['Equipment'],'List<Equipmentv2>',context!);
        EquipmentCategories = JsonConverters.fromJson(json['EquipmentCategories'],'List<VehicleEquipmentCategory>',context!);
        EnergyEfficiencyClass = JsonConverters.fromJson(json['EnergyEfficiencyClass'],'VehicleEmissionClass',context!);
        VehicleData = JsonConverters.fromJson(json['VehicleData'],'List<VehicleAttribute>',context!);
        IntegratedServiceCareOptions = JsonConverters.fromJson(json['IntegratedServiceCareOptions'],'List<VehicleIntegratedServiceCareOption>',context!);
        IspVehicleCustomerDescriptions = JsonConverters.fromJson(json['IspVehicleCustomerDescriptions'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BodyStyle': BodyStyle,
        'Vin': Vin,
        'Description': Description,
        'Colour': Colour,
        'ColourCode': ColourCode,
        'ColourDescription': ColourDescription,
        'ColourGroup': ColourGroup,
        'Model': Model,
        'CommissionNumber': CommissionNumber,
        'BrandId': BrandId,
        'Brand': JsonConverters.toJson(Brand,'Brand',context!),
        'Engine': JsonConverters.toJson(Engine,'Engine',context!),
        'EngineBadge': EngineBadge,
        'Media': JsonConverters.toJson(Media,'Media',context!),
        'Line': Line,
        'UpholsteryCode': UpholsteryCode,
        'UpholsteryType': UpholsteryType,
        'Upholstery': Upholstery,
        'UpholsteryDescription': UpholsteryDescription,
        'AvailablePackages': JsonConverters.toJson(AvailablePackages,'List<String>',context!),
        'Packages': JsonConverters.toJson(Packages,'List<String>',context!),
        'P11D': P11D,
        'PortArrivalDate': JsonConverters.toJson(PortArrivalDate,'DateTime',context!),
        'Prices': JsonConverters.toJson(Prices,'List<Price>',context!),
        'TransmissionType': TransmissionType,
        'FuelType': FuelType,
        'VehicleClass': VehicleClass,
        'ProductRange': ProductRange,
        'VehicleType': VehicleType,
        'Emission': Emission,
        'IsAvailableOnline': IsAvailableOnline,
        'UnderOffer': UnderOffer,
        'IsExcluded': IsExcluded,
        'IsSellable': IsSellable,
        'OnHold': OnHold,
        'ElectricConsumption': ElectricConsumption,
        'ElectricRange': ElectricRange,
        'ImageUrl': ImageUrl,
        'Baumuster': Baumuster,
        'Retailer': JsonConverters.toJson(Retailer,'Retailer',context!),
        'Bm7NST': Bm7NST,
        'OTR': OTR,
        'ActualPrice': ActualPrice,
        'IsDisplayStock': IsDisplayStock,
        'DisplayRetailerId': DisplayRetailerId,
        'DisplayRetailer': DisplayRetailer,
        'DisplayRetailerGssnId': DisplayRetailerGssnId,
        'DisplayRetailerMarketAreaId': DisplayRetailerMarketAreaId,
        'IsSmartDisplayRetailer': IsSmartDisplayRetailer,
        'IsSpecialistCar': IsSpecialistCar,
        'Age': Age,
        'Secured': Secured,
        'IsHOBackOrderAccountVehicle': IsHOBackOrderAccountVehicle,
        'IsAllocatedToBackOrder': IsAllocatedToBackOrder,
        'UsageCode': UsageCode,
        'EmissionCombined': EmissionCombined,
        'NormalisedEmissionDirective': NormalisedEmissionDirective,
        'HasMildHybridEquipmentCode': HasMildHybridEquipmentCode,
        'RetailPriceExVat': RetailPriceExVat,
        'RetailPrice_IncVAT': RetailPrice_IncVAT,
        'RetailPrice_ExVAT': RetailPrice_ExVAT,
        'ModelId': ModelId,
        'VID': VID,
        'ProductionDate': ProductionDate,
        'FullModelYearCode': FullModelYearCode,
        'ChassisNumber': ChassisNumber,
        'EligibleForIntegratedServiceCare': EligibleForIntegratedServiceCare,
        'AccountType': AccountType,
        '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!),
        'Equipment': JsonConverters.toJson(Equipment,'List<Equipmentv2>',context!),
        'EquipmentCategories': JsonConverters.toJson(EquipmentCategories,'List<VehicleEquipmentCategory>',context!),
        'EnergyEfficiencyClass': JsonConverters.toJson(EnergyEfficiencyClass,'VehicleEmissionClass',context!),
        'VehicleData': JsonConverters.toJson(VehicleData,'List<VehicleAttribute>',context!),
        'IntegratedServiceCareOptions': JsonConverters.toJson(IntegratedServiceCareOptions,'List<VehicleIntegratedServiceCareOption>',context!),
        'IspVehicleCustomerDescriptions': JsonConverters.toJson(IspVehicleCustomerDescriptions,'List<String>',context!)
    };

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

class VehicleError implements IConvertible
{
    String? Field;
    String? Message;

    VehicleError({this.Field,this.Message});
    VehicleError.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class GetVehicleResponse implements IConvertible
{
    VehicleDetailDto? Vehicle;
    List<VehicleError>? Errors = [];

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

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

    Map<String, dynamic> toJson() => {
        'Vehicle': JsonConverters.toJson(Vehicle,'VehicleDetailDto',context!),
        'Errors': JsonConverters.toJson(Errors,'List<VehicleError>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'prod_api_agency_orch_mb_dhc.rapp_customers.co.uk', types: <String, TypeInfo> {
    'GetVehicleRequest': TypeInfo(TypeOf.Class, create:() => GetVehicleRequest()),
    'Model': TypeInfo(TypeOf.Class, create:() => Model()),
    'BodyStyle': TypeInfo(TypeOf.Class, create:() => BodyStyle()),
    'List<Model>': TypeInfo(TypeOf.Class, create:() => <Model>[]),
    'Brand': TypeInfo(TypeOf.Class, create:() => Brand()),
    'List<BodyStyle>': TypeInfo(TypeOf.Class, create:() => <BodyStyle>[]),
    'Engine': TypeInfo(TypeOf.Class, create:() => Engine()),
    'Media': TypeInfo(TypeOf.Class, create:() => Media()),
    'OfferPriceProductType': TypeInfo(TypeOf.Enum, enumValues:OfferPriceProductType.values),
    'Price': TypeInfo(TypeOf.Class, create:() => Price()),
    '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()),
    '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()),
    'VehicleDetailDto': TypeInfo(TypeOf.Class, create:() => VehicleDetailDto()),
    'List<Price>': TypeInfo(TypeOf.Class, create:() => <Price>[]),
    'List<VehicleEquipmentCategory>': TypeInfo(TypeOf.Class, create:() => <VehicleEquipmentCategory>[]),
    'List<VehicleAttribute>': TypeInfo(TypeOf.Class, create:() => <VehicleAttribute>[]),
    'List<VehicleIntegratedServiceCareOption>': TypeInfo(TypeOf.Class, create:() => <VehicleIntegratedServiceCareOption>[]),
    'VehicleError': TypeInfo(TypeOf.Class, create:() => VehicleError()),
    'GetVehicleResponse': TypeInfo(TypeOf.Class, create:() => GetVehicleResponse()),
    'List<VehicleError>': TypeInfo(TypeOf.Class, create:() => <VehicleError>[]),
});

Dart GetVehicleRequest 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/vehicle HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Vin":"String","IncludeAllocatedToOrder":false,"Gssn":"String","IsOneAdmin":false}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Vehicle":{"BodyStyle":"String","Vin":"String","Description":"String","Colour":"String","ColourCode":"String","ColourDescription":"String","ColourGroup":"String","Model":"String","CommissionNumber":"String","BrandId":0,"Brand":{"Id":0,"Description":"String","DisplayName":"String","BodyStyles":[{"Id":0,"Description":"String","Models":[{"Id":0,"Description":"String","DisplayName":"String","ImageUrlSmall":"String","ImageUrlMedium":"String","ImageUrlLarge":"String","Specialist":false,"Priority":0,"ExcludeFromOnlineShowroomFilters":false}]}]},"Engine":{"Id":0,"Badge":"String"},"EngineBadge":"String","Media":{"NoImage":false,"MainImageUrl":"String"},"Line":"String","UpholsteryCode":"String","UpholsteryType":"String","Upholstery":"String","UpholsteryDescription":"String","AvailablePackages":["String"],"Packages":["String"],"P11D":0,"PortArrivalDate":"\/Date(-62135596800000-0000)\/","Prices":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Product":"LIST_PRICE"}],"TransmissionType":"String","FuelType":"String","VehicleClass":"String","ProductRange":"String","VehicleType":"String","Emission":0,"IsAvailableOnline":false,"UnderOffer":false,"IsExcluded":false,"IsSellable":false,"OnHold":false,"ElectricConsumption":0,"ElectricRange":0,"ImageUrl":"String","Baumuster":"String","Retailer":{"Id":0,"GssnId":"String","Description":"String","Street":"String","City":"String","Postcode":"String","GoogleMapPostcode":"String","Phone":"String","Fax":"String","Email":"String","Website":"String","RetailerGroupId":"String","RetailerGroupName":"String","IsOnline":false,"IsNewCarRetailer":false,"IsUsedCarRetailer":false,"IsCentralRetailer":false,"ChatEnabled":false,"TradeInEnabled":false,"smart":false,"DisplayPhoneNumberNew":"String","DisplayPhoneNumberUsed":"String","Latitude":0,"Longitude":0,"smartDescription":"String","smartWebsite":"String","smartPhone":"String","LegacyId":"String","Agent":false,"MarketAreaId":0,"DigitalLoungeParentGssnId":"String","SendLeadsToDigitalLoungeParent":false,"OpeningTimes":{"New":[{"Day":"String","OpenFrom":"String","OpenTo":"String","Special":"String"}],"Used":[{"Day":"String","OpenFrom":"String","OpenTo":"String","Special":"String"}]}},"Bm7NST":"String","OTR":0,"ActualPrice":0,"IsDisplayStock":false,"DisplayRetailerId":0,"DisplayRetailer":"String","DisplayRetailerGssnId":"String","DisplayRetailerMarketAreaId":"String","IsSmartDisplayRetailer":false,"IsSpecialistCar":false,"Age":0,"Secured":false,"IsHOBackOrderAccountVehicle":false,"IsAllocatedToBackOrder":false,"UsageCode":"String","EmissionCombined":0,"NormalisedEmissionDirective":"String","HasMildHybridEquipmentCode":false,"RetailPriceExVat":0,"RetailPrice_IncVAT":0,"RetailPrice_ExVAT":0,"ModelId":0,"VID":"String","ProductionDate":"String","FullModelYearCode":"String","ChassisNumber":"String","EligibleForIntegratedServiceCare":false,"AccountType":"String","ConsumptionCombined":{"Id":0,"Lkm":0,"Mpg":0},"ConsumptionExtraUrban":{"Id":0,"Lkm":0,"Mpg":0},"ConsumptionUrban":{"Id":0,"Lkm":0,"Mpg":0},"WltpFuelConsumptionCombined":{"Id":0,"Lkm":0,"Mpg":0},"WltpFuelConsumptionExtraHigh":{"Id":0,"Lkm":0,"Mpg":0},"WltpFuelConsumptionHigh":{"Id":0,"Lkm":0,"Mpg":0},"WltpFuelConsumptionLow":{"Id":0,"Lkm":0,"Mpg":0},"WltpFuelConsumptionMedium":{"Id":0,"Lkm":0,"Mpg":0},"Equipment":[{"Importance":0,"IsAdditional":false,"Id":0,"Code":"String","Description":"String"}],"EquipmentCategories":[{"Order":0,"Code":"String","Description":"String","Equipment":[{"Importance":0,"IsAdditional":false,"Id":0,"Code":"String","Description":"String"}]}],"EnergyEfficiencyClass":{"Colour":"String","Rating":"String"},"VehicleData":[{"Description":"String","Value":"String"}],"IntegratedServiceCareOptions":[{"OptionCode":"String","BM7NST":"String","FullModelYear":"String","IntegratedProductType":"String","CustomerDescription":"String","OneAgentProductType":"String"}],"IspVehicleCustomerDescriptions":["String"]},"Errors":[{"Field":"String","Message":"String"}]}