use crate::*;
use serde_with::{serde_as, OneOrMany};
pub type MotorizedBicycleGtinFieldEnum = String;
pub type MotorizedBicycleAsinFieldEnum = String;
pub type MotorizedBicycleAdditionalTypeFieldEnum = String;
#[serde_as]
#[derive(Debug, serde::Deserialize)]
#[cfg_attr(feature = "uniffi", derive(uniffi::Record))]
pub struct MotorizedBicycle {
#[serde(rename = "@context")]
pub context: String,
#[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<MotorizedBicycleVehicleTransmissionFieldEnum>,
#[serde(rename = "bodyType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub body_type: Vec<MotorizedBicycleBodyTypeFieldEnum>,
#[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<MotorizedBicycleVehicleSpecialUsageFieldEnum>,
#[serde(rename = "numberOfForwardGears")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_forward_gears: Vec<MotorizedBicycleNumberOfForwardGearsFieldEnum>,
#[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<MotorizedBicycleNumberOfDoorsFieldEnum>,
#[serde(rename = "numberOfPreviousOwners")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub number_of_previous_owners: Vec<MotorizedBicycleNumberOfPreviousOwnersFieldEnum>,
#[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<MotorizedBicycleNumberOfAxlesFieldEnum>,
#[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<MotorizedBicycleMeetsEmissionStandardFieldEnum>,
#[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<MotorizedBicycleNumberOfAirbagsFieldEnum>,
#[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<MotorizedBicycleSeatingCapacityFieldEnum>,
#[serde(rename = "driveWheelConfiguration")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub drive_wheel_configuration: Vec<MotorizedBicycleDriveWheelConfigurationFieldEnum>,
#[serde(rename = "fuelType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub fuel_type: Vec<MotorizedBicycleFuelTypeFieldEnum>,
#[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<MotorizedBicycleVehicleSeatingCapacityFieldEnum>,
#[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<MotorizedBicycleIsSimilarToFieldEnum>,
#[serde(rename = "colorSwatch")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub color_swatch: Vec<MotorizedBicycleColorSwatchFieldEnum>,
#[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<MotorizedBicycleWeightFieldEnum>,
#[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<MotorizedBicycleModelFieldEnum>,
#[serde(rename = "isRelatedTo")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_related_to: Vec<MotorizedBicycleIsRelatedToFieldEnum>,
#[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<MotorizedBicyclePatternFieldEnum>,
#[serde(rename = "offers")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub offers: Vec<MotorizedBicycleOffersFieldEnum>,
#[serde(rename = "keywords")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub keywords: Vec<MotorizedBicycleKeywordsFieldEnum>,
#[serde(rename = "negativeNotes")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub negative_notes: Vec<MotorizedBicycleNegativeNotesFieldEnum>,
#[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<MotorizedBicycleGtinFieldEnum>,
#[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<MotorizedBicycleCategoryFieldEnum>,
#[serde(rename = "asin")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub asin: Vec<MotorizedBicycleAsinFieldEnum>,
#[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<MotorizedBicycleLogoFieldEnum>,
#[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<MotorizedBicycleBrandFieldEnum>,
#[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<MotorizedBicycleWidthFieldEnum>,
#[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<MotorizedBicycleMaterialFieldEnum>,
#[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<MotorizedBicycleDepthFieldEnum>,
#[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<MotorizedBicyclePositiveNotesFieldEnum>,
#[serde(rename = "size")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub size: Vec<MotorizedBicycleSizeFieldEnum>,
#[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<MotorizedBicycleHeightFieldEnum>,
#[serde(rename = "isVariantOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_variant_of: Vec<MotorizedBicycleIsVariantOfFieldEnum>,
#[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<MotorizedBicycleMainEntityOfPageFieldEnum>,
#[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<MotorizedBicycleIdentifierFieldEnum>,
#[serde(rename = "description")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub description: Vec<MotorizedBicycleDescriptionFieldEnum>,
#[serde(rename = "subjectOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub subject_of: Vec<MotorizedBicycleSubjectOfFieldEnum>,
#[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<MotorizedBicycleAdditionalTypeFieldEnum>,
#[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<MotorizedBicycleImageFieldEnum>,
}