Mercedes.VehicleManagement.API

<back to all web services

VehicleDetailsRequest

Vehicle
Requires Authentication
The following routes are available for this service:
GET/v1/details/{vehicleType}/{Identifier}Get Vehicle Details
GET/details/{vehicleType}/{Identifier}Get Vehicle Details
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class VehicleAuditDetails implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $userId='',
        /** @var bool|null */
        public ?bool $status=null,
        /** @var string */
        public string $notes='',
        /** @var string */
        public string $creationDate=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['userId'])) $this->userId = $o['userId'];
        if (isset($o['status'])) $this->status = $o['status'];
        if (isset($o['notes'])) $this->notes = $o['notes'];
        if (isset($o['creationDate'])) $this->creationDate = $o['creationDate'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->userId)) $o['userId'] = $this->userId;
        if (isset($this->status)) $o['status'] = $this->status;
        if (isset($this->notes)) $o['notes'] = $this->notes;
        if (isset($this->creationDate)) $o['creationDate'] = $this->creationDate;
        return empty($o) ? new class(){} : $o;
    }
}

class BackOrderVehicleDetailsBase implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $vin='',
        /** @var string */
        public string $commissionNumber='',
        /** @var string */
        public string $description='',
        /** @var string */
        public string $model='',
        /** @var string */
        public string $fullModelYearCode='',
        /** @var int */
        public int $retailerId=0,
        /** @var string */
        public string $imageUrl='',
        /** @var string */
        public string $colour='',
        /** @var string */
        public string $colourDescription='',
        /** @var string */
        public string $bodyStyle='',
        /** @var string */
        public string $fuelType='',
        /** @var string */
        public string $transmission='',
        /** @var string */
        public string $transmissionType='',
        /** @var string */
        public string $package='',
        /** @var array<string>|null */
        public ?array $packages=null,
        /** @var string */
        public string $line='',
        /** @var string */
        public string $upholstery='',
        /** @var string */
        public string $upholsteryDescription='',
        /** @var string */
        public string $usageCode='',
        /** @var string */
        public string $account='',
        /** @var string */
        public string $nst='',
        /** @var string */
        public string $baumuster='',
        /** @var float|null */
        public ?float $electricRange=null,
        /** @var float|null */
        public ?float $electricConsumption=null,
        /** @var float */
        public float $retailPrice_ExVAT=0.0,
        /** @var float|null */
        public ?float $actualPrice=null,
        /** @var float */
        public float $otrPrice=0.0,
        /** @var string */
        public string $vehicleType='',
        /** @var bool|null */
        public ?bool $secured=null,
        /** @var string */
        public string $productionDate='',
        /** @var DateTime|null */
        public ?DateTime $portArrivalDate=null,
        /** @var string */
        public string $displayRetailer='',
        /** @var string */
        public string $location='',
        /** @var string */
        public string $bm7NST='',
        /** @var bool|null */
        public ?bool $isAvailableOnline=null,
        /** @var bool|null */
        public ?bool $isSpecialistCar=null,
        /** @var bool|null */
        public ?bool $isSellable=null,
        /** @var bool|null */
        public ?bool $inBackOrderAccount=null,
        /** @var array<VehicleAuditDetails>|null */
        public ?array $vehicleAuditDetails=null,
        /** @var array<string>|null */
        public ?array $ispVehicleCustomerDescriptions=null,
        /** @var bool|null */
        public ?bool $underOffer=null,
        /** @var bool|null */
        public ?bool $isAllocatedToBackOrder=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['vin'])) $this->vin = $o['vin'];
        if (isset($o['commissionNumber'])) $this->commissionNumber = $o['commissionNumber'];
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['model'])) $this->model = $o['model'];
        if (isset($o['fullModelYearCode'])) $this->fullModelYearCode = $o['fullModelYearCode'];
        if (isset($o['retailerId'])) $this->retailerId = $o['retailerId'];
        if (isset($o['imageUrl'])) $this->imageUrl = $o['imageUrl'];
        if (isset($o['colour'])) $this->colour = $o['colour'];
        if (isset($o['colourDescription'])) $this->colourDescription = $o['colourDescription'];
        if (isset($o['bodyStyle'])) $this->bodyStyle = $o['bodyStyle'];
        if (isset($o['fuelType'])) $this->fuelType = $o['fuelType'];
        if (isset($o['transmission'])) $this->transmission = $o['transmission'];
        if (isset($o['transmissionType'])) $this->transmissionType = $o['transmissionType'];
        if (isset($o['package'])) $this->package = $o['package'];
        if (isset($o['packages'])) $this->packages = JsonConverters::fromArray('string', $o['packages']);
        if (isset($o['line'])) $this->line = $o['line'];
        if (isset($o['upholstery'])) $this->upholstery = $o['upholstery'];
        if (isset($o['upholsteryDescription'])) $this->upholsteryDescription = $o['upholsteryDescription'];
        if (isset($o['usageCode'])) $this->usageCode = $o['usageCode'];
        if (isset($o['account'])) $this->account = $o['account'];
        if (isset($o['nst'])) $this->nst = $o['nst'];
        if (isset($o['baumuster'])) $this->baumuster = $o['baumuster'];
        if (isset($o['electricRange'])) $this->electricRange = $o['electricRange'];
        if (isset($o['electricConsumption'])) $this->electricConsumption = $o['electricConsumption'];
        if (isset($o['retailPrice_ExVAT'])) $this->retailPrice_ExVAT = $o['retailPrice_ExVAT'];
        if (isset($o['actualPrice'])) $this->actualPrice = $o['actualPrice'];
        if (isset($o['otrPrice'])) $this->otrPrice = $o['otrPrice'];
        if (isset($o['vehicleType'])) $this->vehicleType = $o['vehicleType'];
        if (isset($o['secured'])) $this->secured = $o['secured'];
        if (isset($o['productionDate'])) $this->productionDate = $o['productionDate'];
        if (isset($o['portArrivalDate'])) $this->portArrivalDate = JsonConverters::from('DateTime', $o['portArrivalDate']);
        if (isset($o['displayRetailer'])) $this->displayRetailer = $o['displayRetailer'];
        if (isset($o['location'])) $this->location = $o['location'];
        if (isset($o['bm7NST'])) $this->bm7NST = $o['bm7NST'];
        if (isset($o['isAvailableOnline'])) $this->isAvailableOnline = $o['isAvailableOnline'];
        if (isset($o['isSpecialistCar'])) $this->isSpecialistCar = $o['isSpecialistCar'];
        if (isset($o['isSellable'])) $this->isSellable = $o['isSellable'];
        if (isset($o['inBackOrderAccount'])) $this->inBackOrderAccount = $o['inBackOrderAccount'];
        if (isset($o['vehicleAuditDetails'])) $this->vehicleAuditDetails = JsonConverters::fromArray('VehicleAuditDetails', $o['vehicleAuditDetails']);
        if (isset($o['ispVehicleCustomerDescriptions'])) $this->ispVehicleCustomerDescriptions = JsonConverters::fromArray('string', $o['ispVehicleCustomerDescriptions']);
        if (isset($o['underOffer'])) $this->underOffer = $o['underOffer'];
        if (isset($o['isAllocatedToBackOrder'])) $this->isAllocatedToBackOrder = $o['isAllocatedToBackOrder'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->vin)) $o['vin'] = $this->vin;
        if (isset($this->commissionNumber)) $o['commissionNumber'] = $this->commissionNumber;
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->model)) $o['model'] = $this->model;
        if (isset($this->fullModelYearCode)) $o['fullModelYearCode'] = $this->fullModelYearCode;
        if (isset($this->retailerId)) $o['retailerId'] = $this->retailerId;
        if (isset($this->imageUrl)) $o['imageUrl'] = $this->imageUrl;
        if (isset($this->colour)) $o['colour'] = $this->colour;
        if (isset($this->colourDescription)) $o['colourDescription'] = $this->colourDescription;
        if (isset($this->bodyStyle)) $o['bodyStyle'] = $this->bodyStyle;
        if (isset($this->fuelType)) $o['fuelType'] = $this->fuelType;
        if (isset($this->transmission)) $o['transmission'] = $this->transmission;
        if (isset($this->transmissionType)) $o['transmissionType'] = $this->transmissionType;
        if (isset($this->package)) $o['package'] = $this->package;
        if (isset($this->packages)) $o['packages'] = JsonConverters::toArray('string', $this->packages);
        if (isset($this->line)) $o['line'] = $this->line;
        if (isset($this->upholstery)) $o['upholstery'] = $this->upholstery;
        if (isset($this->upholsteryDescription)) $o['upholsteryDescription'] = $this->upholsteryDescription;
        if (isset($this->usageCode)) $o['usageCode'] = $this->usageCode;
        if (isset($this->account)) $o['account'] = $this->account;
        if (isset($this->nst)) $o['nst'] = $this->nst;
        if (isset($this->baumuster)) $o['baumuster'] = $this->baumuster;
        if (isset($this->electricRange)) $o['electricRange'] = $this->electricRange;
        if (isset($this->electricConsumption)) $o['electricConsumption'] = $this->electricConsumption;
        if (isset($this->retailPrice_ExVAT)) $o['retailPrice_ExVAT'] = $this->retailPrice_ExVAT;
        if (isset($this->actualPrice)) $o['actualPrice'] = $this->actualPrice;
        if (isset($this->otrPrice)) $o['otrPrice'] = $this->otrPrice;
        if (isset($this->vehicleType)) $o['vehicleType'] = $this->vehicleType;
        if (isset($this->secured)) $o['secured'] = $this->secured;
        if (isset($this->productionDate)) $o['productionDate'] = $this->productionDate;
        if (isset($this->portArrivalDate)) $o['portArrivalDate'] = JsonConverters::to('DateTime', $this->portArrivalDate);
        if (isset($this->displayRetailer)) $o['displayRetailer'] = $this->displayRetailer;
        if (isset($this->location)) $o['location'] = $this->location;
        if (isset($this->bm7NST)) $o['bm7NST'] = $this->bm7NST;
        if (isset($this->isAvailableOnline)) $o['isAvailableOnline'] = $this->isAvailableOnline;
        if (isset($this->isSpecialistCar)) $o['isSpecialistCar'] = $this->isSpecialistCar;
        if (isset($this->isSellable)) $o['isSellable'] = $this->isSellable;
        if (isset($this->inBackOrderAccount)) $o['inBackOrderAccount'] = $this->inBackOrderAccount;
        if (isset($this->vehicleAuditDetails)) $o['vehicleAuditDetails'] = JsonConverters::toArray('VehicleAuditDetails', $this->vehicleAuditDetails);
        if (isset($this->ispVehicleCustomerDescriptions)) $o['ispVehicleCustomerDescriptions'] = JsonConverters::toArray('string', $this->ispVehicleCustomerDescriptions);
        if (isset($this->underOffer)) $o['underOffer'] = $this->underOffer;
        if (isset($this->isAllocatedToBackOrder)) $o['isAllocatedToBackOrder'] = $this->isAllocatedToBackOrder;
        return empty($o) ? new class(){} : $o;
    }
}

