apimatic-bcd-travel-sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +180 -0
  4. data/bin/console +15 -0
  5. data/lib/bcd_travel_api/api_helper.rb +10 -0
  6. data/lib/bcd_travel_api/apis/air_api.rb +138 -0
  7. data/lib/bcd_travel_api/apis/air_availability_return_flight_api.rb +31 -0
  8. data/lib/bcd_travel_api/apis/air_fare_search_optional_services_api.rb +31 -0
  9. data/lib/bcd_travel_api/apis/air_fare_search_select_seat_api.rb +53 -0
  10. data/lib/bcd_travel_api/apis/air_fare_search_simple_api.rb +195 -0
  11. data/lib/bcd_travel_api/apis/base_api.rb +67 -0
  12. data/lib/bcd_travel_api/apis/cars_api.rb +563 -0
  13. data/lib/bcd_travel_api/apis/hotels_api.rb +930 -0
  14. data/lib/bcd_travel_api/apis/retrieve_versions_api.rb +32 -0
  15. data/lib/bcd_travel_api/apis/search_expenses_api.rb +88 -0
  16. data/lib/bcd_travel_api/apis/v20_api.rb +72 -0
  17. data/lib/bcd_travel_api/apis/v21_api.rb +535 -0
  18. data/lib/bcd_travel_api/client.rb +136 -0
  19. data/lib/bcd_travel_api/configuration.rb +205 -0
  20. data/lib/bcd_travel_api/exceptions/api_exception.rb +21 -0
  21. data/lib/bcd_travel_api/http/api_response.rb +19 -0
  22. data/lib/bcd_travel_api/http/auth/basic.rb +62 -0
  23. data/lib/bcd_travel_api/http/auth/bearer.rb +53 -0
  24. data/lib/bcd_travel_api/http/http_call_back.rb +10 -0
  25. data/lib/bcd_travel_api/http/http_method_enum.rb +10 -0
  26. data/lib/bcd_travel_api/http/http_request.rb +10 -0
  27. data/lib/bcd_travel_api/http/http_response.rb +10 -0
  28. data/lib/bcd_travel_api/http/proxy_settings.rb +22 -0
  29. data/lib/bcd_travel_api/logging/configuration/api_logging_configuration.rb +186 -0
  30. data/lib/bcd_travel_api/logging/sdk_logger.rb +17 -0
  31. data/lib/bcd_travel_api/models/address.rb +74 -0
  32. data/lib/bcd_travel_api/models/address1.rb +111 -0
  33. data/lib/bcd_travel_api/models/address3.rb +109 -0
  34. data/lib/bcd_travel_api/models/address32.rb +75 -0
  35. data/lib/bcd_travel_api/models/address33.rb +103 -0
  36. data/lib/bcd_travel_api/models/address5.rb +100 -0
  37. data/lib/bcd_travel_api/models/air.rb +108 -0
  38. data/lib/bcd_travel_api/models/air1.rb +108 -0
  39. data/lib/bcd_travel_api/models/air16.rb +100 -0
  40. data/lib/bcd_travel_api/models/air2.rb +108 -0
  41. data/lib/bcd_travel_api/models/airavailabilityrequest.rb +164 -0
  42. data/lib/bcd_travel_api/models/airbookrequest.rb +350 -0
  43. data/lib/bcd_travel_api/models/aircancel_reservation_request4.rb +161 -0
  44. data/lib/bcd_travel_api/models/aircancel_reservationrefundquoteconfirmrequest.rb +164 -0
  45. data/lib/bcd_travel_api/models/aircomplete_verification_request.rb +146 -0
  46. data/lib/bcd_travel_api/models/airdocuments_issue_request.rb +163 -0
  47. data/lib/bcd_travel_api/models/airfare_rules_request.rb +155 -0
  48. data/lib/bcd_travel_api/models/airfare_search_request.rb +243 -0
  49. data/lib/bcd_travel_api/models/airget_checkout_data_request.rb +177 -0
  50. data/lib/bcd_travel_api/models/airpricingavailabilityrequest.rb +222 -0
  51. data/lib/bcd_travel_api/models/airpricingavailabilityrequest1.rb +231 -0
  52. data/lib/bcd_travel_api/models/airpricingfare_searchrequest.rb +214 -0
  53. data/lib/bcd_travel_api/models/airretrieve_reservations_list_request.rb +172 -0
  54. data/lib/bcd_travel_api/models/airseat_map_request.rb +175 -0
  55. data/lib/bcd_travel_api/models/arrival_location.rb +82 -0
  56. data/lib/bcd_travel_api/models/base_fare.rb +91 -0
  57. data/lib/bcd_travel_api/models/base_fare1.rb +119 -0
  58. data/lib/bcd_travel_api/models/base_fare2.rb +91 -0
  59. data/lib/bcd_travel_api/models/base_model.rb +110 -0
  60. data/lib/bcd_travel_api/models/billing_address.rb +110 -0
  61. data/lib/bcd_travel_api/models/booking_data.rb +73 -0
  62. data/lib/bcd_travel_api/models/broker.rb +82 -0
  63. data/lib/bcd_travel_api/models/broker16.rb +82 -0
  64. data/lib/bcd_travel_api/models/car.rb +91 -0
  65. data/lib/bcd_travel_api/models/car1.rb +91 -0
  66. data/lib/bcd_travel_api/models/car16.rb +83 -0
  67. data/lib/bcd_travel_api/models/car2.rb +91 -0
  68. data/lib/bcd_travel_api/models/card_detail.rb +104 -0
  69. data/lib/bcd_travel_api/models/carsbookcardrequest.rb +310 -0
  70. data/lib/bcd_travel_api/models/carsbookguaranteerequest.rb +236 -0
  71. data/lib/bcd_travel_api/models/carsbookvoucherrequest.rb +266 -0
  72. data/lib/bcd_travel_api/models/carscancel_reservation_request1.rb +163 -0
  73. data/lib/bcd_travel_api/models/carsdirect_sell_bookcardrequest.rb +362 -0
  74. data/lib/bcd_travel_api/models/carsdirect_sell_bookno_paymentrequest.rb +307 -0
  75. data/lib/bcd_travel_api/models/carsmodify_reservation_request.rb +215 -0
  76. data/lib/bcd_travel_api/models/carsretrieve_reservations_list_request.rb +172 -0
  77. data/lib/bcd_travel_api/models/client_reportable_datum.rb +82 -0
  78. data/lib/bcd_travel_api/models/content_type.rb +26 -0
  79. data/lib/bcd_travel_api/models/cruise_ferry.rb +91 -0
  80. data/lib/bcd_travel_api/models/departure_location.rb +82 -0
  81. data/lib/bcd_travel_api/models/document.rb +150 -0
  82. data/lib/bcd_travel_api/models/drop_off_location.rb +122 -0
  83. data/lib/bcd_travel_api/models/drop_off_location1.rb +118 -0
  84. data/lib/bcd_travel_api/models/drop_off_location16.rb +83 -0
  85. data/lib/bcd_travel_api/models/drop_off_location2.rb +82 -0
  86. data/lib/bcd_travel_api/models/end_location_address.rb +109 -0
  87. data/lib/bcd_travel_api/models/fare.rb +117 -0
  88. data/lib/bcd_travel_api/models/fare2.rb +119 -0
  89. data/lib/bcd_travel_api/models/fare3.rb +119 -0
  90. data/lib/bcd_travel_api/models/fare5.rb +91 -0
  91. data/lib/bcd_travel_api/models/ff_number.rb +82 -0
  92. data/lib/bcd_travel_api/models/filter.rb +185 -0
  93. data/lib/bcd_travel_api/models/filter1.rb +74 -0
  94. data/lib/bcd_travel_api/models/filter10.rb +74 -0
  95. data/lib/bcd_travel_api/models/filter11.rb +75 -0
  96. data/lib/bcd_travel_api/models/filter12.rb +75 -0
  97. data/lib/bcd_travel_api/models/filter13.rb +74 -0
  98. data/lib/bcd_travel_api/models/filter14.rb +75 -0
  99. data/lib/bcd_travel_api/models/filter15.rb +75 -0
  100. data/lib/bcd_travel_api/models/filter2.rb +74 -0
  101. data/lib/bcd_travel_api/models/filter3.rb +74 -0
  102. data/lib/bcd_travel_api/models/filter4.rb +75 -0
  103. data/lib/bcd_travel_api/models/filter6.rb +75 -0
  104. data/lib/bcd_travel_api/models/filter8.rb +75 -0
  105. data/lib/bcd_travel_api/models/generate_oauth_20_token.rb +91 -0
  106. data/lib/bcd_travel_api/models/get_configurations_post_request.rb +193 -0
  107. data/lib/bcd_travel_api/models/get_versionsbytrip_id.rb +99 -0
  108. data/lib/bcd_travel_api/models/guest.rb +82 -0
  109. data/lib/bcd_travel_api/models/hotel.rb +91 -0
  110. data/lib/bcd_travel_api/models/hotel1.rb +91 -0
  111. data/lib/bcd_travel_api/models/hotel16.rb +83 -0
  112. data/lib/bcd_travel_api/models/hotel2.rb +91 -0
  113. data/lib/bcd_travel_api/models/hotelsbookrequest.rb +418 -0
  114. data/lib/bcd_travel_api/models/hotelsbookrequest1.rb +445 -0
  115. data/lib/bcd_travel_api/models/hotelscancel_reservation_request.rb +153 -0
  116. data/lib/bcd_travel_api/models/hotelsrebookrequest.rb +214 -0
  117. data/lib/bcd_travel_api/models/hotelsrebookrequest1.rb +231 -0
  118. data/lib/bcd_travel_api/models/hotelsupdate_reservation_details_request.rb +153 -0
  119. data/lib/bcd_travel_api/models/hotelsupdate_reservation_details_request1.rb +164 -0
  120. data/lib/bcd_travel_api/models/leg.rb +166 -0
  121. data/lib/bcd_travel_api/models/leg1.rb +168 -0
  122. data/lib/bcd_travel_api/models/leg2.rb +156 -0
  123. data/lib/bcd_travel_api/models/leg3.rb +160 -0
  124. data/lib/bcd_travel_api/models/leg33.rb +164 -0
  125. data/lib/bcd_travel_api/models/leg34.rb +143 -0
  126. data/lib/bcd_travel_api/models/leg4.rb +154 -0
  127. data/lib/bcd_travel_api/models/leg6.rb +143 -0
  128. data/lib/bcd_travel_api/models/line_item.rb +109 -0
  129. data/lib/bcd_travel_api/models/line_item1.rb +119 -0
  130. data/lib/bcd_travel_api/models/location.rb +73 -0
  131. data/lib/bcd_travel_api/models/location16.rb +73 -0
  132. data/lib/bcd_travel_api/models/misc.rb +91 -0
  133. data/lib/bcd_travel_api/models/misc10.rb +83 -0
  134. data/lib/bcd_travel_api/models/options.rb +84 -0
  135. data/lib/bcd_travel_api/models/origin_destination.rb +134 -0
  136. data/lib/bcd_travel_api/models/origin_destination1.rb +108 -0
  137. data/lib/bcd_travel_api/models/passenger.rb +104 -0
  138. data/lib/bcd_travel_api/models/passport.rb +102 -0
  139. data/lib/bcd_travel_api/models/payment.rb +137 -0
  140. data/lib/bcd_travel_api/models/payment1.rb +141 -0
  141. data/lib/bcd_travel_api/models/payment2.rb +121 -0
  142. data/lib/bcd_travel_api/models/payment3.rb +111 -0
  143. data/lib/bcd_travel_api/models/pickup_location.rb +122 -0
  144. data/lib/bcd_travel_api/models/pickup_location1.rb +118 -0
  145. data/lib/bcd_travel_api/models/pickup_location16.rb +83 -0
  146. data/lib/bcd_travel_api/models/pickup_location2.rb +82 -0
  147. data/lib/bcd_travel_api/models/ping_getresponse.rb +72 -0
  148. data/lib/bcd_travel_api/models/pingrequest.rb +126 -0
  149. data/lib/bcd_travel_api/models/pingrequest2.rb +146 -0
  150. data/lib/bcd_travel_api/models/products.rb +129 -0
  151. data/lib/bcd_travel_api/models/products1.rb +117 -0
  152. data/lib/bcd_travel_api/models/products16.rb +111 -0
  153. data/lib/bcd_travel_api/models/products2.rb +107 -0
  154. data/lib/bcd_travel_api/models/rail.rb +91 -0
  155. data/lib/bcd_travel_api/models/rail1.rb +91 -0
  156. data/lib/bcd_travel_api/models/rail16.rb +82 -0
  157. data/lib/bcd_travel_api/models/rail2.rb +91 -0
  158. data/lib/bcd_travel_api/models/reservation.rb +223 -0
  159. data/lib/bcd_travel_api/models/reservation1.rb +239 -0
  160. data/lib/bcd_travel_api/models/reservation2.rb +170 -0
  161. data/lib/bcd_travel_api/models/reservation3.rb +193 -0
  162. data/lib/bcd_travel_api/models/reservation4.rb +201 -0
  163. data/lib/bcd_travel_api/models/reservation56.rb +220 -0
  164. data/lib/bcd_travel_api/models/reservation57.rb +219 -0
  165. data/lib/bcd_travel_api/models/reservation6.rb +240 -0
  166. data/lib/bcd_travel_api/models/reservation8.rb +220 -0
  167. data/lib/bcd_travel_api/models/reservation9.rb +239 -0
  168. data/lib/bcd_travel_api/models/result.rb +299 -0
  169. data/lib/bcd_travel_api/models/result1.rb +267 -0
  170. data/lib/bcd_travel_api/models/result16.rb +295 -0
  171. data/lib/bcd_travel_api/models/result2.rb +295 -0
  172. data/lib/bcd_travel_api/models/search_expenses.rb +111 -0
  173. data/lib/bcd_travel_api/models/search_expenses_request.rb +99 -0
  174. data/lib/bcd_travel_api/models/search_expensesbyaccount_id.rb +111 -0
  175. data/lib/bcd_travel_api/models/search_expensesbyaccount_id_request.rb +90 -0
  176. data/lib/bcd_travel_api/models/search_expensesbybooking_date_time.rb +111 -0
  177. data/lib/bcd_travel_api/models/search_expensesbybooking_date_time_request.rb +90 -0
  178. data/lib/bcd_travel_api/models/search_expensesbybooking_date_timerange.rb +111 -0
  179. data/lib/bcd_travel_api/models/search_expensesbybooking_date_timerange_request.rb +90 -0
  180. data/lib/bcd_travel_api/models/search_expensesbycalculated_ticket_status.rb +111 -0
  181. data/lib/bcd_travel_api/models/search_expensesbycalculated_ticket_status_request.rb +90 -0
  182. data/lib/bcd_travel_api/models/search_expensesbycustomer_number.rb +111 -0
  183. data/lib/bcd_travel_api/models/search_expensesbycustomer_number_request.rb +90 -0
  184. data/lib/bcd_travel_api/models/search_expensesbyglobal_customer_number.rb +111 -0
  185. data/lib/bcd_travel_api/models/search_expensesbyglobal_customer_number_request.rb +90 -0
  186. data/lib/bcd_travel_api/models/search_expensesbyhas_transaction.rb +111 -0
  187. data/lib/bcd_travel_api/models/search_expensesbyhas_transaction_request.rb +90 -0
  188. data/lib/bcd_travel_api/models/search_expensesbyinvoice_date_time.rb +111 -0
  189. data/lib/bcd_travel_api/models/search_expensesbyinvoice_date_time_request.rb +90 -0
  190. data/lib/bcd_travel_api/models/search_expensesbyinvoice_date_timerange.rb +111 -0
  191. data/lib/bcd_travel_api/models/search_expensesbyinvoice_date_timerange_request.rb +90 -0
  192. data/lib/bcd_travel_api/models/search_expensesbyinvoice_number.rb +111 -0
  193. data/lib/bcd_travel_api/models/search_expensesbyinvoice_number_request.rb +90 -0
  194. data/lib/bcd_travel_api/models/search_expensesbylast_modified_date_time.rb +111 -0
  195. data/lib/bcd_travel_api/models/search_expensesbylast_modified_date_time_request.rb +90 -0
  196. data/lib/bcd_travel_api/models/search_expensesbylast_modified_date_timerange.rb +111 -0
  197. data/lib/bcd_travel_api/models/search_expensesbylast_modified_date_timerange_request.rb +90 -0
  198. data/lib/bcd_travel_api/models/search_expensesbyrecord_locator.rb +111 -0
  199. data/lib/bcd_travel_api/models/search_expensesbyrecord_locator_request.rb +90 -0
  200. data/lib/bcd_travel_api/models/search_expensesbyticket_status.rb +111 -0
  201. data/lib/bcd_travel_api/models/search_expensesbyticket_status_request.rb +90 -0
  202. data/lib/bcd_travel_api/models/search_expensesbytraveler_email.rb +111 -0
  203. data/lib/bcd_travel_api/models/search_expensesbytraveler_email_request.rb +90 -0
  204. data/lib/bcd_travel_api/models/segment_option.rb +85 -0
  205. data/lib/bcd_travel_api/models/seller.rb +83 -0
  206. data/lib/bcd_travel_api/models/seller16.rb +72 -0
  207. data/lib/bcd_travel_api/models/sort.rb +86 -0
  208. data/lib/bcd_travel_api/models/specific_flight.rb +82 -0
  209. data/lib/bcd_travel_api/models/start_location_address.rb +109 -0
  210. data/lib/bcd_travel_api/models/taxis.rb +145 -0
  211. data/lib/bcd_travel_api/models/taxis1.rb +132 -0
  212. data/lib/bcd_travel_api/models/taxis3.rb +143 -0
  213. data/lib/bcd_travel_api/models/taxis4.rb +130 -0
  214. data/lib/bcd_travel_api/models/ticket.rb +334 -0
  215. data/lib/bcd_travel_api/models/ticket1.rb +156 -0
  216. data/lib/bcd_travel_api/models/ticket2.rb +244 -0
  217. data/lib/bcd_travel_api/models/ticket3.rb +156 -0
  218. data/lib/bcd_travel_api/models/ticket32.rb +337 -0
  219. data/lib/bcd_travel_api/models/ticket33.rb +156 -0
  220. data/lib/bcd_travel_api/models/ticket4.rb +337 -0
  221. data/lib/bcd_travel_api/models/ticket5.rb +156 -0
  222. data/lib/bcd_travel_api/models/time_restriction.rb +90 -0
  223. data/lib/bcd_travel_api/models/tour.rb +91 -0
  224. data/lib/bcd_travel_api/models/traveler.rb +91 -0
  225. data/lib/bcd_travel_api/models/traveler1.rb +110 -0
  226. data/lib/bcd_travel_api/models/traveler3.rb +91 -0
  227. data/lib/bcd_travel_api/models/traveler4.rb +120 -0
  228. data/lib/bcd_travel_api/models/traveler_name.rb +82 -0
  229. data/lib/bcd_travel_api/utilities/date_time_helper.rb +11 -0
  230. data/lib/bcd_travel_api/utilities/file_wrapper.rb +28 -0
  231. data/lib/bcd_travel_api/utilities/union_type_lookup.rb +128 -0
  232. data/lib/bcd_travel_api.rb +270 -0
  233. metadata +316 -0
