Mercedes.Agency.Orchestration.API

<back to all web services

FiltersRequest

Filters
Requires Authentication
The following routes are available for this service:
GET/v1/filters/{vehicletype}Get filters by vehicle type
import 'package:servicestack/servicestack.dart';

class Model implements IConvertible
{
    int? Id;
    String? Description;
    String? DisplayName;
    String? ImageUrlSmall;
    String? ImageUrlMedium;
    String? ImageUrlLarge;
    bool? Specialist;
    int? Priority;
    bool? ExcludeFromOnlineShowroomFilters;

    Model({this.Id,this.Description,this.DisplayName,this.ImageUrlSmall,this.ImageUrlMedium,this.ImageUrlLarge,this.Specialist,this.Priority,this.ExcludeFromOnlineShowroomFilters});
    Model.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        DisplayName = json['DisplayName'];
        ImageUrlSmall = json['ImageUrlSmall'];
        ImageUrlMedium = json['ImageUrlMedium'];
        ImageUrlLarge = json['ImageUrlLarge'];
        Specialist = json['Specialist'];
        Priority = json['Priority'];
        ExcludeFromOnlineShowroomFilters = json['ExcludeFromOnlineShowroomFilters'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'DisplayName': DisplayName,
        'ImageUrlSmall': ImageUrlSmall,
        'ImageUrlMedium': ImageUrlMedium,
        'ImageUrlLarge': ImageUrlLarge,
        'Specialist': Specialist,
        'Priority': Priority,
        'ExcludeFromOnlineShowroomFilters': ExcludeFromOnlineShowroomFilters
    };

    getTypeName() => "Model";
    TypeContext? context = _ctx;
}

class BodyStyle implements IConvertible
{
    int? Id;
    String? Description;
    List<Model>? Models;

    BodyStyle({this.Id,this.Description,this.Models});
    BodyStyle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        Models = JsonConverters.fromJson(json['Models'],'List<Model>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'Models': JsonConverters.toJson(Models,'List<Model>',context!)
    };

    getTypeName() => "BodyStyle";
    TypeContext? context = _ctx;
}

class Brand implements IConvertible
{
    int? Id;
    String? Description;
    String? DisplayName;
    List<BodyStyle>? BodyStyles;

    Brand({this.Id,this.Description,this.DisplayName,this.BodyStyles});
    Brand.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        DisplayName = json['DisplayName'];
        BodyStyles = JsonConverters.fromJson(json['BodyStyles'],'List<BodyStyle>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'DisplayName': DisplayName,
        'BodyStyles': JsonConverters.toJson(BodyStyles,'List<BodyStyle>',context!)
    };

    getTypeName() => "Brand";
    TypeContext? context = _ctx;
}

class Fuel implements IConvertible
{
    int? Id;
    String? Description;

    Fuel({this.Id,this.Description});
    Fuel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Fuel";
    TypeContext? context = _ctx;
}

class Line implements IConvertible
{
    int? Id;
    String? Description;

    Line({this.Id,this.Description});
    Line.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Line";
    TypeContext? context = _ctx;
}

class Engine implements IConvertible
{
    int? Id;
    String? Description;
    int? BrandId;
    String? Brand;
    String? Badge;

    Engine({this.Id,this.Description,this.BrandId,this.Brand,this.Badge});
    Engine.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        BrandId = json['BrandId'];
        Brand = json['Brand'];
        Badge = json['Badge'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'BrandId': BrandId,
        'Brand': Brand,
        'Badge': Badge
    };

    getTypeName() => "Engine";
    TypeContext? context = _ctx;
}

class Transmission implements IConvertible
{
    int? Id;
    String? Description;

    Transmission({this.Id,this.Description});
    Transmission.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Transmission";
    TypeContext? context = _ctx;
}

class RetailerOpeningTime implements IConvertible
{
    String? Day;
    String? OpenFrom;
    String? OpenTo;
    String? Special;

    RetailerOpeningTime({this.Day,this.OpenFrom,this.OpenTo,this.Special});
    RetailerOpeningTime.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Day = json['Day'];
        OpenFrom = json['OpenFrom'];
        OpenTo = json['OpenTo'];
        Special = json['Special'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Day': Day,
        'OpenFrom': OpenFrom,
        'OpenTo': OpenTo,
        'Special': Special
    };

