apimatic-cp-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 (271) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +178 -0
  4. data/bin/console +15 -0
  5. data/lib/cell_point_api/api_helper.rb +10 -0
  6. data/lib/cell_point_api/apis/apple_pay_api.rb +51 -0
  7. data/lib/cell_point_api/apis/authentication_api.rb +81 -0
  8. data/lib/cell_point_api/apis/base_api.rb +67 -0
  9. data/lib/cell_point_api/apis/bulk_api.rb +93 -0
  10. data/lib/cell_point_api/apis/cards_api.rb +104 -0
  11. data/lib/cell_point_api/apis/notes_api.rb +66 -0
  12. data/lib/cell_point_api/apis/oauth_authorization_api.rb +44 -0
  13. data/lib/cell_point_api/apis/orders_api.rb +483 -0
  14. data/lib/cell_point_api/apis/payment_methods_api.rb +57 -0
  15. data/lib/cell_point_api/apis/proxy_api.rb +91 -0
  16. data/lib/cell_point_api/apis/transactions_api.rb +546 -0
  17. data/lib/cell_point_api/apis/wallet_api.rb +39 -0
  18. data/lib/cell_point_api/client.rb +145 -0
  19. data/lib/cell_point_api/configuration.rb +180 -0
  20. data/lib/cell_point_api/events/callbacks/callbacks_handler.rb +37 -0
  21. data/lib/cell_point_api/events/unknown_event.rb +32 -0
  22. data/lib/cell_point_api/exceptions/api_exception.rb +21 -0
  23. data/lib/cell_point_api/exceptions/oauth_provider_exception.rb +64 -0
  24. data/lib/cell_point_api/exceptions/problem_exception.rb +75 -0
  25. data/lib/cell_point_api/http/api_response.rb +19 -0
  26. data/lib/cell_point_api/http/auth/cpd_issued_jwt.rb +156 -0
  27. data/lib/cell_point_api/http/auth/merchant_issued_jwt.rb +53 -0
  28. data/lib/cell_point_api/http/http_call_back.rb +10 -0
  29. data/lib/cell_point_api/http/http_method_enum.rb +10 -0
  30. data/lib/cell_point_api/http/http_request.rb +10 -0
  31. data/lib/cell_point_api/http/http_response.rb +10 -0
  32. data/lib/cell_point_api/http/proxy_settings.rb +22 -0
  33. data/lib/cell_point_api/logging/configuration/api_logging_configuration.rb +186 -0
  34. data/lib/cell_point_api/logging/sdk_logger.rb +17 -0
  35. data/lib/cell_point_api/models/account.rb +168 -0
  36. data/lib/cell_point_api/models/account_status.rb +52 -0
  37. data/lib/cell_point_api/models/account_type.rb +44 -0
  38. data/lib/cell_point_api/models/action_base.rb +74 -0
  39. data/lib/cell_point_api/models/action_completion_response.rb +77 -0
  40. data/lib/cell_point_api/models/action_result_status.rb +40 -0
  41. data/lib/cell_point_api/models/action_type.rb +36 -0
  42. data/lib/cell_point_api/models/activity.rb +244 -0
  43. data/lib/cell_point_api/models/activity_data.rb +127 -0
  44. data/lib/cell_point_api/models/address_verification_status.rb +56 -0
  45. data/lib/cell_point_api/models/airline_ancillary.rb +244 -0
  46. data/lib/cell_point_api/models/airline_ancillary_data.rb +120 -0
  47. data/lib/cell_point_api/models/airline_fare.rb +348 -0
  48. data/lib/cell_point_api/models/airline_fare_data.rb +217 -0
  49. data/lib/cell_point_api/models/airline_industry_data.rb +152 -0
  50. data/lib/cell_point_api/models/airport.rb +144 -0
  51. data/lib/cell_point_api/models/amount.rb +105 -0
  52. data/lib/cell_point_api/models/ancillary_details.rb +366 -0
  53. data/lib/cell_point_api/models/apple_pay_config.rb +83 -0
  54. data/lib/cell_point_api/models/apple_pay_instrument_apple_pay_node.rb +119 -0
  55. data/lib/cell_point_api/models/apple_pay_payment_instrument.rb +123 -0
  56. data/lib/cell_point_api/models/apple_tokenized_token.rb +143 -0
  57. data/lib/cell_point_api/models/audience.rb +36 -0
  58. data/lib/cell_point_api/models/authorization.rb +145 -0
  59. data/lib/cell_point_api/models/authorization_group.rb +99 -0
  60. data/lib/cell_point_api/models/authorization_group1.rb +216 -0
  61. data/lib/cell_point_api/models/authorization_group_full.rb +193 -0
  62. data/lib/cell_point_api/models/authorize_order_by_id_post201_response.rb +128 -0
  63. data/lib/cell_point_api/models/auto_rental.rb +195 -0
  64. data/lib/cell_point_api/models/auto_rental_data.rb +76 -0
  65. data/lib/cell_point_api/models/auto_rental_industry_data.rb +182 -0
  66. data/lib/cell_point_api/models/base_model.rb +110 -0
  67. data/lib/cell_point_api/models/bin.rb +73 -0
  68. data/lib/cell_point_api/models/breadcrumb.rb +86 -0
  69. data/lib/cell_point_api/models/browser_info.rb +114 -0
  70. data/lib/cell_point_api/models/bundle.rb +195 -0
  71. data/lib/cell_point_api/models/bundled_activity.rb +229 -0
  72. data/lib/cell_point_api/models/bundled_airline_ancillary.rb +226 -0
  73. data/lib/cell_point_api/models/bundled_airline_fare.rb +330 -0
  74. data/lib/cell_point_api/models/bundled_auto_rental.rb +176 -0
  75. data/lib/cell_point_api/models/bundled_discount.rb +132 -0
  76. data/lib/cell_point_api/models/bundled_item_base.rb +123 -0
  77. data/lib/cell_point_api/models/bundled_lodging_reservation.rb +176 -0
  78. data/lib/cell_point_api/models/bundled_product.rb +161 -0
  79. data/lib/cell_point_api/models/buyer.rb +129 -0
  80. data/lib/cell_point_api/models/buyer_fingerprint.rb +125 -0
  81. data/lib/cell_point_api/models/buyer_history.rb +199 -0
  82. data/lib/cell_point_api/models/cancel.rb +109 -0
  83. data/lib/cell_point_api/models/cancelled_payment_transactions.rb +84 -0
  84. data/lib/cell_point_api/models/capabilities.rb +77 -0
  85. data/lib/cell_point_api/models/capture.rb +84 -0
  86. data/lib/cell_point_api/models/capture_payment_response.rb +159 -0
  87. data/lib/cell_point_api/models/card.rb +131 -0
  88. data/lib/cell_point_api/models/card_config.rb +105 -0
  89. data/lib/cell_point_api/models/card_identification.rb +126 -0
  90. data/lib/cell_point_api/models/card_instrument_card_node.rb +232 -0
  91. data/lib/cell_point_api/models/card_number.rb +122 -0
  92. data/lib/cell_point_api/models/card_payment_instrument.rb +136 -0
  93. data/lib/cell_point_api/models/card_scheme.rb +63 -0
  94. data/lib/cell_point_api/models/card_scheme_configuration.rb +87 -0
  95. data/lib/cell_point_api/models/carrier.rb +82 -0
  96. data/lib/cell_point_api/models/category.rb +36 -0
  97. data/lib/cell_point_api/models/client_assertion.rb +135 -0
  98. data/lib/cell_point_api/models/close.rb +89 -0
  99. data/lib/cell_point_api/models/close_refund_response.rb +73 -0
  100. data/lib/cell_point_api/models/closed_payment_transactions.rb +83 -0
  101. data/lib/cell_point_api/models/codeshare.rb +87 -0
  102. data/lib/cell_point_api/models/complete_person_name.rb +120 -0
  103. data/lib/cell_point_api/models/completion_redirect.rb +93 -0
  104. data/lib/cell_point_api/models/configuration.rb +86 -0
  105. data/lib/cell_point_api/models/contact_data.rb +82 -0
  106. data/lib/cell_point_api/models/cpu.rb +74 -0
  107. data/lib/cell_point_api/models/device_os.rb +60 -0
  108. data/lib/cell_point_api/models/discount.rb +150 -0
  109. data/lib/cell_point_api/models/discount_data.rb +83 -0
  110. data/lib/cell_point_api/models/driver.rb +86 -0
  111. data/lib/cell_point_api/models/external_transaction.rb +227 -0
  112. data/lib/cell_point_api/models/externally_tokenized_card.rb +81 -0
  113. data/lib/cell_point_api/models/failover.rb +105 -0
  114. data/lib/cell_point_api/models/failure_category.rb +62 -0
  115. data/lib/cell_point_api/models/failure_module.rb +58 -0
  116. data/lib/cell_point_api/models/fingerprint.rb +82 -0
  117. data/lib/cell_point_api/models/fraud_assessment.rb +163 -0
  118. data/lib/cell_point_api/models/fulfilled_activity.rb +207 -0
  119. data/lib/cell_point_api/models/fulfilled_airline_ancillary.rb +207 -0
  120. data/lib/cell_point_api/models/fulfilled_airline_fare.rb +207 -0
  121. data/lib/cell_point_api/models/fulfilled_auto_rental.rb +207 -0
  122. data/lib/cell_point_api/models/fulfilled_bundle.rb +207 -0
  123. data/lib/cell_point_api/models/fulfilled_discount.rb +178 -0
  124. data/lib/cell_point_api/models/fulfilled_line_item_base.rb +177 -0
  125. data/lib/cell_point_api/models/fulfilled_lodging_reservation.rb +207 -0
  126. data/lib/cell_point_api/models/fulfilled_order.rb +148 -0
  127. data/lib/cell_point_api/models/fulfilled_product.rb +207 -0
  128. data/lib/cell_point_api/models/fulfilled_tax_line.rb +162 -0
  129. data/lib/cell_point_api/models/fulfillment_data.rb +90 -0
  130. data/lib/cell_point_api/models/fulfillment_status.rb +41 -0
  131. data/lib/cell_point_api/models/funding_type.rb +40 -0
  132. data/lib/cell_point_api/models/gender.rb +40 -0
  133. data/lib/cell_point_api/models/hpp_data.rb +155 -0
  134. data/lib/cell_point_api/models/identifying_document.rb +159 -0
  135. data/lib/cell_point_api/models/identifying_document_type.rb +60 -0
  136. data/lib/cell_point_api/models/industry_data.rb +124 -0
  137. data/lib/cell_point_api/models/informational_price_row.rb +97 -0
  138. data/lib/cell_point_api/models/informational_price_section.rb +104 -0
  139. data/lib/cell_point_api/models/itinerary_type.rb +47 -0
  140. data/lib/cell_point_api/models/journey_segment.rb +83 -0
  141. data/lib/cell_point_api/models/line_item_base.rb +101 -0
  142. data/lib/cell_point_api/models/line_item_type.rb +60 -0
  143. data/lib/cell_point_api/models/links.rb +86 -0
  144. data/lib/cell_point_api/models/location.rb +153 -0
  145. data/lib/cell_point_api/models/lodging_industry_data.rb +216 -0
  146. data/lib/cell_point_api/models/lodging_reservation.rb +195 -0
  147. data/lib/cell_point_api/models/lodging_reservation_data.rb +76 -0
  148. data/lib/cell_point_api/models/loyalty_account.rb +103 -0
  149. data/lib/cell_point_api/models/network_info.rb +76 -0
  150. data/lib/cell_point_api/models/non_negative_amount.rb +105 -0
  151. data/lib/cell_point_api/models/non_positive_amount.rb +105 -0
  152. data/lib/cell_point_api/models/note.rb +139 -0
  153. data/lib/cell_point_api/models/note_request.rb +90 -0
  154. data/lib/cell_point_api/models/oauth_provider_error.rb +62 -0
  155. data/lib/cell_point_api/models/oauth_scope_cpd_issued_jwt.rb +158 -0
  156. data/lib/cell_point_api/models/oauth_token.rb +96 -0
  157. data/lib/cell_point_api/models/order.rb +414 -0
  158. data/lib/cell_point_api/models/order_canceled_reason.rb +56 -0
  159. data/lib/cell_point_api/models/order_core.rb +343 -0
  160. data/lib/cell_point_api/models/order_extended.rb +150 -0
  161. data/lib/cell_point_api/models/order_payment_summary.rb +117 -0
  162. data/lib/cell_point_api/models/order_status.rb +161 -0
  163. data/lib/cell_point_api/models/order_status_type.rb +58 -0
  164. data/lib/cell_point_api/models/order_transactions.rb +88 -0
  165. data/lib/cell_point_api/models/owner.rb +131 -0
  166. data/lib/cell_point_api/models/page_type.rb +26 -0
  167. data/lib/cell_point_api/models/passenger.rb +229 -0
  168. data/lib/cell_point_api/models/password_change_type.rb +41 -0
  169. data/lib/cell_point_api/models/pay_pal_action.rb +129 -0
  170. data/lib/cell_point_api/models/pay_pal_payment_instrument.rb +88 -0
  171. data/lib/cell_point_api/models/payment_data.rb +102 -0
  172. data/lib/cell_point_api/models/payment_data_header.rb +94 -0
  173. data/lib/cell_point_api/models/payment_data_version.rb +26 -0
  174. data/lib/cell_point_api/models/payment_field.rb +68 -0
  175. data/lib/cell_point_api/models/payment_instrument_base.rb +87 -0
  176. data/lib/cell_point_api/models/payment_method.rb +52 -0
  177. data/lib/cell_point_api/models/payment_methods_for_order_get200_response.rb +157 -0
  178. data/lib/cell_point_api/models/payment_methods_search_vouchers_post200_response.rb +82 -0
  179. data/lib/cell_point_api/models/payment_processor.rb +121 -0
  180. data/lib/cell_point_api/models/payment_status.rb +122 -0
  181. data/lib/cell_point_api/models/payment_transaction.rb +605 -0
  182. data/lib/cell_point_api/models/payment_transaction_authorized_amount.rb +105 -0
  183. data/lib/cell_point_api/models/payment_transaction_canceled_amount.rb +105 -0
  184. data/lib/cell_point_api/models/payment_transaction_captured_amount.rb +105 -0
  185. data/lib/cell_point_api/models/payment_transaction_pending_authorize_amount.rb +106 -0
  186. data/lib/cell_point_api/models/payment_transaction_pending_cancel_amount.rb +106 -0
  187. data/lib/cell_point_api/models/payment_transaction_pending_capture_amount.rb +106 -0
  188. data/lib/cell_point_api/models/payment_transaction_processing_fee.rb +106 -0
  189. data/lib/cell_point_api/models/payment_transaction_refunded_amount.rb +105 -0
  190. data/lib/cell_point_api/models/payments_v1_bulks_response.rb +74 -0
  191. data/lib/cell_point_api/models/payments_v1_orders_payments_retry_failed_refunds_request.rb +74 -0
  192. data/lib/cell_point_api/models/payments_v1_refunds_closures_request.rb +74 -0
  193. data/lib/cell_point_api/models/payments_v1_refunds_retry_failed_refunds_request.rb +74 -0
  194. data/lib/cell_point_api/models/payments_v1_schemes_response.rb +76 -0
  195. data/lib/cell_point_api/models/paypal_config.rb +94 -0
  196. data/lib/cell_point_api/models/person.rb +161 -0
  197. data/lib/cell_point_api/models/person_name.rb +89 -0
  198. data/lib/cell_point_api/models/phone.rb +132 -0
  199. data/lib/cell_point_api/models/pk_payment_method.rb +111 -0
  200. data/lib/cell_point_api/models/pk_payment_token.rb +94 -0
  201. data/lib/cell_point_api/models/postal_address.rb +217 -0
  202. data/lib/cell_point_api/models/price_summary.rb +191 -0
  203. data/lib/cell_point_api/models/product.rb +179 -0
  204. data/lib/cell_point_api/models/product_data.rb +104 -0
  205. data/lib/cell_point_api/models/property.rb +110 -0
  206. data/lib/cell_point_api/models/provider.rb +129 -0
  207. data/lib/cell_point_api/models/psp.rb +26 -0
  208. data/lib/cell_point_api/models/redirect_action.rb +116 -0
  209. data/lib/cell_point_api/models/refund_item.rb +310 -0
  210. data/lib/cell_point_api/models/refund_method.rb +36 -0
  211. data/lib/cell_point_api/models/refund_order_group_post201_response.rb +91 -0
  212. data/lib/cell_point_api/models/refund_reason.rb +104 -0
  213. data/lib/cell_point_api/models/refund_request.rb +161 -0
  214. data/lib/cell_point_api/models/refund_status.rb +44 -0
  215. data/lib/cell_point_api/models/refund_transaction.rb +311 -0
  216. data/lib/cell_point_api/models/refund_transaction_amount.rb +105 -0
  217. data/lib/cell_point_api/models/refund_type.rb +38 -0
  218. data/lib/cell_point_api/models/related_payment.rb +106 -0
  219. data/lib/cell_point_api/models/related_refund.rb +106 -0
  220. data/lib/cell_point_api/models/rental_location.rb +226 -0
  221. data/lib/cell_point_api/models/retry_refund_response.rb +73 -0
  222. data/lib/cell_point_api/models/reward.rb +101 -0
  223. data/lib/cell_point_api/models/room.rb +100 -0
  224. data/lib/cell_point_api/models/sales_channel.rb +36 -0
  225. data/lib/cell_point_api/models/save_pk_payment_token_request.rb +83 -0
  226. data/lib/cell_point_api/models/save_wallet_payment_token_request.rb +83 -0
  227. data/lib/cell_point_api/models/screen.rb +97 -0
  228. data/lib/cell_point_api/models/search_vouchers_request.rb +119 -0
  229. data/lib/cell_point_api/models/security_code.rb +83 -0
  230. data/lib/cell_point_api/models/security_code_match_status.rb +50 -0
  231. data/lib/cell_point_api/models/status.rb +43 -0
  232. data/lib/cell_point_api/models/status1.rb +52 -0
  233. data/lib/cell_point_api/models/summary.rb +82 -0
  234. data/lib/cell_point_api/models/tax.rb +134 -0
  235. data/lib/cell_point_api/models/taxes_and_fees_breakdown_page.rb +82 -0
  236. data/lib/cell_point_api/models/token_post200_response.rb +96 -0
  237. data/lib/cell_point_api/models/tokenized_card.rb +229 -0
  238. data/lib/cell_point_api/models/tokenized_card_with_contact_data.rb +247 -0
  239. data/lib/cell_point_api/models/tokenized_data.rb +169 -0
  240. data/lib/cell_point_api/models/total_row.rb +83 -0
  241. data/lib/cell_point_api/models/transaction_action.rb +108 -0
  242. data/lib/cell_point_api/models/transaction_action_result.rb +94 -0
  243. data/lib/cell_point_api/models/transaction_base.rb +132 -0
  244. data/lib/cell_point_api/models/transaction_failure.rb +222 -0
  245. data/lib/cell_point_api/models/travel_journey.rb +139 -0
  246. data/lib/cell_point_api/models/travel_leg.rb +194 -0
  247. data/lib/cell_point_api/models/trigger_bulk_request.rb +83 -0
  248. data/lib/cell_point_api/models/type.rb +67 -0
  249. data/lib/cell_point_api/models/type1.rb +47 -0
  250. data/lib/cell_point_api/models/type2.rb +40 -0
  251. data/lib/cell_point_api/models/type3.rb +41 -0
  252. data/lib/cell_point_api/models/type4.rb +56 -0
  253. data/lib/cell_point_api/models/type5.rb +78 -0
  254. data/lib/cell_point_api/models/uplift_config.rb +73 -0
  255. data/lib/cell_point_api/models/uplift_payment_instrument.rb +102 -0
  256. data/lib/cell_point_api/models/vehicle.rb +139 -0
  257. data/lib/cell_point_api/models/voucher_config.rb +92 -0
  258. data/lib/cell_point_api/models/voucher_issuer.rb +26 -0
  259. data/lib/cell_point_api/models/voucher_payment_instrument.rb +233 -0
  260. data/lib/cell_point_api/models/voucher_payment_instrument_node.rb +198 -0
  261. data/lib/cell_point_api/models/voucher_type.rb +36 -0
  262. data/lib/cell_point_api/models/wallet_instrument_wallet_node.rb +136 -0
  263. data/lib/cell_point_api/models/wallet_payment_instrument.rb +123 -0
  264. data/lib/cell_point_api/models/wallet_tokenized_token.rb +148 -0
  265. data/lib/cell_point_api/models/wallet_tokenized_token_identification.rb +75 -0
  266. data/lib/cell_point_api/models/wallet_type.rb +36 -0
  267. data/lib/cell_point_api/utilities/date_time_helper.rb +11 -0
  268. data/lib/cell_point_api/utilities/file_wrapper.rb +28 -0
  269. data/lib/cell_point_api/utilities/union_type_lookup.rb +260 -0
  270. data/lib/cell_point_api.rb +301 -0
  271. metadata +354 -0
