# coding: utf-8

"""
    CyberSource Merged Spec

    All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html

    OpenAPI spec version: 0.0.1
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from pprint import pformat
from six import iteritems
import re


class Ptsv2paymentsTravelInformationLodging(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """


    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'check_in_date': 'str',
        'check_out_date': 'str',
        'room': 'list[Ptsv2paymentsTravelInformationLodgingRoom]',
        'smoking_preference': 'str',
        'number_of_rooms': 'int',
        'number_of_guests': 'int',
        'room_bed_type': 'str',
        'room_tax_type': 'str',
        'room_rate_type': 'str',
        'guest_name': 'str',
        'customer_service_phone_number': 'str',
        'corporate_client_code': 'str',
        'additional_discount_amount': 'str',
        'room_location': 'str',
        'special_program_code': 'str',
        'total_tax_amount': 'str',
        'prepaid_cost': 'str',
        'food_and_beverage_cost': 'str',
        'room_tax_amount': 'str',
        'adjustment_amount': 'str',
        'phone_cost': 'str',
        'restaurant_cost': 'str',
        'room_service_cost': 'str',
        'mini_bar_cost': 'str',
        'laundry_cost': 'str',
        'miscellaneous_cost': 'str',
        'gift_shop_cost': 'str',
        'movie_cost': 'str',
        'health_club_cost': 'str',
        'valet_parking_cost': 'str',
        'cash_disbursement_cost': 'str',
        'non_room_cost': 'str',
        'business_center_cost': 'str',
        'lounge_bar_cost': 'str',
        'transportation_cost': 'str',
        'gratuity_amount': 'str',
        'conference_room_cost': 'str',
        'audio_visual_cost': 'str',
        'banquest_cost': 'str',
        'non_room_tax_amount': 'str',
        'early_check_out_cost': 'str',
        'internet_access_cost': 'str'
    }

    attribute_map = {
        'check_in_date': 'checkInDate',
        'check_out_date': 'checkOutDate',
        'room': 'room',
        'smoking_preference': 'smokingPreference',
        'number_of_rooms': 'numberOfRooms',
        'number_of_guests': 'numberOfGuests',
        'room_bed_type': 'roomBedType',
        'room_tax_type': 'roomTaxType',
        'room_rate_type': 'roomRateType',
        'guest_name': 'guestName',
        'customer_service_phone_number': 'customerServicePhoneNumber',
        'corporate_client_code': 'corporateClientCode',
        'additional_discount_amount': 'additionalDiscountAmount',
        'room_location': 'roomLocation',
        'special_program_code': 'specialProgramCode',
        'total_tax_amount': 'totalTaxAmount',
        'prepaid_cost': 'prepaidCost',
        'food_and_beverage_cost': 'foodAndBeverageCost',
        'room_tax_amount': 'roomTaxAmount',
        'adjustment_amount': 'adjustmentAmount',
        'phone_cost': 'phoneCost',
        'restaurant_cost': 'restaurantCost',
        'room_service_cost': 'roomServiceCost',
        'mini_bar_cost': 'miniBarCost',
        'laundry_cost': 'laundryCost',
        'miscellaneous_cost': 'miscellaneousCost',
        'gift_shop_cost': 'giftShopCost',
        'movie_cost': 'movieCost',
        'health_club_cost': 'healthClubCost',
        'valet_parking_cost': 'valetParkingCost',
        'cash_disbursement_cost': 'cashDisbursementCost',
        'non_room_cost': 'nonRoomCost',
        'business_center_cost': 'businessCenterCost',
        'lounge_bar_cost': 'loungeBarCost',
        'transportation_cost': 'transportationCost',
        'gratuity_amount': 'gratuityAmount',
        'conference_room_cost': 'conferenceRoomCost',
        'audio_visual_cost': 'audioVisualCost',
        'banquest_cost': 'banquestCost',
        'non_room_tax_amount': 'nonRoomTaxAmount',
        'early_check_out_cost': 'earlyCheckOutCost',
        'internet_access_cost': 'internetAccessCost'
    }

    def __init__(self, check_in_date=None, check_out_date=None, room=None, smoking_preference=None, number_of_rooms=None, number_of_guests=None, room_bed_type=None, room_tax_type=None, room_rate_type=None, guest_name=None, customer_service_phone_number=None, corporate_client_code=None, additional_discount_amount=None, room_location=None, special_program_code=None, total_tax_amount=None, prepaid_cost=None, food_and_beverage_cost=None, room_tax_amount=None, adjustment_amount=None, phone_cost=None, restaurant_cost=None, room_service_cost=None, mini_bar_cost=None, laundry_cost=None, miscellaneous_cost=None, gift_shop_cost=None, movie_cost=None, health_club_cost=None, valet_parking_cost=None, cash_disbursement_cost=None, non_room_cost=None, business_center_cost=None, lounge_bar_cost=None, transportation_cost=None, gratuity_amount=None, conference_room_cost=None, audio_visual_cost=None, banquest_cost=None, non_room_tax_amount=None, early_check_out_cost=None, internet_access_cost=None):
        """
        Ptsv2paymentsTravelInformationLodging - a model defined in Swagger
        """

        self._check_in_date = None
        self._check_out_date = None
        self._room = None
        self._smoking_preference = None
        self._number_of_rooms = None
        self._number_of_guests = None
        self._room_bed_type = None
        self._room_tax_type = None
        self._room_rate_type = None
        self._guest_name = None
        self._customer_service_phone_number = None
        self._corporate_client_code = None
        self._additional_discount_amount = None
        self._room_location = None
        self._special_program_code = None
        self._total_tax_amount = None
        self._prepaid_cost = None
        self._food_and_beverage_cost = None
        self._room_tax_amount = None
        self._adjustment_amount = None
        self._phone_cost = None
        self._restaurant_cost = None
        self._room_service_cost = None
        self._mini_bar_cost = None
        self._laundry_cost = None
        self._miscellaneous_cost = None
        self._gift_shop_cost = None
        self._movie_cost = None
        self._health_club_cost = None
        self._valet_parking_cost = None
        self._cash_disbursement_cost = None
        self._non_room_cost = None
        self._business_center_cost = None
        self._lounge_bar_cost = None
        self._transportation_cost = None
        self._gratuity_amount = None
        self._conference_room_cost = None
        self._audio_visual_cost = None
        self._banquest_cost = None
        self._non_room_tax_amount = None
        self._early_check_out_cost = None
        self._internet_access_cost = None

        if check_in_date is not None:
          self.check_in_date = check_in_date
        if check_out_date is not None:
          self.check_out_date = check_out_date
        if room is not None:
          self.room = room
        if smoking_preference is not None:
          self.smoking_preference = smoking_preference
        if number_of_rooms is not None:
          self.number_of_rooms = number_of_rooms
        if number_of_guests is not None:
          self.number_of_guests = number_of_guests
        if room_bed_type is not None:
          self.room_bed_type = room_bed_type
        if room_tax_type is not None:
          self.room_tax_type = room_tax_type
        if room_rate_type is not None:
          self.room_rate_type = room_rate_type
        if guest_name is not None:
          self.guest_name = guest_name
        if customer_service_phone_number is not None:
          self.customer_service_phone_number = customer_service_phone_number
        if corporate_client_code is not None:
          self.corporate_client_code = corporate_client_code
        if additional_discount_amount is not None:
          self.additional_discount_amount = additional_discount_amount
        if room_location is not None:
          self.room_location = room_location
        if special_program_code is not None:
          self.special_program_code = special_program_code
        if total_tax_amount is not None:
          self.total_tax_amount = total_tax_amount
        if prepaid_cost is not None:
          self.prepaid_cost = prepaid_cost
        if food_and_beverage_cost is not None:
          self.food_and_beverage_cost = food_and_beverage_cost
        if room_tax_amount is not None:
          self.room_tax_amount = room_tax_amount
        if adjustment_amount is not None:
          self.adjustment_amount = adjustment_amount
        if phone_cost is not None:
          self.phone_cost = phone_cost
        if restaurant_cost is not None:
          self.restaurant_cost = restaurant_cost
        if room_service_cost is not None:
          self.room_service_cost = room_service_cost
        if mini_bar_cost is not None:
          self.mini_bar_cost = mini_bar_cost
        if laundry_cost is not None:
          self.laundry_cost = laundry_cost
        if miscellaneous_cost is not None:
          self.miscellaneous_cost = miscellaneous_cost
        if gift_shop_cost is not None:
          self.gift_shop_cost = gift_shop_cost
        if movie_cost is not None:
          self.movie_cost = movie_cost
        if health_club_cost is not None:
          self.health_club_cost = health_club_cost
        if valet_parking_cost is not None:
          self.valet_parking_cost = valet_parking_cost
        if cash_disbursement_cost is not None:
          self.cash_disbursement_cost = cash_disbursement_cost
        if non_room_cost is not None:
          self.non_room_cost = non_room_cost
        if business_center_cost is not None:
          self.business_center_cost = business_center_cost
        if lounge_bar_cost is not None:
          self.lounge_bar_cost = lounge_bar_cost
        if transportation_cost is not None:
          self.transportation_cost = transportation_cost
        if gratuity_amount is not None:
          self.gratuity_amount = gratuity_amount
        if conference_room_cost is not None:
          self.conference_room_cost = conference_room_cost
        if audio_visual_cost is not None:
          self.audio_visual_cost = audio_visual_cost
        if banquest_cost is not None:
          self.banquest_cost = banquest_cost
        if non_room_tax_amount is not None:
          self.non_room_tax_amount = non_room_tax_amount
        if early_check_out_cost is not None:
          self.early_check_out_cost = early_check_out_cost
        if internet_access_cost is not None:
          self.internet_access_cost = internet_access_cost

    @property
    def check_in_date(self):
        """
        Gets the check_in_date of this Ptsv2paymentsTravelInformationLodging.
        Date on which the guest checked in. In the case of a no-show or a reservation, the scheduled arrival date. Format: `MMDDYY`. For best interchange rates, make sure it is a valid date. 

        :return: The check_in_date of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._check_in_date

    @check_in_date.setter
    def check_in_date(self, check_in_date):
        """
        Sets the check_in_date of this Ptsv2paymentsTravelInformationLodging.
        Date on which the guest checked in. In the case of a no-show or a reservation, the scheduled arrival date. Format: `MMDDYY`. For best interchange rates, make sure it is a valid date. 

        :param check_in_date: The check_in_date of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if check_in_date is not None and len(check_in_date) > 6:
            raise ValueError("Invalid value for `check_in_date`, length must be less than or equal to `6`")

        self._check_in_date = check_in_date

    @property
    def check_out_date(self):
        """
        Gets the check_out_date of this Ptsv2paymentsTravelInformationLodging.
        Date on which the guest checked out. Format: `MMDDYY`. For best interchange rates, make sure it is a valid date. 

        :return: The check_out_date of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._check_out_date

    @check_out_date.setter
    def check_out_date(self, check_out_date):
        """
        Sets the check_out_date of this Ptsv2paymentsTravelInformationLodging.
        Date on which the guest checked out. Format: `MMDDYY`. For best interchange rates, make sure it is a valid date. 

        :param check_out_date: The check_out_date of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if check_out_date is not None and len(check_out_date) > 6:
            raise ValueError("Invalid value for `check_out_date`, length must be less than or equal to `6`")

        self._check_out_date = check_out_date

    @property
    def room(self):
        """
        Gets the room of this Ptsv2paymentsTravelInformationLodging.
        The object containing the number of nights and the daily rate that applies for that no of nights. 

        :return: The room of this Ptsv2paymentsTravelInformationLodging.
        :rtype: list[Ptsv2paymentsTravelInformationLodgingRoom]
        """
        return self._room

    @room.setter
    def room(self, room):
        """
        Sets the room of this Ptsv2paymentsTravelInformationLodging.
        The object containing the number of nights and the daily rate that applies for that no of nights. 

        :param room: The room of this Ptsv2paymentsTravelInformationLodging.
        :type: list[Ptsv2paymentsTravelInformationLodgingRoom]
        """

        self._room = room

    @property
    def smoking_preference(self):
        """
        Gets the smoking_preference of this Ptsv2paymentsTravelInformationLodging.
        Smoking preference of the guest. Possible values: - `Y`: smoking room - `N`: non-smoking room 

        :return: The smoking_preference of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._smoking_preference

    @smoking_preference.setter
    def smoking_preference(self, smoking_preference):
        """
        Sets the smoking_preference of this Ptsv2paymentsTravelInformationLodging.
        Smoking preference of the guest. Possible values: - `Y`: smoking room - `N`: non-smoking room 

        :param smoking_preference: The smoking_preference of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if smoking_preference is not None and len(smoking_preference) > 1:
            raise ValueError("Invalid value for `smoking_preference`, length must be less than or equal to `1`")

        self._smoking_preference = smoking_preference

    @property
    def number_of_rooms(self):
        """
        Gets the number_of_rooms of this Ptsv2paymentsTravelInformationLodging.
        Number of rooms booked by the cardholder. 

        :return: The number_of_rooms of this Ptsv2paymentsTravelInformationLodging.
        :rtype: int
        """
        return self._number_of_rooms

    @number_of_rooms.setter
    def number_of_rooms(self, number_of_rooms):
        """
        Sets the number_of_rooms of this Ptsv2paymentsTravelInformationLodging.
        Number of rooms booked by the cardholder. 

        :param number_of_rooms: The number_of_rooms of this Ptsv2paymentsTravelInformationLodging.
        :type: int
        """
        if number_of_rooms is not None and number_of_rooms > 99:
            raise ValueError("Invalid value for `number_of_rooms`, must be a value less than or equal to `99`")
        if number_of_rooms is not None and number_of_rooms < 1:
            raise ValueError("Invalid value for `number_of_rooms`, must be a value greater than or equal to `1`")

        self._number_of_rooms = number_of_rooms

    @property
    def number_of_guests(self):
        """
        Gets the number_of_guests of this Ptsv2paymentsTravelInformationLodging.
        Number of guests staying in the room. 

        :return: The number_of_guests of this Ptsv2paymentsTravelInformationLodging.
        :rtype: int
        """
        return self._number_of_guests

    @number_of_guests.setter
    def number_of_guests(self, number_of_guests):
        """
        Sets the number_of_guests of this Ptsv2paymentsTravelInformationLodging.
        Number of guests staying in the room. 

        :param number_of_guests: The number_of_guests of this Ptsv2paymentsTravelInformationLodging.
        :type: int
        """
        if number_of_guests is not None and number_of_guests > 99:
            raise ValueError("Invalid value for `number_of_guests`, must be a value less than or equal to `99`")
        if number_of_guests is not None and number_of_guests < 1:
            raise ValueError("Invalid value for `number_of_guests`, must be a value greater than or equal to `1`")

        self._number_of_guests = number_of_guests

    @property
    def room_bed_type(self):
        """
        Gets the room_bed_type of this Ptsv2paymentsTravelInformationLodging.
        Type of room, such as queen, king, or two doubles. 

        :return: The room_bed_type of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_bed_type

    @room_bed_type.setter
    def room_bed_type(self, room_bed_type):
        """
        Sets the room_bed_type of this Ptsv2paymentsTravelInformationLodging.
        Type of room, such as queen, king, or two doubles. 

        :param room_bed_type: The room_bed_type of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_bed_type is not None and len(room_bed_type) > 12:
            raise ValueError("Invalid value for `room_bed_type`, length must be less than or equal to `12`")

        self._room_bed_type = room_bed_type

    @property
    def room_tax_type(self):
        """
        Gets the room_tax_type of this Ptsv2paymentsTravelInformationLodging.
        Type of tax, such as tourist or hotel. 

        :return: The room_tax_type of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_tax_type

    @room_tax_type.setter
    def room_tax_type(self, room_tax_type):
        """
        Sets the room_tax_type of this Ptsv2paymentsTravelInformationLodging.
        Type of tax, such as tourist or hotel. 

        :param room_tax_type: The room_tax_type of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_tax_type is not None and len(room_tax_type) > 10:
            raise ValueError("Invalid value for `room_tax_type`, length must be less than or equal to `10`")

        self._room_tax_type = room_tax_type

    @property
    def room_rate_type(self):
        """
        Gets the room_rate_type of this Ptsv2paymentsTravelInformationLodging.
        Type of rate, such as corporate or senior citizen. 

        :return: The room_rate_type of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_rate_type

    @room_rate_type.setter
    def room_rate_type(self, room_rate_type):
        """
        Sets the room_rate_type of this Ptsv2paymentsTravelInformationLodging.
        Type of rate, such as corporate or senior citizen. 

        :param room_rate_type: The room_rate_type of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_rate_type is not None and len(room_rate_type) > 12:
            raise ValueError("Invalid value for `room_rate_type`, length must be less than or equal to `12`")

        self._room_rate_type = room_rate_type

    @property
    def guest_name(self):
        """
        Gets the guest_name of this Ptsv2paymentsTravelInformationLodging.
        Name of the guest under which the room is reserved. 

        :return: The guest_name of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._guest_name

    @guest_name.setter
    def guest_name(self, guest_name):
        """
        Sets the guest_name of this Ptsv2paymentsTravelInformationLodging.
        Name of the guest under which the room is reserved. 

        :param guest_name: The guest_name of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if guest_name is not None and len(guest_name) > 40:
            raise ValueError("Invalid value for `guest_name`, length must be less than or equal to `40`")

        self._guest_name = guest_name

    @property
    def customer_service_phone_number(self):
        """
        Gets the customer_service_phone_number of this Ptsv2paymentsTravelInformationLodging.
        Your toll-free customer service phone number. 

        :return: The customer_service_phone_number of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._customer_service_phone_number

    @customer_service_phone_number.setter
    def customer_service_phone_number(self, customer_service_phone_number):
        """
        Sets the customer_service_phone_number of this Ptsv2paymentsTravelInformationLodging.
        Your toll-free customer service phone number. 

        :param customer_service_phone_number: The customer_service_phone_number of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if customer_service_phone_number is not None and len(customer_service_phone_number) > 17:
            raise ValueError("Invalid value for `customer_service_phone_number`, length must be less than or equal to `17`")

        self._customer_service_phone_number = customer_service_phone_number

    @property
    def corporate_client_code(self):
        """
        Gets the corporate_client_code of this Ptsv2paymentsTravelInformationLodging.
        Code assigned to a business. You can use this code to identify corporate rates and discounts for guests. 

        :return: The corporate_client_code of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._corporate_client_code

    @corporate_client_code.setter
    def corporate_client_code(self, corporate_client_code):
        """
        Sets the corporate_client_code of this Ptsv2paymentsTravelInformationLodging.
        Code assigned to a business. You can use this code to identify corporate rates and discounts for guests. 

        :param corporate_client_code: The corporate_client_code of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if corporate_client_code is not None and len(corporate_client_code) > 17:
            raise ValueError("Invalid value for `corporate_client_code`, length must be less than or equal to `17`")

        self._corporate_client_code = corporate_client_code

    @property
    def additional_discount_amount(self):
        """
        Gets the additional_discount_amount of this Ptsv2paymentsTravelInformationLodging.
        Amount of an additional coupon or discount. 

        :return: The additional_discount_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._additional_discount_amount

    @additional_discount_amount.setter
    def additional_discount_amount(self, additional_discount_amount):
        """
        Sets the additional_discount_amount of this Ptsv2paymentsTravelInformationLodging.
        Amount of an additional coupon or discount. 

        :param additional_discount_amount: The additional_discount_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if additional_discount_amount is not None and len(additional_discount_amount) > 12:
            raise ValueError("Invalid value for `additional_discount_amount`, length must be less than or equal to `12`")

        self._additional_discount_amount = additional_discount_amount

    @property
    def room_location(self):
        """
        Gets the room_location of this Ptsv2paymentsTravelInformationLodging.
        Location of room, such as lake view or ocean view. 

        :return: The room_location of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_location

    @room_location.setter
    def room_location(self, room_location):
        """
        Sets the room_location of this Ptsv2paymentsTravelInformationLodging.
        Location of room, such as lake view or ocean view. 

        :param room_location: The room_location of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_location is not None and len(room_location) > 10:
            raise ValueError("Invalid value for `room_location`, length must be less than or equal to `10`")

        self._room_location = room_location

    @property
    def special_program_code(self):
        """
        Gets the special_program_code of this Ptsv2paymentsTravelInformationLodging.
        Code that identifies special circumstances. Possible values: - `1`: lodging (default) - `2`: no show reservation - `3`: advanced deposit 

        :return: The special_program_code of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._special_program_code

    @special_program_code.setter
    def special_program_code(self, special_program_code):
        """
        Sets the special_program_code of this Ptsv2paymentsTravelInformationLodging.
        Code that identifies special circumstances. Possible values: - `1`: lodging (default) - `2`: no show reservation - `3`: advanced deposit 

        :param special_program_code: The special_program_code of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if special_program_code is not None and len(special_program_code) > 1:
            raise ValueError("Invalid value for `special_program_code`, length must be less than or equal to `1`")

        self._special_program_code = special_program_code

    @property
    def total_tax_amount(self):
        """
        Gets the total_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Total tax amount. 

        :return: The total_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._total_tax_amount

    @total_tax_amount.setter
    def total_tax_amount(self, total_tax_amount):
        """
        Sets the total_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Total tax amount. 

        :param total_tax_amount: The total_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if total_tax_amount is not None and len(total_tax_amount) > 12:
            raise ValueError("Invalid value for `total_tax_amount`, length must be less than or equal to `12`")

        self._total_tax_amount = total_tax_amount

    @property
    def prepaid_cost(self):
        """
        Gets the prepaid_cost of this Ptsv2paymentsTravelInformationLodging.
        Prepaid amount, such as a deposit. 

        :return: The prepaid_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._prepaid_cost

    @prepaid_cost.setter
    def prepaid_cost(self, prepaid_cost):
        """
        Sets the prepaid_cost of this Ptsv2paymentsTravelInformationLodging.
        Prepaid amount, such as a deposit. 

        :param prepaid_cost: The prepaid_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if prepaid_cost is not None and len(prepaid_cost) > 12:
            raise ValueError("Invalid value for `prepaid_cost`, length must be less than or equal to `12`")

        self._prepaid_cost = prepaid_cost

    @property
    def food_and_beverage_cost(self):
        """
        Gets the food_and_beverage_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost for all food and beverages. 

        :return: The food_and_beverage_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._food_and_beverage_cost

    @food_and_beverage_cost.setter
    def food_and_beverage_cost(self, food_and_beverage_cost):
        """
        Sets the food_and_beverage_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost for all food and beverages. 

        :param food_and_beverage_cost: The food_and_beverage_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if food_and_beverage_cost is not None and len(food_and_beverage_cost) > 12:
            raise ValueError("Invalid value for `food_and_beverage_cost`, length must be less than or equal to `12`")

        self._food_and_beverage_cost = food_and_beverage_cost

    @property
    def room_tax_amount(self):
        """
        Gets the room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Total tax for the room. 

        :return: The room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_tax_amount

    @room_tax_amount.setter
    def room_tax_amount(self, room_tax_amount):
        """
        Sets the room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Total tax for the room. 

        :param room_tax_amount: The room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_tax_amount is not None and len(room_tax_amount) > 12:
            raise ValueError("Invalid value for `room_tax_amount`, length must be less than or equal to `12`")

        self._room_tax_amount = room_tax_amount

    @property
    def adjustment_amount(self):
        """
        Gets the adjustment_amount of this Ptsv2paymentsTravelInformationLodging.
        Adjusted amount charged in addition to the reservation amount after the stay is complete. 

        :return: The adjustment_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._adjustment_amount

    @adjustment_amount.setter
    def adjustment_amount(self, adjustment_amount):
        """
        Sets the adjustment_amount of this Ptsv2paymentsTravelInformationLodging.
        Adjusted amount charged in addition to the reservation amount after the stay is complete. 

        :param adjustment_amount: The adjustment_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if adjustment_amount is not None and len(adjustment_amount) > 12:
            raise ValueError("Invalid value for `adjustment_amount`, length must be less than or equal to `12`")

        self._adjustment_amount = adjustment_amount

    @property
    def phone_cost(self):
        """
        Gets the phone_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of telephone services. 

        :return: The phone_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._phone_cost

    @phone_cost.setter
    def phone_cost(self, phone_cost):
        """
        Sets the phone_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of telephone services. 

        :param phone_cost: The phone_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if phone_cost is not None and len(phone_cost) > 12:
            raise ValueError("Invalid value for `phone_cost`, length must be less than or equal to `12`")

        self._phone_cost = phone_cost

    @property
    def restaurant_cost(self):
        """
        Gets the restaurant_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of restaurant purchases 

        :return: The restaurant_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._restaurant_cost

    @restaurant_cost.setter
    def restaurant_cost(self, restaurant_cost):
        """
        Sets the restaurant_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of restaurant purchases 

        :param restaurant_cost: The restaurant_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if restaurant_cost is not None and len(restaurant_cost) > 12:
            raise ValueError("Invalid value for `restaurant_cost`, length must be less than or equal to `12`")

        self._restaurant_cost = restaurant_cost

    @property
    def room_service_cost(self):
        """
        Gets the room_service_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of room service. 

        :return: The room_service_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._room_service_cost

    @room_service_cost.setter
    def room_service_cost(self, room_service_cost):
        """
        Sets the room_service_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of room service. 

        :param room_service_cost: The room_service_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if room_service_cost is not None and len(room_service_cost) > 12:
            raise ValueError("Invalid value for `room_service_cost`, length must be less than or equal to `12`")

        self._room_service_cost = room_service_cost

    @property
    def mini_bar_cost(self):
        """
        Gets the mini_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of mini-bar purchases. 

        :return: The mini_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._mini_bar_cost

    @mini_bar_cost.setter
    def mini_bar_cost(self, mini_bar_cost):
        """
        Sets the mini_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of mini-bar purchases. 

        :param mini_bar_cost: The mini_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if mini_bar_cost is not None and len(mini_bar_cost) > 12:
            raise ValueError("Invalid value for `mini_bar_cost`, length must be less than or equal to `12`")

        self._mini_bar_cost = mini_bar_cost

    @property
    def laundry_cost(self):
        """
        Gets the laundry_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of laundry services. 

        :return: The laundry_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._laundry_cost

    @laundry_cost.setter
    def laundry_cost(self, laundry_cost):
        """
        Sets the laundry_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of laundry services. 

        :param laundry_cost: The laundry_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if laundry_cost is not None and len(laundry_cost) > 12:
            raise ValueError("Invalid value for `laundry_cost`, length must be less than or equal to `12`")

        self._laundry_cost = laundry_cost

    @property
    def miscellaneous_cost(self):
        """
        Gets the miscellaneous_cost of this Ptsv2paymentsTravelInformationLodging.
        Miscellaneous costs. 

        :return: The miscellaneous_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._miscellaneous_cost

    @miscellaneous_cost.setter
    def miscellaneous_cost(self, miscellaneous_cost):
        """
        Sets the miscellaneous_cost of this Ptsv2paymentsTravelInformationLodging.
        Miscellaneous costs. 

        :param miscellaneous_cost: The miscellaneous_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if miscellaneous_cost is not None and len(miscellaneous_cost) > 12:
            raise ValueError("Invalid value for `miscellaneous_cost`, length must be less than or equal to `12`")

        self._miscellaneous_cost = miscellaneous_cost

    @property
    def gift_shop_cost(self):
        """
        Gets the gift_shop_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of gift shop purchases. 

        :return: The gift_shop_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._gift_shop_cost

    @gift_shop_cost.setter
    def gift_shop_cost(self, gift_shop_cost):
        """
        Sets the gift_shop_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of gift shop purchases. 

        :param gift_shop_cost: The gift_shop_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if gift_shop_cost is not None and len(gift_shop_cost) > 12:
            raise ValueError("Invalid value for `gift_shop_cost`, length must be less than or equal to `12`")

        self._gift_shop_cost = gift_shop_cost

    @property
    def movie_cost(self):
        """
        Gets the movie_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of movies. 

        :return: The movie_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._movie_cost

    @movie_cost.setter
    def movie_cost(self, movie_cost):
        """
        Sets the movie_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of movies. 

        :param movie_cost: The movie_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if movie_cost is not None and len(movie_cost) > 12:
            raise ValueError("Invalid value for `movie_cost`, length must be less than or equal to `12`")

        self._movie_cost = movie_cost

    @property
    def health_club_cost(self):
        """
        Gets the health_club_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of health club services. 

        :return: The health_club_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._health_club_cost

    @health_club_cost.setter
    def health_club_cost(self, health_club_cost):
        """
        Sets the health_club_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of health club services. 

        :param health_club_cost: The health_club_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if health_club_cost is not None and len(health_club_cost) > 12:
            raise ValueError("Invalid value for `health_club_cost`, length must be less than or equal to `12`")

        self._health_club_cost = health_club_cost

    @property
    def valet_parking_cost(self):
        """
        Gets the valet_parking_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of valet parking services. 

        :return: The valet_parking_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._valet_parking_cost

    @valet_parking_cost.setter
    def valet_parking_cost(self, valet_parking_cost):
        """
        Sets the valet_parking_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of valet parking services. 

        :param valet_parking_cost: The valet_parking_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if valet_parking_cost is not None and len(valet_parking_cost) > 12:
            raise ValueError("Invalid value for `valet_parking_cost`, length must be less than or equal to `12`")

        self._valet_parking_cost = valet_parking_cost

    @property
    def cash_disbursement_cost(self):
        """
        Gets the cash_disbursement_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of the cash that was disbursed plus any associated service fees 

        :return: The cash_disbursement_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._cash_disbursement_cost

    @cash_disbursement_cost.setter
    def cash_disbursement_cost(self, cash_disbursement_cost):
        """
        Sets the cash_disbursement_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of the cash that was disbursed plus any associated service fees 

        :param cash_disbursement_cost: The cash_disbursement_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if cash_disbursement_cost is not None and len(cash_disbursement_cost) > 12:
            raise ValueError("Invalid value for `cash_disbursement_cost`, length must be less than or equal to `12`")

        self._cash_disbursement_cost = cash_disbursement_cost

    @property
    def non_room_cost(self):
        """
        Gets the non_room_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of non-room purchases, such as meals and gifts. 

        :return: The non_room_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._non_room_cost

    @non_room_cost.setter
    def non_room_cost(self, non_room_cost):
        """
        Sets the non_room_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of non-room purchases, such as meals and gifts. 

        :param non_room_cost: The non_room_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if non_room_cost is not None and len(non_room_cost) > 12:
            raise ValueError("Invalid value for `non_room_cost`, length must be less than or equal to `12`")

        self._non_room_cost = non_room_cost

    @property
    def business_center_cost(self):
        """
        Gets the business_center_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of business center services. 

        :return: The business_center_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._business_center_cost

    @business_center_cost.setter
    def business_center_cost(self, business_center_cost):
        """
        Sets the business_center_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of business center services. 

        :param business_center_cost: The business_center_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if business_center_cost is not None and len(business_center_cost) > 12:
            raise ValueError("Invalid value for `business_center_cost`, length must be less than or equal to `12`")

        self._business_center_cost = business_center_cost

    @property
    def lounge_bar_cost(self):
        """
        Gets the lounge_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of lounge and bar purchases. 

        :return: The lounge_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._lounge_bar_cost

    @lounge_bar_cost.setter
    def lounge_bar_cost(self, lounge_bar_cost):
        """
        Sets the lounge_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of lounge and bar purchases. 

        :param lounge_bar_cost: The lounge_bar_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if lounge_bar_cost is not None and len(lounge_bar_cost) > 12:
            raise ValueError("Invalid value for `lounge_bar_cost`, length must be less than or equal to `12`")

        self._lounge_bar_cost = lounge_bar_cost

    @property
    def transportation_cost(self):
        """
        Gets the transportation_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of transportation services. 

        :return: The transportation_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._transportation_cost

    @transportation_cost.setter
    def transportation_cost(self, transportation_cost):
        """
        Sets the transportation_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of transportation services. 

        :param transportation_cost: The transportation_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if transportation_cost is not None and len(transportation_cost) > 12:
            raise ValueError("Invalid value for `transportation_cost`, length must be less than or equal to `12`")

        self._transportation_cost = transportation_cost

    @property
    def gratuity_amount(self):
        """
        Gets the gratuity_amount of this Ptsv2paymentsTravelInformationLodging.
        Gratuity. 

        :return: The gratuity_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._gratuity_amount

    @gratuity_amount.setter
    def gratuity_amount(self, gratuity_amount):
        """
        Sets the gratuity_amount of this Ptsv2paymentsTravelInformationLodging.
        Gratuity. 

        :param gratuity_amount: The gratuity_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if gratuity_amount is not None and len(gratuity_amount) > 12:
            raise ValueError("Invalid value for `gratuity_amount`, length must be less than or equal to `12`")

        self._gratuity_amount = gratuity_amount

    @property
    def conference_room_cost(self):
        """
        Gets the conference_room_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of conference room services. 

        :return: The conference_room_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._conference_room_cost

    @conference_room_cost.setter
    def conference_room_cost(self, conference_room_cost):
        """
        Sets the conference_room_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of conference room services. 

        :param conference_room_cost: The conference_room_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if conference_room_cost is not None and len(conference_room_cost) > 12:
            raise ValueError("Invalid value for `conference_room_cost`, length must be less than or equal to `12`")

        self._conference_room_cost = conference_room_cost

    @property
    def audio_visual_cost(self):
        """
        Gets the audio_visual_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of audio visual services. 

        :return: The audio_visual_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._audio_visual_cost

    @audio_visual_cost.setter
    def audio_visual_cost(self, audio_visual_cost):
        """
        Sets the audio_visual_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of audio visual services. 

        :param audio_visual_cost: The audio_visual_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if audio_visual_cost is not None and len(audio_visual_cost) > 12:
            raise ValueError("Invalid value for `audio_visual_cost`, length must be less than or equal to `12`")

        self._audio_visual_cost = audio_visual_cost

    @property
    def banquest_cost(self):
        """
        Gets the banquest_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of banquet services. 

        :return: The banquest_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._banquest_cost

    @banquest_cost.setter
    def banquest_cost(self, banquest_cost):
        """
        Sets the banquest_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of banquet services. 

        :param banquest_cost: The banquest_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if banquest_cost is not None and len(banquest_cost) > 12:
            raise ValueError("Invalid value for `banquest_cost`, length must be less than or equal to `12`")

        self._banquest_cost = banquest_cost

    @property
    def non_room_tax_amount(self):
        """
        Gets the non_room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Tax on non-room purchases. 

        :return: The non_room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._non_room_tax_amount

    @non_room_tax_amount.setter
    def non_room_tax_amount(self, non_room_tax_amount):
        """
        Sets the non_room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        Tax on non-room purchases. 

        :param non_room_tax_amount: The non_room_tax_amount of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if non_room_tax_amount is not None and len(non_room_tax_amount) > 12:
            raise ValueError("Invalid value for `non_room_tax_amount`, length must be less than or equal to `12`")

        self._non_room_tax_amount = non_room_tax_amount

    @property
    def early_check_out_cost(self):
        """
        Gets the early_check_out_cost of this Ptsv2paymentsTravelInformationLodging.
        Service fee for early departure. 

        :return: The early_check_out_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._early_check_out_cost

    @early_check_out_cost.setter
    def early_check_out_cost(self, early_check_out_cost):
        """
        Sets the early_check_out_cost of this Ptsv2paymentsTravelInformationLodging.
        Service fee for early departure. 

        :param early_check_out_cost: The early_check_out_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if early_check_out_cost is not None and len(early_check_out_cost) > 12:
            raise ValueError("Invalid value for `early_check_out_cost`, length must be less than or equal to `12`")

        self._early_check_out_cost = early_check_out_cost

    @property
    def internet_access_cost(self):
        """
        Gets the internet_access_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of Internet access. 

        :return: The internet_access_cost of this Ptsv2paymentsTravelInformationLodging.
        :rtype: str
        """
        return self._internet_access_cost

    @internet_access_cost.setter
    def internet_access_cost(self, internet_access_cost):
        """
        Sets the internet_access_cost of this Ptsv2paymentsTravelInformationLodging.
        Cost of Internet access. 

        :param internet_access_cost: The internet_access_cost of this Ptsv2paymentsTravelInformationLodging.
        :type: str
        """
        if internet_access_cost is not None and len(internet_access_cost) > 12:
            raise ValueError("Invalid value for `internet_access_cost`, length must be less than or equal to `12`")

        self._internet_access_cost = internet_access_cost

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}

        for attr, _ in iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return pformat(self.to_dict())

    def __repr__(self):
        """
        For `print` and `pprint`
        """
        return self.to_str()

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        if not isinstance(other, Ptsv2paymentsTravelInformationLodging):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """
        Returns true if both objects are not equal
        """
        return not self == other
