POST | /v1/motability/pricing | Gets the motability pricing information for the current user role | Gets the motability pricing information for the current user role |
---|
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 GetMotabilityPricingRequest:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MotabilityPricingCsv:
id: int = 0
criteria_b_m7_n_s_t: Optional[str] = None
vtn: Optional[str] = None
back_order_drop_down: Optional[str] = None
criteria_full_model_year_code: Optional[str] = None
criteria_valid_option_codes: Optional[str] = None
criteria_invalid_option_codes: Optional[str] = None
pip_net: Decimal = decimal.Decimal(0)
pip_vat: Decimal = decimal.Decimal(0)
pip_gross: Decimal = decimal.Decimal(0)
wpms_net: Decimal = decimal.Decimal(0)
wpms_vat: Decimal = decimal.Decimal(0)
wpms_gross: Decimal = decimal.Decimal(0)
discount_net: Decimal = decimal.Decimal(0)
discount_vat: Decimal = decimal.Decimal(0)
discount_gross: Decimal = decimal.Decimal(0)
list_price_net: Decimal = decimal.Decimal(0)
list_price_vat: Decimal = decimal.Decimal(0)
list_price_gross: Decimal = decimal.Decimal(0)
delivery_charge_net: Decimal = decimal.Decimal(0)
delivery_charge_vat: Decimal = decimal.Decimal(0)
delivery_charge_gross: Decimal = decimal.Decimal(0)
fuel_charge_net: Decimal = decimal.Decimal(0)
fuel_charge_vat: Decimal = decimal.Decimal(0)
fuel_charge_gross: Decimal = decimal.Decimal(0)
number_plate_fee_net: Decimal = decimal.Decimal(0)
number_plate_fee_vat: Decimal = decimal.Decimal(0)
number_plate_fee_gross: Decimal = decimal.Decimal(0)
first_registration_fee_net: Decimal = decimal.Decimal(0)
first_registration_fee_vat: Decimal = decimal.Decimal(0)
first_registration_fee_gross: Decimal = decimal.Decimal(0)
road_fund_licence_net: Decimal = decimal.Decimal(0)
road_fund_licence_vat: Decimal = decimal.Decimal(0)
road_fund_licence_gross: Decimal = decimal.Decimal(0)
valid_from: datetime.datetime = datetime.datetime(1, 1, 1)
valid_to: datetime.datetime = datetime.datetime(1, 1, 1)
government_grant_net: Decimal = decimal.Decimal(0)
government_grant_vat: Decimal = decimal.Decimal(0)
government_grant_gross: Decimal = decimal.Decimal(0)
class MotabilityPricingStatus(str, Enum):
PENDING = 'Pending'
CURRENT = 'Current'
RECENTLY_EXPIRED = 'RecentlyExpired'
EXPIRED = 'Expired'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MotabilityPricing(MotabilityPricingCsv):
motability_pricing_status: Optional[MotabilityPricingStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetMotabilityPricingResponse:
motability_pricing: List[MotabilityPricing] = field(default_factory=list)
Python GetMotabilityPricingRequest 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.
POST /v1/motability/pricing HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { MotabilityPricing: [ { MotabilityPricingStatus: Pending, Id: 0, CriteriaBM7NST: String, VTN: String, BackOrderDropDown: String, CriteriaFullModelYearCode: String, CriteriaValidOptionCodes: String, CriteriaInvalidOptionCodes: String, PIPNet: 0, PIPVat: 0, PIPGross: 0, WPMSNet: 0, WPMSVat: 0, WPMSGross: 0, DiscountNet: 0, DiscountVat: 0, DiscountGross: 0, ListPriceNet: 0, ListPriceVat: 0, ListPriceGross: 0, DeliveryChargeNet: 0, DeliveryChargeVat: 0, DeliveryChargeGross: 0, FuelChargeNet: 0, FuelChargeVat: 0, FuelChargeGross: 0, NumberPlateFeeNet: 0, NumberPlateFeeVat: 0, NumberPlateFeeGross: 0, FirstRegistrationFeeNet: 0, FirstRegistrationFeeVat: 0, FirstRegistrationFeeGross: 0, RoadFundLicenceNet: 0, RoadFundLicenceVat: 0, RoadFundLicenceGross: 0, ValidFrom: 0001-01-01, ValidTo: 0001-01-01, GovernmentGrantNet: 0, GovernmentGrantVat: 0, GovernmentGrantGross: 0 } ] }