/// <summary>
 /// Initializes a new instance of the ReservationItemModel class.
 /// </summary>
 /// <param name="adults">Number of adults</param>
 /// <param name="arrival">Date of arrival&lt;br /&gt;Specify a date and
 /// time (without fractional second part) in UTC or with UTC offset as
 /// defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="balance">The balance of this reservation.</param>
 /// <param name="bookingId">Booking id</param>
 /// <param name="cancellationFee">Details about the cancellation fee
 /// for this reservation</param>
 /// <param name="channelCode">Channel code. Possible values include:
 /// 'Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia'</param>
 /// <param name="created">Date of creation&lt;br /&gt;Specify a date
 /// and time (without fractional second part) in UTC or with UTC offset
 /// as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="departure">Date of departure&lt;br /&gt;Specify a date
 /// and time (without fractional second part) in UTC or with UTC offset
 /// as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="guaranteeType">The strongest guarantee for the rate
 /// plans booked in this reservation. Possible values include:
 /// 'PM6Hold', 'CreditCard', 'Prepayment', 'Company', 'Ota'</param>
 /// <param name="hasCityTax">Whether the city tax has already been
 /// added to the reservation. Set to false, if the property does not
 /// have city tax configured</param>
 /// <param name="id">Reservation id</param>
 /// <param name="modified">Date of last modification&lt;br /&gt;Specify
 /// a date and time (without fractional second part) in UTC or with UTC
 /// offset as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="noShowFee">Details about the no-show fee for this
 /// reservation</param>
 /// <param name="primaryGuest">The primary guest of the
 /// reservation</param>
 /// <param name="property">The property</param>
 /// <param name="ratePlan">The rate plan</param>
 /// <param name="status">Status of the reservation. Possible values
 /// include: 'Confirmed', 'InHouse', 'CheckedOut', 'Canceled',
 /// 'NoShow'</param>
 /// <param name="totalGrossAmount">Total amount</param>
 /// <param name="unitGroup">The unit group</param>
 /// <param name="actions">The list of actions for this
 /// reservation</param>
 /// <param name="additionalGuests">Additional guests of the
 /// reservation.</param>
 /// <param name="allFoliosHaveInvoice">Whether all folios of a
 /// reservation have an invoice</param>
 /// <param name="assignedUnits">The list of units assigned to this
 /// reservation</param>
 /// <param name="blockId">Block id</param>
 /// <param name="booker">The person who made the booking</param>
 /// <param name="cancellationTime">Time of cancellation, if the
 /// reservation was canceled&lt;br /&gt;Specify a date and time
 /// (without fractional second part) in UTC or with UTC offset as
 /// defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="checkInTime">Time of check-in&lt;br /&gt;Specify a
 /// date and time (without fractional second part) in UTC or with UTC
 /// offset as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="checkOutTime">Time of check-out&lt;br /&gt;Specify a
 /// date and time (without fractional second part) in UTC or with UTC
 /// offset as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="childrenAges">The ages of the children</param>
 /// <param name="cityTax">The amount of city tax that can be charged
 /// for this reservation</param>
 /// <param name="comment">Additional information and comments</param>
 /// <param name="commission">The information about the OTA
 /// commission.</param>
 /// <param name="company">Company for this reservation.</param>
 /// <param name="corporateCode">Corporate code provided during
 /// creation. Used to find offers during amend.</param>
 /// <param name="externalCode">Code in external system</param>
 /// <param name="guestComment">Additional information and comment by
 /// the guest</param>
 /// <param name="noShowTime">Time of setting no-show reservation
 /// status&lt;br /&gt;Specify a date and time (without fractional
 /// second part) in UTC or with UTC offset as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="paymentAccount">Payment information</param>
 /// <param name="services">The list of additional services (extras,
 /// add-ons) reserved for the stay</param>
 /// <param name="source">Source of the reservation (e.g Hotels.com,
 /// Orbitz, etc.)</param>
 /// <param name="timeSlices">The list of time slices with the reserved
 /// units / unit groups for the stay</param>
 /// <param name="travelPurpose">The purpose of the trip, leisure or
 /// business. Possible values include: 'Business', 'Leisure'</param>
 /// <param name="unit">The unit</param>
 /// <param name="validationMessages">Validation rules are applied to
 /// reservations during their lifetime.
 /// For example a reservation that was created while the house or unit
 /// group is already fully booked.
 /// Whenever a rule was or is currently violated, a validation message
 /// will be added to this list.
 /// They can be deleted whenever the hotel staff worked them
 /// off.</param>
 public ReservationItemModel(int adults, System.DateTime arrival, MonetaryValueModel balance, string bookingId, ReservationCancellationFeeModel cancellationFee, ChannelCode channelCode, System.DateTime created, System.DateTime departure, GuaranteeType guaranteeType, bool hasCityTax, string id, System.DateTime modified, ReservationNoShowFeeModel noShowFee, GuestModel primaryGuest, EmbeddedPropertyModel property, EmbeddedRatePlanModel ratePlan, ReservationStatus status, MonetaryValueModel totalGrossAmount, EmbeddedUnitGroupModel unitGroup, IList <ActionModelReservationActionNotAllowedReservationActionReason> actions = default(IList <ActionModelReservationActionNotAllowedReservationActionReason>), IList <GuestModel> additionalGuests = default(IList <GuestModel>), bool?allFoliosHaveInvoice = default(bool?), IList <ReservationAssignedUnitModel> assignedUnits = default(IList <ReservationAssignedUnitModel>), string blockId = default(string), BookerModel booker = default(BookerModel), System.DateTime?cancellationTime = default(System.DateTime?), System.DateTime?checkInTime = default(System.DateTime?), System.DateTime?checkOutTime = default(System.DateTime?), IList <int?> childrenAges = default(IList <int?>), AmountModel cityTax = default(AmountModel), string comment = default(string), CommissionModel commission = default(CommissionModel), EmbeddedCompanyModel company = default(EmbeddedCompanyModel), string corporateCode = default(string), string externalCode = default(string), string guestComment = default(string), System.DateTime?noShowTime = default(System.DateTime?), PaymentAccountModel paymentAccount = default(PaymentAccountModel), IList <ReservationServiceItemModel> services = default(IList <ReservationServiceItemModel>), string source = default(string), IList <TimeSliceModel> timeSlices = default(IList <TimeSliceModel>), string travelPurpose = default(string), EmbeddedUnitModel unit = default(EmbeddedUnitModel), IList <ReservationValidationMessageModel> validationMessages = default(IList <ReservationValidationMessageModel>))
 {
     Actions              = actions;
     AdditionalGuests     = additionalGuests;
     Adults               = adults;
     AllFoliosHaveInvoice = allFoliosHaveInvoice;
     Arrival              = arrival;
     AssignedUnits        = assignedUnits;
     Balance              = balance;
     BlockId              = blockId;
     Booker               = booker;
     BookingId            = bookingId;
     CancellationFee      = cancellationFee;
     CancellationTime     = cancellationTime;
     ChannelCode          = channelCode;
     CheckInTime          = checkInTime;
     CheckOutTime         = checkOutTime;
     ChildrenAges         = childrenAges;
     CityTax              = cityTax;
     Comment              = comment;
     Commission           = commission;
     Company              = company;
     CorporateCode        = corporateCode;
     Created              = created;
     Departure            = departure;
     ExternalCode         = externalCode;
     GuaranteeType        = guaranteeType;
     GuestComment         = guestComment;
     HasCityTax           = hasCityTax;
     Id                 = id;
     Modified           = modified;
     NoShowFee          = noShowFee;
     NoShowTime         = noShowTime;
     PaymentAccount     = paymentAccount;
     PrimaryGuest       = primaryGuest;
     Property           = property;
     RatePlan           = ratePlan;
     Services           = services;
     Source             = source;
     Status             = status;
     TimeSlices         = timeSlices;
     TotalGrossAmount   = totalGrossAmount;
     TravelPurpose      = travelPurpose;
     Unit               = unit;
     UnitGroup          = unitGroup;
     ValidationMessages = validationMessages;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the CreateReservationModel class.
 /// </summary>
 /// <param name="adults">Number of adults</param>
 /// <param name="arrival">Date and optional time of arrival&lt;br
 /// /&gt;Specify either a pure date or a date and time (without
 /// fractional second part) in UTC or with UTC offset as defined in
 /// &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="channelCode">Channel code. Possible values include:
 /// 'Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia'</param>
 /// <param name="departure">Date and optional time of departure. Cannot
 /// be more than 5 years after arrival.&lt;br /&gt;Specify either a
 /// pure date or a date and time (without fractional second part) in
 /// UTC or with UTC offset as defined in &lt;a
 /// href="https://en.wikipedia.org/wiki/ISO_8601"&gt;ISO8601:2004&lt;/a&gt;</param>
 /// <param name="timeSlices">Gross prices including services and taxes
 /// for each time slice. They will be applied to the reservation
 /// timeslices
 /// in the order specified from arrival to departure</param>
 /// <param name="additionalGuests">Additional guests of the
 /// reservation.</param>
 /// <param name="childrenAges">Ages of the children</param>
 /// <param name="comment">Additional information and comments</param>
 /// <param name="commission">The information about the OTA
 /// commission.</param>
 /// <param name="companyId">Set this if this reservation belongs to a
 /// company</param>
 /// <param name="corporateCode">Corporate code provided during
 /// creation. Used to find offers during amend.</param>
 /// <param name="externalCode">Code in some system</param>
 /// <param name="guaranteeType">The guarantee that has to be applied
 /// for this reservation. It has to be the same or stronger than
 /// the minimum guarantee required by the selected rate plan. Possible
 /// values include: 'PM6Hold', 'CreditCard', 'Prepayment',
 /// 'Company'</param>
 /// <param name="guestComment">Additional information and comments by
 /// the guest</param>
 /// <param name="prePaymentAmount">The amount that needs to be
 /// pre-paid.</param>
 /// <param name="primaryGuest">The primary guest of the reservation.
 /// If no guest is set, the booker is used.</param>
 /// <param name="services">Additional services (extras, add-ons) that
 /// should be added to the reservation</param>
 /// <param name="source">Source of the reservation</param>
 /// <param name="travelPurpose">Purpose of the trip, leisure or
 /// business. Possible values include: 'Business', 'Leisure'</param>
 public CreateReservationModel(int adults, string arrival, string channelCode, string departure, IList <CreateReservationTimeSliceModel> timeSlices, IList <GuestModel> additionalGuests = default(IList <GuestModel>), IList <int?> childrenAges = default(IList <int?>), string comment = default(string), CommissionModel commission = default(CommissionModel), string companyId = default(string), string corporateCode = default(string), string externalCode = default(string), string guaranteeType = default(string), string guestComment = default(string), MonetaryValueModel prePaymentAmount = default(MonetaryValueModel), GuestModel primaryGuest = default(GuestModel), IList <BookReservationServiceModel> services = default(IList <BookReservationServiceModel>), string source = default(string), string travelPurpose = default(string))
 {
     AdditionalGuests = additionalGuests;
     Adults           = adults;
     Arrival          = arrival;
     ChannelCode      = channelCode;
     ChildrenAges     = childrenAges;
     Comment          = comment;
     Commission       = commission;
     CompanyId        = companyId;
     CorporateCode    = corporateCode;
     Departure        = departure;
     ExternalCode     = externalCode;
     GuaranteeType    = guaranteeType;
     GuestComment     = guestComment;
     PrePaymentAmount = prePaymentAmount;
     PrimaryGuest     = primaryGuest;
     Services         = services;
     Source           = source;
     TimeSlices       = timeSlices;
     TravelPurpose    = travelPurpose;
     CustomInit();
 }