    getTypeName() => "RetailerOpeningTime";
    TypeContext? context = _ctx;
}

class RetailerOpeningTimes implements IConvertible
{
    List<RetailerOpeningTime>? New = [];
    List<RetailerOpeningTime>? Used = [];

    RetailerOpeningTimes({this.New,this.Used});
    RetailerOpeningTimes.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        New = JsonConverters.fromJson(json['New'],'List<RetailerOpeningTime>',context!);
        Used = JsonConverters.fromJson(json['Used'],'List<RetailerOpeningTime>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'New': JsonConverters.toJson(New,'List<RetailerOpeningTime>',context!),
        'Used': JsonConverters.toJson(Used,'List<RetailerOpeningTime>',context!)
    };

    getTypeName() => "RetailerOpeningTimes";
    TypeContext? context = _ctx;
}

class Retailer implements IConvertible
{
    int? Id;
    String? GssnId;
    String? Description;
    String? Street;
    String? City;
    String? Postcode;
    String? GoogleMapPostcode;
    String? Phone;
    String? Fax;
    String? Email;
    String? Website;
    String? RetailerGroupId;
    String? RetailerGroupName;
    bool? IsOnline;
    bool? IsNewCarRetailer;
    bool? IsUsedCarRetailer;
    bool? IsCentralRetailer;
    bool? ChatEnabled;
    bool? TradeInEnabled;
    bool? smart;
    String? DisplayPhoneNumberNew;
    String? DisplayPhoneNumberUsed;
    double? Latitude;
    double? Longitude;
    String? smartDescription;
    String? smartWebsite;
    String? smartPhone;
    String? LegacyId;
    bool? Agent;
    int? MarketAreaId;
    String? DigitalLoungeParentGssnId;
    bool? SendLeadsToDigitalLoungeParent;
    RetailerOpeningTimes? OpeningTimes;

    Retailer({this.Id,this.GssnId,this.Description,this.Street,this.City,this.Postcode,this.GoogleMapPostcode,this.Phone,this.Fax,this.Email,this.Website,this.RetailerGroupId,this.RetailerGroupName,this.IsOnline,this.IsNewCarRetailer,this.IsUsedCarRetailer,this.IsCentralRetailer,this.ChatEnabled,this.TradeInEnabled,this.smart,this.DisplayPhoneNumberNew,this.DisplayPhoneNumberUsed,this.Latitude,this.Longitude,this.smartDescription,this.smartWebsite,this.smartPhone,this.LegacyId,this.Agent,this.MarketAreaId,this.DigitalLoungeParentGssnId,this.SendLeadsToDigitalLoungeParent,this.OpeningTimes});
    Retailer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        GssnId = json['GssnId'];
        Description = json['Description'];
        Street = json['Street'];
        City = json['City'];
        Postcode = json['Postcode'];
        GoogleMapPostcode = json['GoogleMapPostcode'];
        Phone = json['Phone'];
        Fax = json['Fax'];
        Email = json['Email'];
        Website = json['Website'];
        RetailerGroupId = json['RetailerGroupId'];
        RetailerGroupName = json['RetailerGroupName'];
        IsOnline = json['IsOnline'];
        IsNewCarRetailer = json['IsNewCarRetailer'];
        IsUsedCarRetailer = json['IsUsedCarRetailer'];
        IsCentralRetailer = json['IsCentralRetailer'];
        ChatEnabled = json['ChatEnabled'];
        TradeInEnabled = json['TradeInEnabled'];
        smart = json['smart'];
        DisplayPhoneNumberNew = json['DisplayPhoneNumberNew'];
        DisplayPhoneNumberUsed = json['DisplayPhoneNumberUsed'];
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        smartDescription = json['smartDescription'];
        smartWebsite = json['smartWebsite'];
        smartPhone = json['smartPhone'];
        LegacyId = json['LegacyId'];
        Agent = json['Agent'];
        MarketAreaId = json['MarketAreaId'];
        DigitalLoungeParentGssnId = json['DigitalLoungeParentGssnId'];
        SendLeadsToDigitalLoungeParent = json['SendLeadsToDigitalLoungeParent'];
        OpeningTimes = JsonConverters.fromJson(json['OpeningTimes'],'RetailerOpeningTimes',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'GssnId': GssnId,
        'Description': Description,
        'Street': Street,
        'City': City,
        'Postcode': Postcode,
        'GoogleMapPostcode': GoogleMapPostcode,
        'Phone': Phone,
        'Fax': Fax,
        'Email': Email,
        'Website': Website,
        'RetailerGroupId': RetailerGroupId,
        'RetailerGroupName': RetailerGroupName,
        'IsOnline': IsOnline,
        'IsNewCarRetailer': IsNewCarRetailer,
        'IsUsedCarRetailer': IsUsedCarRetailer,
        'IsCentralRetailer': IsCentralRetailer,
        'ChatEnabled': ChatEnabled,
        'TradeInEnabled': TradeInEnabled,
        'smart': smart,
        'DisplayPhoneNumberNew': DisplayPhoneNumberNew,
        'DisplayPhoneNumberUsed': DisplayPhoneNumberUsed,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'smartDescription': smartDescription,
        'smartWebsite': smartWebsite,
        'smartPhone': smartPhone,
        'LegacyId': LegacyId,
        'Agent': Agent,
        'MarketAreaId': MarketAreaId,
        'DigitalLoungeParentGssnId': DigitalLoungeParentGssnId,
        'SendLeadsToDigitalLoungeParent': SendLeadsToDigitalLoungeParent,
        'OpeningTimes': JsonConverters.toJson(OpeningTimes,'RetailerOpeningTimes',context!)
    };

