| GET | /v1/details/{vehicleType}/{Identifier} | Get Vehicle Details | |
|---|---|---|---|
| GET | /details/{vehicleType}/{Identifier} | Get Vehicle Details |
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 VehicleAuditDetails:
user_id: Optional[str] = None
status: bool = False
notes: Optional[str] = None
creation_date: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BackOrderVehicleDetailsBase:
vin: Optional[str] = None
commission_number: Optional[str] = None
description: Optional[str] = None
model: Optional[str] = None
full_model_year_code: Optional[str] = None
retailer_id: int = 0
image_url: Optional[str] = None
colour: Optional[str] = None
colour_description: Optional[str] = None
body_style: Optional[str] = None
fuel_type: Optional[str] = None
transmission: Optional[str] = None
transmission_type: Optional[str] = None
package: Optional[str] = None
packages: List[str] = field(default_factory=list)
line: Optional[str] = None
upholstery: Optional[str] = None
upholstery_description: Optional[str] = None
usage_code: Optional[str] = None
account: Optional[str] = None
nst: Optional[str] = None
baumuster: Optional[str] = None
electric_range: Optional[Decimal] = None
electric_consumption: Optional[Decimal] = None
retail_price__ex_v_a_t: Decimal = decimal.Decimal(0)
actual_price: Optional[Decimal] = None
otr_price: Decimal = decimal.Decimal(0)
p11_d: Decimal = decimal.Decimal(0)
vehicle_type: Optional[str] = None
secured: bool = False
production_date: Optional[str] = None
port_arrival_date: Optional[datetime.datetime] = None
display_retailer: Optional[str] = None
location: Optional[str] = None
bm7_n_s_t: Optional[str] = None
is_available_online: bool = False
is_specialist_car: bool = False
is_sellable: bool = False
in_back_order_account: bool = False
vehicle_audit_details: List[VehicleAuditDetails] = field(default_factory=list)
isp_vehicle_customer_descriptions: Optional[List[str]] = None
under_offer: bool = False
is_allocated_to_back_order: bool = False
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 BackOrderVehicleDetails(BackOrderVehicleDetailsBase):
engine: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleDetailsResponse:
vehicle: Optional[BackOrderVehicleDetails] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VehicleDetailsRequest(IGet):
identifier: Optional[str] = None
vehicle_type: Optional[str] = None
Python VehicleDetailsRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/details/{vehicleType}/{Identifier} HTTP/1.1
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
vehicle:
{
engine: String,
vin: String,
commissionNumber: String,
description: String,
model: String,
fullModelYearCode: String,
retailerId: 0,
imageUrl: String,
colour: String,
colourDescription: String,
bodyStyle: String,
fuelType: String,
transmission: String,
transmissionType: String,
package: String,
packages:
[
String
],
line: String,
upholstery: String,
upholsteryDescription: String,
usageCode: String,
account: String,
nst: String,
baumuster: String,
electricRange: 0,
electricConsumption: 0,
retailPrice_ExVAT: 0,
actualPrice: 0,
otrPrice: 0,
p11D: 0,
vehicleType: String,
secured: False,
productionDate: String,
portArrivalDate: 0001-01-01,
displayRetailer: String,
location: String,
bm7NST: String,
isAvailableOnline: False,
isSpecialistCar: False,
isSellable: False,
inBackOrderAccount: False,
vehicleAuditDetails:
[
{
userId: String,
status: False,
notes: String,
creationDate: String
}
],
ispVehicleCustomerDescriptions:
[
String
],
underOffer: False,
isAllocatedToBackOrder: False,
eligibleForMaTransfer: False,
confirmedProductionDate: String,
forecastedArrivalDate: String
}
}