use crate::*;
use serde_with::{serde_as, OneOrMany};
pub type BusOrCoachGtinFieldEnum = String;
pub type BusOrCoachAsinFieldEnum = String;
pub type BusOrCoachAdditionalTypeFieldEnum = String;
#[serde_as]
#[derive(Debug, serde::Deserialize)]
#[cfg_attr(feature = "uniffi", derive(uniffi::Record))]
pub struct BusOrCoach {
#[serde(rename = "@context")]
pub context: String,
#[serde(rename = "acrissCode")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub acriss_code: Vec<String>,
#[serde(rename = "roofLoad")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub roof_load: Vec<QuantitativeValue>,
#[serde(rename = "mileageFromOdometer")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub mileage_from_odometer: Vec<QuantitativeValue>,
#[serde(rename = "fuelCapacity")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub fuel_capacity: Vec<QuantitativeValue>,
#[serde(rename = "vehicleTransmission")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_transmission: Vec<BusOrCoachVehicleTransmissionFieldEnum>,
#[serde(rename = "bodyType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub body_type: Vec<BusOrCoachBodyTypeFieldEnum>,
#[serde(rename = "vehicleInteriorColor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_interior_color: Vec<String>,
#[serde(rename = "fuelConsumption")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub fuel_consumption: Vec<QuantitativeValue>,
#[serde(rename = "productionDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub production_date: Vec<String>,
#[serde(rename = "vehicleSpecialUsage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_special_usage: Vec<BusOrCoachVehicleSpecialUsageFieldEnum>,
#[serde(rename = "numberOfForwardGears")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_forward_gears: Vec<BusOrCoachNumberOfForwardGearsFieldEnum>,
#[serde(rename = "fuelEfficiency")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub fuel_efficiency: Vec<QuantitativeValue>,
#[serde(rename = "vehicleModelDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_model_date: Vec<String>,
#[serde(rename = "vehicleEngine")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_engine: Vec<EngineSpecification>,
#[serde(rename = "numberOfDoors")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_doors: Vec<BusOrCoachNumberOfDoorsFieldEnum>,
#[serde(rename = "numberOfPreviousOwners")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_previous_owners: Vec<BusOrCoachNumberOfPreviousOwnersFieldEnum>,
#[serde(rename = "weightTotal")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub weight_total: Vec<QuantitativeValue>,
#[serde(rename = "numberOfAxles")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_axles: Vec<BusOrCoachNumberOfAxlesFieldEnum>,
#[serde(rename = "payload")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub payload: Vec<QuantitativeValue>,
#[serde(rename = "cargoVolume")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub cargo_volume: Vec<QuantitativeValue>,
#[serde(rename = "meetsEmissionStandard")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub meets_emission_standard: Vec<BusOrCoachMeetsEmissionStandardFieldEnum>,
#[serde(rename = "wheelbase")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub wheelbase: Vec<QuantitativeValue>,
#[serde(rename = "speed")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub speed: Vec<QuantitativeValue>,
#[serde(rename = "modelDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub model_date: Vec<String>,
#[serde(rename = "numberOfAirbags")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_airbags: Vec<BusOrCoachNumberOfAirbagsFieldEnum>,
#[serde(rename = "accelerationTime")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub acceleration_time: Vec<QuantitativeValue>,
#[serde(rename = "callSign")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub call_sign: Vec<String>,
#[serde(rename = "tongueWeight")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub tongue_weight: Vec<QuantitativeValue>,
#[serde(rename = "seatingCapacity")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub seating_capacity: Vec<BusOrCoachSeatingCapacityFieldEnum>,
#[serde(rename = "driveWheelConfiguration")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub drive_wheel_configuration: Vec<BusOrCoachDriveWheelConfigurationFieldEnum>,
#[serde(rename = "fuelType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub fuel_type: Vec<BusOrCoachFuelTypeFieldEnum>,
#[serde(rename = "vehicleInteriorType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_interior_type: Vec<String>,
#[serde(rename = "vehicleConfiguration")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_configuration: Vec<String>,
#[serde(rename = "dateVehicleFirstRegistered")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub date_vehicle_first_registered: Vec<String>,
#[serde(rename = "vehicleIdentificationNumber")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_identification_number: Vec<String>,
#[serde(rename = "emissionsCO2")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub emissions_co2: Vec<f32>,
#[serde(rename = "knownVehicleDamages")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub known_vehicle_damages: Vec<String>,
#[serde(rename = "vehicleSeatingCapacity")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub vehicle_seating_capacity: Vec<BusOrCoachVehicleSeatingCapacityFieldEnum>,
#[serde(rename = "trailerWeight")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub trailer_weight: Vec<QuantitativeValue>,
#[serde(rename = "purchaseDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub purchase_date: Vec<String>,
#[serde(rename = "steeringPosition")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub steering_position: Vec<SteeringPositionValueEnum>,
#[serde(rename = "productID")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub product_id: Vec<String>,
#[serde(rename = "aggregateRating")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub aggregate_rating: Vec<AggregateRating>,
#[serde(rename = "hasCertification")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_certification: Vec<Certification>,
#[serde(rename = "isSimilarTo")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_similar_to: Vec<BusOrCoachIsSimilarToFieldEnum>,
#[serde(rename = "colorSwatch")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub color_swatch: Vec<BusOrCoachColorSwatchFieldEnum>,
#[serde(rename = "countryOfAssembly")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub country_of_assembly: Vec<String>,
#[serde(rename = "countryOfOrigin")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub country_of_origin: Vec<Country>,
#[serde(rename = "sku")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub sku: Vec<String>,
#[serde(rename = "hasMerchantReturnPolicy")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_merchant_return_policy: Vec<MerchantReturnPolicy>,
#[serde(rename = "weight")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub weight: Vec<BusOrCoachWeightFieldEnum>,
#[serde(rename = "mpn")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub mpn: Vec<String>,
#[serde(rename = "hasGS1DigitalLink")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_gs1_digital_link: Vec<String>,
#[serde(rename = "model")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub model: Vec<BusOrCoachModelFieldEnum>,
#[serde(rename = "isRelatedTo")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_related_to: Vec<BusOrCoachIsRelatedToFieldEnum>,
#[serde(rename = "reviews")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub reviews: Vec<Review>,
#[serde(rename = "gtin12")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub gtin12: Vec<String>,
#[serde(rename = "pattern")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub pattern: Vec<BusOrCoachPatternFieldEnum>,
#[serde(rename = "offers")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub offers: Vec<BusOrCoachOffersFieldEnum>,
#[serde(rename = "keywords")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub keywords: Vec<BusOrCoachKeywordsFieldEnum>,
#[serde(rename = "negativeNotes")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub negative_notes: Vec<BusOrCoachNegativeNotesFieldEnum>,
#[serde(rename = "gtin13")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub gtin13: Vec<String>,
#[serde(rename = "hasMeasurement")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_measurement: Vec<QuantitativeValue>,
#[serde(rename = "gtin")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub gtin: Vec<BusOrCoachGtinFieldEnum>,
#[serde(rename = "funding")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub funding: Vec<Grant>,
#[serde(rename = "isConsumableFor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_consumable_for: Vec<Product>,
#[serde(rename = "mobileUrl")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub mobile_url: Vec<String>,
#[serde(rename = "category")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub category: Vec<BusOrCoachCategoryFieldEnum>,
#[serde(rename = "asin")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub asin: Vec<BusOrCoachAsinFieldEnum>,
#[serde(rename = "color")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub color: Vec<String>,
#[serde(rename = "countryOfLastProcessing")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub country_of_last_processing: Vec<String>,
#[serde(rename = "logo")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub logo: Vec<BusOrCoachLogoFieldEnum>,
#[serde(rename = "award")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub award: Vec<String>,
#[serde(rename = "isFamilyFriendly")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_family_friendly: Vec<String>,
#[serde(rename = "releaseDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub release_date: Vec<String>,
#[serde(rename = "brand")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub brand: Vec<BusOrCoachBrandFieldEnum>,
#[serde(rename = "inProductGroupWithID")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub in_product_group_with_id: Vec<String>,
#[serde(rename = "manufacturer")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub manufacturer: Vec<Organization>,
#[serde(rename = "awards")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub awards: Vec<String>,
#[serde(rename = "width")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub width: Vec<BusOrCoachWidthFieldEnum>,
#[serde(rename = "hasAdultConsideration")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_adult_consideration: Vec<AdultOrientedEnumerationEnum>,
#[serde(rename = "audience")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub audience: Vec<Audience>,
#[serde(rename = "material")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub material: Vec<BusOrCoachMaterialFieldEnum>,
#[serde(rename = "additionalProperty")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub additional_property: Vec<PropertyValue>,
#[serde(rename = "slogan")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub slogan: Vec<String>,
#[serde(rename = "depth")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub depth: Vec<BusOrCoachDepthFieldEnum>,
#[serde(rename = "review")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub review: Vec<Review>,
#[serde(rename = "itemCondition")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub item_condition: Vec<OfferItemConditionEnum>,
#[serde(rename = "nsn")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub nsn: Vec<String>,
#[serde(rename = "positiveNotes")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub positive_notes: Vec<BusOrCoachPositiveNotesFieldEnum>,
#[serde(rename = "size")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub size: Vec<BusOrCoachSizeFieldEnum>,
#[serde(rename = "hasEnergyConsumptionDetails")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_energy_consumption_details: Vec<EnergyConsumptionDetails>,
#[serde(rename = "gtin14")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub gtin14: Vec<String>,
#[serde(rename = "height")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub height: Vec<BusOrCoachHeightFieldEnum>,
#[serde(rename = "isVariantOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_variant_of: Vec<BusOrCoachIsVariantOfFieldEnum>,
#[serde(rename = "gtin8")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub gtin8: Vec<String>,
#[serde(rename = "isAccessoryOrSparePartFor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_accessory_or_spare_part_for: Vec<Product>,
#[serde(rename = "name")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub name: Vec<String>,
#[serde(rename = "mainEntityOfPage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub main_entity_of_page: Vec<BusOrCoachMainEntityOfPageFieldEnum>,
#[serde(rename = "url")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub url: Vec<String>,
#[serde(rename = "disambiguatingDescription")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub disambiguating_description: Vec<String>,
#[serde(rename = "identifier")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub identifier: Vec<BusOrCoachIdentifierFieldEnum>,
#[serde(rename = "description")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub description: Vec<BusOrCoachDescriptionFieldEnum>,
#[serde(rename = "subjectOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub subject_of: Vec<BusOrCoachSubjectOfFieldEnum>,
#[serde(rename = "alternateName")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub alternate_name: Vec<String>,
#[serde(rename = "additionalType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub additional_type: Vec<BusOrCoachAdditionalTypeFieldEnum>,
#[serde(rename = "potentialAction")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub potential_action: Vec<Action>,
#[serde(rename = "sameAs")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub same_as: Vec<String>,
#[serde(rename = "image")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub image: Vec<BusOrCoachImageFieldEnum>,
}