| POST | /v2/{VehicleType}/Vehicle/UpdateVehicle | Refresh 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 .xml suffix or ?format=xml
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/xml
Content-Type: application/xml
Content-Length: length
<UpdateVehicleV2Request xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.ServiceModel">
<VehicleIdentifier>String</VehicleIdentifier>
<VehicleType>String</VehicleType>
<Vin>String</Vin>
</UpdateVehicleV2Request>