Mercedes.VehicleManagement.API

<back to all web services

UpdateVehicleV2Request

Vehicle
Requires Authentication
The following routes are available for this service:
POST/v2/{VehicleType}/Vehicle/UpdateVehicleRefresh vehicle data for Nexus
import 'package:servicestack/servicestack.dart';

class Brand implements IConvertible
{
    int id = 0;
    String? description;
    String? displayName;
    bool enabledNew;
    bool enabledUsed;
    List<BodyStyle>? bodyStyles;

    Brand({this.id,this.description,this.displayName,this.enabledNew,this.enabledUsed,this.bodyStyles});
    Brand.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        displayName = json['displayName'];
        enabledNew = json['enabledNew'];
        enabledUsed = json['enabledUsed'];
        bodyStyles = JsonConverters.fromJson(json['bodyStyles'],'List<BodyStyle>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'displayName': displayName,
        'enabledNew': enabledNew,
        'enabledUsed': enabledUsed,
        'bodyStyles': JsonConverters.toJson(bodyStyles,'List<BodyStyle>',context!)
    };

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

class MappedFuelType implements IConvertible
{
    int id = 0;
    String? description;
    String? fuelTypes;
    int sortOrder = 0;

    MappedFuelType({this.id,this.description,this.fuelTypes,this.sortOrder});
    MappedFuelType.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        fuelTypes = json['fuelTypes'];
        sortOrder = json['sortOrder'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'fuelTypes': fuelTypes,
        'sortOrder': sortOrder
    };

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

class ProductRange implements IConvertible
{
    int modelId = 0;
    Model? model;
    int fuelTypeId = 0;
    MappedFuelType? mapped_FuelType;
    int? productRangeCode;

    ProductRange({this.modelId,this.model,this.fuelTypeId,this.mapped_FuelType,this.productRangeCode});
    ProductRange.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        modelId = json['modelId'];
        model = JsonConverters.fromJson(json['model'],'Model',context!);
        fuelTypeId = json['fuelTypeId'];
        mapped_FuelType = JsonConverters.fromJson(json['mapped_FuelType'],'MappedFuelType',context!);
        productRangeCode = json['productRangeCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'modelId': modelId,
        'model': JsonConverters.toJson(model,'Model',context!),
        'fuelTypeId': fuelTypeId,
        'mapped_FuelType': JsonConverters.toJson(mapped_FuelType,'MappedFuelType',context!),
        'productRangeCode': productRangeCode
    };

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

class VehicleClass implements IConvertible
{
    int id = 0;
    String? description;
    int priority = 0;
    List<Model>? vehicleClasses;

    VehicleClass({this.id,this.description,this.priority,this.vehicleClasses});
    VehicleClass.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        priority = json['priority'];
        vehicleClasses = JsonConverters.fromJson(json['vehicleClasses'],'List<Model>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'priority': priority,
        'vehicleClasses': JsonConverters.toJson(vehicleClasses,'List<Model>',context!)
    };

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

class Model implements IConvertible
{
    int id = 0;
    String? description;
    String? displayName;
    String? productRange;
    int? bodyStyle_Id;
    int? overrideBodyStyleId;
    BodyStyle? bodyStyle;
    List<ProductRange>? productRanges;
    String? imageUrlNew;
    String? imageUrlUsed;
    bool specialistNew;
    bool specialistUsed;
    bool excludeFromFiltersNew;
    bool excludeFromFiltersUsed;
    int priorityNew = 0;
    int priorityUsed = 0;
    String? alternativeModelsNew;
    String? alternativeModelsUsed;
    int? vehicleClass_Id;
    VehicleClass? vehicleClass;
    String oneWebModelUrlNew = "";
    String oneWebModelUrlUsed = "";
    DateTime? lastEdited;