    getTypeName() => "Retailer";
    TypeContext? context = _ctx;
}

class Colour implements IConvertible
{
    int? Id;
    String? Description;

    Colour({this.Id,this.Description});
    Colour.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Colour";
    TypeContext? context = _ctx;
}

class Upholstery implements IConvertible
{
    int? Id;
    String? Description;

    Upholstery({this.Id,this.Description});
    Upholstery.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Upholstery";
    TypeContext? context = _ctx;
}

class Package implements IConvertible
{
    int? Id;
    String? Description;

    Package({this.Id,this.Description});
    Package.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "Package";
    TypeContext? context = _ctx;
}

class DeliveryTime implements IConvertible
{
    int? Id;
    String? Description;

    DeliveryTime({this.Id,this.Description});
    DeliveryTime.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "DeliveryTime";
    TypeContext? context = _ctx;
}

class RetailerGroup implements IConvertible
{
    int? Id;
    String? RetailerGroupId;
    String? Description;
    String? RetailerGroupName;
    List<String>? GssnIds;

    RetailerGroup({this.Id,this.RetailerGroupId,this.Description,this.RetailerGroupName,this.GssnIds});
    RetailerGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        RetailerGroupId = json['RetailerGroupId'];
        Description = json['Description'];
        RetailerGroupName = json['RetailerGroupName'];
        GssnIds = JsonConverters.fromJson(json['GssnIds'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'RetailerGroupId': RetailerGroupId,
        'Description': Description,
        'RetailerGroupName': RetailerGroupName,
        'GssnIds': JsonConverters.toJson(GssnIds,'List<String>',context!)
    };

    getTypeName() => "RetailerGroup";
    TypeContext? context = _ctx;
}

class MarketArea implements IConvertible
{
    int? Id;
    String? MarketAreaName;
    String? Description;
    List<String>? GssnIds;

    MarketArea({this.Id,this.MarketAreaName,this.Description,this.GssnIds});
    MarketArea.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        MarketAreaName = json['MarketAreaName'];
        Description = json['Description'];
        GssnIds = JsonConverters.fromJson(json['GssnIds'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'MarketAreaName': MarketAreaName,
        'Description': Description,
        'GssnIds': JsonConverters.toJson(GssnIds,'List<String>',context!)
    };

    getTypeName() => "MarketArea";
    TypeContext? context = _ctx;
}

class NonOptimalReason implements IConvertible
{
    int? Id;
    String? Description;

    NonOptimalReason({this.Id,this.Description});
    NonOptimalReason.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description
    };

    getTypeName() => "NonOptimalReason";
    TypeContext? context = _ctx;
}

class AccountRetailer implements IConvertible
{
    String? Name;
    String? Gssn;
    bool? IsSmart;

