POST | /v1/{VehicleType}/Vehicle/Motability | Filter motability vehicle data |
---|
import Foundation
import ServiceStack
public class MotabilityVehiclesFilterRequest : IPost, Codable
{
public var min:Int
public var max:Int
public var noPortArrivalDate:Bool
public var vehicleType:String
required public init(){}
}
public class VehiclesByRetailerResponse : Codable
{
public var vehicles:[VehicleIdentifierData] = []
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 MotabilityVehiclesFilterRequest 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 /v1/{VehicleType}/Vehicle/Motability HTTP/1.1
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<MotabilityVehiclesFilterRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.ServiceModel">
<Max>0</Max>
<Min>0</Min>
<NoPortArrivalDate>false</NoPortArrivalDate>
<VehicleType>String</VehicleType>
</MotabilityVehiclesFilterRequest>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <VehiclesByRetailerResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO"> <Vehicles> <VehicleIdentifierData> <Account>String</Account> <AccountType>String</AccountType> <ActiveOffers xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:int>0</d4p1: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> <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> <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:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:string>String</d4p1: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> <PackageNames xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:string>String</d4p1: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: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> </Equipment> <HasMotabilityError>false</HasMotabilityError> <Retailer>String</Retailer> </VehicleIdentifierData> </Vehicles> </VehiclesByRetailerResponse>