| GET | /v1/{VehicleType}/Vehicle/{vehicleIdentifier} | Get vehicle data by commission number |
|---|
import Foundation
import ServiceStack
public class VehicleByCommissionNumberRequest : IGet, Codable
{
public var vehicleIdentifier:String
public var vehicleType:String
required public init(){}
}
public class VehicleByCommissionNumberResponse : VehicleByIdentifierResponse
{
public var vehicle:VehicleIdentifierData
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case vehicle
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
vehicle = try container.decodeIfPresent(VehicleIdentifierData.self, forKey: .vehicle)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if vehicle != nil { try container.encode(vehicle, forKey: .vehicle) }
}
}
public class VehicleByIdentifierResponse : Codable
{
public var campaignOffers:[Offer] = []
public var campaignPersonalisedOffers:[PersonalisedOffer] = []
public var campaignGovernmentGrantOffers:[Offer] = []
public var campaignMessages:[Message] = []
public var offerHistories:[OfferHistory]
public var financeOffers:[FinanceOffer]
required public init(){}
}
public class Offer : Codable
{
public var id:Int
public var offerType:String
public var campaignName:String
public var from:String
public var to:String
public var value:String
public var net:Double?
public var offerVehicle:OfferVehicle
public var pending:Bool
public var documentUrl:String
public var personalised:Bool
public var isPersonalisedMonetaryOffer:Bool
public var campaignVIPDiscount:Bool
public var offerValueNet:Double?
public var campaignGovernmentGrant:Bool
required public init(){}
}
public class OfferVehicle : Codable
{
public var retailPriceExVAT:String
required public init(){}
}
public class PersonalisedOffer : Offer
{
public var category:String
public var Description:String
public var reference:String
public var campaignId:Int
public var certificateRequired:Bool?
public var autoSelect:Bool
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case category
case Description
case reference
case campaignId
case certificateRequired
case autoSelect
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
category = try container.decodeIfPresent(String.self, forKey: .category)
Description = try container.decodeIfPresent(String.self, forKey: .Description)
reference = try container.decodeIfPresent(String.self, forKey: .reference)
campaignId = try container.decodeIfPresent(Int.self, forKey: .campaignId)
certificateRequired = try container.decodeIfPresent(Bool.self, forKey: .certificateRequired)
autoSelect = try container.decodeIfPresent(Bool.self, forKey: .autoSelect)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if category != nil { try container.encode(category, forKey: .category) }
if Description != nil { try container.encode(Description, forKey: .Description) }
if reference != nil { try container.encode(reference, forKey: .reference) }
if campaignId != nil { try container.encode(campaignId, forKey: .campaignId) }
if certificateRequired != nil { try container.encode(certificateRequired, forKey: .certificateRequired) }
if autoSelect != nil { try container.encode(autoSelect, forKey: .autoSelect) }
}
}
public class Message : Codable
{
public var id:Int
public var vin:String
public var campaignId:Int
public var value:String
public var campaignDescription:String
public var from:String
public var to:String
public var documentUrl:String
required public init(){}
}
public class OfferHistory : Codable
{
public var id:Int
public var auditType:String
public var offerType:String
public var source:String
public var from:String
public var to:String
public var personalised:Bool
public var value:String
public var net:String
public var vat:String
public var Description:String
public var vin:String
public var gssn:String
public var creation:String
public var modified:String
public var userId:String
public var user:Int
public var offerId:Int
public var commissionNumber:String
public var campaignId:Int?
public var campaignDescription:String
public var creationDate:Date
public var isUsedCarOffer:Bool
required public init(){}
}
public class FinanceOffer : Codable
{
public var campaignDescription:String
public var termsAndConditions:String
public var label:String
public var campaignId:Int
public var documentUrl:String
public var from:String
public var id:Int
public var to:String
public var value:String
public var vin:String
public var enabled:Bool
public var pending:Bool
public var offerType:String
required public init(){}
}
public class VehicleIdentifierData : VehicleData
{
public var retailer:String
public var hasMotabilityError:Bool
public var equipment:[Equipment] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case retailer
case hasMotabilityError
case equipment
}
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) ?? []
}
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) }
}
}
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 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 productionDate:Date?
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(){}
}
Swift VehicleByCommissionNumberRequest 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/{VehicleType}/Vehicle/{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
<VehicleByCommissionNumberResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
<CampaignGovernmentGrantOffers>
<Offer>
<CampaignGovernmentGrant>false</CampaignGovernmentGrant>
<CampaignName>String</CampaignName>
<CampaignVIPDiscount>false</CampaignVIPDiscount>
<DocumentUrl>String</DocumentUrl>
<From>String</From>
<Id>0</Id>
<IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
<Net>0</Net>
<OfferType>String</OfferType>
<OfferValueNet>0</OfferValueNet>
<OfferVehicle>
<RetailPriceExVAT>String</RetailPriceExVAT>
</OfferVehicle>
<Pending>false</Pending>
<Personalised>false</Personalised>
<To>String</To>
<Value>String</Value>
</Offer>
</CampaignGovernmentGrantOffers>
<CampaignMessages>
<Message>
<CampaignDescription>String</CampaignDescription>
<CampaignId>0</CampaignId>
<DocumentUrl>String</DocumentUrl>
<From>String</From>
<Id>0</Id>
<To>String</To>
<Value>String</Value>
<Vin>String</Vin>
</Message>
</CampaignMessages>
<CampaignOffers>
<Offer>
<CampaignGovernmentGrant>false</CampaignGovernmentGrant>
<CampaignName>String</CampaignName>
<CampaignVIPDiscount>false</CampaignVIPDiscount>
<DocumentUrl>String</DocumentUrl>
<From>String</From>
<Id>0</Id>
<IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
<Net>0</Net>
<OfferType>String</OfferType>
<OfferValueNet>0</OfferValueNet>
<OfferVehicle>
<RetailPriceExVAT>String</RetailPriceExVAT>
</OfferVehicle>
<Pending>false</Pending>
<Personalised>false</Personalised>
<To>String</To>
<Value>String</Value>
</Offer>
</CampaignOffers>
<CampaignPersonalisedOffers>
<PersonalisedOffer>
<CampaignGovernmentGrant>false</CampaignGovernmentGrant>
<CampaignName>String</CampaignName>
<CampaignVIPDiscount>false</CampaignVIPDiscount>
<DocumentUrl>String</DocumentUrl>
<From>String</From>
<Id>0</Id>
<IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
<Net>0</Net>
<OfferType>String</OfferType>
<OfferValueNet>0</OfferValueNet>
<OfferVehicle>
<RetailPriceExVAT>String</RetailPriceExVAT>
</OfferVehicle>
<Pending>false</Pending>
<Personalised>false</Personalised>
<To>String</To>
<Value>String</Value>
<AutoSelect>false</AutoSelect>
<CampaignId>0</CampaignId>
<Category>String</Category>
<CertificateRequired>false</CertificateRequired>
<Description>String</Description>
<Reference>String</Reference>
</PersonalisedOffer>
</CampaignPersonalisedOffers>
<FinanceOffers>
<FinanceOffer>
<CampaignDescription>String</CampaignDescription>
<CampaignId>0</CampaignId>
<DocumentUrl>String</DocumentUrl>
<Enabled>false</Enabled>
<From>String</From>
<Id>0</Id>
<Label>String</Label>
<OfferType>String</OfferType>
<Pending>false</Pending>
<TermsAndConditions>String</TermsAndConditions>
<To>String</To>
<Value>String</Value>
<Vin>String</Vin>
</FinanceOffer>
</FinanceOffers>
<OfferHistories>
<OfferHistory>
<AuditType>String</AuditType>
<CampaignDescription>String</CampaignDescription>
<CampaignId>0</CampaignId>
<CommissionNumber>String</CommissionNumber>
<Creation>String</Creation>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<Description>String</Description>
<From>String</From>
<Gssn>String</Gssn>
<Id>0</Id>
<IsUsedCarOffer>false</IsUsedCarOffer>
<Modified>String</Modified>
<Net>String</Net>
<OfferId>0</OfferId>
<OfferType>String</OfferType>
<Personalised>false</Personalised>
<Source>String</Source>
<To>String</To>
<User>0</User>
<UserId>String</UserId>
<VAT>String</VAT>
<Value>String</Value>
<Vin>String</Vin>
</OfferHistory>
</OfferHistories>
<Vehicle>
<Account>String</Account>
<AccountType>String</AccountType>
<ActiveOffers xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:int>0</d3p1:int>
</ActiveOffers>
<ActualPrice>String</ActualPrice>
<Baumuster>String</Baumuster>
<Bm7NST>String</Bm7NST>
<BodyStyle>String</BodyStyle>
<CampaignAndOfferTotal>0</CampaignAndOfferTotal>
<CampaignAndOfferTotalCurrent>0</CampaignAndOfferTotalCurrent>
<CampaignAndOfferTotalPending>0</CampaignAndOfferTotalPending>
<CampaignCustomOfferTotal>0</CampaignCustomOfferTotal>
<CampaignCustomOfferTotalCurrent>0</CampaignCustomOfferTotalCurrent>
<CampaignCustomOfferTotalPending>0</CampaignCustomOfferTotalPending>
<CampaignDiscountOfferTotal>0</CampaignDiscountOfferTotal>
<CampaignDiscountOfferTotalCurrent>0</CampaignDiscountOfferTotalCurrent>
<CampaignDiscountOfferTotalPending>0</CampaignDiscountOfferTotalPending>
<CampaignMessagesTotal>0</CampaignMessagesTotal>
<CampaignOfferTotal>0</CampaignOfferTotal>
<CampaignOfferTotalCurrent>0</CampaignOfferTotalCurrent>
<CampaignOfferTotalPending>0</CampaignOfferTotalPending>
<CampaignOtherOfferTotal>0</CampaignOtherOfferTotal>
<CampaignOtherOfferTotalCurrent>0</CampaignOtherOfferTotalCurrent>
<CampaignOtherOfferTotalPending>0</CampaignOtherOfferTotalPending>
<CampaignPersonalisedOfferTotal>0</CampaignPersonalisedOfferTotal>
<CampaignPersonalisedOfferTotalCurrent>0</CampaignPersonalisedOfferTotalCurrent>
<CampaignPersonalisedOfferTotalPending>0</CampaignPersonalisedOfferTotalPending>
<CampaignServiceOfferTotal>0</CampaignServiceOfferTotal>
<CampaignServiceOfferTotalCurrent>0</CampaignServiceOfferTotalCurrent>
<CampaignServiceOfferTotalPending>0</CampaignServiceOfferTotalPending>
<Colour>String</Colour>
<ColourCode>String</ColourCode>
<ColourDescription>String</ColourDescription>
<CommissionNumber>String</CommissionNumber>
<ConfirmedProductionDate>String</ConfirmedProductionDate>
<Creation>String</Creation>
<CreationDate>String</CreationDate>
<CurrentRetailerOfferPrice>0</CurrentRetailerOfferPrice>
<DaysSincePortArrival>0</DaysSincePortArrival>
<Description>String</Description>
<DisplayRetailer>String</DisplayRetailer>
<DisplayRetailerGssnId>String</DisplayRetailerGssnId>
<ElectricConsumption>0</ElectricConsumption>
<ElectricRange>0</ElectricRange>
<EligibleForMaTransfer>false</EligibleForMaTransfer>
<ForecastedArrivalDate>String</ForecastedArrivalDate>
<FuelType>String</FuelType>
<FullModelYearCode>String</FullModelYearCode>
<GssnId>String</GssnId>
<ImageUrl>String</ImageUrl>
<InBackOrderAccount>false</InBackOrderAccount>
<IsAvailableOnline>false</IsAvailableOnline>
<IsBackOrdered>false</IsBackOrdered>
<IsDisplayStock>false</IsDisplayStock>
<IsMotability>false</IsMotability>
<IsMotabilityRetailer>false</IsMotabilityRetailer>
<IsSellable>false</IsSellable>
<IspVehicleCustomerDescriptions xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>String</d3p1:string>
</IspVehicleCustomerDescriptions>
<Line>String</Line>
<Location>String</Location>
<MaintenanceDate>String</MaintenanceDate>
<Mileage>0</Mileage>
<Model>String</Model>
<Modified>String</Modified>
<NoImage>false</NoImage>
<OfferAmount>String</OfferAmount>
<OfferAvailable>false</OfferAvailable>
<OfferExpiry>String</OfferExpiry>
<OfferTotal>0</OfferTotal>
<OfferTotalCurrent>0</OfferTotalCurrent>
<OfferTotalPending>0</OfferTotalPending>
<Otr>String</Otr>
<P11D>String</P11D>
<PackageNames xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>String</d3p1:string>
</PackageNames>
<PipAdvanceRentalGross>0</PipAdvanceRentalGross>
<PortArrivalDate>0001-01-01T00:00:00</PortArrivalDate>
<ProductionDate>0001-01-01T00:00:00</ProductionDate>
<RegistrationDate>0001-01-01T00:00:00</RegistrationDate>
<RegistrationNumber>String</RegistrationNumber>
<RetailPrice>String</RetailPrice>
<RetailPriceExVAT>String</RetailPriceExVAT>
<RetailPriceIncVAT>0</RetailPriceIncVAT>
<RetailerCustomOfferTotal>0</RetailerCustomOfferTotal>
<RetailerCustomOfferTotalCurrent>0</RetailerCustomOfferTotalCurrent>
<RetailerCustomOfferTotalPending>0</RetailerCustomOfferTotalPending>
<RetailerDiscountOfferTotal>0</RetailerDiscountOfferTotal>
<RetailerDiscountOfferTotalCurrent>0</RetailerDiscountOfferTotalCurrent>
<RetailerDiscountOfferTotalPending>0</RetailerDiscountOfferTotalPending>
<RetailerId>0</RetailerId>
<RetailerOfferTotal>0</RetailerOfferTotal>
<RetailerOfferTotalCurrent>0</RetailerOfferTotalCurrent>
<RetailerOfferTotalPending>0</RetailerOfferTotalPending>
<RetailerServiceOfferTotal>0</RetailerServiceOfferTotal>
<RetailerServiceOfferTotalCurrent>0</RetailerServiceOfferTotalCurrent>
<RetailerServiceOfferTotalPending>0</RetailerServiceOfferTotalPending>
<RetailerWarrantyOfferTotal>0</RetailerWarrantyOfferTotal>
<RetailerWarrantyOfferTotalCurrent>0</RetailerWarrantyOfferTotalCurrent>
<RetailerWarrantyOfferTotalPending>0</RetailerWarrantyOfferTotalPending>
<Secured>false</Secured>
<Source>String</Source>
<Specialist>false</Specialist>
<TradeInDate>0001-01-01T00:00:00</TradeInDate>
<Transmission>String</Transmission>
<TransmissionType>String</TransmissionType>
<UnderOffer>false</UnderOffer>
<Upholstery>String</Upholstery>
<UpholsteryCode>String</UpholsteryCode>
<UpholsteryDescription>String</UpholsteryDescription>
<UpholsteryType>String</UpholsteryType>
<UsageCode>String</UsageCode>
<VATQualifying>false</VATQualifying>
<VehicleType>String</VehicleType>
<Vin>String</Vin>
<WpmsAdvanceRentalGross>0</WpmsAdvanceRentalGross>
<Engine>String</Engine>
<Equipment xmlns:d3p1="http://schemas.datacontract.org/2004/07/Mercedes.OS.Vehicle.Shared.POCO">
<d3p1:Equipment>
<d3p1:Code>String</d3p1:Code>
<d3p1:Description>String</d3p1:Description>
<d3p1:Id>0</d3p1:Id>
</d3p1:Equipment>
</Equipment>
<HasMotabilityError>false</HasMotabilityError>
<Retailer>String</Retailer>
</Vehicle>
</VehicleByCommissionNumberResponse>