    AccountRetailer({this.Name,this.Gssn,this.IsSmart});
    AccountRetailer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Gssn = json['Gssn'];
        IsSmart = json['IsSmart'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Gssn': Gssn,
        'IsSmart': IsSmart
    };

    getTypeName() => "AccountRetailer";
    TypeContext? context = _ctx;
}

class LookupValue implements IConvertible
{
    int? Id;
    String? Label;

    LookupValue({this.Id,this.Label});
    LookupValue.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Label = json['Label'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Label': Label
    };

    getTypeName() => "LookupValue";
    TypeContext? context = _ctx;
}

class Filters extends Filters implements IConvertible
{
    List<Fuel>? Fuels = [];
    List<Line>? Lines = [];
    List<Engine>? Engines = [];
    List<Transmission>? Transmissions = [];
    List<Colour>? Colours = [];
    List<Upholstery>? Upholsteries = [];
    List<Package>? Packages = [];
    List<Brand>? Brands = [];
    List<String>? Equipment = [];
    List<Retailer>? Retailers = [];
    // @DataMember(Name="Retailers")
    List<AccountRetailer>? Retailers = [];

    List<RetailerGroup>? RetailerGroups = [];
    List<MarketArea>? MarketAreas = [];
    List<LookupValue>? CustomerLocations = [];
    List<LookupValue>? AssistanceProviders = [];
    List<NonOptimalReason>? NonOptimalReasons = [];

    Filters({this.Fuels,this.Lines,this.Engines,this.Transmissions,this.Colours,this.Upholsteries,this.Packages,this.Brands,this.Equipment,this.Retailers,this.Retailers,this.RetailerGroups,this.MarketAreas,this.CustomerLocations,this.AssistanceProviders,this.NonOptimalReasons});
    Filters.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Fuels = JsonConverters.fromJson(json['Fuels'],'List<Fuel>',context!);
        Lines = JsonConverters.fromJson(json['Lines'],'List<Line>',context!);
        Engines = JsonConverters.fromJson(json['Engines'],'List<Engine>',context!);
        Transmissions = JsonConverters.fromJson(json['Transmissions'],'List<Transmission>',context!);
        Colours = JsonConverters.fromJson(json['Colours'],'List<Colour>',context!);
        Upholsteries = JsonConverters.fromJson(json['Upholsteries'],'List<Upholstery>',context!);
        Packages = JsonConverters.fromJson(json['Packages'],'List<Package>',context!);
        Brands = JsonConverters.fromJson(json['Brands'],'List<Brand>',context!);
        Equipment = JsonConverters.fromJson(json['Equipment'],'List<String>',context!);
        Retailers = JsonConverters.fromJson(json['Retailers'],'List<Retailer>',context!);
        Retailers = JsonConverters.fromJson(json['AccountRetailers'],'List<AccountRetailer>',context!);
        RetailerGroups = JsonConverters.fromJson(json['RetailerGroups'],'List<RetailerGroup>',context!);
        MarketAreas = JsonConverters.fromJson(json['MarketAreas'],'List<MarketArea>',context!);
        CustomerLocations = JsonConverters.fromJson(json['CustomerLocations'],'List<LookupValue>',context!);
        AssistanceProviders = JsonConverters.fromJson(json['AssistanceProviders'],'List<LookupValue>',context!);
        NonOptimalReasons = JsonConverters.fromJson(json['NonOptimalReasons'],'List<NonOptimalReason>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Fuels': JsonConverters.toJson(Fuels,'List<Fuel>',context!),
        'Lines': JsonConverters.toJson(Lines,'List<Line>',context!),
        'Engines': JsonConverters.toJson(Engines,'List<Engine>',context!),
        'Transmissions': JsonConverters.toJson(Transmissions,'List<Transmission>',context!),
        'Colours': JsonConverters.toJson(Colours,'List<Colour>',context!),
        'Upholsteries': JsonConverters.toJson(Upholsteries,'List<Upholstery>',context!),
        'Packages': JsonConverters.toJson(Packages,'List<Package>',context!),
        'Brands': JsonConverters.toJson(Brands,'List<Brand>',context!),
        'Equipment': JsonConverters.toJson(Equipment,'List<String>',context!),
        'Retailers': JsonConverters.toJson(Retailers,'List<Retailer>',context!),
        'Retailers': JsonConverters.toJson(Retailers,'List<AccountRetailer>',context!),
        'RetailerGroups': JsonConverters.toJson(RetailerGroups,'List<RetailerGroup>',context!),
        'MarketAreas': JsonConverters.toJson(MarketAreas,'List<MarketArea>',context!),
        'CustomerLocations': JsonConverters.toJson(CustomerLocations,'List<LookupValue>',context!),
        'AssistanceProviders': JsonConverters.toJson(AssistanceProviders,'List<LookupValue>',context!),
        'NonOptimalReasons': JsonConverters.toJson(NonOptimalReasons,'List<NonOptimalReason>',context!)
    });

