# 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.requirement import Requirement  # noqa: F401,E501
from swagger_server import util


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

    Do not edit the class manually.
    """
    def __init__(self, all_of: Requirement=None, leg_id: str=None):  # noqa: E501
        """AncillaryBooking - a model defined in Swagger

        :param all_of: The all_of of this AncillaryBooking.  # noqa: E501
        :type all_of: Requirement
        :param leg_id: The leg_id of this AncillaryBooking.  # noqa: E501
        :type leg_id: str
        """
        self.swagger_types = {
            'all_of': Requirement,
            'leg_id': str
        }

        self.attribute_map = {
            'all_of': 'allOf',
            'leg_id': 'legId'
        }
        self._all_of = all_of
        self._leg_id = leg_id

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

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

    @property
    def all_of(self) -> Requirement:
        """Gets the all_of of this AncillaryBooking.


        :return: The all_of of this AncillaryBooking.
        :rtype: Requirement
        """
        return self._all_of

    @all_of.setter
    def all_of(self, all_of: Requirement):
        """Sets the all_of of this AncillaryBooking.


        :param all_of: The all_of of this AncillaryBooking.
        :type all_of: Requirement
        """

        self._all_of = all_of

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


        :return: The leg_id of this AncillaryBooking.
        :rtype: str
        """
        return self._leg_id

    @leg_id.setter
    def leg_id(self, leg_id: str):
        """Sets the leg_id of this AncillaryBooking.


        :param leg_id: The leg_id of this AncillaryBooking.
        :type leg_id: str
        """
        if leg_id is None:
            raise ValueError("Invalid value for `leg_id`, must not be `None`")  # noqa: E501

        self._leg_id = leg_id
