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 campaignOLEVGrantOffers:[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?
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
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case category
case Description
case reference
}
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)
}
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) }
}
}
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 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]
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 .csv suffix or ?format=csv
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: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"vehicle":{"retailer":"String","hasMotabilityError":false,"equipment":[{"id":0,"code":"String","description":"String"}],"engine":"String","vin":"String","description":"String","model":"String","otr":"String","retailPriceExVAT":"String","actualPrice":"String","fuelType":"String","transmission":"String","transmissionType":"String","colour":"String","colourCode":"String","colourDescription":"String","commissionNumber":"String","offerAvailable":false,"campaignDiscountOfferTotal":0,"campaignDiscountOfferTotalCurrent":0,"campaignDiscountOfferTotalPending":0,"campaignServiceOfferTotal":0,"campaignServiceOfferTotalCurrent":0,"campaignServiceOfferTotalPending":0,"campaignCustomOfferTotal":0,"campaignPersonalisedOfferTotalCurrent":0,"campaignPersonalisedOfferTotalPending":0,"campaignPersonalisedOfferTotal":0,"campaignCustomOfferTotalCurrent":0,"campaignCustomOfferTotalPending":0,"campaignOtherOfferTotal":0,"campaignOtherOfferTotalCurrent":0,"campaignOtherOfferTotalPending":0,"retailerDiscountOfferTotal":0,"retailerDiscountOfferTotalCurrent":0,"retailerDiscountOfferTotalPending":0,"retailerServiceOfferTotal":0,"retailerServiceOfferTotalCurrent":0,"retailerServiceOfferTotalPending":0,"retailerCustomOfferTotal":0,"retailerCustomOfferTotalCurrent":0,"retailerCustomOfferTotalPending":0,"retailerWarrantyOfferTotal":0,"retailerWarrantyOfferTotalCurrent":0,"retailerWarrantyOfferTotalPending":0,"retailerOfferTotal":0,"retailerOfferTotalCurrent":0,"retailerOfferTotalPending":0,"campaignOfferTotal":0,"campaignOfferTotalCurrent":0,"campaignOfferTotalPending":0,"campaignAndOfferTotal":0,"campaignAndOfferTotalCurrent":0,"campaignAndOfferTotalPending":0,"offerTotal":0,"offerTotalCurrent":0,"offerTotalPending":0,"creation":"String","modified":"String","electricRange":0,"electricConsumption":0,"portArrivalDate":"\/Date(-62135596800000-0000)\/","daysSincePortArrival":0,"retailPriceIncVAT":0,"bodyStyle":"String","upholstery":"String","upholsteryCode":"String","upholsteryType":"String","packageNames":["String"],"line":"String","currentRetailerOfferPrice":0,"retailPrice":"String","vatQualifying":false,"retailerId":0,"gssnId":"String","noImage":false,"imageUrl":"String","isAvailableOnline":false,"isBackOrdered":false,"creationDate":"String","maintenanceDate":"String","registrationNumber":"String","registrationDate":"\/Date(-62135596800000-0000)\/","mileage":0,"tradeInDate":"\/Date(-62135596800000-0000)\/","source":"String","vehicleType":"String","offerAmount":"String","offerExpiry":"String","activeOffers":[0],"campaignMessagesTotal":0,"underOffer":false,"isDisplayStock":false,"displayRetailer":"String","displayRetailerGssnId":"String","location":"String","account":"String","accountType":"String","usageCode":"String","bm7NST":"String","isSellable":false,"secured":false,"specialist":false,"isMotabilityRetailer":false,"upholsteryDescription":"String","inBackOrderAccount":false,"fullModelYearCode":"String","productionDate":"\/Date(-62135596800000-0000)\/","baumuster":"String","isMotability":false,"pipAdvanceRentalGross":0,"wpmsAdvanceRentalGross":0,"ispVehicleCustomerDescriptions":["String"]},"campaignOffers":[{"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0}],"campaignPersonalisedOffers":[{"category":"String","description":"String","reference":"String","id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0}],"campaignOLEVGrantOffers":[{"id":0,"offerType":"String","campaignName":"String","from":"String","to":"String","value":"String","net":0,"offerVehicle":{"retailPriceExVAT":"String"},"pending":false,"documentUrl":"String","personalised":false,"isPersonalisedMonetaryOffer":false,"campaignVIPDiscount":false,"offerValueNet":0}],"campaignMessages":[{"id":0,"vin":"String","campaignId":0,"value":"String","campaignDescription":"String","from":"String","to":"String","documentUrl":"String"}],"offerHistories":[{"id":0,"auditType":"String","offerType":"String","source":"String","from":"String","to":"String","personalised":false,"value":"String","net":"String","vat":"String","description":"String","vin":"String","gssn":"String","creation":"String","modified":"String","userId":"String","user":0,"offerId":0,"commissionNumber":"String","campaignId":0,"campaignDescription":"String","creationDate":"\/Date(-62135596800000-0000)\/","isUsedCarOffer":false}],"financeOffers":[{"campaignDescription":"String","termsAndConditions":"String","label":"String","campaignId":0,"documentUrl":"String","from":"String","id":0,"to":"String","value":"String","vin":"String","enabled":false,"pending":false,"offerType":"String"}]}