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 Foundation
import ServiceStack

public class UpdateVehicleV2Request : IPost, Codable
{
    public var vehicleIdentifier:String
    public var vin:String
    public var vehicleType:String

    required public init(){}
}

public class ProcessResult<TVehicle : Codable> : Codable
{
    public var success:Bool
    public var rejected:Bool
    public var mappedVehicle:OpenSearchVehicle
    public var action:ActionType

    required public init(){}
}

public class OpenSearchVehicle : Vehicle
{
    public var vehicleIdentifier:String
    public var lastUpdated:Date
    public var equipmentCacheList:[EquipmentCache] = []
    public var key:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case vehicleIdentifier
        case lastUpdated
        case equipmentCacheList
        case key
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        vehicleIdentifier = try container.decodeIfPresent(String.self, forKey: .vehicleIdentifier)
        lastUpdated = try container.decodeIfPresent(Date.self, forKey: .lastUpdated)
        equipmentCacheList = try container.decodeIfPresent([EquipmentCache].self, forKey: .equipmentCacheList) ?? []
        key = try container.decodeIfPresent(String.self, forKey: .key)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if vehicleIdentifier != nil { try container.encode(vehicleIdentifier, forKey: .vehicleIdentifier) }
        if lastUpdated != nil { try container.encode(lastUpdated, forKey: .lastUpdated) }
        if equipmentCacheList.count > 0 { try container.encode(equipmentCacheList, forKey: .equipmentCacheList) }
        if key != nil { try container.encode(key, forKey: .key) }
    }
}

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

    required public init(){}
}

public class BodyStyle : Codable
{
    public var id:Int
    public var Description:String
    public var styleCode:String
    public var styleCodeElectric:String
    public var styleCodeHybrid:String
    public var sortOrder:Int
    public var brand:Brand
    public var brand_Id:Int?
    public var models:[Model]

    required public init(){}
}

public class Brand : Codable
{
    public var id:Int
    public var Description:String
    public var displayName:String
    public var enabledNew:Bool
    public var enabledUsed:Bool
    public var bodyStyles:[BodyStyle]

    required public init(){}
}

public class Model : Codable
{
    public var id:Int
    public var Description:String
    public var displayName:String
    public var productRange:String
    public var bodyStyle_Id:Int?
    public var overrideBodyStyleId:Int?
    public var bodyStyle:BodyStyle
    public var productRanges:[ProductRange]
    public var imageUrlNew:String
    public var imageUrlUsed:String
    public var specialistNew:Bool
    public var specialistUsed:Bool
    public var excludeFromFiltersNew:Bool
    public var excludeFromFiltersUsed:Bool
    public var priorityNew:Int
    public var priorityUsed:Int
    public var alternativeModelsNew:String
    public var alternativeModelsUsed:String
    public var vehicleClass_Id:Int?
    public var vehicleClass:VehicleClass
    public var oneWebModelUrlNew:String
    public var oneWebModelUrlUsed:String
    public var lastEdited:Date?

    required public init(){}
}

public class ProductRange : Codable
{
    public var modelId:Int
    public var model:Model
    public var fuelTypeId:Int
    public var mapped_FuelType:MappedFuelType
    public var productRangeCode:Int?

    required public init(){}
}

public class MappedFuelType : Codable
{
    public var id:Int
    public var Description:String
    public var fuelTypes:String
    public var sortOrder:Int

    required public init(){}
}

public class VehicleClass : Codable
{
    public var id:Int
    public var Description:String
    public var priority:Int
    public var vehicleClasses:[Model]

    required public init(){}
}

public class Consumption : Codable
{
    public var id:Int
    public var lkm:Double
    public var mpg:Double

    required public init(){}
}