    getTypeName() => "Filters";
    TypeContext? context = _ctx;
}

class FiltersResponse implements IConvertible
{
    Filters? Filters;

    FiltersResponse({this.Filters});
    FiltersResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Filters = JsonConverters.fromJson(json['Filters'],'Filters',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Filters': JsonConverters.toJson(Filters,'Filters',context!)
    };

    getTypeName() => "FiltersResponse";
    TypeContext? context = _ctx;
}

class FiltersRequest implements IGet, IConvertible
{
    String? vehicleType;

    FiltersRequest({this.vehicleType});
    FiltersRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        vehicleType = json['vehicleType'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'vehicleType': vehicleType
    };

    getTypeName() => "FiltersRequest";
    TypeContext? context = _ctx;
}

class Filters implements IConvertible
{
    List<Brand>? Brands = [];
    List<Fuel>? Fuels = [];
    List<Line>? Lines = [];
    List<Engine>? Engines = [];
    List<BodyStyle>? BodyStyles = [];
    List<Model>? Models = [];
    List<Transmission>? Transmissions = [];
    List<Brand>? ModelHierarchy = [];
    List<Retailer>? Retailers = [];
    List<Line>? AllLines = [];
    List<Colour>? Colours = [];
    List<Upholstery>? Upholsteries = [];
    List<Package>? Packages = [];
    List<DeliveryTime>? DeliveryTime;
    List<RetailerGroup>? RetailerGroups = [];
    List<MarketArea>? MarketAreas = [];
    List<NonOptimalReason>? NonOptimalReasons = [];

    Filters({this.Brands,this.Fuels,this.Lines,this.Engines,this.BodyStyles,this.Models,this.Transmissions,this.ModelHierarchy,this.Retailers,this.AllLines,this.Colours,this.Upholsteries,this.Packages,this.DeliveryTime,this.RetailerGroups,this.MarketAreas,this.NonOptimalReasons});
    Filters.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Brands = JsonConverters.fromJson(json['Brands'],'List<Brand>',context!);
        Fuels = JsonConverters.fromJson(json['Fuels'],'List<Fuel>',context!);
        Lines = JsonConverters.fromJson(json['Lines'],'List<Line>',context!);
        Engines = JsonConverters.fromJson(json['Engines'],'List<Engine>',context!);
        BodyStyles = JsonConverters.fromJson(json['BodyStyles'],'List<BodyStyle>',context!);
        Models = JsonConverters.fromJson(json['Models'],'List<Model>',context!);
        Transmissions = JsonConverters.fromJson(json['Transmissions'],'List<Transmission>',context!);
        ModelHierarchy = JsonConverters.fromJson(json['ModelHierarchy'],'List<Brand>',context!);
        Retailers = JsonConverters.fromJson(json['Retailers'],'List<Retailer>',context!);
        AllLines = JsonConverters.fromJson(json['AllLines'],'List<Line>',context!);
        Colours = JsonConverters.fromJson(json['Colours'],'List<Colour>',context!);
        Upholsteries = JsonConverters.fromJson(json['Upholsteries'],'List<Upholstery>',context!);
        Packages = JsonConverters.fromJson(json['Packages'],'List<Package>',context!);
        DeliveryTime = JsonConverters.fromJson(json['DeliveryTime'],'List<DeliveryTime>',context!);
        RetailerGroups = JsonConverters.fromJson(json['RetailerGroups'],'List<RetailerGroup>',context!);
        MarketAreas = JsonConverters.fromJson(json['MarketAreas'],'List<MarketArea>',context!);
        NonOptimalReasons = JsonConverters.fromJson(json['NonOptimalReasons'],'List<NonOptimalReason>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Brands': JsonConverters.toJson(Brands,'List<Brand>',context!),
        'Fuels': JsonConverters.toJson(Fuels,'List<Fuel>',context!),
        'Lines': JsonConverters.toJson(Lines,'List<Line>',context!),
        'Engines': JsonConverters.toJson(Engines,'List<Engine>',context!),
        'BodyStyles': JsonConverters.toJson(BodyStyles,'List<BodyStyle>',context!),
        'Models': JsonConverters.toJson(Models,'List<Model>',context!),
        'Transmissions': JsonConverters.toJson(Transmissions,'List<Transmission>',context!),
        'ModelHierarchy': JsonConverters.toJson(ModelHierarchy,'List<Brand>',context!),
        'Retailers': JsonConverters.toJson(Retailers,'List<Retailer>',context!),
        'AllLines': JsonConverters.toJson(AllLines,'List<Line>',context!),
        'Colours': JsonConverters.toJson(Colours,'List<Colour>',context!),
        'Upholsteries': JsonConverters.toJson(Upholsteries,'List<Upholstery>',context!),
        'Packages': JsonConverters.toJson(Packages,'List<Package>',context!),
        'DeliveryTime': JsonConverters.toJson(DeliveryTime,'List<DeliveryTime>',context!),
        'RetailerGroups': JsonConverters.toJson(RetailerGroups,'List<RetailerGroup>',context!),
        'MarketAreas': JsonConverters.toJson(MarketAreas,'List<MarketArea>',context!),
        'NonOptimalReasons': JsonConverters.toJson(NonOptimalReasons,'List<NonOptimalReason>',context!)
    };

