# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server.models.asset_access_methods import AssetAccessMethods  # noqa: F401,E501
from swagger_server.models.place import Place  # noqa: F401,E501
from swagger_server.models.requirement import Requirement  # noqa: F401,E501
from swagger_server import util


class AssetProperties(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    def __init__(self, name: str=None, location: Place=None, fuel: str=None, energy_label: str=None, co2_per_km: float=None, brand: str=None, model: str=None, building_year: int=None, travel_abroad: bool=None, air_conditioning: bool=None, cabrio: bool=None, colour: str=None, cargo: str=None, easy_accessibility: str=None, gears: int=None, gearbox: str=None, image: str=None, infant_seat: bool=None, persons: int=None, pets: bool=None, propulsion: str=None, smoking: bool=None, state_of_charge: int=None, towing_hook: bool=None, underground_parking: bool=None, winter_tires: bool=None, max_speed: float=None, helmet_required: bool=False, other: str=None, nr_of_doors: int=None, meta: Dict=None, access_methods: List[AssetAccessMethods]=None, ancillaries: List[Requirement]=None):  # noqa: E501
        """AssetProperties - a model defined in Swagger

        :param name: The name of this AssetProperties.  # noqa: E501
        :type name: str
        :param location: The location of this AssetProperties.  # noqa: E501
        :type location: Place
        :param fuel: The fuel of this AssetProperties.  # noqa: E501
        :type fuel: str
        :param energy_label: The energy_label of this AssetProperties.  # noqa: E501
        :type energy_label: str
        :param co2_per_km: The co2_per_km of this AssetProperties.  # noqa: E501
        :type co2_per_km: float
        :param brand: The brand of this AssetProperties.  # noqa: E501
        :type brand: str
        :param model: The model of this AssetProperties.  # noqa: E501
        :type model: str
        :param building_year: The building_year of this AssetProperties.  # noqa: E501
        :type building_year: int
        :param travel_abroad: The travel_abroad of this AssetProperties.  # noqa: E501
        :type travel_abroad: bool
        :param air_conditioning: The air_conditioning of this AssetProperties.  # noqa: E501
        :type air_conditioning: bool
        :param cabrio: The cabrio of this AssetProperties.  # noqa: E501
        :type cabrio: bool
        :param colour: The colour of this AssetProperties.  # noqa: E501
        :type colour: str
        :param cargo: The cargo of this AssetProperties.  # noqa: E501
        :type cargo: str
        :param easy_accessibility: The easy_accessibility of this AssetProperties.  # noqa: E501
        :type easy_accessibility: str
        :param gears: The gears of this AssetProperties.  # noqa: E501
        :type gears: int
        :param gearbox: The gearbox of this AssetProperties.  # noqa: E501
        :type gearbox: str
        :param image: The image of this AssetProperties.  # noqa: E501
        :type image: str
        :param infant_seat: The infant_seat of this AssetProperties.  # noqa: E501
        :type infant_seat: bool
        :param persons: The persons of this AssetProperties.  # noqa: E501
        :type persons: int
        :param pets: The pets of this AssetProperties.  # noqa: E501
        :type pets: bool
        :param propulsion: The propulsion of this AssetProperties.  # noqa: E501
        :type propulsion: str
        :param smoking: The smoking of this AssetProperties.  # noqa: E501
        :type smoking: bool
        :param state_of_charge: The state_of_charge of this AssetProperties.  # noqa: E501
        :type state_of_charge: int
        :param towing_hook: The towing_hook of this AssetProperties.  # noqa: E501
        :type towing_hook: bool
        :param underground_parking: The underground_parking of this AssetProperties.  # noqa: E501
        :type underground_parking: bool
        :param winter_tires: The winter_tires of this AssetProperties.  # noqa: E501
        :type winter_tires: bool
        :param max_speed: The max_speed of this AssetProperties.  # noqa: E501
        :type max_speed: float
        :param helmet_required: The helmet_required of this AssetProperties.  # noqa: E501
        :type helmet_required: bool
        :param other: The other of this AssetProperties.  # noqa: E501
        :type other: str
        :param nr_of_doors: The nr_of_doors of this AssetProperties.  # noqa: E501
        :type nr_of_doors: int
        :param meta: The meta of this AssetProperties.  # noqa: E501
        :type meta: Dict
        :param access_methods: The access_methods of this AssetProperties.  # noqa: E501
        :type access_methods: List[AssetAccessMethods]
        :param ancillaries: The ancillaries of this AssetProperties.  # noqa: E501
        :type ancillaries: List[Requirement]
        """
        self.swagger_types = {
            'name': str,
            'location': Place,
            'fuel': str,
            'energy_label': str,
            'co2_per_km': float,
            'brand': str,
            'model': str,
            'building_year': int,
            'travel_abroad': bool,
            'air_conditioning': bool,
            'cabrio': bool,
            'colour': str,
            'cargo': str,
            'easy_accessibility': str,
            'gears': int,
            'gearbox': str,
            'image': str,
            'infant_seat': bool,
            'persons': int,
            'pets': bool,
            'propulsion': str,
            'smoking': bool,
            'state_of_charge': int,
            'towing_hook': bool,
            'underground_parking': bool,
            'winter_tires': bool,
            'max_speed': float,
            'helmet_required': bool,
            'other': str,
            'nr_of_doors': int,
            'meta': Dict,
            'access_methods': List[AssetAccessMethods],
            'ancillaries': List[Requirement]
        }

        self.attribute_map = {
            'name': 'name',
            'location': 'location',
            'fuel': 'fuel',
            'energy_label': 'energyLabel',
            'co2_per_km': 'co2PerKm',
            'brand': 'brand',
            'model': 'model',
            'building_year': 'buildingYear',
            'travel_abroad': 'travelAbroad',
            'air_conditioning': 'airConditioning',
            'cabrio': 'cabrio',
            'colour': 'colour',
            'cargo': 'cargo',
            'easy_accessibility': 'easyAccessibility',
            'gears': 'gears',
            'gearbox': 'gearbox',
            'image': 'image',
            'infant_seat': 'infantSeat',
            'persons': 'persons',
            'pets': 'pets',
            'propulsion': 'propulsion',
            'smoking': 'smoking',
            'state_of_charge': 'stateOfCharge',
            'towing_hook': 'towingHook',
            'underground_parking': 'undergroundParking',
            'winter_tires': 'winterTires',
            'max_speed': 'maxSpeed',
            'helmet_required': 'helmetRequired',
            'other': 'other',
            'nr_of_doors': 'nrOfDoors',
            'meta': 'meta',
            'access_methods': 'accessMethods',
            'ancillaries': 'ancillaries'
        }
        self._name = name
        self._location = location
        self._fuel = fuel
        self._energy_label = energy_label
        self._co2_per_km = co2_per_km
        self._brand = brand
        self._model = model
        self._building_year = building_year
        self._travel_abroad = travel_abroad
        self._air_conditioning = air_conditioning
        self._cabrio = cabrio
        self._colour = colour
        self._cargo = cargo
        self._easy_accessibility = easy_accessibility
        self._gears = gears
        self._gearbox = gearbox
        self._image = image
        self._infant_seat = infant_seat
        self._persons = persons
        self._pets = pets
        self._propulsion = propulsion
        self._smoking = smoking
        self._state_of_charge = state_of_charge
        self._towing_hook = towing_hook
        self._underground_parking = underground_parking
        self._winter_tires = winter_tires
        self._max_speed = max_speed
        self._helmet_required = helmet_required
        self._other = other
        self._nr_of_doors = nr_of_doors
        self._meta = meta
        self._access_methods = access_methods
        self._ancillaries = ancillaries

    @classmethod
    def from_dict(cls, dikt) -> 'AssetProperties':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The assetProperties of this AssetProperties.  # noqa: E501
        :rtype: AssetProperties
        """
        return util.deserialize_model(dikt, cls)

    @property
    def name(self) -> str:
        """Gets the name of this AssetProperties.

        name of asset (type), required in either assetType or asset, should match Content-Language  # noqa: E501

        :return: The name of this AssetProperties.
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name: str):
        """Sets the name of this AssetProperties.

        name of asset (type), required in either assetType or asset, should match Content-Language  # noqa: E501

        :param name: The name of this AssetProperties.
        :type name: str
        """

        self._name = name

    @property
    def location(self) -> Place:
        """Gets the location of this AssetProperties.


        :return: The location of this AssetProperties.
        :rtype: Place
        """
        return self._location

    @location.setter
    def location(self, location: Place):
        """Sets the location of this AssetProperties.


        :param location: The location of this AssetProperties.
        :type location: Place
        """

        self._location = location

    @property
    def fuel(self) -> str:
        """Gets the fuel of this AssetProperties.


        :return: The fuel of this AssetProperties.
        :rtype: str
        """
        return self._fuel

    @fuel.setter
    def fuel(self, fuel: str):
        """Sets the fuel of this AssetProperties.


        :param fuel: The fuel of this AssetProperties.
        :type fuel: str
        """
        allowed_values = ["NONE", "GASOLINE", "DIESEL", "ELECTRIC", "HYBRID_GASOLINE", "HYBRID_DIESEL", "HYBRID_GAS", "HYDROGEN", "GAS", "BIO_MASS", "KEROSINE", "OTHER"]  # noqa: E501
        if fuel not in allowed_values:
            raise ValueError(
                "Invalid value for `fuel` ({0}), must be one of {1}"
                .format(fuel, allowed_values)
            )

        self._fuel = fuel

    @property
    def energy_label(self) -> str:
        """Gets the energy_label of this AssetProperties.

        Energy efficiency  # noqa: E501

        :return: The energy_label of this AssetProperties.
        :rtype: str
        """
        return self._energy_label

    @energy_label.setter
    def energy_label(self, energy_label: str):
        """Sets the energy_label of this AssetProperties.

        Energy efficiency  # noqa: E501

        :param energy_label: The energy_label of this AssetProperties.
        :type energy_label: str
        """
        allowed_values = ["A", "B", "C", "D", "E"]  # noqa: E501
        if energy_label not in allowed_values:
            raise ValueError(
                "Invalid value for `energy_label` ({0}), must be one of {1}"
                .format(energy_label, allowed_values)
            )

        self._energy_label = energy_label

    @property
    def co2_per_km(self) -> float:
        """Gets the co2_per_km of this AssetProperties.


        :return: The co2_per_km of this AssetProperties.
        :rtype: float
        """
        return self._co2_per_km

    @co2_per_km.setter
    def co2_per_km(self, co2_per_km: float):
        """Sets the co2_per_km of this AssetProperties.


        :param co2_per_km: The co2_per_km of this AssetProperties.
        :type co2_per_km: float
        """

        self._co2_per_km = co2_per_km

    @property
    def brand(self) -> str:
        """Gets the brand of this AssetProperties.

        brand of the asset  # noqa: E501

        :return: The brand of this AssetProperties.
        :rtype: str
        """
        return self._brand

    @brand.setter
    def brand(self, brand: str):
        """Sets the brand of this AssetProperties.

        brand of the asset  # noqa: E501

        :param brand: The brand of this AssetProperties.
        :type brand: str
        """

        self._brand = brand

    @property
    def model(self) -> str:
        """Gets the model of this AssetProperties.


        :return: The model of this AssetProperties.
        :rtype: str
        """
        return self._model

    @model.setter
    def model(self, model: str):
        """Sets the model of this AssetProperties.


        :param model: The model of this AssetProperties.
        :type model: str
        """

        self._model = model

    @property
    def building_year(self) -> int:
        """Gets the building_year of this AssetProperties.


        :return: The building_year of this AssetProperties.
        :rtype: int
        """
        return self._building_year

    @building_year.setter
    def building_year(self, building_year: int):
        """Sets the building_year of this AssetProperties.


        :param building_year: The building_year of this AssetProperties.
        :type building_year: int
        """

        self._building_year = building_year

    @property
    def travel_abroad(self) -> bool:
        """Gets the travel_abroad of this AssetProperties.

        true indicates asset is allowed to travel abroad  # noqa: E501

        :return: The travel_abroad of this AssetProperties.
        :rtype: bool
        """
        return self._travel_abroad

    @travel_abroad.setter
    def travel_abroad(self, travel_abroad: bool):
        """Sets the travel_abroad of this AssetProperties.

        true indicates asset is allowed to travel abroad  # noqa: E501

        :param travel_abroad: The travel_abroad of this AssetProperties.
        :type travel_abroad: bool
        """

        self._travel_abroad = travel_abroad

    @property
    def air_conditioning(self) -> bool:
        """Gets the air_conditioning of this AssetProperties.

        true indicates airconditioning required  # noqa: E501

        :return: The air_conditioning of this AssetProperties.
        :rtype: bool
        """
        return self._air_conditioning

    @air_conditioning.setter
    def air_conditioning(self, air_conditioning: bool):
        """Sets the air_conditioning of this AssetProperties.

        true indicates airconditioning required  # noqa: E501

        :param air_conditioning: The air_conditioning of this AssetProperties.
        :type air_conditioning: bool
        """

        self._air_conditioning = air_conditioning

    @property
    def cabrio(self) -> bool:
        """Gets the cabrio of this AssetProperties.

        true indicates cabrio required  # noqa: E501

        :return: The cabrio of this AssetProperties.
        :rtype: bool
        """
        return self._cabrio

    @cabrio.setter
    def cabrio(self, cabrio: bool):
        """Sets the cabrio of this AssetProperties.

        true indicates cabrio required  # noqa: E501

        :param cabrio: The cabrio of this AssetProperties.
        :type cabrio: bool
        """

        self._cabrio = cabrio

    @property
    def colour(self) -> str:
        """Gets the colour of this AssetProperties.

        colour of the asset, should match Content-Language  # noqa: E501

        :return: The colour of this AssetProperties.
        :rtype: str
        """
        return self._colour

    @colour.setter
    def colour(self, colour: str):
        """Sets the colour of this AssetProperties.

        colour of the asset, should match Content-Language  # noqa: E501

        :param colour: The colour of this AssetProperties.
        :type colour: str
        """

        self._colour = colour

    @property
    def cargo(self) -> str:
        """Gets the cargo of this AssetProperties.

        describes options to carry cargo, should match Content-Language  # noqa: E501

        :return: The cargo of this AssetProperties.
        :rtype: str
        """
        return self._cargo

    @cargo.setter
    def cargo(self, cargo: str):
        """Sets the cargo of this AssetProperties.

        describes options to carry cargo, should match Content-Language  # noqa: E501

        :param cargo: The cargo of this AssetProperties.
        :type cargo: str
        """

        self._cargo = cargo

    @property
    def easy_accessibility(self) -> str:
        """Gets the easy_accessibility of this AssetProperties.

        describes if asset is or needs to be easily accessible  # noqa: E501

        :return: The easy_accessibility of this AssetProperties.
        :rtype: str
        """
        return self._easy_accessibility

    @easy_accessibility.setter
    def easy_accessibility(self, easy_accessibility: str):
        """Sets the easy_accessibility of this AssetProperties.

        describes if asset is or needs to be easily accessible  # noqa: E501

        :param easy_accessibility: The easy_accessibility of this AssetProperties.
        :type easy_accessibility: str
        """
        allowed_values = ["LIFT", "ESCALATOR", "GROUND_LEVEL", "SIGHTIMPAIRMENT", "HEARINGIMPAIRMENT", "WHEELCHAIR"]  # noqa: E501
        if easy_accessibility not in allowed_values:
            raise ValueError(
                "Invalid value for `easy_accessibility` ({0}), must be one of {1}"
                .format(easy_accessibility, allowed_values)
            )

        self._easy_accessibility = easy_accessibility

    @property
    def gears(self) -> int:
        """Gets the gears of this AssetProperties.

        number of gears of the asset  # noqa: E501

        :return: The gears of this AssetProperties.
        :rtype: int
        """
        return self._gears

    @gears.setter
    def gears(self, gears: int):
        """Sets the gears of this AssetProperties.

        number of gears of the asset  # noqa: E501

        :param gears: The gears of this AssetProperties.
        :type gears: int
        """

        self._gears = gears

    @property
    def gearbox(self) -> str:
        """Gets the gearbox of this AssetProperties.

        type of gearbox  # noqa: E501

        :return: The gearbox of this AssetProperties.
        :rtype: str
        """
        return self._gearbox

    @gearbox.setter
    def gearbox(self, gearbox: str):
        """Sets the gearbox of this AssetProperties.

        type of gearbox  # noqa: E501

        :param gearbox: The gearbox of this AssetProperties.
        :type gearbox: str
        """
        allowed_values = ["MANUAL", "AUTOMATIC", "SEMIAUTOMATIC"]  # noqa: E501
        if gearbox not in allowed_values:
            raise ValueError(
                "Invalid value for `gearbox` ({0}), must be one of {1}"
                .format(gearbox, allowed_values)
            )

        self._gearbox = gearbox

    @property
    def image(self) -> str:
        """Gets the image of this AssetProperties.

        Link to an image of the asset  # noqa: E501

        :return: The image of this AssetProperties.
        :rtype: str
        """
        return self._image

    @image.setter
    def image(self, image: str):
        """Sets the image of this AssetProperties.

        Link to an image of the asset  # noqa: E501

        :param image: The image of this AssetProperties.
        :type image: str
        """

        self._image = image

    @property
    def infant_seat(self) -> bool:
        """Gets the infant_seat of this AssetProperties.

        true indicates infant seat required  # noqa: E501

        :return: The infant_seat of this AssetProperties.
        :rtype: bool
        """
        return self._infant_seat

    @infant_seat.setter
    def infant_seat(self, infant_seat: bool):
        """Sets the infant_seat of this AssetProperties.

        true indicates infant seat required  # noqa: E501

        :param infant_seat: The infant_seat of this AssetProperties.
        :type infant_seat: bool
        """

        self._infant_seat = infant_seat

    @property
    def persons(self) -> int:
        """Gets the persons of this AssetProperties.

        number of persons able to use the asset  # noqa: E501

        :return: The persons of this AssetProperties.
        :rtype: int
        """
        return self._persons

    @persons.setter
    def persons(self, persons: int):
        """Sets the persons of this AssetProperties.

        number of persons able to use the asset  # noqa: E501

        :param persons: The persons of this AssetProperties.
        :type persons: int
        """

        self._persons = persons

    @property
    def pets(self) -> bool:
        """Gets the pets of this AssetProperties.

        true indicates pets are allowed on asset  # noqa: E501

        :return: The pets of this AssetProperties.
        :rtype: bool
        """
        return self._pets

    @pets.setter
    def pets(self, pets: bool):
        """Sets the pets of this AssetProperties.

        true indicates pets are allowed on asset  # noqa: E501

        :param pets: The pets of this AssetProperties.
        :type pets: bool
        """

        self._pets = pets

    @property
    def propulsion(self) -> str:
        """Gets the propulsion of this AssetProperties.

        way in which the asset is powered  # noqa: E501

        :return: The propulsion of this AssetProperties.
        :rtype: str
        """
        return self._propulsion

    @propulsion.setter
    def propulsion(self, propulsion: str):
        """Sets the propulsion of this AssetProperties.

        way in which the asset is powered  # noqa: E501

        :param propulsion: The propulsion of this AssetProperties.
        :type propulsion: str
        """
        allowed_values = ["MUSCLE", "ELECTRIC", "GASOLINE", "DIESEL", "HYBRID", "LPG", "HYDROGEN"]  # noqa: E501
        if propulsion not in allowed_values:
            raise ValueError(
                "Invalid value for `propulsion` ({0}), must be one of {1}"
                .format(propulsion, allowed_values)
            )

        self._propulsion = propulsion

    @property
    def smoking(self) -> bool:
        """Gets the smoking of this AssetProperties.

        true indicates smoking is allowed on asset  # noqa: E501

        :return: The smoking of this AssetProperties.
        :rtype: bool
        """
        return self._smoking

    @smoking.setter
    def smoking(self, smoking: bool):
        """Sets the smoking of this AssetProperties.

        true indicates smoking is allowed on asset  # noqa: E501

        :param smoking: The smoking of this AssetProperties.
        :type smoking: bool
        """

        self._smoking = smoking

    @property
    def state_of_charge(self) -> int:
        """Gets the state_of_charge of this AssetProperties.

        percentage of charge available  # noqa: E501

        :return: The state_of_charge of this AssetProperties.
        :rtype: int
        """
        return self._state_of_charge

    @state_of_charge.setter
    def state_of_charge(self, state_of_charge: int):
        """Sets the state_of_charge of this AssetProperties.

        percentage of charge available  # noqa: E501

        :param state_of_charge: The state_of_charge of this AssetProperties.
        :type state_of_charge: int
        """

        self._state_of_charge = state_of_charge

    @property
    def towing_hook(self) -> bool:
        """Gets the towing_hook of this AssetProperties.

        true indicates towing hook required  # noqa: E501

        :return: The towing_hook of this AssetProperties.
        :rtype: bool
        """
        return self._towing_hook

    @towing_hook.setter
    def towing_hook(self, towing_hook: bool):
        """Sets the towing_hook of this AssetProperties.

        true indicates towing hook required  # noqa: E501

        :param towing_hook: The towing_hook of this AssetProperties.
        :type towing_hook: bool
        """

        self._towing_hook = towing_hook

    @property
    def underground_parking(self) -> bool:
        """Gets the underground_parking of this AssetProperties.

        true indicates underground parking is allowed with asset  # noqa: E501

        :return: The underground_parking of this AssetProperties.
        :rtype: bool
        """
        return self._underground_parking

    @underground_parking.setter
    def underground_parking(self, underground_parking: bool):
        """Sets the underground_parking of this AssetProperties.

        true indicates underground parking is allowed with asset  # noqa: E501

        :param underground_parking: The underground_parking of this AssetProperties.
        :type underground_parking: bool
        """

        self._underground_parking = underground_parking

    @property
    def winter_tires(self) -> bool:
        """Gets the winter_tires of this AssetProperties.

        true indicates winter tires required  # noqa: E501

        :return: The winter_tires of this AssetProperties.
        :rtype: bool
        """
        return self._winter_tires

    @winter_tires.setter
    def winter_tires(self, winter_tires: bool):
        """Sets the winter_tires of this AssetProperties.

        true indicates winter tires required  # noqa: E501

        :param winter_tires: The winter_tires of this AssetProperties.
        :type winter_tires: bool
        """

        self._winter_tires = winter_tires

    @property
    def max_speed(self) -> float:
        """Gets the max_speed of this AssetProperties.

        the maximum allowed speed for this asset (in km/h)  # noqa: E501

        :return: The max_speed of this AssetProperties.
        :rtype: float
        """
        return self._max_speed

    @max_speed.setter
    def max_speed(self, max_speed: float):
        """Sets the max_speed of this AssetProperties.

        the maximum allowed speed for this asset (in km/h)  # noqa: E501

        :param max_speed: The max_speed of this AssetProperties.
        :type max_speed: float
        """

        self._max_speed = max_speed

    @property
    def helmet_required(self) -> bool:
        """Gets the helmet_required of this AssetProperties.

        is a helmet required to operate this asset  # noqa: E501

        :return: The helmet_required of this AssetProperties.
        :rtype: bool
        """
        return self._helmet_required

    @helmet_required.setter
    def helmet_required(self, helmet_required: bool):
        """Sets the helmet_required of this AssetProperties.

        is a helmet required to operate this asset  # noqa: E501

        :param helmet_required: The helmet_required of this AssetProperties.
        :type helmet_required: bool
        """

        self._helmet_required = helmet_required

    @property
    def other(self) -> str:
        """Gets the other of this AssetProperties.

        free text to describe asset, should match Content-Language  # noqa: E501

        :return: The other of this AssetProperties.
        :rtype: str
        """
        return self._other

    @other.setter
    def other(self, other: str):
        """Sets the other of this AssetProperties.

        free text to describe asset, should match Content-Language  # noqa: E501

        :param other: The other of this AssetProperties.
        :type other: str
        """

        self._other = other

    @property
    def nr_of_doors(self) -> int:
        """Gets the nr_of_doors of this AssetProperties.

        the number of doors of the vehicle. Return only when applicable  # noqa: E501

        :return: The nr_of_doors of this AssetProperties.
        :rtype: int
        """
        return self._nr_of_doors

    @nr_of_doors.setter
    def nr_of_doors(self, nr_of_doors: int):
        """Sets the nr_of_doors of this AssetProperties.

        the number of doors of the vehicle. Return only when applicable  # noqa: E501

        :param nr_of_doors: The nr_of_doors of this AssetProperties.
        :type nr_of_doors: int
        """

        self._nr_of_doors = nr_of_doors

    @property
    def meta(self) -> Dict:
        """Gets the meta of this AssetProperties.

        this any can contain extra information about the type of asset. For instance values from the 'Woordenboek Reizigerskenmerken'. [https://github.com/efel85/TOMP-API/issues/17]. These values can also be used in the planning.  # noqa: E501

        :return: The meta of this AssetProperties.
        :rtype: Dict
        """
        return self._meta

    @meta.setter
    def meta(self, meta: Dict):
        """Sets the meta of this AssetProperties.

        this any can contain extra information about the type of asset. For instance values from the 'Woordenboek Reizigerskenmerken'. [https://github.com/efel85/TOMP-API/issues/17]. These values can also be used in the planning.  # noqa: E501

        :param meta: The meta of this AssetProperties.
        :type meta: Dict
        """

        self._meta = meta

    @property
    def access_methods(self) -> List[AssetAccessMethods]:
        """Gets the access_methods of this AssetProperties.

        access method for trip execution. Data will be delivered in the response of /booking/{id}/events - COMMIT or /leg/{id}/events - PREPARE (preferred).  # noqa: E501

        :return: The access_methods of this AssetProperties.
        :rtype: List[AssetAccessMethods]
        """
        return self._access_methods

    @access_methods.setter
    def access_methods(self, access_methods: List[AssetAccessMethods]):
        """Sets the access_methods of this AssetProperties.

        access method for trip execution. Data will be delivered in the response of /booking/{id}/events - COMMIT or /leg/{id}/events - PREPARE (preferred).  # noqa: E501

        :param access_methods: The access_methods of this AssetProperties.
        :type access_methods: List[AssetAccessMethods]
        """

        self._access_methods = access_methods

    @property
    def ancillaries(self) -> List[Requirement]:
        """Gets the ancillaries of this AssetProperties.


        :return: The ancillaries of this AssetProperties.
        :rtype: List[Requirement]
        """
        return self._ancillaries

    @ancillaries.setter
    def ancillaries(self, ancillaries: List[Requirement]):
        """Sets the ancillaries of this AssetProperties.


        :param ancillaries: The ancillaries of this AssetProperties.
        :type ancillaries: List[Requirement]
        """

        self._ancillaries = ancillaries