class BackOrderVehicleDetails extends BackOrderVehicleDetailsBase implements JsonSerializable
{
    /**
     * @param string $vin
     * @param string $commissionNumber
     * @param string $description
     * @param string $model
     * @param string $fullModelYearCode
     * @param int $retailerId
     * @param string $imageUrl
     * @param string $colour
     * @param string $colourDescription
     * @param string $bodyStyle
     * @param string $fuelType
     * @param string $transmission
     * @param string $transmissionType
     * @param string $package
     * @param array<string>|null $packages
     * @param string $line
     * @param string $upholstery
     * @param string $upholsteryDescription
     * @param string $usageCode
     * @param string $account
     * @param string $nst
     * @param string $baumuster
     * @param float|null $electricRange
     * @param float|null $electricConsumption
     * @param float $retailPrice_ExVAT
     * @param float|null $actualPrice
     * @param float $otrPrice
     * @param string $vehicleType
     * @param bool|null $secured
     * @param string $productionDate
     * @param DateTime|null $portArrivalDate
     * @param string $displayRetailer
     * @param string $location
     * @param string $bm7NST
     * @param bool|null $isAvailableOnline
     * @param bool|null $isSpecialistCar
     * @param bool|null $isSellable
     * @param bool|null $inBackOrderAccount
     * @param array<VehicleAuditDetails>|null $vehicleAuditDetails
     * @param array<string>|null $ispVehicleCustomerDescriptions
     * @param bool|null $underOffer
     * @param bool|null $isAllocatedToBackOrder
     */
    public function __construct(
        string $vin='',
        string $commissionNumber='',
        string $description='',
        string $model='',
        string $fullModelYearCode='',
        int $retailerId=0,
        string $imageUrl='',
        string $colour='',
        string $colourDescription='',
        string $bodyStyle='',
        string $fuelType='',
        string $transmission='',
        string $transmissionType='',
        string $package='',
        ?array $packages=null,
        string $line='',
        string $upholstery='',
        string $upholsteryDescription='',
        string $usageCode='',
        string $account='',
        string $nst='',
        string $baumuster='',
        ?float $electricRange=null,
        ?float $electricConsumption=null,
        float $retailPrice_ExVAT=0.0,
        ?float $actualPrice=null,
        float $otrPrice=0.0,
        string $vehicleType='',
        ?bool $secured=null,
        string $productionDate='',
        ?DateTime $portArrivalDate=null,
        string $displayRetailer='',
        string $location='',
        string $bm7NST='',
        ?bool $isAvailableOnline=null,
        ?bool $isSpecialistCar=null,
        ?bool $isSellable=null,
        ?bool $inBackOrderAccount=null,
        ?array $vehicleAuditDetails=null,
        ?array $ispVehicleCustomerDescriptions=null,
        ?bool $underOffer=null,
        ?bool $isAllocatedToBackOrder=null,
        /** @var string|null */
        public ?string $engine=null
    ) {
        parent::__construct($vin,$commissionNumber,$description,$model,$fullModelYearCode,$retailerId,$imageUrl,$colour,$colourDescription,$bodyStyle,$fuelType,$transmission,$transmissionType,$package,$packages,$line,$upholstery,$upholsteryDescription,$usageCode,$account,$nst,$baumuster,$electricRange,$electricConsumption,$retailPrice_ExVAT,$actualPrice,$otrPrice,$vehicleType,$secured,$productionDate,$portArrivalDate,$displayRetailer,$location,$bm7NST,$isAvailableOnline,$isSpecialistCar,$isSellable,$inBackOrderAccount,$vehicleAuditDetails,$ispVehicleCustomerDescriptions,$underOffer,$isAllocatedToBackOrder);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['engine'])) $this->engine = $o['engine'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->engine)) $o['engine'] = $this->engine;
        return empty($o) ? new class(){} : $o;
    }
}

class VehicleDetailsResponse implements JsonSerializable
{
    public function __construct(
        /** @var BackOrderVehicleDetails|null */
        public ?BackOrderVehicleDetails $vehicle=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['vehicle'])) $this->vehicle = JsonConverters::from('BackOrderVehicleDetails', $o['vehicle']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->vehicle)) $o['vehicle'] = JsonConverters::to('BackOrderVehicleDetails', $this->vehicle);
        return empty($o) ? new class(){} : $o;
    }
}

class VehicleDetailsRequest implements IGet, JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $identifier='',
        /** @var string */
        public string $vehicleType=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['identifier'])) $this->identifier = $o['identifier'];
        if (isset($o['vehicleType'])) $this->vehicleType = $o['vehicleType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->identifier)) $o['identifier'] = $this->identifier;
        if (isset($this->vehicleType)) $o['vehicleType'] = $this->vehicleType;
        return empty($o) ? new class(){} : $o;
    }
}

PHP VehicleDetailsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

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/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
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":"\/Date(-62135596800000-0000)\/","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}}