@@ -0,0 +1,337 @@
1
+ # bcd_travel_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module BcdTravelApi
7
+ # Ticket32 Model.
8
+ class Ticket32 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Array[Object]]
14
+ attr_accessor :legs
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :invoice_number
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [TrueClass | FalseClass]
22
+ attr_accessor :is_conjunctive
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [String]
26
+ attr_accessor :validating_carrier
27
+
28
+ # TODO: Write general description for this method
29
+ # @return [String]
30
+ attr_accessor :ticket_status
31
+
32
+ # TODO: Write general description for this method
33
+ # @return [String]
34
+ attr_accessor :calculated_ticket_status
35
+
36
+ # TODO: Write general description for this method
37
+ # @return [Array[Taxis1]]
38
+ attr_accessor :taxes
39
+
40
+ # TODO: Write general description for this method
41
+ # @return [String]
42
+ attr_accessor :ticket_number
43
+
44
+ # TODO: Write general description for this method
45
+ # @return [String]
46
+ attr_accessor :record_locator
47
+
48
+ # TODO: Write general description for this method
49
+ # @return [String]
50
+ attr_accessor :issue_date_time
51
+
52
+ # TODO: Write general description for this method
53
+ # @return [String]
54
+ attr_accessor :booking_date_time
55
+
56
+ # TODO: Write general description for this method
57
+ # @return [Fare]
58
+ attr_accessor :fare
59
+
60
+ # TODO: Write general description for this method
61
+ # @return [Array[Payment1]]
62
+ attr_accessor :payments
63
+
64
+ # TODO: Write general description for this method
65
+ # @return [Array[String]]
66
+ attr_accessor :line_items
67
+
68
+ # TODO: Write general description for this method
69
+ # @return [String]
70
+ attr_accessor :booking_type
71
+
72
+ # TODO: Write general description for this method
73
+ # @return [Passenger]
74
+ attr_accessor :passenger
75
+
76
+ # TODO: Write general description for this method
77
+ # @return [TrueClass | FalseClass]
78
+ attr_accessor :is_international
79
+
80
+ # A mapping from model property names to API property names.
81
+ def self.names
82
+ @_hash = {} if @_hash.nil?
83
+ @_hash['legs'] = 'legs'
84
+ @_hash['invoice_number'] = 'invoiceNumber'
85
+ @_hash['is_conjunctive'] = 'isConjunctive'
86
+ @_hash['validating_carrier'] = 'validatingCarrier'
87
+ @_hash['ticket_status'] = 'ticketStatus'
88
+ @_hash['calculated_ticket_status'] = 'calculatedTicketStatus'
89
+ @_hash['taxes'] = 'taxes'
90
+ @_hash['ticket_number'] = 'ticketNumber'
91
+ @_hash['record_locator'] = 'recordLocator'
92
+ @_hash['issue_date_time'] = 'issueDateTime'
93
+ @_hash['booking_date_time'] = 'bookingDateTime'
94
+ @_hash['fare'] = 'fare'
95
+ @_hash['payments'] = 'payments'
96
+ @_hash['line_items'] = 'lineItems'
97
+ @_hash['booking_type'] = 'bookingType'
98
+ @_hash['passenger'] = 'passenger'
99
+ @_hash['is_international'] = 'isInternational'
100
+ @_hash
101
+ end
102
+
103
+ # An array for optional fields
104
+ def self.optionals
105
+ %w[
106
+ record_locator
107
+ ]
108
+ end
109
+
110
+ # An array for nullable fields
111
+ def self.nullables
112
+ []
113
+ end
114
+
115
+ def initialize(legs:, invoice_number:, is_conjunctive:, validating_carrier:,
116
+ ticket_status:, calculated_ticket_status:, taxes:,
117
+ ticket_number:, issue_date_time:, booking_date_time:, fare:,
118
+ payments:, line_items:, booking_type:, passenger:,
119
+ is_international:, record_locator: SKIP,
120
+ additional_properties: nil)
121
+ # Add additional model properties to the instance
122
+ additional_properties = {} if additional_properties.nil?
123
+
124
+ @legs = legs
125
+ @invoice_number = invoice_number
126
+ @is_conjunctive = is_conjunctive
127
+ @validating_carrier = validating_carrier
128
+ @ticket_status = ticket_status
129
+ @calculated_ticket_status = calculated_ticket_status
130
+ @taxes = taxes
131
+ @ticket_number = ticket_number
132
+ @record_locator = record_locator unless record_locator == SKIP
133
+ @issue_date_time = issue_date_time
134
+ @booking_date_time = booking_date_time
135
+ @fare = fare
136
+ @payments = payments
137
+ @line_items = line_items
138
+ @booking_type = booking_type
139
+ @passenger = passenger
140
+ @is_international = is_international
141
+ @additional_properties = additional_properties
142
+ end
143
+
144
+ # Creates an instance of the object from a hash.
145
+ def self.from_hash(hash)
146
+ return nil unless hash
147
+
148
+ # Extract variables from the hash.
149
+ legs = hash.key?('legs') ? APIHelper.deserialize_union_type(
150
+ UnionTypeLookUp.get(:Ticket32Legs), hash['legs']
151
+ ) : nil
152
+ invoice_number = hash.key?('invoiceNumber') ? hash['invoiceNumber'] : nil
153
+ is_conjunctive = hash.key?('isConjunctive') ? hash['isConjunctive'] : nil
154
+ validating_carrier =
155
+ hash.key?('validatingCarrier') ? hash['validatingCarrier'] : nil
156
+ ticket_status = hash.key?('ticketStatus') ? hash['ticketStatus'] : nil
157
+ calculated_ticket_status =
158
+ hash.key?('calculatedTicketStatus') ? hash['calculatedTicketStatus'] : nil
159
+ # Parameter is an array, so we need to iterate through it
160
+ taxes = nil
161
+ unless hash['taxes'].nil?
162
+ taxes = []
163
+ hash['taxes'].each do |structure|
164
+ taxes << (Taxis1.from_hash(structure) if structure)
165
+ end
166
+ end
167
+
168
+ taxes = nil unless hash.key?('taxes')
169
+ ticket_number = hash.key?('ticketNumber') ? hash['ticketNumber'] : nil
170
+ issue_date_time = hash.key?('issueDateTime') ? hash['issueDateTime'] : nil
171
+ booking_date_time =
172
+ hash.key?('bookingDateTime') ? hash['bookingDateTime'] : nil
173
+ fare = Fare.from_hash(hash['fare']) if hash['fare']
174
+ # Parameter is an array, so we need to iterate through it
175
+ payments = nil
176
+ unless hash['payments'].nil?
177
+ payments = []
178
+ hash['payments'].each do |structure|
179
+ payments << (Payment1.from_hash(structure) if structure)
180
+ end
181
+ end
182
+
183
+ payments = nil unless hash.key?('payments')
184
+ line_items = hash.key?('lineItems') ? hash['lineItems'] : nil
185
+ booking_type = hash.key?('bookingType') ? hash['bookingType'] : nil
186
+ passenger = Passenger.from_hash(hash['passenger']) if hash['passenger']
187
+ is_international =
188
+ hash.key?('isInternational') ? hash['isInternational'] : nil
189
+ record_locator = hash.key?('recordLocator') ? hash['recordLocator'] : SKIP
190
+
191
+ # Create a new hash for additional properties, removing known properties.
192
+ new_hash = hash.reject { |k, _| names.value?(k) }
193
+
194
+ additional_properties = APIHelper.get_additional_properties(
195
+ new_hash, proc { |value| value }
196
+ )
197
+
198
+ # Create object from extracted values.
199
+ Ticket32.new(legs: legs,
200
+ invoice_number: invoice_number,
201
+ is_conjunctive: is_conjunctive,
202
+ validating_carrier: validating_carrier,
203
+ ticket_status: ticket_status,
204
+ calculated_ticket_status: calculated_ticket_status,
205
+ taxes: taxes,
206
+ ticket_number: ticket_number,
207
+ issue_date_time: issue_date_time,
208
+ booking_date_time: booking_date_time,
209
+ fare: fare,
210
+ payments: payments,
211
+ line_items: line_items,
212
+ booking_type: booking_type,
213
+ passenger: passenger,
214
+ is_international: is_international,
215
+ record_locator: record_locator,
216
+ additional_properties: additional_properties)
217
+ end
218
+
219
+ # Validates an instance of the object from a given value.
220
+ # @param [Ticket32 | Hash] The value against the validation is performed.
221
+ def self.validate(value)
222
+ if value.instance_of? self
223
+ return (
224
+ UnionTypeLookUp.get(:Ticket32Legs)
225
+ .validate(value.legs) and
226
+ APIHelper.valid_type?(value.invoice_number,
227
+ ->(val) { val.instance_of? String }) and
228
+ APIHelper.valid_type?(value.is_conjunctive,
229
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
230
+ APIHelper.valid_type?(value.validating_carrier,
231
+ ->(val) { val.instance_of? String }) and
232
+ APIHelper.valid_type?(value.ticket_status,
233
+ ->(val) { val.instance_of? String }) and
234
+ APIHelper.valid_type?(value.calculated_ticket_status,
235
+ ->(val) { val.instance_of? String }) and
236
+ APIHelper.valid_type?(value.taxes,
237
+ ->(val) { Taxis1.validate(val) },
238
+ is_model_hash: true,
239
+ is_inner_model_hash: true) and
240
+ APIHelper.valid_type?(value.ticket_number,
241
+ ->(val) { val.instance_of? String }) and
242
+ APIHelper.valid_type?(value.issue_date_time,
243
+ ->(val) { val.instance_of? String }) and
244
+ APIHelper.valid_type?(value.booking_date_time,
245
+ ->(val) { val.instance_of? String }) and
246
+ APIHelper.valid_type?(value.fare,
247
+ ->(val) { Fare.validate(val) },
248
+ is_model_hash: true) and
249
+ APIHelper.valid_type?(value.payments,
250
+ ->(val) { Payment1.validate(val) },
251
+ is_model_hash: true,
252
+ is_inner_model_hash: true) and
253
+ APIHelper.valid_type?(value.line_items,
254
+ ->(val) { val.instance_of? String }) and
255
+ APIHelper.valid_type?(value.booking_type,
256
+ ->(val) { val.instance_of? String }) and
257
+ APIHelper.valid_type?(value.passenger,
258
+ ->(val) { Passenger.validate(val) },
259
+ is_model_hash: true) and
260
+ APIHelper.valid_type?(value.is_international,
261
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass })
262
+ )
263
+ end
264
+
265
+ return false unless value.instance_of? Hash
266
+
267
+ (
268
+ UnionTypeLookUp.get(:Ticket32Legs)
269
+ .validate(value['legs']) and
270
+ APIHelper.valid_type?(value['invoiceNumber'],
271
+ ->(val) { val.instance_of? String }) and
272
+ APIHelper.valid_type?(value['isConjunctive'],
273
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass }) and
274
+ APIHelper.valid_type?(value['validatingCarrier'],
275
+ ->(val) { val.instance_of? String }) and
276
+ APIHelper.valid_type?(value['ticketStatus'],
277
+ ->(val) { val.instance_of? String }) and
278
+ APIHelper.valid_type?(value['calculatedTicketStatus'],
279
+ ->(val) { val.instance_of? String }) and
280
+ APIHelper.valid_type?(value['taxes'],
281
+ ->(val) { Taxis1.validate(val) },
282
+ is_model_hash: true,
283
+ is_inner_model_hash: true) and
284
+ APIHelper.valid_type?(value['ticketNumber'],
285
+ ->(val) { val.instance_of? String }) and
286
+ APIHelper.valid_type?(value['issueDateTime'],
287
+ ->(val) { val.instance_of? String }) and
288
+ APIHelper.valid_type?(value['bookingDateTime'],
289
+ ->(val) { val.instance_of? String }) and
290
+ APIHelper.valid_type?(value['fare'],
291
+ ->(val) { Fare.validate(val) },
292
+ is_model_hash: true) and
293
+ APIHelper.valid_type?(value['payments'],
294
+ ->(val) { Payment1.validate(val) },
295
+ is_model_hash: true,
296
+ is_inner_model_hash: true) and
297
+ APIHelper.valid_type?(value['lineItems'],
298
+ ->(val) { val.instance_of? String }) and
299
+ APIHelper.valid_type?(value['bookingType'],
300
+ ->(val) { val.instance_of? String }) and
301
+ APIHelper.valid_type?(value['passenger'],
302
+ ->(val) { Passenger.validate(val) },
303
+ is_model_hash: true) and
304
+ APIHelper.valid_type?(value['isInternational'],
305
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass })
306
+ )
307
+ end
308
+
309
+ # Provides a human-readable string representation of the object.
310
+ def to_s
311
+ class_name = self.class.name.split('::').last
312
+ "<#{class_name} legs: #{@legs}, invoice_number: #{@invoice_number}, is_conjunctive:"\
313
+ " #{@is_conjunctive}, validating_carrier: #{@validating_carrier}, ticket_status:"\
314
+ " #{@ticket_status}, calculated_ticket_status: #{@calculated_ticket_status}, taxes:"\
315
+ " #{@taxes}, ticket_number: #{@ticket_number}, record_locator: #{@record_locator},"\
316
+ " issue_date_time: #{@issue_date_time}, booking_date_time: #{@booking_date_time}, fare:"\
317
+ " #{@fare}, payments: #{@payments}, line_items: #{@line_items}, booking_type:"\
318
+ " #{@booking_type}, passenger: #{@passenger}, is_international: #{@is_international},"\
319
+ " additional_properties: #{@additional_properties}>"
320
+ end
321
+
322
+ # Provides a debugging-friendly string with detailed object information.
323
+ def inspect
324
+ class_name = self.class.name.split('::').last
325
+ "<#{class_name} legs: #{@legs.inspect}, invoice_number: #{@invoice_number.inspect},"\
326
+ " is_conjunctive: #{@is_conjunctive.inspect}, validating_carrier:"\
327
+ " #{@validating_carrier.inspect}, ticket_status: #{@ticket_status.inspect},"\
328
+ " calculated_ticket_status: #{@calculated_ticket_status.inspect}, taxes: #{@taxes.inspect},"\
329
+ " ticket_number: #{@ticket_number.inspect}, record_locator: #{@record_locator.inspect},"\
330
+ " issue_date_time: #{@issue_date_time.inspect}, booking_date_time:"\
331
+ " #{@booking_date_time.inspect}, fare: #{@fare.inspect}, payments: #{@payments.inspect},"\
332
+ " line_items: #{@line_items.inspect}, booking_type: #{@booking_type.inspect}, passenger:"\
333
+ " #{@passenger.inspect}, is_international: #{@is_international.inspect},"\
334
+ " additional_properties: #{@additional_properties}>"
335
+ end
336
+ end
337
+ end
@@ -0,0 +1,156 @@
1
+ # bcd_travel_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module BcdTravelApi
7
+ # Ticket33 Model.
8
+ class Ticket33 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Array[Leg34]]
14
+ attr_accessor :legs
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :record_locator
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [String]
22
+ attr_accessor :issue_date_time
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [String]
26
+ attr_accessor :booking_date_time
27
+
28
+ # TODO: Write general description for this method
29
+ # @return [BaseFare1]
30
+ attr_accessor :fare
31
+
32
+ # TODO: Write general description for this method
33
+ # @return [Array[String]]
34
+ attr_accessor :payments
35
+
36
+ # TODO: Write general description for this method
37
+ # @return [Array[String]]
38
+ attr_accessor :line_items
39
+
40
+ # TODO: Write general description for this method
41
+ # @return [Passenger]
42
+ attr_accessor :passenger
43
+
44
+ # TODO: Write general description for this method
45
+ # @return [TrueClass | FalseClass]
46
+ attr_accessor :is_international
47
+
48
+ # A mapping from model property names to API property names.
49
+ def self.names
50
+ @_hash = {} if @_hash.nil?
51
+ @_hash['legs'] = 'legs'
52
+ @_hash['record_locator'] = 'recordLocator'
53
+ @_hash['issue_date_time'] = 'issueDateTime'
54
+ @_hash['booking_date_time'] = 'bookingDateTime'
55
+ @_hash['fare'] = 'fare'
56
+ @_hash['payments'] = 'payments'
57
+ @_hash['line_items'] = 'lineItems'
58
+ @_hash['passenger'] = 'passenger'
59
+ @_hash['is_international'] = 'isInternational'
60
+ @_hash
61
+ end
62
+
63
+ # An array for optional fields
64
+ def self.optionals
65
+ []
66
+ end
67
+
68
+ # An array for nullable fields
69
+ def self.nullables
70
+ []
71
+ end
72
+
73
+ def initialize(legs:, record_locator:, issue_date_time:, booking_date_time:,
74
+ fare:, payments:, line_items:, passenger:, is_international:,
75
+ additional_properties: nil)
76
+ # Add additional model properties to the instance
77
+ additional_properties = {} if additional_properties.nil?
78
+
79
+ @legs = legs
80
+ @record_locator = record_locator
81
+ @issue_date_time = issue_date_time
82
+ @booking_date_time = booking_date_time
83
+ @fare = fare
84
+ @payments = payments
85
+ @line_items = line_items
86
+ @passenger = passenger
87
+ @is_international = is_international
88
+ @additional_properties = additional_properties
89
+ end
90
+
91
+ # Creates an instance of the object from a hash.
92
+ def self.from_hash(hash)
93
+ return nil unless hash
94
+
95
+ # Extract variables from the hash.
96
+ # Parameter is an array, so we need to iterate through it
97
+ legs = nil
98
+ unless hash['legs'].nil?
99
+ legs = []
100
+ hash['legs'].each do |structure|
101
+ legs << (Leg34.from_hash(structure) if structure)
102
+ end
103
+ end
104
+
105
+ legs = nil unless hash.key?('legs')
106
+ record_locator = hash.key?('recordLocator') ? hash['recordLocator'] : nil
107
+ issue_date_time = hash.key?('issueDateTime') ? hash['issueDateTime'] : nil
108
+ booking_date_time =
109
+ hash.key?('bookingDateTime') ? hash['bookingDateTime'] : nil
110
+ fare = BaseFare1.from_hash(hash['fare']) if hash['fare']
111
+ payments = hash.key?('payments') ? hash['payments'] : nil
112
+ line_items = hash.key?('lineItems') ? hash['lineItems'] : nil
113
+ passenger = Passenger.from_hash(hash['passenger']) if hash['passenger']
114
+ is_international =
115
+ hash.key?('isInternational') ? hash['isInternational'] : nil
116
+
117
+ # Create a new hash for additional properties, removing known properties.
118
+ new_hash = hash.reject { |k, _| names.value?(k) }
119
+
120
+ additional_properties = APIHelper.get_additional_properties(
121
+ new_hash, proc { |value| value }
122
+ )
123
+
124
+ # Create object from extracted values.
125
+ Ticket33.new(legs: legs,
126
+ record_locator: record_locator,
127
+ issue_date_time: issue_date_time,
128
+ booking_date_time: booking_date_time,
129
+ fare: fare,
130
+ payments: payments,
131
+ line_items: line_items,
132
+ passenger: passenger,
133
+ is_international: is_international,
134
+ additional_properties: additional_properties)
135
+ end
136
+
137
+ # Provides a human-readable string representation of the object.
138
+ def to_s
139
+ class_name = self.class.name.split('::').last
140
+ "<#{class_name} legs: #{@legs}, record_locator: #{@record_locator}, issue_date_time:"\
141
+ " #{@issue_date_time}, booking_date_time: #{@booking_date_time}, fare: #{@fare}, payments:"\
142
+ " #{@payments}, line_items: #{@line_items}, passenger: #{@passenger}, is_international:"\
143
+ " #{@is_international}, additional_properties: #{@additional_properties}>"
144
+ end
145
+
146
+ # Provides a debugging-friendly string with detailed object information.
147
+ def inspect
148
+ class_name = self.class.name.split('::').last
149
+ "<#{class_name} legs: #{@legs.inspect}, record_locator: #{@record_locator.inspect},"\
150
+ " issue_date_time: #{@issue_date_time.inspect}, booking_date_time:"\
151
+ " #{@booking_date_time.inspect}, fare: #{@fare.inspect}, payments: #{@payments.inspect},"\
152
+ " line_items: #{@line_items.inspect}, passenger: #{@passenger.inspect}, is_international:"\
153
+ " #{@is_international.inspect}, additional_properties: #{@additional_properties}>"
154
+ end
155
+ end
156
+ end