| GET | /v1/{VehicleType}/Vehicle/{vehicleIdentifier} | Get vehicle data by commission number |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OfferVehicle:
retail_price_ex_v_a_t: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Offer:
id: int = 0
offer_type: Optional[str] = None
campaign_name: Optional[str] = None
from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
to: Optional[str] = None
value: Optional[str] = None
net: Optional[Decimal] = None
offer_vehicle: Optional[OfferVehicle] = None
pending: bool = False
document_url: Optional[str] = None
personalised: bool = False
is_personalised_monetary_offer: bool = False
campaign_v_i_p_discount: bool = False
offer_value_net: Optional[Decimal] = None
campaign_government_grant: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PersonalisedOffer(Offer):
category: Optional[str] = None
description: Optional[str] = None
reference: Optional[str] = None
campaign_id: int = 0
certificate_required: Optional[bool] = None
auto_select: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Message:
id: int = 0
vin: Optional[str] = None
campaign_id: int = 0
value: Optional[str] = None
campaign_description: Optional[str] = None
from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
to: Optional[str] = None
document_url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OfferHistory:
id: int = 0
audit_type: Optional[str] = None
offer_type: Optional[str] = None
source: Optional[str] = None
from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
to: Optional[str] = None
personalised: bool = False
value: Optional[str] = None
net: Optional[str] = None
vat: Optional[str] = None
description: Optional[str] = None
vin: Optional[str] = None
gssn: Optional[str] = None
creation: Optional[str] = None
modified: Optional[str] = None
user_id: Optional[str] = None
user: int = 0
offer_id: int = 0
commission_number: Optional[str] = None
campaign_id: Optional[int] = None
campaign_description: Optional[str] = None
creation_date: datetime.datetime = datetime.datetime(1, 1, 1)
is_used_car_offer: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinanceOffer:
campaign_description: Optional[str] = None
terms_and_conditions: Optional[str] = None
label: Optional[str] = None
campaign_id: int = 0
document_url: Optional[str] = None
from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
id: int = 0
to: Optional[str] = None
value: Optional[str] = None
vin: Optional[str] = None
enabled: bool = False
pending: bool = False
offer_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleByIdentifierResponse:
campaign_offers: List[Offer] = field(default_factory=list)
campaign_personalised_offers: List[PersonalisedOffer] = field(default_factory=list)
campaign_government_grant_offers: List[Offer] = field(default_factory=list)
campaign_messages: List[Message] = field(default_factory=list)
offer_histories: Optional[List[OfferHistory]] = None
finance_offers: Optional[List[FinanceOffer]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleDataBase:
vin: Optional[str] = None
description: Optional[str] = None
model: Optional[str] = None
otr: Optional[str] = None
retail_price_ex_v_a_t: Optional[str] = None
actual_price: Optional[str] = None
p11_d: Optional[str] = None
fuel_type: Optional[str] = None
transmission: Optional[str] = None
transmission_type: Optional[str] = None
colour: Optional[str] = None
colour_code: Optional[str] = None
colour_description: Optional[str] = None
commission_number: Optional[str] = None
offer_available: bool = False
campaign_discount_offer_total: int = 0
campaign_discount_offer_total_current: int = 0
campaign_discount_offer_total_pending: int = 0
campaign_service_offer_total: int = 0
campaign_service_offer_total_current: int = 0
campaign_service_offer_total_pending: int = 0
campaign_custom_offer_total: int = 0
campaign_personalised_offer_total_current: int = 0
campaign_personalised_offer_total_pending: int = 0
campaign_personalised_offer_total: int = 0
campaign_custom_offer_total_current: int = 0
campaign_custom_offer_total_pending: int = 0
campaign_other_offer_total: int = 0
campaign_other_offer_total_current: int = 0
campaign_other_offer_total_pending: int = 0
retailer_discount_offer_total: int = 0
retailer_discount_offer_total_current: int = 0
retailer_discount_offer_total_pending: int = 0
retailer_service_offer_total: int = 0
retailer_service_offer_total_current: int = 0
retailer_service_offer_total_pending: int = 0
retailer_custom_offer_total: int = 0
retailer_custom_offer_total_current: int = 0
retailer_custom_offer_total_pending: int = 0
retailer_warranty_offer_total: int = 0
retailer_warranty_offer_total_current: int = 0
retailer_warranty_offer_total_pending: int = 0
retailer_offer_total: int = 0
retailer_offer_total_current: int = 0
retailer_offer_total_pending: int = 0
campaign_offer_total: int = 0
campaign_offer_total_current: int = 0
campaign_offer_total_pending: int = 0
campaign_and_offer_total: int = 0
campaign_and_offer_total_current: int = 0
campaign_and_offer_total_pending: int = 0
offer_total: int = 0
offer_total_current: int = 0
offer_total_pending: int = 0
creation: Optional[str] = None
modified: Optional[str] = None
electric_range: int = 0
electric_consumption: int = 0
port_arrival_date: Optional[datetime.datetime] = None
days_since_port_arrival: Optional[int] = None
retail_price_inc_v_a_t: Decimal = decimal.Decimal(0)
body_style: Optional[str] = None
upholstery: Optional[str] = None
upholstery_code: Optional[str] = None
upholstery_type: Optional[str] = None
package_names: List[str] = field(default_factory=list)
line: Optional[str] = None
current_retailer_offer_price: Decimal = decimal.Decimal(0)
retail_price: Optional[str] = None
vat_qualifying: bool = False
retailer_id: int = 0
gssn_id: Optional[str] = None
no_image: bool = False
image_url: Optional[str] = None
is_available_online: bool = False
is_back_ordered: bool = False
creation_date: Optional[str] = None
maintenance_date: Optional[str] = None
registration_number: Optional[str] = None
registration_date: Optional[datetime.datetime] = None
mileage: Optional[int] = None
trade_in_date: Optional[datetime.datetime] = None
source: Optional[str] = None
vehicle_type: Optional[str] = None
offer_amount: Optional[str] = None
offer_expiry: Optional[str] = None
active_offers: List[int] = field(default_factory=list)
campaign_messages_total: int = 0
under_offer: bool = False
is_display_stock: bool = False
display_retailer: Optional[str] = None
display_retailer_gssn_id: Optional[str] = None
location: Optional[str] = None
account: Optional[str] = None
account_type: Optional[str] = None
usage_code: Optional[str] = None
bm7_n_s_t: Optional[str] = None
is_sellable: bool = False
secured: bool = False
specialist: bool = False
is_motability_retailer: bool = False
upholstery_description: Optional[str] = None
in_back_order_account: bool = False
full_model_year_code: Optional[str] = None
production_date: Optional[datetime.datetime] = None
baumuster: Optional[str] = None
is_motability: bool = False
pip_advance_rental_gross: Optional[Decimal] = None
wpms_advance_rental_gross: Optional[Decimal] = None
isp_vehicle_customer_descriptions: Optional[List[str]] = None
eligible_for_ma_transfer: bool = False
confirmed_production_date: Optional[str] = None
forecasted_arrival_date: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleData(VehicleDataBase):
engine: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Equipment:
id: Optional[int] = None
code: Optional[str] = None
description: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleIdentifierData(VehicleData):
retailer: Optional[str] = None
has_motability_error: bool = False
equipment: List[Equipment] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleByCommissionNumberResponse(VehicleByIdentifierResponse):
vehicle: Optional[VehicleIdentifierData] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleByCommissionNumberRequest(IGet):
vehicle_identifier: Optional[str] = None
vehicle_type: Optional[str] = None
Python 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>