from __future__ import annotations
from dataclasses import dataclass, field
from .blacklists_in_frame_rel_structure import BlacklistsInFrameRelStructure
from .booking_arrangements_in_frame_rel_structure import BookingArrangementsInFrameRelStructure
from .common_version_frame_structure import CommonVersionFrameStructure
from .contacts_rel_structure import ContactsRelStructure
from .contracts_in_frame_rel_structure import ContractsInFrameRelStructure
from .control_centres_in_frame_rel_structure import ControlCentresInFrameRelStructure
from .data_sources_in_frame_rel_structure import DataSourcesInFrameRelStructure
from .deck_plans_rel_structure import DeckPlansRelStructure
from .equipments_in_frame_rel_structure import EquipmentsInFrameRelStructure
from .group_of_entities_in_frame_rel_structure import GroupOfEntitiesInFrameRelStructure
from .groups_of_operators_in_frame_rel_structure import GroupsOfOperatorsInFrameRelStructure
from .modes_of_operation_rel_structure import ModesOfOperationRelStructure
from .open_modes_rel_structure import OpenModesRelStructure
from .operational_contexts_in_frame_rel_structure import OperationalContextsInFrameRelStructure
from .organisations_in_frame_rel_structure import OrganisationsInFrameRelStructure
from .responsibility_roles_in_frame_rel_structure import ResponsibilityRolesInFrameRelStructure
from .responsibility_sets_in_frame_rel_structure import ResponsibilitySetsInFrameRelStructure
from .rolling_stock_inventories_rel_structure import RollingStockInventoriesRelStructure
from .schematic_maps_in_frame_rel_structure import SchematicMapsInFrameRelStructure
from .service_booking_arrangements_in_frame_rel_structure import ServiceBookingArrangementsInFrameRelStructure
from .service_facility_sets_in_frame_rel_structure import ServiceFacilitySetsInFrameRelStructure
from .site_facility_sets_in_frame_rel_structure import SiteFacilitySetsInFrameRelStructure
from .train_element_types_in_frame_rel_structure import TrainElementTypesInFrameRelStructure
from .types_of_value_in_frame_rel_structure import TypesOfValueInFrameRelStructure
from .vehicle_equipment_profiles_in_frame_rel_structure import VehicleEquipmentProfilesInFrameRelStructure
from .vehicle_model_profiles_in_frame_rel_structure import VehicleModelProfilesInFrameRelStructure
from .vehicle_models_in_frame_rel_structure import VehicleModelsInFrameRelStructure
from .vehicle_types_in_frame_rel_structure import VehicleTypesInFrameRelStructure
from .vehicles_in_frame_rel_structure import VehiclesInFrameRelStructure
from .whitelists_in_frame_rel_structure import WhitelistsInFrameRelStructure
from .zones_in_frame_rel_structure import ZonesInFrameRelStructure

__NAMESPACE__ = "http://www.netex.org.uk/netex"


@dataclass(slots=True, kw_only=True)
class ResourceFrameVersionFrameStructure(CommonVersionFrameStructure):
    class Meta:
        name = "ResourceFrame_VersionFrameStructure"

    data_sources: None | DataSourcesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "dataSources",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    responsibility_roles: None | ResponsibilityRolesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "responsibilityRoles",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    responsibility_sets: None | ResponsibilitySetsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "responsibilitySets",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contracts: None | ContractsInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    types_of_value: None | TypesOfValueInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "typesOfValue",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    contacts: None | ContactsRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    organisations: None | OrganisationsInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    groups_of_operators: None | GroupsOfOperatorsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "groupsOfOperators",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    operational_contexts: None | OperationalContextsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "operationalContexts",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    control_centres: None | ControlCentresInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "controlCentres",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    open_modes: None | OpenModesRelStructure = field(
        default=None,
        metadata={
            "name": "openModes",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    modes_of_operation: None | ModesOfOperationRelStructure = field(
        default=None,
        metadata={
            "name": "modesOfOperation",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    equipments: None | EquipmentsInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    site_facility_sets: None | SiteFacilitySetsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "siteFacilitySets",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    service_facility_sets: None | ServiceFacilitySetsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "serviceFacilitySets",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    vehicle_types: None | VehicleTypesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "vehicleTypes",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    vehicle_models: None | VehicleModelsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "vehicleModels",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    vehicle_equipment_profiles: None | VehicleEquipmentProfilesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "vehicleEquipmentProfiles",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    vehicle_model_profiles: None | VehicleModelProfilesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "vehicleModelProfiles",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    train_element_types: None | TrainElementTypesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "trainElementTypes",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    vehicles: None | VehiclesInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    rolling_stock_inventories: None | RollingStockInventoriesRelStructure = field(
        default=None,
        metadata={
            "name": "rollingStockInventories",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    deck_plans: None | DeckPlansRelStructure = field(
        default=None,
        metadata={
            "name": "deckPlans",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    schematic_maps: None | SchematicMapsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "schematicMaps",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    groups_of_entities: None | GroupOfEntitiesInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "groupsOfEntities",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    zones: None | ZonesInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    blacklists: None | BlacklistsInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    whitelists: None | WhitelistsInFrameRelStructure = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    booking_arrangements: None | BookingArrangementsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "bookingArrangements",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )
    service_booking_arrangements: None | ServiceBookingArrangementsInFrameRelStructure = field(
        default=None,
        metadata={
            "name": "serviceBookingArrangements",
            "type": "Element",
            "namespace": "http://www.netex.org.uk/netex",
        }
    )