    getTypeName() => "Filters";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'prod_api_agency_orch_mb_dhc.rapp_customers.co.uk', types: <String, TypeInfo> {
    'Model': TypeInfo(TypeOf.Class, create:() => Model()),
    'BodyStyle': TypeInfo(TypeOf.Class, create:() => BodyStyle()),
    'List<Model>': TypeInfo(TypeOf.Class, create:() => <Model>[]),
    'Brand': TypeInfo(TypeOf.Class, create:() => Brand()),
    'List<BodyStyle>': TypeInfo(TypeOf.Class, create:() => <BodyStyle>[]),
    'Fuel': TypeInfo(TypeOf.Class, create:() => Fuel()),
    'Line': TypeInfo(TypeOf.Class, create:() => Line()),
    'Engine': TypeInfo(TypeOf.Class, create:() => Engine()),
    'Transmission': TypeInfo(TypeOf.Class, create:() => Transmission()),
    'RetailerOpeningTime': TypeInfo(TypeOf.Class, create:() => RetailerOpeningTime()),
    'RetailerOpeningTimes': TypeInfo(TypeOf.Class, create:() => RetailerOpeningTimes()),
    'List<RetailerOpeningTime>': TypeInfo(TypeOf.Class, create:() => <RetailerOpeningTime>[]),
    'Retailer': TypeInfo(TypeOf.Class, create:() => Retailer()),
    'Colour': TypeInfo(TypeOf.Class, create:() => Colour()),
    'Upholstery': TypeInfo(TypeOf.Class, create:() => Upholstery()),
    'Package': TypeInfo(TypeOf.Class, create:() => Package()),
    'DeliveryTime': TypeInfo(TypeOf.Class, create:() => DeliveryTime()),
    'RetailerGroup': TypeInfo(TypeOf.Class, create:() => RetailerGroup()),
    'MarketArea': TypeInfo(TypeOf.Class, create:() => MarketArea()),
    'NonOptimalReason': TypeInfo(TypeOf.Class, create:() => NonOptimalReason()),
    'AccountRetailer': TypeInfo(TypeOf.Class, create:() => AccountRetailer()),
    'LookupValue': TypeInfo(TypeOf.Class, create:() => LookupValue()),
    'Filters': TypeInfo(TypeOf.Class, create:() => Filters()),
    'List<Fuel>': TypeInfo(TypeOf.Class, create:() => <Fuel>[]),
    'List<Line>': TypeInfo(TypeOf.Class, create:() => <Line>[]),
    'List<Engine>': TypeInfo(TypeOf.Class, create:() => <Engine>[]),
    'List<Transmission>': TypeInfo(TypeOf.Class, create:() => <Transmission>[]),
    'List<Colour>': TypeInfo(TypeOf.Class, create:() => <Colour>[]),
    'List<Upholstery>': TypeInfo(TypeOf.Class, create:() => <Upholstery>[]),
    'List<Package>': TypeInfo(TypeOf.Class, create:() => <Package>[]),
    'List<Brand>': TypeInfo(TypeOf.Class, create:() => <Brand>[]),
    'List<Retailer>': TypeInfo(TypeOf.Class, create:() => <Retailer>[]),
    'List<AccountRetailer>': TypeInfo(TypeOf.Class, create:() => <AccountRetailer>[]),
    'List<RetailerGroup>': TypeInfo(TypeOf.Class, create:() => <RetailerGroup>[]),
    'List<MarketArea>': TypeInfo(TypeOf.Class, create:() => <MarketArea>[]),
    'List<LookupValue>': TypeInfo(TypeOf.Class, create:() => <LookupValue>[]),
    'List<NonOptimalReason>': TypeInfo(TypeOf.Class, create:() => <NonOptimalReason>[]),
    'FiltersResponse': TypeInfo(TypeOf.Class, create:() => FiltersResponse()),
    'FiltersRequest': TypeInfo(TypeOf.Class, create:() => FiltersRequest()),
    'List<DeliveryTime>': TypeInfo(TypeOf.Class, create:() => <DeliveryTime>[]),
});

