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,130 @@
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
+ # Taxis4 Model.
8
+ class Taxis4 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :code
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [Object]
22
+ attr_accessor :amount
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [String]
26
+ attr_accessor :currency_code
27
+
28
+ # A mapping from model property names to API property names.
29
+ def self.names
30
+ @_hash = {} if @_hash.nil?
31
+ @_hash['name'] = 'name'
32
+ @_hash['code'] = 'code'
33
+ @_hash['amount'] = 'amount'
34
+ @_hash['currency_code'] = 'currencyCode'
35
+ @_hash
36
+ end
37
+
38
+ # An array for optional fields
39
+ def self.optionals
40
+ %w[
41
+ name
42
+ ]
43
+ end
44
+
45
+ # An array for nullable fields
46
+ def self.nullables
47
+ []
48
+ end
49
+
50
+ def initialize(code:, amount:, currency_code:, name: SKIP,
51
+ additional_properties: nil)
52
+ # Add additional model properties to the instance
53
+ additional_properties = {} if additional_properties.nil?
54
+
55
+ @name = name unless name == SKIP
56
+ @code = code
57
+ @amount = amount
58
+ @currency_code = currency_code
59
+ @additional_properties = additional_properties
60
+ end
61
+
62
+ # Creates an instance of the object from a hash.
63
+ def self.from_hash(hash)
64
+ return nil unless hash
65
+
66
+ # Extract variables from the hash.
67
+ code = hash.key?('code') ? hash['code'] : nil
68
+ amount = hash.key?('amount') ? APIHelper.deserialize_union_type(
69
+ UnionTypeLookUp.get(:Taxis4Amount), hash['amount']
70
+ ) : nil
71
+ currency_code = hash.key?('currencyCode') ? hash['currencyCode'] : nil
72
+ name = hash.key?('name') ? hash['name'] : SKIP
73
+
74
+ # Create a new hash for additional properties, removing known properties.
75
+ new_hash = hash.reject { |k, _| names.value?(k) }
76
+
77
+ additional_properties = APIHelper.get_additional_properties(
78
+ new_hash, proc { |value| value }
79
+ )
80
+
81
+ # Create object from extracted values.
82
+ Taxis4.new(code: code,
83
+ amount: amount,
84
+ currency_code: currency_code,
85
+ name: name,
86
+ additional_properties: additional_properties)
87
+ end
88
+
89
+ # Validates an instance of the object from a given value.
90
+ # @param [Taxis4 | Hash] The value against the validation is performed.
91
+ def self.validate(value)
92
+ if value.instance_of? self
93
+ return (
94
+ APIHelper.valid_type?(value.code,
95
+ ->(val) { val.instance_of? String }) and
96
+ UnionTypeLookUp.get(:Taxis4Amount)
97
+ .validate(value.amount) and
98
+ APIHelper.valid_type?(value.currency_code,
99
+ ->(val) { val.instance_of? String })
100
+ )
101
+ end
102
+
103
+ return false unless value.instance_of? Hash
104
+
105
+ (
106
+ APIHelper.valid_type?(value['code'],
107
+ ->(val) { val.instance_of? String }) and
108
+ UnionTypeLookUp.get(:Taxis4Amount)
109
+ .validate(value['amount']) and
110
+ APIHelper.valid_type?(value['currencyCode'],
111
+ ->(val) { val.instance_of? String })
112
+ )
113
+ end
114
+
115
+ # Provides a human-readable string representation of the object.
116
+ def to_s
117
+ class_name = self.class.name.split('::').last
118
+ "<#{class_name} name: #{@name}, code: #{@code}, amount: #{@amount}, currency_code:"\
119
+ " #{@currency_code}, additional_properties: #{@additional_properties}>"
120
+ end
121
+
122
+ # Provides a debugging-friendly string with detailed object information.
123
+ def inspect
124
+ class_name = self.class.name.split('::').last
125
+ "<#{class_name} name: #{@name.inspect}, code: #{@code.inspect}, amount: #{@amount.inspect},"\
126
+ " currency_code: #{@currency_code.inspect}, additional_properties:"\
127
+ " #{@additional_properties}>"
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,334 @@
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
+ # Ticket Model.
8
+ class Ticket < 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
+ is_conjunctive
107
+ record_locator
108
+ ]
109
+ end
110
+
111
+ # An array for nullable fields
112
+ def self.nullables
113
+ []
114
+ end
115
+
116
+ def initialize(legs:, invoice_number:, validating_carrier:, ticket_status:,
117
+ calculated_ticket_status:, taxes:, ticket_number:,
118
+ issue_date_time:, booking_date_time:, fare:, payments:,
119
+ line_items:, booking_type:, passenger:, is_international:,
120
+ is_conjunctive: SKIP, record_locator: SKIP,
121
+ additional_properties: nil)
122
+ # Add additional model properties to the instance
123
+ additional_properties = {} if additional_properties.nil?
124
+
125
+ @legs = legs
126
+ @invoice_number = invoice_number
127
+ @is_conjunctive = is_conjunctive unless is_conjunctive == SKIP
128
+ @validating_carrier = validating_carrier
129
+ @ticket_status = ticket_status
130
+ @calculated_ticket_status = calculated_ticket_status
131
+ @taxes = taxes
132
+ @ticket_number = ticket_number
133
+ @record_locator = record_locator unless record_locator == SKIP
134
+ @issue_date_time = issue_date_time
135
+ @booking_date_time = booking_date_time
136
+ @fare = fare
137
+ @payments = payments
138
+ @line_items = line_items
139
+ @booking_type = booking_type
140
+ @passenger = passenger
141
+ @is_international = is_international
142
+ @additional_properties = additional_properties
143
+ end
144
+
145
+ # Creates an instance of the object from a hash.
146
+ def self.from_hash(hash)
147
+ return nil unless hash
148
+
149
+ # Extract variables from the hash.
150
+ legs = hash.key?('legs') ? APIHelper.deserialize_union_type(
151
+ UnionTypeLookUp.get(:TicketLegs), hash['legs']
152
+ ) : nil
153
+ invoice_number = hash.key?('invoiceNumber') ? hash['invoiceNumber'] : 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
+ is_conjunctive = hash.key?('isConjunctive') ? hash['isConjunctive'] : SKIP
190
+ record_locator = hash.key?('recordLocator') ? hash['recordLocator'] : SKIP
191
+
192
+ # Create a new hash for additional properties, removing known properties.
193
+ new_hash = hash.reject { |k, _| names.value?(k) }
194
+
195
+ additional_properties = APIHelper.get_additional_properties(
196
+ new_hash, proc { |value| value }
197
+ )
198
+
199
+ # Create object from extracted values.
200
+ Ticket.new(legs: legs,
201
+ invoice_number: invoice_number,
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
+ is_conjunctive: is_conjunctive,
216
+ record_locator: record_locator,
217
+ additional_properties: additional_properties)
218
+ end
219
+
220
+ # Validates an instance of the object from a given value.
221
+ # @param [Ticket | Hash] The value against the validation is performed.
222
+ def self.validate(value)
223
+ if value.instance_of? self
224
+ return (
225
+ UnionTypeLookUp.get(:TicketLegs)
226
+ .validate(value.legs) and
227
+ APIHelper.valid_type?(value.invoice_number,
228
+ ->(val) { val.instance_of? String }) and
229
+ APIHelper.valid_type?(value.validating_carrier,
230
+ ->(val) { val.instance_of? String }) and
231
+ APIHelper.valid_type?(value.ticket_status,
232
+ ->(val) { val.instance_of? String }) and
233
+ APIHelper.valid_type?(value.calculated_ticket_status,
234
+ ->(val) { val.instance_of? String }) and
235
+ APIHelper.valid_type?(value.taxes,
236
+ ->(val) { Taxis1.validate(val) },
237
+ is_model_hash: true,
238
+ is_inner_model_hash: true) and
239
+ APIHelper.valid_type?(value.ticket_number,
240
+ ->(val) { val.instance_of? String }) and
241
+ APIHelper.valid_type?(value.issue_date_time,
242
+ ->(val) { val.instance_of? String }) and
243
+ APIHelper.valid_type?(value.booking_date_time,
244
+ ->(val) { val.instance_of? String }) and
245
+ APIHelper.valid_type?(value.fare,
246
+ ->(val) { Fare.validate(val) },
247
+ is_model_hash: true) and
248
+ APIHelper.valid_type?(value.payments,
249
+ ->(val) { Payment1.validate(val) },
250
+ is_model_hash: true,
251
+ is_inner_model_hash: true) and
252
+ APIHelper.valid_type?(value.line_items,
253
+ ->(val) { val.instance_of? String }) and
254
+ APIHelper.valid_type?(value.booking_type,
255
+ ->(val) { val.instance_of? String }) and
256
+ APIHelper.valid_type?(value.passenger,
257
+ ->(val) { Passenger.validate(val) },
258
+ is_model_hash: true) and
259
+ APIHelper.valid_type?(value.is_international,
260
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass })
261
+ )
262
+ end
263
+
264
+ return false unless value.instance_of? Hash
265
+
266
+ (
267
+ UnionTypeLookUp.get(:TicketLegs)
268
+ .validate(value['legs']) and
269
+ APIHelper.valid_type?(value['invoiceNumber'],
270
+ ->(val) { val.instance_of? String }) and
271
+ APIHelper.valid_type?(value['validatingCarrier'],
272
+ ->(val) { val.instance_of? String }) and
273
+ APIHelper.valid_type?(value['ticketStatus'],
274
+ ->(val) { val.instance_of? String }) and
275
+ APIHelper.valid_type?(value['calculatedTicketStatus'],
276
+ ->(val) { val.instance_of? String }) and
277
+ APIHelper.valid_type?(value['taxes'],
278
+ ->(val) { Taxis1.validate(val) },
279
+ is_model_hash: true,
280
+ is_inner_model_hash: true) and
281
+ APIHelper.valid_type?(value['ticketNumber'],
282
+ ->(val) { val.instance_of? String }) and
283
+ APIHelper.valid_type?(value['issueDateTime'],
284
+ ->(val) { val.instance_of? String }) and
285
+ APIHelper.valid_type?(value['bookingDateTime'],
286
+ ->(val) { val.instance_of? String }) and
287
+ APIHelper.valid_type?(value['fare'],
288
+ ->(val) { Fare.validate(val) },
289
+ is_model_hash: true) and
290
+ APIHelper.valid_type?(value['payments'],
291
+ ->(val) { Payment1.validate(val) },
292
+ is_model_hash: true,
293
+ is_inner_model_hash: true) and
294
+ APIHelper.valid_type?(value['lineItems'],
295
+ ->(val) { val.instance_of? String }) and
296
+ APIHelper.valid_type?(value['bookingType'],
297
+ ->(val) { val.instance_of? String }) and
298
+ APIHelper.valid_type?(value['passenger'],
299
+ ->(val) { Passenger.validate(val) },
300
+ is_model_hash: true) and
301
+ APIHelper.valid_type?(value['isInternational'],
302
+ ->(val) { val.instance_of? TrueClass or val.instance_of? FalseClass })
303
+ )
304
+ end
305
+
306
+ # Provides a human-readable string representation of the object.
307
+ def to_s
308
+ class_name = self.class.name.split('::').last
309
+ "<#{class_name} legs: #{@legs}, invoice_number: #{@invoice_number}, is_conjunctive:"\
310
+ " #{@is_conjunctive}, validating_carrier: #{@validating_carrier}, ticket_status:"\
311
+ " #{@ticket_status}, calculated_ticket_status: #{@calculated_ticket_status}, taxes:"\
312
+ " #{@taxes}, ticket_number: #{@ticket_number}, record_locator: #{@record_locator},"\
313
+ " issue_date_time: #{@issue_date_time}, booking_date_time: #{@booking_date_time}, fare:"\
314
+ " #{@fare}, payments: #{@payments}, line_items: #{@line_items}, booking_type:"\
315
+ " #{@booking_type}, passenger: #{@passenger}, is_international: #{@is_international},"\
316
+ " additional_properties: #{@additional_properties}>"
317
+ end
318
+
319
+ # Provides a debugging-friendly string with detailed object information.
320
+ def inspect
321
+ class_name = self.class.name.split('::').last
322
+ "<#{class_name} legs: #{@legs.inspect}, invoice_number: #{@invoice_number.inspect},"\
323
+ " is_conjunctive: #{@is_conjunctive.inspect}, validating_carrier:"\
324
+ " #{@validating_carrier.inspect}, ticket_status: #{@ticket_status.inspect},"\
325
+ " calculated_ticket_status: #{@calculated_ticket_status.inspect}, taxes: #{@taxes.inspect},"\
326
+ " ticket_number: #{@ticket_number.inspect}, record_locator: #{@record_locator.inspect},"\
327
+ " issue_date_time: #{@issue_date_time.inspect}, booking_date_time:"\
328
+ " #{@booking_date_time.inspect}, fare: #{@fare.inspect}, payments: #{@payments.inspect},"\
329
+ " line_items: #{@line_items.inspect}, booking_type: #{@booking_type.inspect}, passenger:"\
330
+ " #{@passenger.inspect}, is_international: #{@is_international.inspect},"\
331
+ " additional_properties: #{@additional_properties}>"
332
+ end
333
+ end
334
+ 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
+ # Ticket1 Model.
8
+ class Ticket1 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Array[Leg2]]
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 << (Leg2.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
+ Ticket1.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