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)
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
@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, 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 } }