Dart FiltersRequest DTOs

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

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/filters/{vehicletype} HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Filters":{"Fuels":[{"Id":0,"Description":"String"}],"Lines":[{"Id":0,"Description":"String"}],"Engines":[{"Id":0,"Description":"String","BrandId":0,"Brand":"String","Badge":"String"}],"Transmissions":[{"Id":0,"Description":"String"}],"Colours":[{"Id":0,"Description":"String"}],"Upholsteries":[{"Id":0,"Description":"String"}],"Packages":[{"Id":0,"Description":"String"}],"Brands":[{"Id":0,"Description":"String","DisplayName":"String","BodyStyles":[{"Id":0,"Description":"String","Models":[{"Id":0,"Description":"String","DisplayName":"String","ImageUrlSmall":"String","ImageUrlMedium":"String","ImageUrlLarge":"String","Specialist":false,"Priority":0,"ExcludeFromOnlineShowroomFilters":false}]}]}],"Equipment":["String"],"Retailers":[{"Gssn":"String","Description":"String","CampaignExcluded":false}],"Retailers":[{"Name":"String","Gssn":"String","IsSmart":false}],"RetailerGroups":[{"Id":0,"RetailerGroupId":"String","Description":"String","RetailerGroupName":"String","GssnIds":["String"]}],"MarketAreas":[{"Id":0,"MarketAreaName":"String","Description":"String","GssnIds":["String"]}],"CustomerLocations":[{}],"AssistanceProviders":[{}],"NonOptimalReasons":[{"Id":0,"Description":"String"}],"BodyStyles":[{"Id":0,"Description":"String","Models":[{"Id":0,"Description":"String","DisplayName":"String","ImageUrlSmall":"String","ImageUrlMedium":"String","ImageUrlLarge":"String","Specialist":false,"Priority":0,"ExcludeFromOnlineShowroomFilters":false}]}],"Models":[{"Id":0,"Description":"String","DisplayName":"String","ImageUrlSmall":"String","ImageUrlMedium":"String","ImageUrlLarge":"String","Specialist":false,"Priority":0,"ExcludeFromOnlineShowroomFilters":false}],"ModelHierarchy":[{"Id":0,"Description":"String","DisplayName":"String","BodyStyles":[{"Id":0,"Description":"String","Models":[{"Id":0,"Description":"String","DisplayName":"String","ImageUrlSmall":"String","ImageUrlMedium":"String","ImageUrlLarge":"String","Specialist":false,"Priority":0,"ExcludeFromOnlineShowroomFilters":false}]}]}],"AllLines":[{"Id":0,"Description":"String"}],"DeliveryTime":[{"Id":0,"Description":"String"}]}}