@@ -0,0 +1,207 @@
1
+ # cell_point_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CellPointApi
7
+ # Fulfilled lodging reservation.
8
+ class FulfilledLodgingReservation < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Discriminator used to identify the type of line item.
13
+ # @return [String]
14
+ attr_reader :type
15
+
16
+ # Result of the fulfillment.
17
+ # On `PARTIAL`, the amount that was fulfilled must be specified.
18
+ # @return [FulfillmentStatus]
19
+ attr_accessor :fulfillment_status
20
+
21
+ # Conditional property that should be sent if `fulfillmentStatus` is
22
+ # `PARTIAL`.
23
+ # `fulfilledPrice` must be less than or equal to original `price`.
24
+ # @return [Amount]
25
+ attr_accessor :fulfilled_price
26
+
27
+ # What should be shown as the title of the line item on a receipt or billing
28
+ # summary.
29
+ # @return [String]
30
+ attr_accessor :title
31
+
32
+ # AuthorizationGroup that the line item should be part of for splitting
33
+ # authorizations for Aggregate Payments Payments.
34
+ # If this is set, there must be a matching AuthorizationGroup created in the
35
+ # PriceSummary.
36
+ # > NOTE: Items within a Bundle should not have an `authorizationGroupId`,
37
+ # they will use the same `authorizationGroupId` as the top-level bundle.
38
+ # @return [String]
39
+ attr_accessor :authorization_group_id
40
+
41
+ # Stock Keeping Unit (SKU) is a product and service identification code for
42
+ # a specific product.
43
+ # @return [String]
44
+ attr_accessor :sku
45
+
46
+ # Stock Keeping Unit (SKU) is a product and service identification code for
47
+ # a specific product.
48
+ # @return [Integer]
49
+ attr_accessor :quantity
50
+
51
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
52
+ # @return [NonNegativeAmount]
53
+ attr_accessor :unit_price
54
+
55
+ # Total Price for the line item. Should be equal to `unitPrice` *
56
+ # `quantity`, if `unitPrice` is specified.
57
+ # @return [NonNegativeAmount]
58
+ attr_accessor :total_price
59
+
60
+ # A mapping from model property names to API property names.
61
+ def self.names
62
+ @_hash = {} if @_hash.nil?
63
+ @_hash['type'] = 'type'
64
+ @_hash['fulfillment_status'] = 'fulfillmentStatus'
65
+ @_hash['fulfilled_price'] = 'fulfilledPrice'
66
+ @_hash['title'] = 'title'
67
+ @_hash['authorization_group_id'] = 'authorizationGroupId'
68
+ @_hash['sku'] = 'sku'
69
+ @_hash['quantity'] = 'quantity'
70
+ @_hash['unit_price'] = 'unitPrice'
71
+ @_hash['total_price'] = 'totalPrice'
72
+ @_hash
73
+ end
74
+
75
+ # An array for optional fields
76
+ def self.optionals
77
+ %w[
78
+ fulfilled_price
79
+ authorization_group_id
80
+ ]
81
+ end
82
+
83
+ # An array for nullable fields
84
+ def self.nullables
85
+ []
86
+ end
87
+
88
+ def initialize(fulfillment_status:, title:, sku:, quantity: 1, unit_price:,
89
+ total_price:, fulfilled_price: SKIP,
90
+ authorization_group_id: SKIP, additional_properties: nil)
91
+ # Add additional model properties to the instance
92
+ additional_properties = {} if additional_properties.nil?
93
+
94
+ @type = 'LODGING_RESERVATION'
95
+ @fulfillment_status = fulfillment_status
96
+ @fulfilled_price = fulfilled_price unless fulfilled_price == SKIP
97
+ @title = title
98
+ @authorization_group_id = authorization_group_id unless authorization_group_id == SKIP
99
+ @sku = sku
100
+ @quantity = quantity
101
+ @unit_price = unit_price
102
+ @total_price = total_price
103
+ @additional_properties = additional_properties
104
+ end
105
+
106
+ # Creates an instance of the object from a hash.
107
+ def self.from_hash(hash)
108
+ return nil unless hash
109
+
110
+ # Extract variables from the hash.
111
+ fulfillment_status =
112
+ hash.key?('fulfillmentStatus') ? hash['fulfillmentStatus'] : nil
113
+ title = hash.key?('title') ? hash['title'] : nil
114
+ sku = hash.key?('sku') ? hash['sku'] : nil
115
+ quantity = hash['quantity'] ||= 1
116
+ unit_price = NonNegativeAmount.from_hash(hash['unitPrice']) if hash['unitPrice']
117
+ total_price = NonNegativeAmount.from_hash(hash['totalPrice']) if hash['totalPrice']
118
+ fulfilled_price = Amount.from_hash(hash['fulfilledPrice']) if hash['fulfilledPrice']
119
+ authorization_group_id =
120
+ hash.key?('authorizationGroupId') ? hash['authorizationGroupId'] : SKIP
121
+
122
+ # Create a new hash for additional properties, removing known properties.
123
+ new_hash = hash.reject { |k, _| names.value?(k) }
124
+
125
+ additional_properties = APIHelper.get_additional_properties(
126
+ new_hash, proc { |value| value }
127
+ )
128
+
129
+ # Create object from extracted values.
130
+ FulfilledLodgingReservation.new(fulfillment_status: fulfillment_status,
131
+ title: title,
132
+ sku: sku,
133
+ quantity: quantity,
134
+ unit_price: unit_price,
135
+ total_price: total_price,
136
+ fulfilled_price: fulfilled_price,
137
+ authorization_group_id: authorization_group_id,
138
+ additional_properties: additional_properties)
139
+ end
140
+
141
+ # Validates an instance of the object from a given value.
142
+ # @param [FulfilledLodgingReservation | Hash] The value against the validation is performed.
143
+ def self.validate(value)
144
+ if value.instance_of? self
145
+ return (
146
+ APIHelper.valid_type?(value.type,
147
+ ->(val) { val.instance_of? String }) and
148
+ APIHelper.valid_type?(value.fulfillment_status,
149
+ ->(val) { FulfillmentStatus.validate(val) }) and
150
+ APIHelper.valid_type?(value.title,
151
+ ->(val) { val.instance_of? String }) and
152
+ APIHelper.valid_type?(value.sku,
153
+ ->(val) { val.instance_of? String }) and
154
+ APIHelper.valid_type?(value.quantity,
155
+ ->(val) { val.instance_of? Integer }) and
156
+ APIHelper.valid_type?(value.unit_price,
157
+ ->(val) { NonNegativeAmount.validate(val) },
158
+ is_model_hash: true) and
159
+ APIHelper.valid_type?(value.total_price,
160
+ ->(val) { NonNegativeAmount.validate(val) },
161
+ is_model_hash: true)
162
+ )
163
+ end
164
+
165
+ return false unless value.instance_of? Hash
166
+
167
+ (
168
+ APIHelper.valid_type?(value['type'],
169
+ ->(val) { val.instance_of? String }) and
170
+ APIHelper.valid_type?(value['fulfillmentStatus'],
171
+ ->(val) { FulfillmentStatus.validate(val) }) and
172
+ APIHelper.valid_type?(value['title'],
173
+ ->(val) { val.instance_of? String }) and
174
+ APIHelper.valid_type?(value['sku'],
175
+ ->(val) { val.instance_of? String }) and
176
+ APIHelper.valid_type?(value['quantity'],
177
+ ->(val) { val.instance_of? Integer }) and
178
+ APIHelper.valid_type?(value['unitPrice'],
179
+ ->(val) { NonNegativeAmount.validate(val) },
180
+ is_model_hash: true) and
181
+ APIHelper.valid_type?(value['totalPrice'],
182
+ ->(val) { NonNegativeAmount.validate(val) },
183
+ is_model_hash: true)
184
+ )
185
+ end
186
+
187
+ # Provides a human-readable string representation of the object.
188
+ def to_s
189
+ class_name = self.class.name.split('::').last
190
+ "<#{class_name} type: #{@type}, fulfillment_status: #{@fulfillment_status},"\
191
+ " fulfilled_price: #{@fulfilled_price}, title: #{@title}, authorization_group_id:"\
192
+ " #{@authorization_group_id}, sku: #{@sku}, quantity: #{@quantity}, unit_price:"\
193
+ " #{@unit_price}, total_price: #{@total_price}, additional_properties:"\
194
+ " #{@additional_properties}>"
195
+ end
196
+
197
+ # Provides a debugging-friendly string with detailed object information.
198
+ def inspect
199
+ class_name = self.class.name.split('::').last
200
+ "<#{class_name} type: #{@type.inspect}, fulfillment_status: #{@fulfillment_status.inspect},"\
201
+ " fulfilled_price: #{@fulfilled_price.inspect}, title: #{@title.inspect},"\
202
+ " authorization_group_id: #{@authorization_group_id.inspect}, sku: #{@sku.inspect},"\
203
+ " quantity: #{@quantity.inspect}, unit_price: #{@unit_price.inspect}, total_price:"\
204
+ " #{@total_price.inspect}, additional_properties: #{@additional_properties}>"
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,148 @@
1
+ # cell_point_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CellPointApi
7
+ # Contains the result of the order being fulfilled on the merchant's side.
8
+ # Includes information on what was fulfilled and unfulfilled so CPD can
9
+ # appropriately capture or cancel payments.
10
+ class FulfilledOrder < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Result of the fulfillment.
15
+ # On `PARTIAL`, the amount that was fulfilled must be specified.
16
+ # @return [FulfillmentStatus]
17
+ attr_accessor :fulfillment_status
18
+
19
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
20
+ # @return [NonNegativeAmount]
21
+ attr_accessor :fulfilled_order_amount
22
+
23
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
24
+ # @return [NonNegativeAmount]
25
+ attr_accessor :unfulfilled_order_amount
26
+
27
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
28
+ # @return [Array[FulfilledTaxLine]]
29
+ attr_accessor :tax_lines
30
+
31
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
32
+ # @return [Array[Object]]
33
+ attr_accessor :line_items
34
+
35
+ # A mapping from model property names to API property names.
36
+ def self.names
37
+ @_hash = {} if @_hash.nil?
38
+ @_hash['fulfillment_status'] = 'fulfillmentStatus'
39
+ @_hash['fulfilled_order_amount'] = 'fulfilledOrderAmount'
40
+ @_hash['unfulfilled_order_amount'] = 'unfulfilledOrderAmount'
41
+ @_hash['tax_lines'] = 'taxLines'
42
+ @_hash['line_items'] = 'lineItems'
43
+ @_hash
44
+ end
45
+
46
+ # An array for optional fields
47
+ def self.optionals
48
+ %w[
49
+ fulfilled_order_amount
50
+ unfulfilled_order_amount
51
+ tax_lines
52
+ line_items
53
+ ]
54
+ end
55
+
56
+ # An array for nullable fields
57
+ def self.nullables
58
+ []
59
+ end
60
+
61
+ def initialize(fulfillment_status:, fulfilled_order_amount: SKIP,
62
+ unfulfilled_order_amount: SKIP, tax_lines: SKIP,
63
+ line_items: SKIP, additional_properties: nil)
64
+ # Add additional model properties to the instance
65
+ additional_properties = {} if additional_properties.nil?
66
+
67
+ @fulfillment_status = fulfillment_status
68
+ @fulfilled_order_amount = fulfilled_order_amount unless fulfilled_order_amount == SKIP
69
+ @unfulfilled_order_amount = unfulfilled_order_amount unless unfulfilled_order_amount == SKIP
70
+ @tax_lines = tax_lines unless tax_lines == SKIP
71
+ @line_items = line_items unless line_items == SKIP
72
+ @additional_properties = additional_properties
73
+ end
74
+
75
+ # Creates an instance of the object from a hash.
76
+ def self.from_hash(hash)
77
+ return nil unless hash
78
+
79
+ # Extract variables from the hash.
80
+ fulfillment_status =
81
+ hash.key?('fulfillmentStatus') ? hash['fulfillmentStatus'] : nil
82
+ fulfilled_order_amount = NonNegativeAmount.from_hash(hash['fulfilledOrderAmount']) if
83
+ hash['fulfilledOrderAmount']
84
+ unfulfilled_order_amount = NonNegativeAmount.from_hash(hash['unfulfilledOrderAmount']) if
85
+ hash['unfulfilledOrderAmount']
86
+ # Parameter is an array, so we need to iterate through it
87
+ tax_lines = nil
88
+ unless hash['taxLines'].nil?
89
+ tax_lines = []
90
+ hash['taxLines'].each do |structure|
91
+ tax_lines << (FulfilledTaxLine.from_hash(structure) if structure)
92
+ end
93
+ end
94
+
95
+ tax_lines = SKIP unless hash.key?('taxLines')
96
+ line_items = hash.key?('lineItems') ? APIHelper.deserialize_union_type(
97
+ UnionTypeLookUp.get(:FulfilledLineItem), hash['lineItems']
98
+ ) : SKIP
99
+
100
+ # Create a new hash for additional properties, removing known properties.
101
+ new_hash = hash.reject { |k, _| names.value?(k) }
102
+
103
+ additional_properties = APIHelper.get_additional_properties(
104
+ new_hash, proc { |value| value }
105
+ )
106
+
107
+ # Create object from extracted values.
108
+ FulfilledOrder.new(fulfillment_status: fulfillment_status,
109
+ fulfilled_order_amount: fulfilled_order_amount,
110
+ unfulfilled_order_amount: unfulfilled_order_amount,
111
+ tax_lines: tax_lines,
112
+ line_items: line_items,
113
+ additional_properties: additional_properties)
114
+ end
115
+
116
+ # Validates an instance of the object from a given value.
117
+ # @param [FulfilledOrder | Hash] The value against the validation is performed.
118
+ def self.validate(value)
119
+ if value.instance_of? self
120
+ return APIHelper.valid_type?(value.fulfillment_status,
121
+ ->(val) { FulfillmentStatus.validate(val) })
122
+ end
123
+
124
+ return false unless value.instance_of? Hash
125
+
126
+ APIHelper.valid_type?(value['fulfillmentStatus'],
127
+ ->(val) { FulfillmentStatus.validate(val) })
128
+ end
129
+
130
+ # Provides a human-readable string representation of the object.
131
+ def to_s
132
+ class_name = self.class.name.split('::').last
133
+ "<#{class_name} fulfillment_status: #{@fulfillment_status}, fulfilled_order_amount:"\
134
+ " #{@fulfilled_order_amount}, unfulfilled_order_amount: #{@unfulfilled_order_amount},"\
135
+ " tax_lines: #{@tax_lines}, line_items: #{@line_items}, additional_properties:"\
136
+ " #{@additional_properties}>"
137
+ end
138
+
139
+ # Provides a debugging-friendly string with detailed object information.
140
+ def inspect
141
+ class_name = self.class.name.split('::').last
142
+ "<#{class_name} fulfillment_status: #{@fulfillment_status.inspect}, fulfilled_order_amount:"\
143
+ " #{@fulfilled_order_amount.inspect}, unfulfilled_order_amount:"\
144
+ " #{@unfulfilled_order_amount.inspect}, tax_lines: #{@tax_lines.inspect}, line_items:"\
145
+ " #{@line_items.inspect}, additional_properties: #{@additional_properties}>"
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,207 @@
1
+ # cell_point_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module CellPointApi
7
+ # Fulfilled product.
8
+ class FulfilledProduct < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Discriminator used to identify the type of line item.
13
+ # @return [String]
14
+ attr_reader :type
15
+
16
+ # Result of the fulfillment.
17
+ # On `PARTIAL`, the amount that was fulfilled must be specified.
18
+ # @return [FulfillmentStatus]
19
+ attr_accessor :fulfillment_status
20
+
21
+ # Conditional property that should be sent if `fulfillmentStatus` is
22
+ # `PARTIAL`.
23
+ # `fulfilledPrice` must be less than or equal to original `price`.
24
+ # @return [Amount]
25
+ attr_accessor :fulfilled_price
26
+
27
+ # What should be shown as the title of the line item on a receipt or billing
28
+ # summary.
29
+ # @return [String]
30
+ attr_accessor :title
31
+
32
+ # AuthorizationGroup that the line item should be part of for splitting
33
+ # authorizations for Aggregate Payments Payments.
34
+ # If this is set, there must be a matching AuthorizationGroup created in the
35
+ # PriceSummary.
36
+ # > NOTE: Items within a Bundle should not have an `authorizationGroupId`,
37
+ # they will use the same `authorizationGroupId` as the top-level bundle.
38
+ # @return [String]
39
+ attr_accessor :authorization_group_id
40
+
41
+ # Stock Keeping Unit (SKU) is a product and service identification code for
42
+ # a specific product.
43
+ # @return [String]
44
+ attr_accessor :sku
45
+
46
+ # Stock Keeping Unit (SKU) is a product and service identification code for
47
+ # a specific product.
48
+ # @return [Integer]
49
+ attr_accessor :quantity
50
+
51
+ # An amount that is a nonnegative number, i.e. {0, 1, 2, 3, 4, 5,…}
52
+ # @return [NonNegativeAmount]
53
+ attr_accessor :unit_price
54
+
55
+ # Total Price for the line item. Should be equal to `unitPrice` *
56
+ # `quantity`, if `unitPrice` is specified.
57
+ # @return [NonNegativeAmount]
58
+ attr_accessor :total_price
59
+
60
+ # A mapping from model property names to API property names.
61
+ def self.names
62
+ @_hash = {} if @_hash.nil?
63
+ @_hash['type'] = 'type'
64
+ @_hash['fulfillment_status'] = 'fulfillmentStatus'
65
+ @_hash['fulfilled_price'] = 'fulfilledPrice'
66
+ @_hash['title'] = 'title'
67
+ @_hash['authorization_group_id'] = 'authorizationGroupId'
68
+ @_hash['sku'] = 'sku'
69
+ @_hash['quantity'] = 'quantity'
70
+ @_hash['unit_price'] = 'unitPrice'
71
+ @_hash['total_price'] = 'totalPrice'
72
+ @_hash
73
+ end
74
+
75
+ # An array for optional fields
76
+ def self.optionals
77
+ %w[
78
+ fulfilled_price
79
+ authorization_group_id
80
+ ]
81
+ end
82
+
83
+ # An array for nullable fields
84
+ def self.nullables
85
+ []
86
+ end
87
+
88
+ def initialize(fulfillment_status:, title:, sku:, quantity: 1, unit_price:,
89
+ total_price:, fulfilled_price: SKIP,
90
+ authorization_group_id: SKIP, additional_properties: nil)
91
+ # Add additional model properties to the instance
92
+ additional_properties = {} if additional_properties.nil?
93
+
94
+ @type = 'PRODUCT'
95
+ @fulfillment_status = fulfillment_status
96
+ @fulfilled_price = fulfilled_price unless fulfilled_price == SKIP
97
+ @title = title
98
+ @authorization_group_id = authorization_group_id unless authorization_group_id == SKIP
99
+ @sku = sku
100
+ @quantity = quantity
101
+ @unit_price = unit_price
102
+ @total_price = total_price
103
+ @additional_properties = additional_properties
104
+ end
105
+
106
+ # Creates an instance of the object from a hash.
107
+ def self.from_hash(hash)
108
+ return nil unless hash
109
+
110
+ # Extract variables from the hash.
111
+ fulfillment_status =
112
+ hash.key?('fulfillmentStatus') ? hash['fulfillmentStatus'] : nil
113
+ title = hash.key?('title') ? hash['title'] : nil
114
+ sku = hash.key?('sku') ? hash['sku'] : nil
115
+ quantity = hash['quantity'] ||= 1
116
+ unit_price = NonNegativeAmount.from_hash(hash['unitPrice']) if hash['unitPrice']
117
+ total_price = NonNegativeAmount.from_hash(hash['totalPrice']) if hash['totalPrice']
118
+ fulfilled_price = Amount.from_hash(hash['fulfilledPrice']) if hash['fulfilledPrice']
119
+ authorization_group_id =
120
+ hash.key?('authorizationGroupId') ? hash['authorizationGroupId'] : SKIP
121
+
122
+ # Create a new hash for additional properties, removing known properties.
123
+ new_hash = hash.reject { |k, _| names.value?(k) }
124
+
125
+ additional_properties = APIHelper.get_additional_properties(
126
+ new_hash, proc { |value| value }
127
+ )
128
+
129
+ # Create object from extracted values.
130
+ FulfilledProduct.new(fulfillment_status: fulfillment_status,
131
+ title: title,
132
+ sku: sku,
133
+ quantity: quantity,
134
+ unit_price: unit_price,
135
+ total_price: total_price,
136
+ fulfilled_price: fulfilled_price,
137
+ authorization_group_id: authorization_group_id,
138
+ additional_properties: additional_properties)
139
+ end
140
+
141
+ # Validates an instance of the object from a given value.
142
+ # @param [FulfilledProduct | Hash] The value against the validation is performed.
143
+ def self.validate(value)
144
+ if value.instance_of? self
145
+ return (
146
+ APIHelper.valid_type?(value.type,
147
+ ->(val) { val.instance_of? String }) and
148
+ APIHelper.valid_type?(value.fulfillment_status,
149
+ ->(val) { FulfillmentStatus.validate(val) }) and
150
+ APIHelper.valid_type?(value.title,
151
+ ->(val) { val.instance_of? String }) and
152
+ APIHelper.valid_type?(value.sku,
153
+ ->(val) { val.instance_of? String }) and
154
+ APIHelper.valid_type?(value.quantity,
155
+ ->(val) { val.instance_of? Integer }) and
156
+ APIHelper.valid_type?(value.unit_price,
157
+ ->(val) { NonNegativeAmount.validate(val) },
158
+ is_model_hash: true) and
159
+ APIHelper.valid_type?(value.total_price,
160
+ ->(val) { NonNegativeAmount.validate(val) },
161
+ is_model_hash: true)
162
+ )
163
+ end
164
+
165
+ return false unless value.instance_of? Hash
166
+
167
+ (
168
+ APIHelper.valid_type?(value['type'],
169
+ ->(val) { val.instance_of? String }) and
170
+ APIHelper.valid_type?(value['fulfillmentStatus'],
171
+ ->(val) { FulfillmentStatus.validate(val) }) and
172
+ APIHelper.valid_type?(value['title'],
173
+ ->(val) { val.instance_of? String }) and
174
+ APIHelper.valid_type?(value['sku'],
175
+ ->(val) { val.instance_of? String }) and
176
+ APIHelper.valid_type?(value['quantity'],
177
+ ->(val) { val.instance_of? Integer }) and
178
+ APIHelper.valid_type?(value['unitPrice'],
179
+ ->(val) { NonNegativeAmount.validate(val) },
180
+ is_model_hash: true) and
181
+ APIHelper.valid_type?(value['totalPrice'],
182
+ ->(val) { NonNegativeAmount.validate(val) },
183
+ is_model_hash: true)
184
+ )
185
+ end
186
+
187
+ # Provides a human-readable string representation of the object.
188
+ def to_s
189
+ class_name = self.class.name.split('::').last
190
+ "<#{class_name} type: #{@type}, fulfillment_status: #{@fulfillment_status},"\
191
+ " fulfilled_price: #{@fulfilled_price}, title: #{@title}, authorization_group_id:"\
192
+ " #{@authorization_group_id}, sku: #{@sku}, quantity: #{@quantity}, unit_price:"\
193
+ " #{@unit_price}, total_price: #{@total_price}, additional_properties:"\
194
+ " #{@additional_properties}>"
195
+ end
196
+
197
+ # Provides a debugging-friendly string with detailed object information.
198
+ def inspect
199
+ class_name = self.class.name.split('::').last
200
+ "<#{class_name} type: #{@type.inspect}, fulfillment_status: #{@fulfillment_status.inspect},"\
201
+ " fulfilled_price: #{@fulfilled_price.inspect}, title: #{@title.inspect},"\
202
+ " authorization_group_id: #{@authorization_group_id.inspect}, sku: #{@sku.inspect},"\
203
+ " quantity: #{@quantity.inspect}, unit_price: #{@unit_price.inspect}, total_price:"\
204
+ " #{@total_price.inspect}, additional_properties: #{@additional_properties}>"
205
+ end
206
+ end
207
+ end