public class Dealer : Codable
{
    public var id:Int
    public var Description:String
    public var rodCode:String
    public var gssnOutletId:String
    public var latitude:Double
    public var longitude:Double
    public var retailerGroupId:String
    public var street:String
    public var city:String
    public var district:String
    public var postcode:String
    public var phone:String
    public var fax:String
    public var email:String
    public var website:String
    public var isOnline:Bool
    public var isNewCarRetailer:Bool
    public var isUsedCarRetailer:Bool
    public var isCentralRetailer:Bool
    public var campaignExcluded:Bool
    public var creationDate:Date?
    public var creationSource:String
    public var maintenanceDate:Date?
    public var maintenanceSource:String
    public var chatEnabled:Bool
    public var tradeInEnabled:Bool
    public var retailerGroup:RetailerGroup
    public var retailerGroup_Id:Int?
    public var marketArea:MarketArea
    public var marketArea_Id:Int?
    public var displayPhoneNumberNew:String
    public var displayPhoneNumberUsed:String
    public var smart:Bool
    public var smartDescription:String
    public var smartWebsite:String
    public var smartEmail:String
    public var smartPhone:String
    public var additionalInformation:String
    public var legacyId:String
    public var agent:Bool
    public var port:Port
    public var port_Id:Int?
    public var retailerAccount:[RetailerAccount]
    public var digitalLoungeParentGssnId:String
    public var sendLeadsToDigitalLoungeParent:Bool?
    public var isExcludedFromImport:Bool?
    public var region_Id:Int?
    public var region:Region

    required public init(){}
}

public class RetailerGroup : Codable
{
    public var id:Int
    public var retailerGroupId:String
    public var retailerGroupName:String
    public var creationDate:Date?
    public var creationSource:String
    public var maintenanceDate:Date?
    public var maintenanceSource:String
    public var priorityServiceNew:Int?
    public var priorityServiceUsed:Int?
    public var legacyId:String

    required public init(){}
}

public class MarketArea : Codable
{
    public var id:Int
    public var marketAreaId:Int
    public var marketAreaName:String

    required public init(){}
}

public class Port : Codable
{
    public var id:Int
    public var creation:Date?
    public var modified:Date?
    public var Description:String
    public var latitude:Double
    public var longitude:Double

    required public init(){}
}

public class RetailerAccount : Codable
{
    public var id:Int
    public var stpNumber:String
    public var retailer_Id:Int
    public var retailer:Dealer

    required public init(){}
}

public class Region : Codable
{
    public var id:Int
    public var regionName:String

    required public init(){}
}

public class Engine : Codable
{
    public var id:Int
    public var badge:String
    public var brand_Id:Int?

    required public init(){}
}

public class MappedColourGroup : Codable
{
    public var id:Int
    public var Description:String
    public var colours:String
    public var imageUrl:String

    required public init(){}
}

public class MappedTransmissionGroup : Codable
{
    public var id:Int
    public var Description:String
    public var alias:String

    required public init(){}
}

public class Upholstery : Codable
{
    public var id:Int
    public var price:String
    public var code:String
    public var type:String

    required public init(){}
}

public class Line : Codable
{
    public var id:Int
    public var Description:String
    public var alias:String
    public var overridesId:String

    required public init(){}
}

public class UsedCarImage : Codable
{
    public var id:Int
    public var creationDate:Date
    public var creationSource:String
    public var maintenanceDate:Date?
    public var maintenanceSource:String
    public var vehicleId:Int
    public var vehicle:Vehicle
    public var imageUrl:String
    public var primaryImage:Bool
    public var perspective:String
    public var index:Int

    required public init(){}
}

public class VehiclePackage : Codable
{
    public var vehicleId:Int
    public var packageId:Int
    public var vehicle:Vehicle
    public var package:Packages

    required public init(){}
}

public class Packages : Codable
{
    public var id:Int
    public var Description:String
    public var alias:String
    public var overridesId:String
    public var packageDataOverridesId:String
    public var vehiclePackages:[VehiclePackage]

    required public init(){}
}

public class VehicleSecured : Codable
{
    public var id:Int
    public var reason:String
    public var created:Date
    public var userId:String

    required public init(){}
}

public class VehicleImage : Codable
{
    public var id:Int
    public var commissionNumber:String
    public var cachedImageUrl:String
    public var imageDescriptor:String
    public var createdDate:Date

    required public init(){}
}

public class VehicleSecuredAudit : Codable
{
    public var id:Int
    public var userId:String
    public var mbukSecured:Bool
    public var vin:String
    public var vehicleType:String
    public var reason:String
    public var created:Date
    public var vehicle:Vehicle
    public var commissionNumber:String
    public var isBulkUpdate:Bool

    required public init(){}
}

public class EquipmentCache : Codable
{
    public var code:String
    public var Description:String
    public var standardFlag:String
    public var price:Double
    public var category:String
    public var importance:String

    required public init(){}
}

public enum ActionType : String, Codable
{
    case Insert
    case Update
    case Offline
    case NoAction
    case Error
}


Swift UpdateVehicleV2Request DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

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

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