    Model({this.id,this.description,this.displayName,this.productRange,this.bodyStyle_Id,this.overrideBodyStyleId,this.bodyStyle,this.productRanges,this.imageUrlNew,this.imageUrlUsed,this.specialistNew,this.specialistUsed,this.excludeFromFiltersNew,this.excludeFromFiltersUsed,this.priorityNew,this.priorityUsed,this.alternativeModelsNew,this.alternativeModelsUsed,this.vehicleClass_Id,this.vehicleClass,this.oneWebModelUrlNew,this.oneWebModelUrlUsed,this.lastEdited});
    Model.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        displayName = json['displayName'];
        productRange = json['productRange'];
        bodyStyle_Id = json['bodyStyle_Id'];
        overrideBodyStyleId = json['overrideBodyStyleId'];
        bodyStyle = JsonConverters.fromJson(json['bodyStyle'],'BodyStyle',context!);
        productRanges = JsonConverters.fromJson(json['productRanges'],'List<ProductRange>',context!);
        imageUrlNew = json['imageUrlNew'];
        imageUrlUsed = json['imageUrlUsed'];
        specialistNew = json['specialistNew'];
        specialistUsed = json['specialistUsed'];
        excludeFromFiltersNew = json['excludeFromFiltersNew'];
        excludeFromFiltersUsed = json['excludeFromFiltersUsed'];
        priorityNew = json['priorityNew'];
        priorityUsed = json['priorityUsed'];
        alternativeModelsNew = json['alternativeModelsNew'];
        alternativeModelsUsed = json['alternativeModelsUsed'];
        vehicleClass_Id = json['vehicleClass_Id'];
        vehicleClass = JsonConverters.fromJson(json['vehicleClass'],'VehicleClass',context!);
        oneWebModelUrlNew = json['oneWebModelUrlNew'];
        oneWebModelUrlUsed = json['oneWebModelUrlUsed'];
        lastEdited = JsonConverters.fromJson(json['lastEdited'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'displayName': displayName,
        'productRange': productRange,
        'bodyStyle_Id': bodyStyle_Id,
        'overrideBodyStyleId': overrideBodyStyleId,
        'bodyStyle': JsonConverters.toJson(bodyStyle,'BodyStyle',context!),
        'productRanges': JsonConverters.toJson(productRanges,'List<ProductRange>',context!),
        'imageUrlNew': imageUrlNew,
        'imageUrlUsed': imageUrlUsed,
        'specialistNew': specialistNew,
        'specialistUsed': specialistUsed,
        'excludeFromFiltersNew': excludeFromFiltersNew,
        'excludeFromFiltersUsed': excludeFromFiltersUsed,
        'priorityNew': priorityNew,
        'priorityUsed': priorityUsed,
        'alternativeModelsNew': alternativeModelsNew,
        'alternativeModelsUsed': alternativeModelsUsed,
        'vehicleClass_Id': vehicleClass_Id,
        'vehicleClass': JsonConverters.toJson(vehicleClass,'VehicleClass',context!),
        'oneWebModelUrlNew': oneWebModelUrlNew,
        'oneWebModelUrlUsed': oneWebModelUrlUsed,
        'lastEdited': JsonConverters.toJson(lastEdited,'DateTime',context!)
    };

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

class BodyStyle implements IConvertible
{
    int id = 0;
    String? description;
    String? styleCode;
    String? styleCodeElectric;
    String? styleCodeHybrid;
    int sortOrder = 0;
    Brand? brand;
    int? brand_Id;
    List<Model>? models;

    BodyStyle({this.id,this.description,this.styleCode,this.styleCodeElectric,this.styleCodeHybrid,this.sortOrder,this.brand,this.brand_Id,this.models});
    BodyStyle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        styleCode = json['styleCode'];
        styleCodeElectric = json['styleCodeElectric'];
        styleCodeHybrid = json['styleCodeHybrid'];
        sortOrder = json['sortOrder'];
        brand = JsonConverters.fromJson(json['brand'],'Brand',context!);
        brand_Id = json['brand_Id'];
        models = JsonConverters.fromJson(json['models'],'List<Model>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'styleCode': styleCode,
        'styleCodeElectric': styleCodeElectric,
        'styleCodeHybrid': styleCodeHybrid,
        'sortOrder': sortOrder,
        'brand': JsonConverters.toJson(brand,'Brand',context!),
        'brand_Id': brand_Id,
        'models': JsonConverters.toJson(models,'List<Model>',context!)
    };

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

class Consumption implements IConvertible
{
    int id = 0;
    double lkm = 0;
    double mpg = 0;

    Consumption({this.id,this.lkm,this.mpg});
    Consumption.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() => "Consumption";
    TypeContext? context = _ctx;
}

class RetailerGroup implements IConvertible
{
    int id = 0;
    String? retailerGroupId;
    String? retailerGroupName;
    DateTime? creationDate;
    String? creationSource;
    DateTime? maintenanceDate;
    String? maintenanceSource;
    int? priorityServiceNew;
    int? priorityServiceUsed;
    String? legacyId;

    RetailerGroup({this.id,this.retailerGroupId,this.retailerGroupName,this.creationDate,this.creationSource,this.maintenanceDate,this.maintenanceSource,this.priorityServiceNew,this.priorityServiceUsed,this.legacyId});
    RetailerGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        retailerGroupId = json['retailerGroupId'];
        retailerGroupName = json['retailerGroupName'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        creationSource = json['creationSource'];
        maintenanceDate = JsonConverters.fromJson(json['maintenanceDate'],'DateTime',context!);
        maintenanceSource = json['maintenanceSource'];
        priorityServiceNew = json['priorityServiceNew'];
        priorityServiceUsed = json['priorityServiceUsed'];
        legacyId = json['legacyId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'retailerGroupId': retailerGroupId,
        'retailerGroupName': retailerGroupName,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'creationSource': creationSource,
        'maintenanceDate': JsonConverters.toJson(maintenanceDate,'DateTime',context!),
        'maintenanceSource': maintenanceSource,
        'priorityServiceNew': priorityServiceNew,
        'priorityServiceUsed': priorityServiceUsed,
        'legacyId': legacyId
    };

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

class MarketArea implements IConvertible
{
    int id = 0;
    int marketAreaId = 0;
    String marketAreaName = "";

    MarketArea({this.id,this.marketAreaId,this.marketAreaName});
    MarketArea.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'id': id,
        'marketAreaId': marketAreaId,
        'marketAreaName': marketAreaName
    };

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

class Port implements IConvertible
{
    int id = 0;
    DateTime? creation;
    DateTime? modified;
    String? description;
    double latitude = 0;
    double longitude = 0;

    Port({this.id,this.creation,this.modified,this.description,this.latitude,this.longitude});
    Port.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        creation = JsonConverters.fromJson(json['creation'],'DateTime',context!);
        modified = JsonConverters.fromJson(json['modified'],'DateTime',context!);
        description = json['description'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'creation': JsonConverters.toJson(creation,'DateTime',context!),
        'modified': JsonConverters.toJson(modified,'DateTime',context!),
        'description': description,
        'latitude': latitude,
        'longitude': longitude
    };

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

class RetailerAccount implements IConvertible
{
    int id = 0;
    String stpNumber = "";
    int retailer_Id = 0;
    Dealer retailer;

    RetailerAccount({this.id,this.stpNumber,this.retailer_Id,this.retailer});
    RetailerAccount.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        stpNumber = json['stpNumber'];
        retailer_Id = json['retailer_Id'];
        retailer = JsonConverters.fromJson(json['retailer'],'Dealer',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'stpNumber': stpNumber,
        'retailer_Id': retailer_Id,
        'retailer': JsonConverters.toJson(retailer,'Dealer',context!)
    };

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

class Region implements IConvertible
{
    int id = 0;
    String regionName = "";

    Region({this.id,this.regionName});
    Region.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Dealer implements IConvertible
{
    int id = 0;
    String? description;
    String? rodCode;
    String? gssnOutletId;
    double latitude = 0;
    double longitude = 0;
    String? retailerGroupId;
    String? street;
    String? city;
    String? district;
    String? postcode;
    String? phone;
    String? fax;
    String? email;
    String? website;
    bool isOnline;
    bool isNewCarRetailer;
    bool isUsedCarRetailer;
    bool isCentralRetailer;
    bool campaignExcluded;
    DateTime? creationDate;
    String? creationSource;
    DateTime? maintenanceDate;
    String? maintenanceSource;
    bool chatEnabled;
    bool tradeInEnabled;
    RetailerGroup? retailerGroup;
    int? retailerGroup_Id;
    MarketArea? marketArea;
    int? marketArea_Id;
    String? displayPhoneNumberNew;
    String? displayPhoneNumberUsed;
    bool smart;
    String? smartDescription;
    String? smartWebsite;
    String? smartEmail;
    String? smartPhone;
    String? additionalInformation;
    String? legacyId;
    bool agent;
    Port? port;
    int? port_Id;
    List<RetailerAccount>? retailerAccount;
    String? digitalLoungeParentGssnId;
    bool? sendLeadsToDigitalLoungeParent;
    bool? isExcludedFromImport;
    int? region_Id;
    Region? region;

    Dealer({this.id,this.description,this.rodCode,this.gssnOutletId,this.latitude,this.longitude,this.retailerGroupId,this.street,this.city,this.district,this.postcode,this.phone,this.fax,this.email,this.website,this.isOnline,this.isNewCarRetailer,this.isUsedCarRetailer,this.isCentralRetailer,this.campaignExcluded,this.creationDate,this.creationSource,this.maintenanceDate,this.maintenanceSource,this.chatEnabled,this.tradeInEnabled,this.retailerGroup,this.retailerGroup_Id,this.marketArea,this.marketArea_Id,this.displayPhoneNumberNew,this.displayPhoneNumberUsed,this.smart,this.smartDescription,this.smartWebsite,this.smartEmail,this.smartPhone,this.additionalInformation,this.legacyId,this.agent,this.port,this.port_Id,this.retailerAccount,this.digitalLoungeParentGssnId,this.sendLeadsToDigitalLoungeParent,this.isExcludedFromImport,this.region_Id,this.region});
    Dealer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        rodCode = json['rodCode'];
        gssnOutletId = json['gssnOutletId'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        retailerGroupId = json['retailerGroupId'];
        street = json['street'];
        city = json['city'];
        district = json['district'];
        postcode = json['postcode'];
        phone = json['phone'];
        fax = json['fax'];
        email = json['email'];
        website = json['website'];
        isOnline = json['isOnline'];
        isNewCarRetailer = json['isNewCarRetailer'];
        isUsedCarRetailer = json['isUsedCarRetailer'];
        isCentralRetailer = json['isCentralRetailer'];
        campaignExcluded = json['campaignExcluded'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        creationSource = json['creationSource'];
        maintenanceDate = JsonConverters.fromJson(json['maintenanceDate'],'DateTime',context!);
        maintenanceSource = json['maintenanceSource'];
        chatEnabled = json['chatEnabled'];
        tradeInEnabled = json['tradeInEnabled'];
        retailerGroup = JsonConverters.fromJson(json['retailerGroup'],'RetailerGroup',context!);
        retailerGroup_Id = json['retailerGroup_Id'];
        marketArea = JsonConverters.fromJson(json['marketArea'],'MarketArea',context!);
        marketArea_Id = json['marketArea_Id'];
        displayPhoneNumberNew = json['displayPhoneNumberNew'];
        displayPhoneNumberUsed = json['displayPhoneNumberUsed'];
        smart = json['smart'];
        smartDescription = json['smartDescription'];
        smartWebsite = json['smartWebsite'];
        smartEmail = json['smartEmail'];
        smartPhone = json['smartPhone'];
        additionalInformation = json['additionalInformation'];
        legacyId = json['legacyId'];
        agent = json['agent'];
        port = JsonConverters.fromJson(json['port'],'Port',context!);
        port_Id = json['port_Id'];
        retailerAccount = JsonConverters.fromJson(json['retailerAccount'],'List<RetailerAccount>',context!);
        digitalLoungeParentGssnId = json['digitalLoungeParentGssnId'];
        sendLeadsToDigitalLoungeParent = json['sendLeadsToDigitalLoungeParent'];
        isExcludedFromImport = json['isExcludedFromImport'];
        region_Id = json['region_Id'];
        region = JsonConverters.fromJson(json['region'],'Region',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'rodCode': rodCode,
        'gssnOutletId': gssnOutletId,
        'latitude': latitude,
        'longitude': longitude,
        'retailerGroupId': retailerGroupId,
        'street': street,
        'city': city,
        'district': district,
        'postcode': postcode,
        'phone': phone,
        'fax': fax,
        'email': email,
        'website': website,
        'isOnline': isOnline,
        'isNewCarRetailer': isNewCarRetailer,
        'isUsedCarRetailer': isUsedCarRetailer,
        'isCentralRetailer': isCentralRetailer,
        'campaignExcluded': campaignExcluded,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'creationSource': creationSource,
        'maintenanceDate': JsonConverters.toJson(maintenanceDate,'DateTime',context!),
        'maintenanceSource': maintenanceSource,
        'chatEnabled': chatEnabled,
        'tradeInEnabled': tradeInEnabled,
        'retailerGroup': JsonConverters.toJson(retailerGroup,'RetailerGroup',context!),
        'retailerGroup_Id': retailerGroup_Id,
        'marketArea': JsonConverters.toJson(marketArea,'MarketArea',context!),
        'marketArea_Id': marketArea_Id,
        'displayPhoneNumberNew': displayPhoneNumberNew,
        'displayPhoneNumberUsed': displayPhoneNumberUsed,
        'smart': smart,
        'smartDescription': smartDescription,
        'smartWebsite': smartWebsite,
        'smartEmail': smartEmail,
        'smartPhone': smartPhone,
        'additionalInformation': additionalInformation,
        'legacyId': legacyId,
        'agent': agent,
        'port': JsonConverters.toJson(port,'Port',context!),
        'port_Id': port_Id,
        'retailerAccount': JsonConverters.toJson(retailerAccount,'List<RetailerAccount>',context!),
        'digitalLoungeParentGssnId': digitalLoungeParentGssnId,
        'sendLeadsToDigitalLoungeParent': sendLeadsToDigitalLoungeParent,
        'isExcludedFromImport': isExcludedFromImport,
        'region_Id': region_Id,
        'region': JsonConverters.toJson(region,'Region',context!)
    };

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

class Engine implements IConvertible
{
    int id = 0;
    String badge = "";
    int? brand_Id;

    Engine({this.id,this.badge,this.brand_Id});
    Engine.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'id': id,
        'badge': badge,
        'brand_Id': brand_Id
    };

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

class MappedColourGroup implements IConvertible
{
    int id = 0;
    String? description;
    String? colours;
    String? imageUrl;

    MappedColourGroup({this.id,this.description,this.colours,this.imageUrl});
    MappedColourGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        colours = json['colours'];
        imageUrl = json['imageUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'colours': colours,
        'imageUrl': imageUrl
    };

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

class MappedTransmissionGroup implements IConvertible
{
    int id = 0;
    String? description;
    String? alias;

    MappedTransmissionGroup({this.id,this.description,this.alias});
    MappedTransmissionGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'alias': alias
    };

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

class Upholstery implements IConvertible
{
    int id = 0;
    String? price;
    String? code;
    String? type;

    Upholstery({this.id,this.price,this.code,this.type});
    Upholstery.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        price = json['price'];
        code = json['code'];
        type = json['type'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'price': price,
        'code': code,
        'type': type
    };

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

class Line implements IConvertible
{
    int id = 0;
    String? description;
    String? alias;
    String? overridesId;

    Line({this.id,this.description,this.alias,this.overridesId});
    Line.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        alias = json['alias'];
        overridesId = json['overridesId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'alias': alias,
        'overridesId': overridesId
    };

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

class UsedCarImage implements IConvertible
{
    int id = 0;
    DateTime creationDate = DateTime(0);
    String? creationSource;
    DateTime? maintenanceDate;
    String? maintenanceSource;
    int vehicleId = 0;
    Vehicle? vehicle;
    String? imageUrl;
    bool primaryImage;
    String? perspective;
    int index = 0;

    UsedCarImage({this.id,this.creationDate,this.creationSource,this.maintenanceDate,this.maintenanceSource,this.vehicleId,this.vehicle,this.imageUrl,this.primaryImage,this.perspective,this.index});
    UsedCarImage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        creationSource = json['creationSource'];
        maintenanceDate = JsonConverters.fromJson(json['maintenanceDate'],'DateTime',context!);
        maintenanceSource = json['maintenanceSource'];
        vehicleId = json['vehicleId'];
        vehicle = JsonConverters.fromJson(json['vehicle'],'Vehicle',context!);
        imageUrl = json['imageUrl'];
        primaryImage = json['primaryImage'];
        perspective = json['perspective'];
        index = json['index'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'creationSource': creationSource,
        'maintenanceDate': JsonConverters.toJson(maintenanceDate,'DateTime',context!),
        'maintenanceSource': maintenanceSource,
        'vehicleId': vehicleId,
        'vehicle': JsonConverters.toJson(vehicle,'Vehicle',context!),
        'imageUrl': imageUrl,
        'primaryImage': primaryImage,
        'perspective': perspective,
        'index': index
    };

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

class Packages implements IConvertible
{
    int id = 0;
    String description = "";
    String? alias;
    String? overridesId;
    String? packageDataOverridesId;
    List<VehiclePackage>? vehiclePackages;

    Packages({this.id,this.description,this.alias,this.overridesId,this.packageDataOverridesId,this.vehiclePackages});
    Packages.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        description = json['description'];
        alias = json['alias'];
        overridesId = json['overridesId'];
        packageDataOverridesId = json['packageDataOverridesId'];
        vehiclePackages = JsonConverters.fromJson(json['vehiclePackages'],'List<VehiclePackage>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'description': description,
        'alias': alias,
        'overridesId': overridesId,
        'packageDataOverridesId': packageDataOverridesId,
        'vehiclePackages': JsonConverters.toJson(vehiclePackages,'List<VehiclePackage>',context!)
    };

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

class VehiclePackage implements IConvertible
{
    int vehicleId = 0;
    int packageId = 0;
    Vehicle vehicle;
    Packages package;

    VehiclePackage({this.vehicleId,this.packageId,this.vehicle,this.package});
    VehiclePackage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        vehicleId = json['vehicleId'];
        packageId = json['packageId'];
        vehicle = JsonConverters.fromJson(json['vehicle'],'Vehicle',context!);
        package = JsonConverters.fromJson(json['package'],'Packages',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'vehicleId': vehicleId,
        'packageId': packageId,
        'vehicle': JsonConverters.toJson(vehicle,'Vehicle',context!),
        'package': JsonConverters.toJson(package,'Packages',context!)
    };

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

class VehicleSecured implements IConvertible
{
    int id = 0;
    String reason = "";
    DateTime created = DateTime(0);
    String userId = "";

    VehicleSecured({this.id,this.reason,this.created,this.userId});
    VehicleSecured.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        reason = json['reason'];
        created = JsonConverters.fromJson(json['created'],'DateTime',context!);
        userId = json['userId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'reason': reason,
        'created': JsonConverters.toJson(created,'DateTime',context!),
        'userId': userId
    };

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

class VehicleImage implements IConvertible
{
    int id = 0;
    String commissionNumber = "";
    String cachedImageUrl = "";
    String imageDescriptor = "";
    DateTime createdDate = DateTime(0);

    VehicleImage({this.id,this.commissionNumber,this.cachedImageUrl,this.imageDescriptor,this.createdDate});
    VehicleImage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        commissionNumber = json['commissionNumber'];
        cachedImageUrl = json['cachedImageUrl'];
        imageDescriptor = json['imageDescriptor'];
        createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'commissionNumber': commissionNumber,
        'cachedImageUrl': cachedImageUrl,
        'imageDescriptor': imageDescriptor,
        'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!)
    };

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

class VehicleSecuredAudit implements IConvertible
{
    int id = 0;
    String userId = "";
    bool mbukSecured;
    String? vin;
    String vehicleType = "";
    String reason = "";
    DateTime created = DateTime(0);
    Vehicle? vehicle;
    String? commissionNumber;
    bool isBulkUpdate;

    VehicleSecuredAudit({this.id,this.userId,this.mbukSecured,this.vin,this.vehicleType,this.reason,this.created,this.vehicle,this.commissionNumber,this.isBulkUpdate});
    VehicleSecuredAudit.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        userId = json['userId'];
        mbukSecured = json['mbukSecured'];
        vin = json['vin'];
        vehicleType = json['vehicleType'];
        reason = json['reason'];
        created = JsonConverters.fromJson(json['created'],'DateTime',context!);
        vehicle = JsonConverters.fromJson(json['vehicle'],'Vehicle',context!);
        commissionNumber = json['commissionNumber'];
        isBulkUpdate = json['isBulkUpdate'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'userId': userId,
        'mbukSecured': mbukSecured,
        'vin': vin,
        'vehicleType': vehicleType,
        'reason': reason,
        'created': JsonConverters.toJson(created,'DateTime',context!),
        'vehicle': JsonConverters.toJson(vehicle,'Vehicle',context!),
        'commissionNumber': commissionNumber,
        'isBulkUpdate': isBulkUpdate
    };

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

class Vehicle implements IConvertible
{
    int id = 0;
    String? vin;
    String? commissionNumber;
    bool isAllWheel;
    bool isAMG;
    bool isAvailableOnline;
    bool isSellable;
    bool isDisplayStock;
    DateTime creationDate = DateTime(0);
    DateTime? maintenanceDate;
    double horsePower = 0;
    double deliveryCharge = 0;
    double? deliveryChargeNet;
    double? deliveryChargeVAT;
    double firstRegFee = 0;
    double otr = 0;
    double p11D = 0;
    double otR_Value = 0;
    double? actualPrice;
    double? totalOfferValue;
    double? campaignOfferContribution;
    double? retailerOfferContribution;
    double? campaignGovernmentGrantOfferContribution;
    DateTime? offerExpiryDate;
    bool hasNonMonetaryOffers;
    double plates = 0;
    double? platesNet;
    double? platesVAT;
    double fuelCharge = 0;
    double? fuelChargeNet;
    double? fuelChargeVAT;
    double powerKW = 0;
    double retailPrice_ExVAT = 0;
    double retailPrice_IncVAT = 0;
    double veD_Year1 = 0;
    double veD_Year2 = 0;
    int cc = 0;
    int cyclinders = 0;
    String? baumuster;
    String? marketingCode;
    String? chassisNumber;
    String? colourDescription;
    String? colourCode;
    String? emissionCombined;
    String? emissionDirective;
    String? normalisedEmissionDirective;
    String? emissionExtraUrban;
    String? emissionUrban;
    String? energyEfficiencyClass;
    String? wltpEmissionCombined;
    String? imageUrl;
    String? line;
    String? modelYear;
    String? modelYearCode;
    String? halfModelYearCode;
    String? nst;
    String? numberOfDoors;
    String? numberOfGears;
    String? numberOfSeats;
    String? rvOptions;
    String? salesDescription;
    String? salesDescriptionShort;
    String? upholsteryCode;
    String? upholsteryDescription;
    String? transmissionDescription;
    String? vehicleCategory;
    String? vehicleClass;
    String? vehicleType;
    String? vid;
    bool latestModel;
    DateTime? portArrivalDate;
    DateTime? productionDate;
    DateTime? confirmedProductionDate;
    DateTime? tradeInDate;
    double? electricConsumption;
    double? electricRange;
    String? locationTypeName;
    String? cesarIdShipToParty;
    String? vehicleUsageCode;
    String? account;
    bool isSpecialistCar;
    int? bootCapacity;
    String? driveConcept;
    String? driveType;
    double? combustionPowerHp;
    double? electricPowerKw;
    double? electricPowerHp;
    double? combinedPowerKw;
    double? combinedPowerHP;
    String? mbukReserve;
    String? bm7NST;
    DateTime? gbDestDate;
    String? fin;
    BodyStyle? bodyStyle;
    int? bodyStyle_Id;
    Brand? brand;
    int? brandId;
    Consumption? consumptionCombined;
    Consumption? consumptionExtraUrban;
    Consumption? consumptionUrban;
    Consumption? wltpFuelConsumptionExtraHigh;
    Consumption? wltpFuelConsumptionHigh;
    Consumption? wltpFuelConsumptionMedium;
    Consumption? wltpFuelConsumptionLow;
    Consumption? wltpFuelConsumptionCombined;
    Dealer? dealer;
    int? dealer_Id;
    Dealer? displayRetailer;
    int? displayRetailer_Id;
    Engine? engine;
    MappedColourGroup? mapped_ColourGroup;
    int? mapped_ColourGroup_Id;
    MappedFuelType? mapped_FuelType;
    int? mapped_FuelType_Id;
    MappedTransmissionGroup? mapped_TransmissionGroup;
    int? model_Id;
    Model? model;
    Upholstery? upholstery;
    int? upholstery_Id;
    Line? mapped_Line;
    int? mapped_Line_Id;
    int? mileage;
    String? condition;
    String? source;
    DateTime? registrationDate;
    String? registrationNumber;
    double? topSpeed;
    double? acceleration;
    double? torque;
    List<UsedCarImage>? usedCarImages;
    double? taxAmount;
    int? vatQualifying;
    String? promoCode;
    double? campaignPromoOfferContribution;
    bool reserved;
    double? emission;
    bool underOffer;
    bool allocatedToBackOrder;
    String? paintSwatchUrl;
    String? upholsterySwatchUrl;
    List<VehiclePackage>? packages;
    VehicleSecured? secured;
    VehicleImage? cachedImage;
    bool hasMildHybridEquipmentCode;
    bool eligibleForIntegratedServiceCare;
    List<VehicleSecuredAudit>? vehicleSecuredAudit;

    Vehicle({this.id,this.vin,this.commissionNumber,this.isAllWheel,this.isAMG,this.isAvailableOnline,this.isSellable,this.isDisplayStock,this.creationDate,this.maintenanceDate,this.horsePower,this.deliveryCharge,this.deliveryChargeNet,this.deliveryChargeVAT,this.firstRegFee,this.otr,this.p11D,this.otR_Value,this.actualPrice,this.totalOfferValue,this.campaignOfferContribution,this.retailerOfferContribution,this.campaignGovernmentGrantOfferContribution,this.offerExpiryDate,this.hasNonMonetaryOffers,this.plates,this.platesNet,this.platesVAT,this.fuelCharge,this.fuelChargeNet,this.fuelChargeVAT,this.powerKW,this.retailPrice_ExVAT,this.retailPrice_IncVAT,this.veD_Year1,this.veD_Year2,this.cc,this.cyclinders,this.baumuster,this.marketingCode,this.chassisNumber,this.colourDescription,this.colourCode,this.emissionCombined,this.emissionDirective,this.normalisedEmissionDirective,this.emissionExtraUrban,this.emissionUrban,this.energyEfficiencyClass,this.wltpEmissionCombined,this.imageUrl,this.line,this.modelYear,this.modelYearCode,this.halfModelYearCode,this.nst,this.numberOfDoors,this.numberOfGears,this.numberOfSeats,this.rvOptions,this.salesDescription,this.salesDescriptionShort,this.upholsteryCode,this.upholsteryDescription,this.transmissionDescription,this.vehicleCategory,this.vehicleClass,this.vehicleType,this.vid,this.latestModel,this.portArrivalDate,this.productionDate,this.confirmedProductionDate,this.tradeInDate,this.electricConsumption,this.electricRange,this.locationTypeName,this.cesarIdShipToParty,this.vehicleUsageCode,this.account,this.isSpecialistCar,this.bootCapacity,this.driveConcept,this.driveType,this.combustionPowerHp,this.electricPowerKw,this.electricPowerHp,this.combinedPowerKw,this.combinedPowerHP,this.mbukReserve,this.bm7NST,this.gbDestDate,this.fin,this.bodyStyle,this.bodyStyle_Id,this.brand,this.brandId,this.consumptionCombined,this.consumptionExtraUrban,this.consumptionUrban,this.wltpFuelConsumptionExtraHigh,this.wltpFuelConsumptionHigh,this.wltpFuelConsumptionMedium,this.wltpFuelConsumptionLow,this.wltpFuelConsumptionCombined,this.dealer,this.dealer_Id,this.displayRetailer,this.displayRetailer_Id,this.engine,this.mapped_ColourGroup,this.mapped_ColourGroup_Id,this.mapped_FuelType,this.mapped_FuelType_Id,this.mapped_TransmissionGroup,this.model_Id,this.model,this.upholstery,this.upholstery_Id,this.mapped_Line,this.mapped_Line_Id,this.mileage,this.condition,this.source,this.registrationDate,this.registrationNumber,this.topSpeed,this.acceleration,this.torque,this.usedCarImages,this.taxAmount,this.vatQualifying,this.promoCode,this.campaignPromoOfferContribution,this.reserved,this.emission,this.underOffer,this.allocatedToBackOrder,this.paintSwatchUrl,this.upholsterySwatchUrl,this.packages,this.secured,this.cachedImage,this.hasMildHybridEquipmentCode,this.eligibleForIntegratedServiceCare,this.vehicleSecuredAudit});
    Vehicle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        vin = json['vin'];
        commissionNumber = json['commissionNumber'];
        isAllWheel = json['isAllWheel'];
        isAMG = json['isAMG'];
        isAvailableOnline = json['isAvailableOnline'];
        isSellable = json['isSellable'];
        isDisplayStock = json['isDisplayStock'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        maintenanceDate = JsonConverters.fromJson(json['maintenanceDate'],'DateTime',context!);
        horsePower = JsonConverters.toDouble(json['horsePower']);
        deliveryCharge = JsonConverters.toDouble(json['deliveryCharge']);
        deliveryChargeNet = JsonConverters.toDouble(json['deliveryChargeNet']);
        deliveryChargeVAT = JsonConverters.toDouble(json['deliveryChargeVAT']);
        firstRegFee = JsonConverters.toDouble(json['firstRegFee']);
        otr = JsonConverters.toDouble(json['otr']);
        p11D = JsonConverters.toDouble(json['p11D']);
        otR_Value = JsonConverters.toDouble(json['otR_Value']);
        actualPrice = JsonConverters.toDouble(json['actualPrice']);
        totalOfferValue = JsonConverters.toDouble(json['totalOfferValue']);
        campaignOfferContribution = JsonConverters.toDouble(json['campaignOfferContribution']);
        retailerOfferContribution = JsonConverters.toDouble(json['retailerOfferContribution']);
        campaignGovernmentGrantOfferContribution = JsonConverters.toDouble(json['campaignGovernmentGrantOfferContribution']);
        offerExpiryDate = JsonConverters.fromJson(json['offerExpiryDate'],'DateTime',context!);
        hasNonMonetaryOffers = json['hasNonMonetaryOffers'];
        plates = JsonConverters.toDouble(json['plates']);
        platesNet = JsonConverters.toDouble(json['platesNet']);
        platesVAT = JsonConverters.toDouble(json['platesVAT']);
        fuelCharge = JsonConverters.toDouble(json['fuelCharge']);
        fuelChargeNet = JsonConverters.toDouble(json['fuelChargeNet']);
        fuelChargeVAT = JsonConverters.toDouble(json['fuelChargeVAT']);
        powerKW = JsonConverters.toDouble(json['powerKW']);
        retailPrice_ExVAT = JsonConverters.toDouble(json['retailPrice_ExVAT']);
        retailPrice_IncVAT = JsonConverters.toDouble(json['retailPrice_IncVAT']);
        veD_Year1 = JsonConverters.toDouble(json['veD_Year1']);
        veD_Year2 = JsonConverters.toDouble(json['veD_Year2']);
        cc = json['cc'];
        cyclinders = json['cyclinders'];
        baumuster = json['baumuster'];
        marketingCode = json['marketingCode'];
        chassisNumber = json['chassisNumber'];
        colourDescription = json['colourDescription'];
        colourCode = json['colourCode'];
        emissionCombined = json['emissionCombined'];
        emissionDirective = json['emissionDirective'];
        normalisedEmissionDirective = json['normalisedEmissionDirective'];
        emissionExtraUrban = json['emissionExtraUrban'];
        emissionUrban = json['emissionUrban'];
        energyEfficiencyClass = json['energyEfficiencyClass'];
        wltpEmissionCombined = json['wltpEmissionCombined'];
        imageUrl = json['imageUrl'];
        line = json['line'];
        modelYear = json['modelYear'];
        modelYearCode = json['modelYearCode'];
        halfModelYearCode = json['halfModelYearCode'];
        nst = json['nst'];
        numberOfDoors = json['numberOfDoors'];
        numberOfGears = json['numberOfGears'];
        numberOfSeats = json['numberOfSeats'];
        rvOptions = json['rvOptions'];
        salesDescription = json['salesDescription'];
        salesDescriptionShort = json['salesDescriptionShort'];
        upholsteryCode = json['upholsteryCode'];
        upholsteryDescription = json['upholsteryDescription'];
        transmissionDescription = json['transmissionDescription'];
        vehicleCategory = json['vehicleCategory'];
        vehicleClass = json['vehicleClass'];
        vehicleType = json['vehicleType'];
        vid = json['vid'];
        latestModel = json['latestModel'];
        portArrivalDate = JsonConverters.fromJson(json['portArrivalDate'],'DateTime',context!);
        productionDate = JsonConverters.fromJson(json['productionDate'],'DateTime',context!);
        confirmedProductionDate = JsonConverters.fromJson(json['confirmedProductionDate'],'DateTime',context!);
        tradeInDate = JsonConverters.fromJson(json['tradeInDate'],'DateTime',context!);
        electricConsumption = JsonConverters.toDouble(json['electricConsumption']);
        electricRange = JsonConverters.toDouble(json['electricRange']);
        locationTypeName = json['locationTypeName'];
        cesarIdShipToParty = json['cesarIdShipToParty'];
        vehicleUsageCode = json['vehicleUsageCode'];
        account = json['account'];
        isSpecialistCar = json['isSpecialistCar'];
        bootCapacity = json['bootCapacity'];
        driveConcept = json['driveConcept'];
        driveType = json['driveType'];
        combustionPowerHp = JsonConverters.toDouble(json['combustionPowerHp']);
        electricPowerKw = JsonConverters.toDouble(json['electricPowerKw']);
        electricPowerHp = JsonConverters.toDouble(json['electricPowerHp']);
        combinedPowerKw = JsonConverters.toDouble(json['combinedPowerKw']);
        combinedPowerHP = JsonConverters.toDouble(json['combinedPowerHP']);
        mbukReserve = json['mbukReserve'];
        bm7NST = json['bm7NST'];
        gbDestDate = JsonConverters.fromJson(json['gbDestDate'],'DateTime',context!);
        fin = json['fin'];
        bodyStyle = JsonConverters.fromJson(json['bodyStyle'],'BodyStyle',context!);
        bodyStyle_Id = json['bodyStyle_Id'];
        brand = JsonConverters.fromJson(json['brand'],'Brand',context!);
        brandId = json['brandId'];
        consumptionCombined = JsonConverters.fromJson(json['consumptionCombined'],'Consumption',context!);
        consumptionExtraUrban = JsonConverters.fromJson(json['consumptionExtraUrban'],'Consumption',context!);
        consumptionUrban = JsonConverters.fromJson(json['consumptionUrban'],'Consumption',context!);
        wltpFuelConsumptionExtraHigh = JsonConverters.fromJson(json['wltpFuelConsumptionExtraHigh'],'Consumption',context!);
        wltpFuelConsumptionHigh = JsonConverters.fromJson(json['wltpFuelConsumptionHigh'],'Consumption',context!);
        wltpFuelConsumptionMedium = JsonConverters.fromJson(json['wltpFuelConsumptionMedium'],'Consumption',context!);
        wltpFuelConsumptionLow = JsonConverters.fromJson(json['wltpFuelConsumptionLow'],'Consumption',context!);
        wltpFuelConsumptionCombined = JsonConverters.fromJson(json['wltpFuelConsumptionCombined'],'Consumption',context!);
        dealer = JsonConverters.fromJson(json['dealer'],'Dealer',context!);
        dealer_Id = json['dealer_Id'];
        displayRetailer = JsonConverters.fromJson(json['displayRetailer'],'Dealer',context!);
        displayRetailer_Id = json['displayRetailer_Id'];
        engine = JsonConverters.fromJson(json['engine'],'Engine',context!);
        mapped_ColourGroup = JsonConverters.fromJson(json['mapped_ColourGroup'],'MappedColourGroup',context!);
        mapped_ColourGroup_Id = json['mapped_ColourGroup_Id'];
        mapped_FuelType = JsonConverters.fromJson(json['mapped_FuelType'],'MappedFuelType',context!);
        mapped_FuelType_Id = json['mapped_FuelType_Id'];
        mapped_TransmissionGroup = JsonConverters.fromJson(json['mapped_TransmissionGroup'],'MappedTransmissionGroup',context!);
        model_Id = json['model_Id'];
        model = JsonConverters.fromJson(json['model'],'Model',context!);
        upholstery = JsonConverters.fromJson(json['upholstery'],'Upholstery',context!);
        upholstery_Id = json['upholstery_Id'];
        mapped_Line = JsonConverters.fromJson(json['mapped_Line'],'Line',context!);
        mapped_Line_Id = json['mapped_Line_Id'];
        mileage = json['mileage'];
        condition = json['condition'];
        source = json['source'];
        registrationDate = JsonConverters.fromJson(json['registrationDate'],'DateTime',context!);
        registrationNumber = json['registrationNumber'];
        topSpeed = JsonConverters.toDouble(json['topSpeed']);
        acceleration = JsonConverters.toDouble(json['acceleration']);
        torque = JsonConverters.toDouble(json['torque']);
        usedCarImages = JsonConverters.fromJson(json['usedCarImages'],'List<UsedCarImage>',context!);
        taxAmount = JsonConverters.toDouble(json['taxAmount']);
        vatQualifying = json['vatQualifying'];
        promoCode = json['promoCode'];
        campaignPromoOfferContribution = JsonConverters.toDouble(json['campaignPromoOfferContribution']);
        reserved = json['reserved'];
        emission = JsonConverters.toDouble(json['emission']);
        underOffer = json['underOffer'];
        allocatedToBackOrder = json['allocatedToBackOrder'];
        paintSwatchUrl = json['paintSwatchUrl'];
        upholsterySwatchUrl = json['upholsterySwatchUrl'];
        packages = JsonConverters.fromJson(json['packages'],'List<VehiclePackage>',context!);
        secured = JsonConverters.fromJson(json['secured'],'VehicleSecured',context!);
        cachedImage = JsonConverters.fromJson(json['cachedImage'],'VehicleImage',context!);
        hasMildHybridEquipmentCode = json['hasMildHybridEquipmentCode'];
        eligibleForIntegratedServiceCare = json['eligibleForIntegratedServiceCare'];
        vehicleSecuredAudit = JsonConverters.fromJson(json['vehicleSecuredAudit'],'List<VehicleSecuredAudit>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'vin': vin,
        'commissionNumber': commissionNumber,
        'isAllWheel': isAllWheel,
        'isAMG': isAMG,
        'isAvailableOnline': isAvailableOnline,
        'isSellable': isSellable,
        'isDisplayStock': isDisplayStock,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'maintenanceDate': JsonConverters.toJson(maintenanceDate,'DateTime',context!),
        'horsePower': horsePower,
        'deliveryCharge': deliveryCharge,
        'deliveryChargeNet': deliveryChargeNet,
        'deliveryChargeVAT': deliveryChargeVAT,
        'firstRegFee': firstRegFee,
        'otr': otr,
        'p11D': p11D,
        'otR_Value': otR_Value,
        'actualPrice': actualPrice,
        'totalOfferValue': totalOfferValue,
        'campaignOfferContribution': campaignOfferContribution,
        'retailerOfferContribution': retailerOfferContribution,
        'campaignGovernmentGrantOfferContribution': campaignGovernmentGrantOfferContribution,
        'offerExpiryDate': JsonConverters.toJson(offerExpiryDate,'DateTime',context!),
        'hasNonMonetaryOffers': hasNonMonetaryOffers,
        'plates': plates,
        'platesNet': platesNet,
        'platesVAT': platesVAT,
        'fuelCharge': fuelCharge,
        'fuelChargeNet': fuelChargeNet,
        'fuelChargeVAT': fuelChargeVAT,
        'powerKW': powerKW,
        'retailPrice_ExVAT': retailPrice_ExVAT,
        'retailPrice_IncVAT': retailPrice_IncVAT,
        'veD_Year1': veD_Year1,
        'veD_Year2': veD_Year2,
        'cc': cc,
        'cyclinders': cyclinders,
        'baumuster': baumuster,
        'marketingCode': marketingCode,
        'chassisNumber': chassisNumber,
        'colourDescription': colourDescription,
        'colourCode': colourCode,
        'emissionCombined': emissionCombined,
        'emissionDirective': emissionDirective,
        'normalisedEmissionDirective': normalisedEmissionDirective,
        'emissionExtraUrban': emissionExtraUrban,
        'emissionUrban': emissionUrban,
        'energyEfficiencyClass': energyEfficiencyClass,
        'wltpEmissionCombined': wltpEmissionCombined,
        'imageUrl': imageUrl,
        'line': line,
        'modelYear': modelYear,
        'modelYearCode': modelYearCode,
        'halfModelYearCode': halfModelYearCode,
        'nst': nst,
        'numberOfDoors': numberOfDoors,
        'numberOfGears': numberOfGears,
        'numberOfSeats': numberOfSeats,
        'rvOptions': rvOptions,
        'salesDescription': salesDescription,
        'salesDescriptionShort': salesDescriptionShort,
        'upholsteryCode': upholsteryCode,
        'upholsteryDescription': upholsteryDescription,
        'transmissionDescription': transmissionDescription,
        'vehicleCategory': vehicleCategory,
        'vehicleClass': vehicleClass,
        'vehicleType': vehicleType,
        'vid': vid,
        'latestModel': latestModel,
        'portArrivalDate': JsonConverters.toJson(portArrivalDate,'DateTime',context!),
        'productionDate': JsonConverters.toJson(productionDate,'DateTime',context!),
        'confirmedProductionDate': JsonConverters.toJson(confirmedProductionDate,'DateTime',context!),
        'tradeInDate': JsonConverters.toJson(tradeInDate,'DateTime',context!),
        'electricConsumption': electricConsumption,
        'electricRange': electricRange,
        'locationTypeName': locationTypeName,
        'cesarIdShipToParty': cesarIdShipToParty,
        'vehicleUsageCode': vehicleUsageCode,
        'account': account,
        'isSpecialistCar': isSpecialistCar,
        'bootCapacity': bootCapacity,
        'driveConcept': driveConcept,
        'driveType': driveType,
        'combustionPowerHp': combustionPowerHp,
        'electricPowerKw': electricPowerKw,
        'electricPowerHp': electricPowerHp,
        'combinedPowerKw': combinedPowerKw,
        'combinedPowerHP': combinedPowerHP,
        'mbukReserve': mbukReserve,
        'bm7NST': bm7NST,
        'gbDestDate': JsonConverters.toJson(gbDestDate,'DateTime',context!),
        'fin': fin,
        'bodyStyle': JsonConverters.toJson(bodyStyle,'BodyStyle',context!),
        'bodyStyle_Id': bodyStyle_Id,
        'brand': JsonConverters.toJson(brand,'Brand',context!),
        'brandId': brandId,
        'consumptionCombined': JsonConverters.toJson(consumptionCombined,'Consumption',context!),
        'consumptionExtraUrban': JsonConverters.toJson(consumptionExtraUrban,'Consumption',context!),
        'consumptionUrban': JsonConverters.toJson(consumptionUrban,'Consumption',context!),
        'wltpFuelConsumptionExtraHigh': JsonConverters.toJson(wltpFuelConsumptionExtraHigh,'Consumption',context!),
        'wltpFuelConsumptionHigh': JsonConverters.toJson(wltpFuelConsumptionHigh,'Consumption',context!),
        'wltpFuelConsumptionMedium': JsonConverters.toJson(wltpFuelConsumptionMedium,'Consumption',context!),
        'wltpFuelConsumptionLow': JsonConverters.toJson(wltpFuelConsumptionLow,'Consumption',context!),
        'wltpFuelConsumptionCombined': JsonConverters.toJson(wltpFuelConsumptionCombined,'Consumption',context!),
        'dealer': JsonConverters.toJson(dealer,'Dealer',context!),
        'dealer_Id': dealer_Id,
        'displayRetailer': JsonConverters.toJson(displayRetailer,'Dealer',context!),
        'displayRetailer_Id': displayRetailer_Id,
        'engine': JsonConverters.toJson(engine,'Engine',context!),
        'mapped_ColourGroup': JsonConverters.toJson(mapped_ColourGroup,'MappedColourGroup',context!),
        'mapped_ColourGroup_Id': mapped_ColourGroup_Id,
        'mapped_FuelType': JsonConverters.toJson(mapped_FuelType,'MappedFuelType',context!),
        'mapped_FuelType_Id': mapped_FuelType_Id,
        'mapped_TransmissionGroup': JsonConverters.toJson(mapped_TransmissionGroup,'MappedTransmissionGroup',context!),
        'model_Id': model_Id,
        'model': JsonConverters.toJson(model,'Model',context!),
        'upholstery': JsonConverters.toJson(upholstery,'Upholstery',context!),
        'upholstery_Id': upholstery_Id,
        'mapped_Line': JsonConverters.toJson(mapped_Line,'Line',context!),
        'mapped_Line_Id': mapped_Line_Id,
        'mileage': mileage,
        'condition': condition,
        'source': source,
        'registrationDate': JsonConverters.toJson(registrationDate,'DateTime',context!),
        'registrationNumber': registrationNumber,
        'topSpeed': topSpeed,
        'acceleration': acceleration,
        'torque': torque,
        'usedCarImages': JsonConverters.toJson(usedCarImages,'List<UsedCarImage>',context!),
        'taxAmount': taxAmount,
        'vatQualifying': vatQualifying,
        'promoCode': promoCode,
        'campaignPromoOfferContribution': campaignPromoOfferContribution,
        'reserved': reserved,
        'emission': emission,
        'underOffer': underOffer,
        'allocatedToBackOrder': allocatedToBackOrder,
        'paintSwatchUrl': paintSwatchUrl,
        'upholsterySwatchUrl': upholsterySwatchUrl,
        'packages': JsonConverters.toJson(packages,'List<VehiclePackage>',context!),
        'secured': JsonConverters.toJson(secured,'VehicleSecured',context!),
        'cachedImage': JsonConverters.toJson(cachedImage,'VehicleImage',context!),
        'hasMildHybridEquipmentCode': hasMildHybridEquipmentCode,
        'eligibleForIntegratedServiceCare': eligibleForIntegratedServiceCare,
        'vehicleSecuredAudit': JsonConverters.toJson(vehicleSecuredAudit,'List<VehicleSecuredAudit>',context!)
    };

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

class EquipmentCache implements IConvertible
{
    String code = "";
    String description = "";
    String standardFlag = "";
    double price = 0;
    String category = "";
    String importance = "";

    EquipmentCache({this.code,this.description,this.standardFlag,this.price,this.category,this.importance});
    EquipmentCache.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        code = json['code'];
        description = json['description'];
        standardFlag = json['standardFlag'];
        price = JsonConverters.toDouble(json['price']);
        category = json['category'];
        importance = json['importance'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'code': code,
        'description': description,
        'standardFlag': standardFlag,
        'price': price,
        'category': category,
        'importance': importance
    };

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

class OpenSearchVehicle extends Vehicle implements IConvertible
{
    String vehicleIdentifier = "";
    DateTime lastUpdated = DateTime(0);
    List<EquipmentCache> equipmentCacheList = [];
    String key = "";

    OpenSearchVehicle({this.vehicleIdentifier,this.lastUpdated,this.equipmentCacheList,this.key});
    OpenSearchVehicle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        vehicleIdentifier = json['vehicleIdentifier'];
        lastUpdated = JsonConverters.fromJson(json['lastUpdated'],'DateTime',context!);
        equipmentCacheList = JsonConverters.fromJson(json['equipmentCacheList'],'List<EquipmentCache>',context!);
        key = json['key'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'vehicleIdentifier': vehicleIdentifier,
        'lastUpdated': JsonConverters.toJson(lastUpdated,'DateTime',context!),
        'equipmentCacheList': JsonConverters.toJson(equipmentCacheList,'List<EquipmentCache>',context!),
        'key': key
    });

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

class UpdateVehicleV2Request implements IPost, IConvertible
{
    String vehicleIdentifier = "";
    String vin = "";
    String vehicleType = "";

    UpdateVehicleV2Request({this.vehicleIdentifier,this.vin,this.vehicleType});
    UpdateVehicleV2Request.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'vehicleIdentifier': vehicleIdentifier,
        'vin': vin,
        'vehicleType': vehicleType
    };

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

enum ActionType
{
    Insert,
    Update,
    Offline,
    NoAction,
    Error,
}

class ProcessResult<TVehicle> implements IConvertible
{
    bool success;
    bool rejected;
    OpenSearchVehicle? mappedVehicle;
    ActionType action;

    ProcessResult({this.success,this.rejected,this.mappedVehicle,this.action});
    ProcessResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        success = json['success'];
        rejected = json['rejected'];
        mappedVehicle = JsonConverters.fromJson(json['mappedVehicle'],'OpenSearchVehicle',context!);
        action = JsonConverters.fromJson(json['action'],'ActionType',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'success': success,
        'rejected': rejected,
        'mappedVehicle': JsonConverters.toJson(mappedVehicle,'OpenSearchVehicle',context!),
        'action': JsonConverters.toJson(action,'ActionType',context!)
    };

    getTypeName() => "ProcessResult<$TVehicle>";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'uat_api_vehicle_mgt_mb_dhc.rapp_customers.co.uk', types: <String, TypeInfo> {
    'Brand': TypeInfo(TypeOf.Class, create:() => Brand()),
    'List<BodyStyle>': TypeInfo(TypeOf.Class, create:() => <BodyStyle>[]),
    'BodyStyle': TypeInfo(TypeOf.Class, create:() => BodyStyle()),
    'MappedFuelType': TypeInfo(TypeOf.Class, create:() => MappedFuelType()),
    'ProductRange': TypeInfo(TypeOf.Class, create:() => ProductRange()),
    'Model': TypeInfo(TypeOf.Class, create:() => Model()),
    'VehicleClass': TypeInfo(TypeOf.Class, create:() => VehicleClass()),
    'List<Model>': TypeInfo(TypeOf.Class, create:() => <Model>[]),
    'List<ProductRange>': TypeInfo(TypeOf.Class, create:() => <ProductRange>[]),
    'Consumption': TypeInfo(TypeOf.Class, create:() => Consumption()),
    'RetailerGroup': TypeInfo(TypeOf.Class, create:() => RetailerGroup()),
    'MarketArea': TypeInfo(TypeOf.Class, create:() => MarketArea()),
    'Port': TypeInfo(TypeOf.Class, create:() => Port()),
    'RetailerAccount': TypeInfo(TypeOf.Class, create:() => RetailerAccount()),
    'Dealer': TypeInfo(TypeOf.Class, create:() => Dealer()),
    'Region': TypeInfo(TypeOf.Class, create:() => Region()),
    'List<RetailerAccount>': TypeInfo(TypeOf.Class, create:() => <RetailerAccount>[]),
    'Engine': TypeInfo(TypeOf.Class, create:() => Engine()),
    'MappedColourGroup': TypeInfo(TypeOf.Class, create:() => MappedColourGroup()),
    'MappedTransmissionGroup': TypeInfo(TypeOf.Class, create:() => MappedTransmissionGroup()),
    'Upholstery': TypeInfo(TypeOf.Class, create:() => Upholstery()),
    'Line': TypeInfo(TypeOf.Class, create:() => Line()),
    'UsedCarImage': TypeInfo(TypeOf.Class, create:() => UsedCarImage()),
    'Vehicle': TypeInfo(TypeOf.Class, create:() => Vehicle()),
    'Packages': TypeInfo(TypeOf.Class, create:() => Packages()),
    'List<VehiclePackage>': TypeInfo(TypeOf.Class, create:() => <VehiclePackage>[]),
    'VehiclePackage': TypeInfo(TypeOf.Class, create:() => VehiclePackage()),
    'VehicleSecured': TypeInfo(TypeOf.Class, create:() => VehicleSecured()),
    'VehicleImage': TypeInfo(TypeOf.Class, create:() => VehicleImage()),
    'VehicleSecuredAudit': TypeInfo(TypeOf.Class, create:() => VehicleSecuredAudit()),
    'List<UsedCarImage>': TypeInfo(TypeOf.Class, create:() => <UsedCarImage>[]),
    'List<VehicleSecuredAudit>': TypeInfo(TypeOf.Class, create:() => <VehicleSecuredAudit>[]),
    'EquipmentCache': TypeInfo(TypeOf.Class, create:() => EquipmentCache()),
    'OpenSearchVehicle': TypeInfo(TypeOf.Class, create:() => OpenSearchVehicle()),
    'List<EquipmentCache>': TypeInfo(TypeOf.Class, create:() => <EquipmentCache>[]),
    'UpdateVehicleV2Request': TypeInfo(TypeOf.Class, create:() => UpdateVehicleV2Request()),
    'ActionType': TypeInfo(TypeOf.Enum, enumValues:ActionType.values),
    'ProcessResult<TVehicle>': TypeInfo(TypeOf.Class, create:() => ProcessResult<TVehicle>()),
});

Dart UpdateVehicleV2Request DTOs

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

HTTP + CSV

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

POST /v2/{VehicleType}/Vehicle/UpdateVehicle HTTP/1.1 
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"vehicleIdentifier":"String","vin":"String","vehicleType":"String"}