| GET | /v1/Vehicle/Reject/{vehicleIdentifier} | Get vehicle details and rejections by VIN or Commission Number | Calls Vehicle Data API. Returns vehicle details from the DB if found, otherwise from the Rejects table. |
|---|
import Foundation
import ServiceStack
public class VehicleRejectRequest : IGet, Codable
{
public var vehicleIdentifier:String
required public init(){}
}
public class VehicleRejectDetailsResponse : Codable
{
public var vehicle:VehicleRejectDetailsData
required public init(){}
}
public class VehicleRejectDetailsData : Codable
{
public var details:VehicleIdentifierData
public var rejections:[VehicleRejectionData] = []
public var sellableChecks:[VehicleSellableCheckData] = []
required public init(){}
}
public class VehicleIdentifierData : VehicleData
{
public var retailer:String
public var hasMotabilityError:Bool
public var equipment:[Equipment] = []
public var vehicleClass:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case retailer
case hasMotabilityError
case equipment
case vehicleClass
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
retailer = try container.decodeIfPresent(String.self, forKey: .retailer)
hasMotabilityError = try container.decodeIfPresent(Bool.self, forKey: .hasMotabilityError)
equipment = try container.decodeIfPresent([Equipment].self, forKey: .equipment) ?? []
vehicleClass = try container.decodeIfPresent(String.self, forKey: .vehicleClass)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if retailer != nil { try container.encode(retailer, forKey: .retailer) }
if hasMotabilityError != nil { try container.encode(hasMotabilityError, forKey: .hasMotabilityError) }
if equipment.count > 0 { try container.encode(equipment, forKey: .equipment) }
if vehicleClass != nil { try container.encode(vehicleClass, forKey: .vehicleClass) }
}
}
public class VehicleData : VehicleDataBase
{
public var engine:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case engine
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
engine = try container.decodeIfPresent(String.self, forKey: .engine)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if engine != nil { try container.encode(engine, forKey: .engine) }
}
}
public class VehicleDataBase : Codable
{
public var vin:String
public var Description:String
public var model:String
public var otr:String
public var retailPriceExVAT:String
public var actualPrice:String
public var p11D:String
public var fuelType:String
public var transmission:String
public var transmissionType:String
public var colour:String
public var colourCode:String
public var colourDescription:String
public var commissionNumber:String
public var offerAvailable:Bool
public var campaignDiscountOfferTotal:Int
public var campaignDiscountOfferTotalCurrent:Int
public var campaignDiscountOfferTotalPending:Int
public var campaignServiceOfferTotal:Int
public var campaignServiceOfferTotalCurrent:Int
public var campaignServiceOfferTotalPending:Int
public var campaignCustomOfferTotal:Int
public var campaignPersonalisedOfferTotalCurrent:Int
public var campaignPersonalisedOfferTotalPending:Int
public var campaignPersonalisedOfferTotal:Int
public var campaignCustomOfferTotalCurrent:Int
public var campaignCustomOfferTotalPending:Int
public var campaignOtherOfferTotal:Int
public var campaignOtherOfferTotalCurrent:Int
public var campaignOtherOfferTotalPending:Int
public var retailerDiscountOfferTotal:Int
public var retailerDiscountOfferTotalCurrent:Int
public var retailerDiscountOfferTotalPending:Int
public var retailerServiceOfferTotal:Int
public var retailerServiceOfferTotalCurrent:Int
public var retailerServiceOfferTotalPending:Int
public var retailerCustomOfferTotal:Int
public var retailerCustomOfferTotalCurrent:Int
public var retailerCustomOfferTotalPending:Int
public var retailerWarrantyOfferTotal:Int
public var retailerWarrantyOfferTotalCurrent:Int
public var retailerWarrantyOfferTotalPending:Int
public var retailerOfferTotal:Int
public var retailerOfferTotalCurrent:Int
public var retailerOfferTotalPending:Int
public var campaignOfferTotal:Int
public var campaignOfferTotalCurrent:Int
public var campaignOfferTotalPending:Int
public var campaignAndOfferTotal:Int
public var campaignAndOfferTotalCurrent:Int
public var campaignAndOfferTotalPending:Int
public var offerTotal:Int
public var offerTotalCurrent:Int
public var offerTotalPending:Int
public var creation:String
public var modified:String
public var electricRange:Int
public var electricConsumption:Int
public var portArrivalDate:Date?
public var daysSincePortArrival:Int?
public var retailPriceIncVAT:Double
public var bodyStyle:String
public var upholstery:String
public var upholsteryCode:String
public var upholsteryType:String
public var packageNames:[String] = []
public var line:String
public var mappedLine:String
public var currentRetailerOfferPrice:Double
public var retailPrice:String
public var vatQualifying:Bool
public var retailerId:Int
public var gssnId:String
public var noImage:Bool
public var imageUrl:String
public var isAvailableOnline:Bool
public var isBackOrdered:Bool
public var creationDate:String
public var maintenanceDate:String
public var registrationNumber:String
public var registrationDate:Date?
public var mileage:Int?
public var tradeInDate:Date?
public var source:String
public var vehicleType:String
public var offerAmount:String
public var offerExpiry:String
public var activeOffers:[Int] = []
public var campaignMessagesTotal:Int
public var underOffer:Bool
public var isDisplayStock:Bool
public var displayRetailer:String
public var displayRetailerGssnId:String
public var location:String
public var account:String
public var accountType:String
public var usageCode:String
public var bm7NST:String
public var isSellable:Bool
public var secured:Bool
public var specialist:Bool
public var isMotabilityRetailer:Bool
public var upholsteryDescription:String
public var inBackOrderAccount:Bool
public var fullModelYearCode:String
public var baumuster:String
public var isMotability:Bool
public var pipAdvanceRentalGross:Double?
public var wpmsAdvanceRentalGross:Double?
public var ispVehicleCustomerDescriptions:[String]
public var eligibleForMaTransfer:Bool
public var confirmedProductionDate:String
public var forecastedArrivalDate:String
required public init(){}
}
public class Equipment : Codable
{
public var id:Int?
public var code:String
public var Description:String
required public init(){}
}
public class VehicleRejectionData : Codable
{
public var rejectReason:String
public var exception:String
public var creationDate:String
public var active:Bool?
public var dataSource:String
required public init(){}
}
public class VehicleSellableCheckData : Codable
{
public var check:String
public var failure:String
public var creationDate:String
required public init(){}
}
Swift VehicleRejectRequest 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.
GET /v1/Vehicle/Reject/{vehicleIdentifier} HTTP/1.1
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<VehicleRejectDetailsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.ServiceModel">
<Vehicle>
<Details xmlns:d3p1="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
<d3p1:Account>String</d3p1:Account>
<d3p1:AccountType>String</d3p1:AccountType>
<d3p1:ActiveOffers xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:int>0</d4p1:int>
</d3p1:ActiveOffers>
<d3p1:ActualPrice>String</d3p1:ActualPrice>
<d3p1:Baumuster>String</d3p1:Baumuster>
<d3p1:Bm7NST>String</d3p1:Bm7NST>
<d3p1:BodyStyle>String</d3p1:BodyStyle>
<d3p1:CampaignAndOfferTotal>0</d3p1:CampaignAndOfferTotal>
<d3p1:CampaignAndOfferTotalCurrent>0</d3p1:CampaignAndOfferTotalCurrent>
<d3p1:CampaignAndOfferTotalPending>0</d3p1:CampaignAndOfferTotalPending>
<d3p1:CampaignCustomOfferTotal>0</d3p1:CampaignCustomOfferTotal>
<d3p1:CampaignCustomOfferTotalCurrent>0</d3p1:CampaignCustomOfferTotalCurrent>
<d3p1:CampaignCustomOfferTotalPending>0</d3p1:CampaignCustomOfferTotalPending>
<d3p1:CampaignDiscountOfferTotal>0</d3p1:CampaignDiscountOfferTotal>
<d3p1:CampaignDiscountOfferTotalCurrent>0</d3p1:CampaignDiscountOfferTotalCurrent>
<d3p1:CampaignDiscountOfferTotalPending>0</d3p1:CampaignDiscountOfferTotalPending>
<d3p1:CampaignMessagesTotal>0</d3p1:CampaignMessagesTotal>
<d3p1:CampaignOfferTotal>0</d3p1:CampaignOfferTotal>
<d3p1:CampaignOfferTotalCurrent>0</d3p1:CampaignOfferTotalCurrent>
<d3p1:CampaignOfferTotalPending>0</d3p1:CampaignOfferTotalPending>
<d3p1:CampaignOtherOfferTotal>0</d3p1:CampaignOtherOfferTotal>
<d3p1:CampaignOtherOfferTotalCurrent>0</d3p1:CampaignOtherOfferTotalCurrent>
<d3p1:CampaignOtherOfferTotalPending>0</d3p1:CampaignOtherOfferTotalPending>
<d3p1:CampaignPersonalisedOfferTotal>0</d3p1:CampaignPersonalisedOfferTotal>
<d3p1:CampaignPersonalisedOfferTotalCurrent>0</d3p1:CampaignPersonalisedOfferTotalCurrent>
<d3p1:CampaignPersonalisedOfferTotalPending>0</d3p1:CampaignPersonalisedOfferTotalPending>
<d3p1:CampaignServiceOfferTotal>0</d3p1:CampaignServiceOfferTotal>
<d3p1:CampaignServiceOfferTotalCurrent>0</d3p1:CampaignServiceOfferTotalCurrent>
<d3p1:CampaignServiceOfferTotalPending>0</d3p1:CampaignServiceOfferTotalPending>
<d3p1:Colour>String</d3p1:Colour>
<d3p1:ColourCode>String</d3p1:ColourCode>
<d3p1:ColourDescription>String</d3p1:ColourDescription>
<d3p1:CommissionNumber>String</d3p1:CommissionNumber>
<d3p1:ConfirmedProductionDate>String</d3p1:ConfirmedProductionDate>
<d3p1:Creation>String</d3p1:Creation>
<d3p1:CreationDate>String</d3p1:CreationDate>
<d3p1:CurrentRetailerOfferPrice>0</d3p1:CurrentRetailerOfferPrice>
<d3p1:DaysSincePortArrival>0</d3p1:DaysSincePortArrival>
<d3p1:Description>String</d3p1:Description>
<d3p1:DisplayRetailer>String</d3p1:DisplayRetailer>
<d3p1:DisplayRetailerGssnId>String</d3p1:DisplayRetailerGssnId>
<d3p1:ElectricConsumption>0</d3p1:ElectricConsumption>
<d3p1:ElectricRange>0</d3p1:ElectricRange>
<d3p1:EligibleForMaTransfer>false</d3p1:EligibleForMaTransfer>
<d3p1:ForecastedArrivalDate>String</d3p1:ForecastedArrivalDate>
<d3p1:FuelType>String</d3p1:FuelType>
<d3p1:FullModelYearCode>String</d3p1:FullModelYearCode>
<d3p1:GssnId>String</d3p1:GssnId>
<d3p1:ImageUrl>String</d3p1:ImageUrl>
<d3p1:InBackOrderAccount>false</d3p1:InBackOrderAccount>
<d3p1:IsAvailableOnline>false</d3p1:IsAvailableOnline>
<d3p1:IsBackOrdered>false</d3p1:IsBackOrdered>
<d3p1:IsDisplayStock>false</d3p1:IsDisplayStock>
<d3p1:IsMotability>false</d3p1:IsMotability>
<d3p1:IsMotabilityRetailer>false</d3p1:IsMotabilityRetailer>
<d3p1:IsSellable>false</d3p1:IsSellable>
<d3p1:IspVehicleCustomerDescriptions xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d3p1:IspVehicleCustomerDescriptions>
<d3p1:Line>String</d3p1:Line>
<d3p1:Location>String</d3p1:Location>
<d3p1:MaintenanceDate>String</d3p1:MaintenanceDate>
<d3p1:MappedLine>String</d3p1:MappedLine>
<d3p1:Mileage>0</d3p1:Mileage>
<d3p1:Model>String</d3p1:Model>
<d3p1:Modified>String</d3p1:Modified>
<d3p1:NoImage>false</d3p1:NoImage>
<d3p1:OfferAmount>String</d3p1:OfferAmount>
<d3p1:OfferAvailable>false</d3p1:OfferAvailable>
<d3p1:OfferExpiry>String</d3p1:OfferExpiry>
<d3p1:OfferTotal>0</d3p1:OfferTotal>
<d3p1:OfferTotalCurrent>0</d3p1:OfferTotalCurrent>
<d3p1:OfferTotalPending>0</d3p1:OfferTotalPending>
<d3p1:Otr>String</d3p1:Otr>
<d3p1:P11D>String</d3p1:P11D>
<d3p1:PackageNames xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d3p1:PackageNames>
<d3p1:PipAdvanceRentalGross>0</d3p1:PipAdvanceRentalGross>
<d3p1:PortArrivalDate>0001-01-01T00:00:00</d3p1:PortArrivalDate>
<d3p1:RegistrationDate>0001-01-01T00:00:00</d3p1:RegistrationDate>
<d3p1:RegistrationNumber>String</d3p1:RegistrationNumber>
<d3p1:RetailPrice>String</d3p1:RetailPrice>
<d3p1:RetailPriceExVAT>String</d3p1:RetailPriceExVAT>
<d3p1:RetailPriceIncVAT>0</d3p1:RetailPriceIncVAT>
<d3p1:RetailerCustomOfferTotal>0</d3p1:RetailerCustomOfferTotal>
<d3p1:RetailerCustomOfferTotalCurrent>0</d3p1:RetailerCustomOfferTotalCurrent>
<d3p1:RetailerCustomOfferTotalPending>0</d3p1:RetailerCustomOfferTotalPending>
<d3p1:RetailerDiscountOfferTotal>0</d3p1:RetailerDiscountOfferTotal>
<d3p1:RetailerDiscountOfferTotalCurrent>0</d3p1:RetailerDiscountOfferTotalCurrent>
<d3p1:RetailerDiscountOfferTotalPending>0</d3p1:RetailerDiscountOfferTotalPending>
<d3p1:RetailerId>0</d3p1:RetailerId>
<d3p1:RetailerOfferTotal>0</d3p1:RetailerOfferTotal>
<d3p1:RetailerOfferTotalCurrent>0</d3p1:RetailerOfferTotalCurrent>
<d3p1:RetailerOfferTotalPending>0</d3p1:RetailerOfferTotalPending>
<d3p1:RetailerServiceOfferTotal>0</d3p1:RetailerServiceOfferTotal>
<d3p1:RetailerServiceOfferTotalCurrent>0</d3p1:RetailerServiceOfferTotalCurrent>
<d3p1:RetailerServiceOfferTotalPending>0</d3p1:RetailerServiceOfferTotalPending>
<d3p1:RetailerWarrantyOfferTotal>0</d3p1:RetailerWarrantyOfferTotal>
<d3p1:RetailerWarrantyOfferTotalCurrent>0</d3p1:RetailerWarrantyOfferTotalCurrent>
<d3p1:RetailerWarrantyOfferTotalPending>0</d3p1:RetailerWarrantyOfferTotalPending>
<d3p1:Secured>false</d3p1:Secured>
<d3p1:Source>String</d3p1:Source>
<d3p1:Specialist>false</d3p1:Specialist>
<d3p1:TradeInDate>0001-01-01T00:00:00</d3p1:TradeInDate>
<d3p1:Transmission>String</d3p1:Transmission>
<d3p1:TransmissionType>String</d3p1:TransmissionType>
<d3p1:UnderOffer>false</d3p1:UnderOffer>
<d3p1:Upholstery>String</d3p1:Upholstery>
<d3p1:UpholsteryCode>String</d3p1:UpholsteryCode>
<d3p1:UpholsteryDescription>String</d3p1:UpholsteryDescription>
<d3p1:UpholsteryType>String</d3p1:UpholsteryType>
<d3p1:UsageCode>String</d3p1:UsageCode>
<d3p1:VATQualifying>false</d3p1:VATQualifying>
<d3p1:VehicleType>String</d3p1:VehicleType>
<d3p1:Vin>String</d3p1:Vin>
<d3p1:WpmsAdvanceRentalGross>0</d3p1:WpmsAdvanceRentalGross>
<d3p1:Engine>String</d3p1:Engine>
<d3p1:Equipment xmlns:d4p1="http://schemas.datacontract.org/2004/07/Mercedes.OS.Vehicle.Shared.POCO">
<d4p1:Equipment>
<d4p1:Code>String</d4p1:Code>
<d4p1:Description>String</d4p1:Description>
<d4p1:Id>0</d4p1:Id>
</d4p1:Equipment>
</d3p1:Equipment>
<d3p1:HasMotabilityError>false</d3p1:HasMotabilityError>
<d3p1:Retailer>String</d3p1:Retailer>
<d3p1:VehicleClass>String</d3p1:VehicleClass>
</Details>
<Rejections xmlns:d3p1="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
<d3p1:VehicleRejectionData>
<d3p1:Active>false</d3p1:Active>
<d3p1:CreationDate>String</d3p1:CreationDate>
<d3p1:DataSource>String</d3p1:DataSource>
<d3p1:Exception>String</d3p1:Exception>
<d3p1:RejectReason>String</d3p1:RejectReason>
</d3p1:VehicleRejectionData>
</Rejections>
<SellableChecks xmlns:d3p1="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
<d3p1:VehicleSellableCheckData>
<d3p1:Check>String</d3p1:Check>
<d3p1:CreationDate>String</d3p1:CreationDate>
<d3p1:Failure>String</d3p1:Failure>
</d3p1:VehicleSellableCheckData>
</SellableChecks>
</Vehicle>
</VehicleRejectDetailsResponse>