POST | /v1/backorder/vehicleimports |
---|
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 UpdateBackOrderVehicleImportsResponse:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Vehicle:
vin: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleCriteriaMatch:
fuel: bool = False
transmission: bool = False
colour: bool = False
upholstery: bool = False
line: bool = False
engine: bool = False
body_style: bool = False
packages: bool = False
class OfferPriceProductType(str, Enum):
LIS_T__P_R_I_C_E = 'LIST_PRICE'
NUMBE_R__P_L_A_T_E__F_E_E = 'NUMBER_PLATE_FEE'
DELIVER_Y__C_H_A_R_G_E = 'DELIVERY_CHARGE'
FUE_L__C_H_A_R_G_E = 'FUEL_CHARGE'
MANUFACTURE_R__O_F_F_E_R = 'MANUFACTURER_OFFER'
PERSONALISE_D__M_O_N_E_Y_O_F_F_E_R = 'PERSONALISED_MONEYOFFER'
PERSONALISE_D__N_O_N_M_O_N_E_Y_O_F_F_E_R = 'PERSONALISED_NONMONEYOFFER'
PERSONALISE_D__N_O_N_M_O_N_E_Y_O_F_F_E_R__N_E_G = 'PERSONALISED_NONMONEYOFFER_NEG'
SERVICE = 'SERVICE'
SERVIC_E__N_E_G = 'SERVICE_NEG'
GOVERNMEN_T__G_R_A_N_T = 'GOVERNMENT_GRANT'
OUTRIGH_T__P_U_R_C_H_A_S_E__D_I_S_C_O_U_N_T = 'OUTRIGHT_PURCHASE_DISCOUNT'
VI_P__O_F_F_E_R = 'VIP_OFFER'
WALLBO_X__O_F_F_E_R = 'WALLBOX_OFFER'
WALLBO_X__O_F_F_E_R__N_E_G = 'WALLBOX_OFFER_NEG'
ROA_D__F_U_N_D__L_I_C_E_N_C_E = 'ROAD_FUND_LICENCE'
FIRS_T__R_E_G_I_S_T_R_A_T_I_O_N__F_E_E = 'FIRST_REGISTRATION_FEE'
NO_T__F_O_U_N_D = 'NOT_FOUND'
ACCESSOR_Y__O_F_F_E_R = 'ACCESSORY_OFFER'
ACCESSOR_Y__O_F_F_E_R__N_E_G = 'ACCESSORY_OFFER_NEG'
MOTABILIT_Y__D_I_S_C_O_U_N_T = 'MOTABILITY_DISCOUNT'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Price:
id: Optional[str] = None
description: Optional[str] = None
net: Decimal = decimal.Decimal(0)
vat: Decimal = decimal.Decimal(0)
gross: Decimal = decimal.Decimal(0)
product: Optional[OfferPriceProductType] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RetailerOpeningTime:
day: Optional[str] = None
open_from: Optional[str] = None
open_to: Optional[str] = None
special: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RetailerOpeningTimes:
new: List[RetailerOpeningTime] = field(default_factory=list)
used: List[RetailerOpeningTime] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Retailer:
id: int = 0
gssn_id: Optional[str] = None
description: Optional[str] = None
street: Optional[str] = None
city: Optional[str] = None
postcode: Optional[str] = None
google_map_postcode: Optional[str] = None
phone: Optional[str] = None
fax: Optional[str] = None
email: Optional[str] = None
website: Optional[str] = None
retailer_group_id: Optional[str] = None
retailer_group_name: Optional[str] = None
is_online: bool = False
is_new_car_retailer: bool = False
is_used_car_retailer: bool = False
is_central_retailer: bool = False
chat_enabled: bool = False
trade_in_enabled: bool = False
smart: bool = False
display_phone_number_new: Optional[str] = None
display_phone_number_used: Optional[str] = None
latitude: Decimal = decimal.Decimal(0)
longitude: Decimal = decimal.Decimal(0)
smart_description: Optional[str] = None
smart_website: Optional[str] = None
smart_phone: Optional[str] = None
legacy_id: Optional[str] = None
agent: bool = False
market_area_id: int = 0
digital_lounge_parent_gssn_id: Optional[str] = None
send_leads_to_digital_lounge_parent: bool = False
opening_times: Optional[RetailerOpeningTimes] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleBaseDetail(Vehicle, ICommissionNumber):
description: Optional[str] = None
commission_number: Optional[str] = None
port_arrival_date: Optional[str] = None
offer_expiry_date: Optional[str] = None
fuel: Optional[str] = None
transmission: Optional[str] = None
transmission_type: Optional[str] = None
colour: Optional[str] = None
colour_description: Optional[str] = None
image_url: Optional[str] = None
specialist: bool = False
vehicle_criteria_match: Optional[VehicleCriteriaMatch] = None
colour_group: Optional[str] = None
model: Optional[str] = None
body_style: Optional[str] = None
brand: Optional[str] = None
engine: Optional[str] = None
engine_description: Optional[str] = None
line: Optional[str] = None
upholstery: Optional[str] = None
upholstery_description: Optional[str] = None
packages: List[str] = field(default_factory=list)
p11_d: Decimal = decimal.Decimal(0)
prices: List[Price] = field(default_factory=list)
vehicle_class: Optional[str] = None
product_range: Optional[str] = None
vehicle_type: Optional[str] = None
emission: Optional[Decimal] = None
baumuster: Optional[str] = None
is_sellable: bool = False
bm7_n_s_t: Optional[str] = None
electric_range: Optional[Decimal] = None
electric_consumption: Optional[Decimal] = None
is_display_stock: bool = False
display_retailer__id: Optional[int] = None
display_retailer: Optional[str] = None
display_retailer_gssn_id: Optional[str] = None
retailer: Optional[Retailer] = None
age: Optional[int] = None
model_year_code: Optional[str] = None
half_model_year_code: Optional[str] = None
full_model_year_code: Optional[str] = None
production_date: Optional[str] = None
chassis_number: Optional[str] = None
eligible_for_integrated_service_care: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleConsumption:
id: int = 0
lkm: Decimal = decimal.Decimal(0)
mpg: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Equipment:
id: int = 0
code: Optional[str] = None
description: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Equipmentv2(Equipment):
importance: int = 0
is_additional: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleEquipmentCategory:
order: int = 0
code: Optional[str] = None
description: Optional[str] = None
equipment: Optional[List[Equipmentv2]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleEmissionClass:
colour: Optional[str] = None
rating: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleAttribute:
description: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleIntegratedServiceCareOption:
option_code: Optional[str] = None
b_m7_n_s_t: Optional[str] = None
full_model_year: Optional[str] = None
integrated_product_type: Optional[str] = None
customer_description: Optional[str] = None
one_agent_product_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleDetail(VehicleBaseDetail):
retail_price__ex_v_a_t: Optional[str] = None
otr: Optional[str] = None
actual_price: Optional[str] = None
total_offer_value: Optional[str] = None
is_h_o_back_order_account_vehicle: bool = False
consumption_combined: Optional[VehicleConsumption] = None
consumption_extra_urban: Optional[VehicleConsumption] = None
consumption_urban: Optional[VehicleConsumption] = None
wltp_fuel_consumption_combined: Optional[VehicleConsumption] = None
wltp_fuel_consumption_extra_high: Optional[VehicleConsumption] = None
wltp_fuel_consumption_high: Optional[VehicleConsumption] = None
wltp_fuel_consumption_low: Optional[VehicleConsumption] = None
wltp_fuel_consumption_medium: Optional[VehicleConsumption] = None
equipment_categories: Optional[List[VehicleEquipmentCategory]] = None
vehicle_energy_efficiency_class: Optional[VehicleEmissionClass] = None
vehicle_data: Optional[List[VehicleAttribute]] = None
integrated_products: List[VehicleIntegratedServiceCareOption] = field(default_factory=list)
isp_vehicle_customer_descriptions: Optional[List[str]] = None
colour_code: Optional[str] = None
upholstery_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleImport(Vehicle):
commission_number: Optional[str] = None
sellable: bool = False
vehicle: Optional[VehicleDetail] = None
# @ApiResponse(Description="Success", StatusCode=200)
# @ApiResponse(Description="BadRequest", StatusCode=400)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateBackOrderVehicleImportsRequest(IPost):
vehicle_imports: List[VehicleImport] = field(default_factory=list)
Python UpdateBackOrderVehicleImportsRequest 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/backorder/vehicleimports HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<UpdateBackOrderVehicleImportsRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.Agency.Orchestration.API.ServiceModel.Vehicles">
<VehicleImports xmlns:d2p1="http://schemas.datacontract.org/2004/07/Mercedes.Agency.API.Shared.POCO">
<d2p1:VehicleImport>
<d2p1:Vin>String</d2p1:Vin>
<d2p1:CommissionNumber>String</d2p1:CommissionNumber>
<d2p1:Sellable>false</d2p1:Sellable>
<d2p1:Vehicle>
<d2p1:Vin>String</d2p1:Vin>
<d2p1:Age>0</d2p1:Age>
<d2p1:Baumuster>String</d2p1:Baumuster>
<d2p1:Bm7NST>String</d2p1:Bm7NST>
<d2p1:BodyStyle>String</d2p1:BodyStyle>
<d2p1:Brand>String</d2p1:Brand>
<d2p1:ChassisNumber>String</d2p1:ChassisNumber>
<d2p1:Colour>String</d2p1:Colour>
<d2p1:ColourDescription>String</d2p1:ColourDescription>
<d2p1:ColourGroup>String</d2p1:ColourGroup>
<d2p1:CommissionNumber>String</d2p1:CommissionNumber>
<d2p1:Description>String</d2p1:Description>
<d2p1:DisplayRetailer>String</d2p1:DisplayRetailer>
<d2p1:DisplayRetailerGssnId>String</d2p1:DisplayRetailerGssnId>
<d2p1:DisplayRetailer_Id>0</d2p1:DisplayRetailer_Id>
<d2p1:ElectricConsumption>0</d2p1:ElectricConsumption>
<d2p1:ElectricRange>0</d2p1:ElectricRange>
<d2p1:EligibleForIntegratedServiceCare>false</d2p1:EligibleForIntegratedServiceCare>
<d2p1:Emission>0</d2p1:Emission>
<d2p1:Engine>String</d2p1:Engine>
<d2p1:EngineDescription>String</d2p1:EngineDescription>
<d2p1:Fuel>String</d2p1:Fuel>
<d2p1:FullModelYearCode>String</d2p1:FullModelYearCode>
<d2p1:HalfModelYearCode>String</d2p1:HalfModelYearCode>
<d2p1:ImageUrl>String</d2p1:ImageUrl>
<d2p1:IsDisplayStock>false</d2p1:IsDisplayStock>
<d2p1:IsSellable>false</d2p1:IsSellable>
<d2p1:Line>String</d2p1:Line>
<d2p1:Model>String</d2p1:Model>
<d2p1:ModelYearCode>String</d2p1:ModelYearCode>
<d2p1:OfferExpiryDate>String</d2p1:OfferExpiryDate>
<d2p1:P11D>0</d2p1:P11D>
<d2p1:Packages xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:string>String</d5p1:string>
</d2p1:Packages>
<d2p1:PortArrivalDate>String</d2p1:PortArrivalDate>
<d2p1:Prices>
<d2p1:Price>
<d2p1:Description>String</d2p1:Description>
<d2p1:Gross>0</d2p1:Gross>
<d2p1:Id>String</d2p1:Id>
<d2p1:Net>0</d2p1:Net>
<d2p1:Product>LIST_PRICE</d2p1:Product>
<d2p1:VAT>0</d2p1:VAT>
</d2p1:Price>
</d2p1:Prices>
<d2p1:ProductRange>String</d2p1:ProductRange>
<d2p1:ProductionDate>String</d2p1:ProductionDate>
<d2p1:Retailer>
<d2p1:Agent>false</d2p1:Agent>
<d2p1:ChatEnabled>false</d2p1:ChatEnabled>
<d2p1:City>String</d2p1:City>
<d2p1:Description>String</d2p1:Description>
<d2p1:DigitalLoungeParentGssnId>String</d2p1:DigitalLoungeParentGssnId>
<d2p1:DisplayPhoneNumberNew>String</d2p1:DisplayPhoneNumberNew>
<d2p1:DisplayPhoneNumberUsed>String</d2p1:DisplayPhoneNumberUsed>
<d2p1:Email>String</d2p1:Email>
<d2p1:Fax>String</d2p1:Fax>
<d2p1:GoogleMapPostcode>String</d2p1:GoogleMapPostcode>
<d2p1:GssnId>String</d2p1:GssnId>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsCentralRetailer>false</d2p1:IsCentralRetailer>
<d2p1:IsNewCarRetailer>false</d2p1:IsNewCarRetailer>
<d2p1:IsOnline>false</d2p1:IsOnline>
<d2p1:IsUsedCarRetailer>false</d2p1:IsUsedCarRetailer>
<d2p1:Latitude>0</d2p1:Latitude>
<d2p1:LegacyId>String</d2p1:LegacyId>
<d2p1:Longitude>0</d2p1:Longitude>
<d2p1:MarketAreaId>0</d2p1:MarketAreaId>
<d2p1:OpeningTimes>
<d2p1:New>
<d2p1:RetailerOpeningTime>
<d2p1:Day>String</d2p1:Day>
<d2p1:OpenFrom>String</d2p1:OpenFrom>
<d2p1:OpenTo>String</d2p1:OpenTo>
<d2p1:Special>String</d2p1:Special>
</d2p1:RetailerOpeningTime>
</d2p1:New>
<d2p1:Used>
<d2p1:RetailerOpeningTime>
<d2p1:Day>String</d2p1:Day>
<d2p1:OpenFrom>String</d2p1:OpenFrom>
<d2p1:OpenTo>String</d2p1:OpenTo>
<d2p1:Special>String</d2p1:Special>
</d2p1:RetailerOpeningTime>
</d2p1:Used>
</d2p1:OpeningTimes>
<d2p1:Phone>String</d2p1:Phone>
<d2p1:Postcode>String</d2p1:Postcode>
<d2p1:RetailerGroupId>String</d2p1:RetailerGroupId>
<d2p1:RetailerGroupName>String</d2p1:RetailerGroupName>
<d2p1:SendLeadsToDigitalLoungeParent>false</d2p1:SendLeadsToDigitalLoungeParent>
<d2p1:Street>String</d2p1:Street>
<d2p1:TradeInEnabled>false</d2p1:TradeInEnabled>
<d2p1:Website>String</d2p1:Website>
<d2p1:smart>false</d2p1:smart>
<d2p1:smartDescription>String</d2p1:smartDescription>
<d2p1:smartPhone>String</d2p1:smartPhone>
<d2p1:smartWebsite>String</d2p1:smartWebsite>
</d2p1:Retailer>
<d2p1:Specialist>false</d2p1:Specialist>
<d2p1:Transmission>String</d2p1:Transmission>
<d2p1:TransmissionType>String</d2p1:TransmissionType>
<d2p1:Upholstery>String</d2p1:Upholstery>
<d2p1:UpholsteryDescription>String</d2p1:UpholsteryDescription>
<d2p1:VehicleClass>String</d2p1:VehicleClass>
<d2p1:VehicleCriteriaMatch>
<d2p1:BodyStyle>false</d2p1:BodyStyle>
<d2p1:Colour>false</d2p1:Colour>
<d2p1:Engine>false</d2p1:Engine>
<d2p1:Fuel>false</d2p1:Fuel>
<d2p1:Line>false</d2p1:Line>
<d2p1:Packages>false</d2p1:Packages>
<d2p1:Transmission>false</d2p1:Transmission>
<d2p1:Upholstery>false</d2p1:Upholstery>
</d2p1:VehicleCriteriaMatch>
<d2p1:VehicleType>String</d2p1:VehicleType>
<d2p1:ActualPrice>String</d2p1:ActualPrice>
<d2p1:ColourCode>String</d2p1:ColourCode>
<d2p1:ConsumptionCombined>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:ConsumptionCombined>
<d2p1:ConsumptionExtraUrban>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:ConsumptionExtraUrban>
<d2p1:ConsumptionUrban>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:ConsumptionUrban>
<d2p1:EquipmentCategories>
<d2p1:VehicleEquipmentCategory>
<d2p1:Code>String</d2p1:Code>
<d2p1:Description>String</d2p1:Description>
<d2p1:Equipment xmlns:d7p1="http://schemas.datacontract.org/2004/07/Mercedes.OS.Vehicle.Shared.POCO">
<d7p1:Equipmentv2>
<d7p1:Code>String</d7p1:Code>
<d7p1:Description>String</d7p1:Description>
<d7p1:Id>0</d7p1:Id>
<d7p1:Importance>0</d7p1:Importance>
<d7p1:IsAdditional>false</d7p1:IsAdditional>
</d7p1:Equipmentv2>
</d2p1:Equipment>
<d2p1:Order>0</d2p1:Order>
</d2p1:VehicleEquipmentCategory>
</d2p1:EquipmentCategories>
<d2p1:IntegratedProducts>
<d2p1:VehicleIntegratedServiceCareOption>
<d2p1:BM7NST>String</d2p1:BM7NST>
<d2p1:CustomerDescription>String</d2p1:CustomerDescription>
<d2p1:FullModelYear>String</d2p1:FullModelYear>
<d2p1:IntegratedProductType>String</d2p1:IntegratedProductType>
<d2p1:OneAgentProductType>String</d2p1:OneAgentProductType>
<d2p1:OptionCode>String</d2p1:OptionCode>
</d2p1:VehicleIntegratedServiceCareOption>
</d2p1:IntegratedProducts>
<d2p1:IsHOBackOrderAccountVehicle>false</d2p1:IsHOBackOrderAccountVehicle>
<d2p1:IspVehicleCustomerDescriptions xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:string>String</d5p1:string>
</d2p1:IspVehicleCustomerDescriptions>
<d2p1:OTR>String</d2p1:OTR>
<d2p1:RetailPrice_ExVAT>String</d2p1:RetailPrice_ExVAT>
<d2p1:TotalOfferValue>String</d2p1:TotalOfferValue>
<d2p1:UpholsteryCode>String</d2p1:UpholsteryCode>
<d2p1:VehicleData>
<d2p1:VehicleAttribute>
<d2p1:Description>String</d2p1:Description>
<d2p1:Value>String</d2p1:Value>
</d2p1:VehicleAttribute>
</d2p1:VehicleData>
<d2p1:VehicleEnergyEfficiencyClass>
<d2p1:Colour>String</d2p1:Colour>
<d2p1:Rating>String</d2p1:Rating>
</d2p1:VehicleEnergyEfficiencyClass>
<d2p1:WltpFuelConsumptionCombined>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:WltpFuelConsumptionCombined>
<d2p1:WltpFuelConsumptionExtraHigh>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:WltpFuelConsumptionExtraHigh>
<d2p1:WltpFuelConsumptionHigh>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:WltpFuelConsumptionHigh>
<d2p1:WltpFuelConsumptionLow>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:WltpFuelConsumptionLow>
<d2p1:WltpFuelConsumptionMedium>
<d2p1:Id>0</d2p1:Id>
<d2p1:Lkm>0</d2p1:Lkm>
<d2p1:Mpg>0</d2p1:Mpg>
</d2p1:WltpFuelConsumptionMedium>
</d2p1:Vehicle>
</d2p1:VehicleImport>
</VehicleImports>
</UpdateBackOrderVehicleImportsRequest>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <UpdateBackOrderVehicleImportsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.Agency.Orchestration.API.ServiceModel.Vehicles" />