paypal-server-sdk 1.1.0 → 2.0.0

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 (402) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -23
  3. data/lib/paypal_server_sdk/api_helper.rb +2 -2
  4. data/lib/paypal_server_sdk/client.rb +16 -3
  5. data/lib/paypal_server_sdk/configuration.rb +10 -8
  6. data/lib/paypal_server_sdk/controllers/base_controller.rb +4 -10
  7. data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +4 -4
  8. data/lib/paypal_server_sdk/controllers/orders_controller.rb +211 -211
  9. data/lib/paypal_server_sdk/controllers/payments_controller.rb +110 -103
  10. data/lib/paypal_server_sdk/controllers/subscriptions_controller.rb +843 -0
  11. data/lib/paypal_server_sdk/controllers/transaction_search_controller.rb +178 -0
  12. data/lib/paypal_server_sdk/controllers/vault_controller.rb +95 -95
  13. data/lib/paypal_server_sdk/exceptions/api_exception.rb +2 -2
  14. data/lib/paypal_server_sdk/exceptions/default_error_exception.rb +95 -0
  15. data/lib/paypal_server_sdk/exceptions/error_exception.rb +2 -2
  16. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +2 -2
  17. data/lib/paypal_server_sdk/exceptions/search_error_exception.rb +107 -0
  18. data/lib/paypal_server_sdk/exceptions/subscription_error_exception.rb +95 -0
  19. data/lib/paypal_server_sdk/http/api_response.rb +6 -8
  20. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +3 -3
  21. data/lib/paypal_server_sdk/http/http_call_back.rb +2 -2
  22. data/lib/paypal_server_sdk/http/http_method_enum.rb +2 -2
  23. data/lib/paypal_server_sdk/http/http_request.rb +2 -2
  24. data/lib/paypal_server_sdk/http/http_response.rb +2 -2
  25. data/lib/paypal_server_sdk/http/proxy_settings.rb +13 -0
  26. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +2 -2
  27. data/lib/paypal_server_sdk/logging/sdk_logger.rb +2 -2
  28. data/lib/paypal_server_sdk/models/activate_subscription_request.rb +63 -0
  29. data/lib/paypal_server_sdk/models/activity_timestamps.rb +2 -2
  30. data/lib/paypal_server_sdk/models/address.rb +2 -2
  31. data/lib/paypal_server_sdk/models/amount_breakdown.rb +4 -4
  32. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +2 -2
  33. data/lib/paypal_server_sdk/models/app_switch_context.rb +74 -0
  34. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +2 -2
  35. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +2 -2
  36. data/lib/paypal_server_sdk/models/apple_pay_card.rb +2 -2
  37. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +2 -2
  38. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +2 -2
  39. data/lib/paypal_server_sdk/models/apple_pay_experience_context.rb +2 -2
  40. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +2 -2
  41. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +2 -2
  42. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +2 -2
  43. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +2 -2
  44. data/lib/paypal_server_sdk/models/apple_pay_request.rb +2 -2
  45. data/lib/paypal_server_sdk/models/apple_pay_request_card.rb +88 -0
  46. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +3 -4
  47. data/lib/paypal_server_sdk/models/application_context_user_action.rb +29 -0
  48. data/lib/paypal_server_sdk/models/assurance_details.rb +2 -2
  49. data/lib/paypal_server_sdk/models/auction_information.rb +100 -0
  50. data/lib/paypal_server_sdk/models/authentication_response.rb +2 -2
  51. data/lib/paypal_server_sdk/models/authorization.rb +4 -4
  52. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +2 -2
  53. data/lib/paypal_server_sdk/models/authorization_status.rb +2 -2
  54. data/lib/paypal_server_sdk/models/authorization_status_details.rb +2 -2
  55. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +2 -2
  56. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +4 -4
  57. data/lib/paypal_server_sdk/models/avs_code.rb +2 -2
  58. data/lib/paypal_server_sdk/models/balance_information.rb +106 -0
  59. data/lib/paypal_server_sdk/models/balances_response.rb +111 -0
  60. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +2 -2
  61. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +2 -2
  62. data/lib/paypal_server_sdk/models/bank_request.rb +71 -0
  63. data/lib/paypal_server_sdk/models/base_model.rb +2 -2
  64. data/lib/paypal_server_sdk/models/billing_cycle.rb +7 -18
  65. data/lib/paypal_server_sdk/models/billing_cycle_override.rb +91 -0
  66. data/lib/paypal_server_sdk/models/billing_plan.rb +212 -0
  67. data/lib/paypal_server_sdk/models/bin_details.rb +2 -2
  68. data/lib/paypal_server_sdk/models/blik_experience_context.rb +10 -8
  69. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +2 -2
  70. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +2 -2
  71. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +2 -2
  72. data/lib/paypal_server_sdk/models/blik_payment_object.rb +2 -2
  73. data/lib/paypal_server_sdk/models/blik_payment_request.rb +2 -2
  74. data/lib/paypal_server_sdk/models/callback_configuration.rb +2 -2
  75. data/lib/paypal_server_sdk/models/callback_events.rb +2 -2
  76. data/lib/paypal_server_sdk/models/cancel_subscription_request.rb +60 -0
  77. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +2 -2
  78. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +2 -2
  79. data/lib/paypal_server_sdk/models/capture_request.rb +33 -32
  80. data/lib/paypal_server_sdk/models/capture_status.rb +2 -2
  81. data/lib/paypal_server_sdk/models/capture_status_details.rb +2 -2
  82. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +2 -2
  83. data/lib/paypal_server_sdk/models/capture_subscription_request.rb +78 -0
  84. data/lib/paypal_server_sdk/models/capture_type.rb +20 -0
  85. data/lib/paypal_server_sdk/models/captured_payment.rb +6 -6
  86. data/lib/paypal_server_sdk/models/card_attributes.rb +2 -2
  87. data/lib/paypal_server_sdk/models/card_attributes_response.rb +2 -2
  88. data/lib/paypal_server_sdk/models/card_authentication_response.rb +2 -2
  89. data/lib/paypal_server_sdk/models/card_brand.rb +17 -2
  90. data/lib/paypal_server_sdk/models/card_customer.rb +98 -0
  91. data/lib/paypal_server_sdk/models/card_customer_information.rb +2 -2
  92. data/lib/paypal_server_sdk/models/card_experience_context.rb +2 -2
  93. data/lib/paypal_server_sdk/models/card_from_request.rb +2 -2
  94. data/lib/paypal_server_sdk/models/card_payment_token_entity.rb +2 -2
  95. data/lib/paypal_server_sdk/models/card_request.rb +2 -2
  96. data/lib/paypal_server_sdk/models/card_response.rb +2 -2
  97. data/lib/paypal_server_sdk/models/card_response_address.rb +2 -2
  98. data/lib/paypal_server_sdk/models/card_response_with_billing_address.rb +100 -0
  99. data/lib/paypal_server_sdk/models/card_stored_credential.rb +4 -4
  100. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +2 -2
  101. data/lib/paypal_server_sdk/models/card_type.rb +2 -2
  102. data/lib/paypal_server_sdk/models/card_vault_response.rb +2 -2
  103. data/lib/paypal_server_sdk/models/card_verification.rb +2 -2
  104. data/lib/paypal_server_sdk/models/card_verification_details.rb +8 -8
  105. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +2 -2
  106. data/lib/paypal_server_sdk/models/card_verification_status.rb +2 -2
  107. data/lib/paypal_server_sdk/models/cart_information.rb +94 -0
  108. data/lib/paypal_server_sdk/models/checkout_option.rb +77 -0
  109. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +2 -2
  110. data/lib/paypal_server_sdk/models/cobranded_card.rb +2 -2
  111. data/lib/paypal_server_sdk/models/confirm_order_request.rb +2 -2
  112. data/lib/paypal_server_sdk/models/create_subscription_request.rb +151 -0
  113. data/lib/paypal_server_sdk/models/customer.rb +2 -2
  114. data/lib/paypal_server_sdk/models/customer_information.rb +2 -2
  115. data/lib/paypal_server_sdk/models/customer_response.rb +2 -2
  116. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +2 -2
  117. data/lib/paypal_server_sdk/models/cvv_code.rb +2 -2
  118. data/lib/paypal_server_sdk/models/cycle_execution.rb +124 -0
  119. data/lib/paypal_server_sdk/models/disbursement_mode.rb +2 -2
  120. data/lib/paypal_server_sdk/models/dispute_category.rb +2 -2
  121. data/lib/paypal_server_sdk/models/eci_flag.rb +2 -2
  122. data/lib/paypal_server_sdk/models/enrollment_status.rb +2 -2
  123. data/lib/paypal_server_sdk/models/eps_payment_object.rb +2 -2
  124. data/lib/paypal_server_sdk/models/eps_payment_request.rb +2 -2
  125. data/lib/paypal_server_sdk/models/error_details.rb +2 -2
  126. data/lib/paypal_server_sdk/models/exchange_rate.rb +2 -2
  127. data/lib/paypal_server_sdk/models/experience_context.rb +9 -7
  128. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +32 -0
  129. data/lib/paypal_server_sdk/models/experience_status.rb +33 -0
  130. data/lib/paypal_server_sdk/models/failed_payment_details.rb +98 -0
  131. data/lib/paypal_server_sdk/models/frequency.rb +75 -0
  132. data/lib/paypal_server_sdk/models/fulfillment_type.rb +2 -2
  133. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +2 -2
  134. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +2 -2
  135. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +2 -2
  136. data/lib/paypal_server_sdk/models/google_pay_card.rb +2 -2
  137. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +2 -2
  138. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +2 -2
  139. data/lib/paypal_server_sdk/models/google_pay_experience_context.rb +2 -2
  140. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +2 -2
  141. data/lib/paypal_server_sdk/models/google_pay_request.rb +2 -2
  142. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +2 -2
  143. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +2 -2
  144. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +2 -2
  145. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +2 -2
  146. data/lib/paypal_server_sdk/models/incentive_details.rb +99 -0
  147. data/lib/paypal_server_sdk/models/incentive_information.rb +71 -0
  148. data/lib/paypal_server_sdk/models/interval_unit.rb +29 -0
  149. data/lib/paypal_server_sdk/models/item.rb +2 -2
  150. data/lib/paypal_server_sdk/models/item_category.rb +2 -2
  151. data/lib/paypal_server_sdk/models/item_details.rb +287 -0
  152. data/lib/paypal_server_sdk/models/item_request.rb +163 -0
  153. data/lib/paypal_server_sdk/models/last_payment_details.rb +75 -0
  154. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +2 -2
  155. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +2 -2
  156. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +2 -2
  157. data/lib/paypal_server_sdk/models/line_item.rb +2 -2
  158. data/lib/paypal_server_sdk/models/link_description.rb +2 -2
  159. data/lib/paypal_server_sdk/models/link_http_method.rb +10 -10
  160. data/lib/paypal_server_sdk/models/merchant_preferences.rb +73 -0
  161. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +28 -0
  162. data/lib/paypal_server_sdk/models/mobile_web_context.rb +76 -0
  163. data/lib/paypal_server_sdk/models/modify_subscription_request.rb +124 -0
  164. data/lib/paypal_server_sdk/models/modify_subscription_response.rb +141 -0
  165. data/lib/paypal_server_sdk/models/money.rb +2 -2
  166. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +2 -2
  167. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +2 -2
  168. data/lib/paypal_server_sdk/models/name.rb +2 -2
  169. data/lib/paypal_server_sdk/models/native_app_context.rb +72 -0
  170. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +2 -2
  171. data/lib/paypal_server_sdk/models/network_token.rb +2 -2
  172. data/lib/paypal_server_sdk/models/{network_transaction_reference.rb → network_transaction.rb} +14 -11
  173. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +2 -2
  174. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +2 -2
  175. data/lib/paypal_server_sdk/models/o_auth_token.rb +2 -2
  176. data/lib/paypal_server_sdk/models/one_time_charge.rb +2 -2
  177. data/lib/paypal_server_sdk/models/order.rb +7 -4
  178. data/lib/paypal_server_sdk/models/order_application_context.rb +26 -15
  179. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +2 -2
  180. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +3 -5
  181. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +2 -2
  182. data/lib/paypal_server_sdk/models/order_authorize_request.rb +2 -2
  183. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +2 -2
  184. data/lib/paypal_server_sdk/models/order_authorize_response.rb +16 -9
  185. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +2 -2
  186. data/lib/paypal_server_sdk/models/order_billing_plan.rb +2 -2
  187. data/lib/paypal_server_sdk/models/order_capture_request.rb +2 -2
  188. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +2 -2
  189. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +2 -2
  190. data/lib/paypal_server_sdk/models/order_request.rb +7 -4
  191. data/lib/paypal_server_sdk/models/order_status.rb +2 -2
  192. data/lib/paypal_server_sdk/models/order_tracker_item.rb +2 -2
  193. data/lib/paypal_server_sdk/models/order_tracker_request.rb +2 -2
  194. data/lib/paypal_server_sdk/models/order_tracker_response.rb +2 -2
  195. data/lib/paypal_server_sdk/models/order_tracker_status.rb +2 -2
  196. data/lib/paypal_server_sdk/models/orders_capture.rb +4 -4
  197. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +2 -2
  198. data/lib/paypal_server_sdk/models/os_type.rb +26 -0
  199. data/lib/paypal_server_sdk/models/p24_payment_object.rb +2 -2
  200. data/lib/paypal_server_sdk/models/p24_payment_request.rb +2 -2
  201. data/lib/paypal_server_sdk/models/pa_res_status.rb +2 -2
  202. data/lib/paypal_server_sdk/models/participant_metadata.rb +2 -2
  203. data/lib/paypal_server_sdk/models/patch.rb +2 -2
  204. data/lib/paypal_server_sdk/models/patch_op.rb +2 -2
  205. data/lib/paypal_server_sdk/models/payee_base.rb +2 -2
  206. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +2 -2
  207. data/lib/paypal_server_sdk/models/payer.rb +4 -3
  208. data/lib/paypal_server_sdk/models/payer_base.rb +2 -2
  209. data/lib/paypal_server_sdk/models/payer_information.rb +146 -0
  210. data/lib/paypal_server_sdk/models/payer_name.rb +128 -0
  211. data/lib/paypal_server_sdk/models/payment_advice_code.rb +2 -2
  212. data/lib/paypal_server_sdk/models/payment_authorization.rb +4 -4
  213. data/lib/paypal_server_sdk/models/payment_collection.rb +2 -2
  214. data/lib/paypal_server_sdk/models/payment_initiator.rb +2 -2
  215. data/lib/paypal_server_sdk/models/payment_instruction.rb +2 -2
  216. data/lib/paypal_server_sdk/models/payment_method.rb +63 -0
  217. data/lib/paypal_server_sdk/models/payment_method_preference.rb +2 -2
  218. data/lib/paypal_server_sdk/models/payment_preferences.rb +105 -0
  219. data/lib/paypal_server_sdk/models/payment_preferences_override.rb +107 -0
  220. data/lib/paypal_server_sdk/models/payment_source.rb +2 -2
  221. data/lib/paypal_server_sdk/models/payment_source_response.rb +2 -2
  222. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +2 -2
  223. data/lib/paypal_server_sdk/models/payment_token_request.rb +2 -2
  224. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +2 -2
  225. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +2 -2
  226. data/lib/paypal_server_sdk/models/payment_token_response.rb +5 -3
  227. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +4 -4
  228. data/lib/paypal_server_sdk/models/payment_token_status.rb +4 -4
  229. data/lib/paypal_server_sdk/models/payments_capture.rb +6 -6
  230. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +10 -3
  231. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +2 -2
  232. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +8 -7
  233. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +2 -2
  234. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +2 -2
  235. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +29 -0
  236. data/lib/paypal_server_sdk/models/paypal_wallet.rb +2 -2
  237. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +2 -2
  238. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +4 -3
  239. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +2 -2
  240. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +2 -2
  241. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +2 -2
  242. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +2 -2
  243. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +2 -2
  244. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +22 -9
  245. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +21 -6
  246. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +4 -3
  247. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +12 -22
  248. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +2 -2
  249. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +2 -2
  250. data/lib/paypal_server_sdk/models/phone.rb +2 -2
  251. data/lib/paypal_server_sdk/models/phone_number.rb +4 -2
  252. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +4 -2
  253. data/lib/paypal_server_sdk/models/phone_number_with_optional_country_code.rb +81 -0
  254. data/lib/paypal_server_sdk/models/phone_type.rb +7 -7
  255. data/lib/paypal_server_sdk/models/phone_with_type.rb +2 -2
  256. data/lib/paypal_server_sdk/models/plan.rb +7 -17
  257. data/lib/paypal_server_sdk/models/plan_collection.rb +111 -0
  258. data/lib/paypal_server_sdk/models/plan_details.rb +147 -0
  259. data/lib/paypal_server_sdk/models/plan_override.rb +96 -0
  260. data/lib/paypal_server_sdk/models/plan_request.rb +154 -0
  261. data/lib/paypal_server_sdk/models/plan_request_status.rb +28 -0
  262. data/lib/paypal_server_sdk/models/platform_fee.rb +2 -2
  263. data/lib/paypal_server_sdk/models/pricing_model.rb +2 -2
  264. data/lib/paypal_server_sdk/models/pricing_scheme.rb +2 -2
  265. data/lib/paypal_server_sdk/models/pricing_tier.rb +83 -0
  266. data/lib/paypal_server_sdk/models/processor_response.rb +2 -2
  267. data/lib/paypal_server_sdk/models/processor_response_code.rb +2 -2
  268. data/lib/paypal_server_sdk/models/purchase_unit.rb +2 -2
  269. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +24 -14
  270. data/lib/paypal_server_sdk/models/reason_code.rb +41 -0
  271. data/lib/paypal_server_sdk/models/reauthorize_request.rb +2 -3
  272. data/lib/paypal_server_sdk/models/refund.rb +2 -2
  273. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +2 -2
  274. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +2 -2
  275. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +2 -2
  276. data/lib/paypal_server_sdk/models/refund_request.rb +2 -2
  277. data/lib/paypal_server_sdk/models/refund_status.rb +2 -2
  278. data/lib/paypal_server_sdk/models/refund_status_details.rb +2 -2
  279. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +2 -2
  280. data/lib/paypal_server_sdk/models/related_identifiers.rb +2 -2
  281. data/lib/paypal_server_sdk/models/return_flow.rb +28 -0
  282. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +2 -2
  283. data/lib/paypal_server_sdk/models/search_response.rb +176 -0
  284. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +2 -2
  285. data/lib/paypal_server_sdk/models/seller_protection.rb +2 -2
  286. data/lib/paypal_server_sdk/models/seller_protection_status.rb +2 -2
  287. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +2 -2
  288. data/lib/paypal_server_sdk/models/sepa_debit_experience_context.rb +88 -0
  289. data/lib/paypal_server_sdk/models/sepa_debit_request.rb +64 -0
  290. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +24 -0
  291. data/lib/paypal_server_sdk/models/setup_token_request.rb +2 -2
  292. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +5 -5
  293. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +28 -7
  294. data/lib/paypal_server_sdk/models/setup_token_response.rb +5 -3
  295. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +2 -2
  296. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +4 -4
  297. data/lib/paypal_server_sdk/models/shipment_carrier.rb +111 -3
  298. data/lib/paypal_server_sdk/models/shipping_details.rb +2 -2
  299. data/lib/paypal_server_sdk/models/shipping_information.rb +101 -0
  300. data/lib/paypal_server_sdk/models/shipping_name.rb +2 -2
  301. data/lib/paypal_server_sdk/models/shipping_option.rb +2 -2
  302. data/lib/paypal_server_sdk/models/shipping_type.rb +2 -2
  303. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +33 -33
  304. data/lib/paypal_server_sdk/models/simple_postal_address_coarse_grained.rb +130 -0
  305. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +2 -2
  306. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +2 -2
  307. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +2 -2
  308. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +2 -2
  309. data/lib/paypal_server_sdk/models/store_information.rb +71 -0
  310. data/lib/paypal_server_sdk/models/stored_payment_source.rb +4 -4
  311. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +2 -2
  312. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +2 -2
  313. data/lib/paypal_server_sdk/models/subscriber.rb +84 -0
  314. data/lib/paypal_server_sdk/models/subscriber_request.rb +97 -0
  315. data/lib/paypal_server_sdk/models/subscription.rb +205 -0
  316. data/lib/paypal_server_sdk/models/subscription_amount_with_breakdown.rb +119 -0
  317. data/lib/paypal_server_sdk/models/subscription_application_context.rb +134 -0
  318. data/lib/paypal_server_sdk/models/subscription_billing_cycle.rb +108 -0
  319. data/lib/paypal_server_sdk/models/subscription_billing_information.rb +148 -0
  320. data/lib/paypal_server_sdk/models/subscription_card_request.rb +141 -0
  321. data/lib/paypal_server_sdk/models/subscription_collection.rb +90 -0
  322. data/lib/paypal_server_sdk/models/subscription_customer_information.rb +84 -0
  323. data/lib/paypal_server_sdk/models/subscription_patch_application_context.rb +122 -0
  324. data/lib/paypal_server_sdk/models/subscription_payer_name.rb +114 -0
  325. data/lib/paypal_server_sdk/models/subscription_payment_source.rb +65 -0
  326. data/lib/paypal_server_sdk/models/subscription_payment_source_response.rb +63 -0
  327. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +28 -0
  328. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +23 -0
  329. data/lib/paypal_server_sdk/models/subscription_pricing_scheme.rb +129 -0
  330. data/lib/paypal_server_sdk/models/subscription_transaction_details.rb +118 -0
  331. data/lib/paypal_server_sdk/models/subscriptions_card_attributes.rb +83 -0
  332. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +97 -0
  333. data/lib/paypal_server_sdk/models/supplementary_data.rb +2 -2
  334. data/lib/paypal_server_sdk/models/suspend_subscription.rb +60 -0
  335. data/lib/paypal_server_sdk/models/tax_amount.rb +63 -0
  336. data/lib/paypal_server_sdk/models/tax_id_type.rb +2 -2
  337. data/lib/paypal_server_sdk/models/tax_info.rb +2 -2
  338. data/lib/paypal_server_sdk/models/taxes.rb +71 -0
  339. data/lib/paypal_server_sdk/models/taxes_override.rb +72 -0
  340. data/lib/paypal_server_sdk/models/tenure_type.rb +5 -3
  341. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +2 -2
  342. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +2 -2
  343. data/lib/paypal_server_sdk/models/token.rb +2 -2
  344. data/lib/paypal_server_sdk/models/token_type.rb +2 -2
  345. data/lib/paypal_server_sdk/models/transaction_details.rb +126 -0
  346. data/lib/paypal_server_sdk/models/transaction_information.rb +494 -0
  347. data/lib/paypal_server_sdk/models/{order_update_callback_error_response_details.rb → transaction_search_error_details.rb} +32 -10
  348. data/lib/paypal_server_sdk/models/transactions_list.rb +111 -0
  349. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +2 -2
  350. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +2 -2
  351. data/lib/paypal_server_sdk/models/universal_product_code.rb +2 -2
  352. data/lib/paypal_server_sdk/models/upc_type.rb +2 -2
  353. data/lib/paypal_server_sdk/models/update_pricing_scheme.rb +72 -0
  354. data/lib/paypal_server_sdk/models/update_pricing_schemes_request.rb +69 -0
  355. data/lib/paypal_server_sdk/models/usage_pattern.rb +2 -2
  356. data/lib/paypal_server_sdk/models/vault_apple_pay_request.rb +73 -0
  357. data/lib/paypal_server_sdk/models/{setup_token_card_experience_context.rb → vault_card_experience_context.rb} +27 -18
  358. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +2 -2
  359. data/lib/paypal_server_sdk/models/vault_customer.rb +2 -2
  360. data/lib/paypal_server_sdk/models/vault_experience_context.rb +35 -12
  361. data/lib/paypal_server_sdk/models/vault_instruction.rb +2 -2
  362. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +2 -2
  363. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +2 -2
  364. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +3 -3
  365. data/lib/paypal_server_sdk/models/vault_response.rb +2 -2
  366. data/lib/paypal_server_sdk/models/vault_response_customer.rb +2 -2
  367. data/lib/paypal_server_sdk/models/vault_status.rb +2 -2
  368. data/lib/paypal_server_sdk/models/vault_token_request.rb +2 -2
  369. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +2 -2
  370. data/lib/paypal_server_sdk/models/vault_user_action.rb +29 -0
  371. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +6 -6
  372. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +2 -2
  373. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +21 -7
  374. data/lib/paypal_server_sdk/models/{vault_venmo_experience_context.rb → venmo_experience_context.rb} +26 -16
  375. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +8 -7
  376. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +2 -2
  377. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +2 -2
  378. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +2 -2
  379. data/lib/paypal_server_sdk/models/venmo_vault_response.rb +100 -0
  380. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +31 -0
  381. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +2 -2
  382. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +5 -5
  383. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +2 -2
  384. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +24 -10
  385. data/lib/paypal_server_sdk/models/{shipping_preference.rb → venmo_wallet_experience_context_shipping_preference.rb} +4 -4
  386. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +29 -0
  387. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +2 -2
  388. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +16 -6
  389. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +2 -2
  390. data/lib/paypal_server_sdk/utilities/date_time_helper.rb +2 -2
  391. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +2 -2
  392. data/lib/paypal_server_sdk.rb +252 -160
  393. metadata +111 -22
  394. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +0 -89
  395. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +0 -111
  396. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +0 -72
  397. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +0 -107
  398. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +0 -93
  399. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +0 -42
  400. data/lib/paypal_server_sdk/models/payments_processor_response.rb +0 -98
  401. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +0 -121
  402. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +0 -76
@@ -0,0 +1,119 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The breakdown details for the amount. Includes the gross, tax, fee, and
8
+ # shipping amounts.
9
+ class SubscriptionAmountWithBreakdown < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The currency and amount for a financial transaction, such as a balance or
14
+ # payment due.
15
+ # @return [Money]
16
+ attr_accessor :gross_amount
17
+
18
+ # The currency and amount for a financial transaction, such as a balance or
19
+ # payment due.
20
+ # @return [Money]
21
+ attr_accessor :total_item_amount
22
+
23
+ # The currency and amount for a financial transaction, such as a balance or
24
+ # payment due.
25
+ # @return [Money]
26
+ attr_accessor :fee_amount
27
+
28
+ # The currency and amount for a financial transaction, such as a balance or
29
+ # payment due.
30
+ # @return [Money]
31
+ attr_accessor :shipping_amount
32
+
33
+ # The currency and amount for a financial transaction, such as a balance or
34
+ # payment due.
35
+ # @return [Money]
36
+ attr_accessor :tax_amount
37
+
38
+ # The currency and amount for a financial transaction, such as a balance or
39
+ # payment due.
40
+ # @return [Money]
41
+ attr_accessor :net_amount
42
+
43
+ # A mapping from model property names to API property names.
44
+ def self.names
45
+ @_hash = {} if @_hash.nil?
46
+ @_hash['gross_amount'] = 'gross_amount'
47
+ @_hash['total_item_amount'] = 'total_item_amount'
48
+ @_hash['fee_amount'] = 'fee_amount'
49
+ @_hash['shipping_amount'] = 'shipping_amount'
50
+ @_hash['tax_amount'] = 'tax_amount'
51
+ @_hash['net_amount'] = 'net_amount'
52
+ @_hash
53
+ end
54
+
55
+ # An array for optional fields
56
+ def self.optionals
57
+ %w[
58
+ total_item_amount
59
+ fee_amount
60
+ shipping_amount
61
+ tax_amount
62
+ net_amount
63
+ ]
64
+ end
65
+
66
+ # An array for nullable fields
67
+ def self.nullables
68
+ []
69
+ end
70
+
71
+ def initialize(gross_amount:, total_item_amount: SKIP, fee_amount: SKIP,
72
+ shipping_amount: SKIP, tax_amount: SKIP, net_amount: SKIP)
73
+ @gross_amount = gross_amount
74
+ @total_item_amount = total_item_amount unless total_item_amount == SKIP
75
+ @fee_amount = fee_amount unless fee_amount == SKIP
76
+ @shipping_amount = shipping_amount unless shipping_amount == SKIP
77
+ @tax_amount = tax_amount unless tax_amount == SKIP
78
+ @net_amount = net_amount unless net_amount == SKIP
79
+ end
80
+
81
+ # Creates an instance of the object from a hash.
82
+ def self.from_hash(hash)
83
+ return nil unless hash
84
+
85
+ # Extract variables from the hash.
86
+ gross_amount = Money.from_hash(hash['gross_amount']) if hash['gross_amount']
87
+ total_item_amount = Money.from_hash(hash['total_item_amount']) if hash['total_item_amount']
88
+ fee_amount = Money.from_hash(hash['fee_amount']) if hash['fee_amount']
89
+ shipping_amount = Money.from_hash(hash['shipping_amount']) if hash['shipping_amount']
90
+ tax_amount = Money.from_hash(hash['tax_amount']) if hash['tax_amount']
91
+ net_amount = Money.from_hash(hash['net_amount']) if hash['net_amount']
92
+
93
+ # Create object from extracted values.
94
+ SubscriptionAmountWithBreakdown.new(gross_amount: gross_amount,
95
+ total_item_amount: total_item_amount,
96
+ fee_amount: fee_amount,
97
+ shipping_amount: shipping_amount,
98
+ tax_amount: tax_amount,
99
+ net_amount: net_amount)
100
+ end
101
+
102
+ # Provides a human-readable string representation of the object.
103
+ def to_s
104
+ class_name = self.class.name.split('::').last
105
+ "<#{class_name} gross_amount: #{@gross_amount}, total_item_amount: #{@total_item_amount},"\
106
+ " fee_amount: #{@fee_amount}, shipping_amount: #{@shipping_amount}, tax_amount:"\
107
+ " #{@tax_amount}, net_amount: #{@net_amount}>"
108
+ end
109
+
110
+ # Provides a debugging-friendly string with detailed object information.
111
+ def inspect
112
+ class_name = self.class.name.split('::').last
113
+ "<#{class_name} gross_amount: #{@gross_amount.inspect}, total_item_amount:"\
114
+ " #{@total_item_amount.inspect}, fee_amount: #{@fee_amount.inspect}, shipping_amount:"\
115
+ " #{@shipping_amount.inspect}, tax_amount: #{@tax_amount.inspect}, net_amount:"\
116
+ " #{@net_amount.inspect}>"
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,134 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The application context, which customizes the payer experience during the
8
+ # subscription approval process with PayPal.
9
+ class SubscriptionApplicationContext < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The label that overrides the business name in the PayPal account on the
14
+ # PayPal site.
15
+ # @return [String]
16
+ attr_accessor :brand_name
17
+
18
+ # The BCP 47-formatted locale of pages that the PayPal payment experience
19
+ # shows. PayPal supports a five-character code. For example, `da-DK`,
20
+ # `he-IL`, `id-ID`, `ja-JP`, `no-NO`, `pt-BR`, `ru-RU`, `sv-SE`, `th-TH`,
21
+ # `zh-CN`, `zh-HK`, or `zh-TW`.
22
+ # @return [String]
23
+ attr_accessor :locale
24
+
25
+ # The location from which the shipping address is derived.
26
+ # @return [ExperienceContextShippingPreference]
27
+ attr_accessor :shipping_preference
28
+
29
+ # Configures the label name to `Continue` or `Subscribe Now` for
30
+ # subscription consent experience.
31
+ # @return [ApplicationContextUserAction]
32
+ attr_accessor :user_action
33
+
34
+ # The customer and merchant payment preferences.
35
+ # @return [PaymentMethod]
36
+ attr_accessor :payment_method
37
+
38
+ # The URL where the customer is redirected after the customer approves the
39
+ # payment.
40
+ # @return [String]
41
+ attr_accessor :return_url
42
+
43
+ # The URL where the customer is redirected after the customer cancels the
44
+ # payment.
45
+ # @return [String]
46
+ attr_accessor :cancel_url
47
+
48
+ # A mapping from model property names to API property names.
49
+ def self.names
50
+ @_hash = {} if @_hash.nil?
51
+ @_hash['brand_name'] = 'brand_name'
52
+ @_hash['locale'] = 'locale'
53
+ @_hash['shipping_preference'] = 'shipping_preference'
54
+ @_hash['user_action'] = 'user_action'
55
+ @_hash['payment_method'] = 'payment_method'
56
+ @_hash['return_url'] = 'return_url'
57
+ @_hash['cancel_url'] = 'cancel_url'
58
+ @_hash
59
+ end
60
+
61
+ # An array for optional fields
62
+ def self.optionals
63
+ %w[
64
+ brand_name
65
+ locale
66
+ shipping_preference
67
+ user_action
68
+ payment_method
69
+ ]
70
+ end
71
+
72
+ # An array for nullable fields
73
+ def self.nullables
74
+ []
75
+ end
76
+
77
+ def initialize(
78
+ return_url:, cancel_url:, brand_name: SKIP, locale: SKIP,
79
+ shipping_preference: ExperienceContextShippingPreference::GET_FROM_FILE,
80
+ user_action: ApplicationContextUserAction::SUBSCRIBE_NOW,
81
+ payment_method: SKIP
82
+ )
83
+ @brand_name = brand_name unless brand_name == SKIP
84
+ @locale = locale unless locale == SKIP
85
+ @shipping_preference = shipping_preference unless shipping_preference == SKIP
86
+ @user_action = user_action unless user_action == SKIP
87
+ @payment_method = payment_method unless payment_method == SKIP
88
+ @return_url = return_url
89
+ @cancel_url = cancel_url
90
+ end
91
+
92
+ # Creates an instance of the object from a hash.
93
+ def self.from_hash(hash)
94
+ return nil unless hash
95
+
96
+ # Extract variables from the hash.
97
+ return_url = hash.key?('return_url') ? hash['return_url'] : nil
98
+ cancel_url = hash.key?('cancel_url') ? hash['cancel_url'] : nil
99
+ brand_name = hash.key?('brand_name') ? hash['brand_name'] : SKIP
100
+ locale = hash.key?('locale') ? hash['locale'] : SKIP
101
+ shipping_preference =
102
+ hash['shipping_preference'] ||= ExperienceContextShippingPreference::GET_FROM_FILE
103
+ user_action =
104
+ hash['user_action'] ||= ApplicationContextUserAction::SUBSCRIBE_NOW
105
+ payment_method = PaymentMethod.from_hash(hash['payment_method']) if hash['payment_method']
106
+
107
+ # Create object from extracted values.
108
+ SubscriptionApplicationContext.new(return_url: return_url,
109
+ cancel_url: cancel_url,
110
+ brand_name: brand_name,
111
+ locale: locale,
112
+ shipping_preference: shipping_preference,
113
+ user_action: user_action,
114
+ payment_method: payment_method)
115
+ end
116
+
117
+ # Provides a human-readable string representation of the object.
118
+ def to_s
119
+ class_name = self.class.name.split('::').last
120
+ "<#{class_name} brand_name: #{@brand_name}, locale: #{@locale}, shipping_preference:"\
121
+ " #{@shipping_preference}, user_action: #{@user_action}, payment_method: #{@payment_method},"\
122
+ " return_url: #{@return_url}, cancel_url: #{@cancel_url}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} brand_name: #{@brand_name.inspect}, locale: #{@locale.inspect},"\
129
+ " shipping_preference: #{@shipping_preference.inspect}, user_action:"\
130
+ " #{@user_action.inspect}, payment_method: #{@payment_method.inspect}, return_url:"\
131
+ " #{@return_url.inspect}, cancel_url: #{@cancel_url.inspect}>"
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,108 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The billing cycle details.
8
+ class SubscriptionBillingCycle < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The pricing scheme details.
13
+ # @return [SubscriptionPricingScheme]
14
+ attr_accessor :pricing_scheme
15
+
16
+ # The frequency of the billing cycle.
17
+ # @return [Frequency]
18
+ attr_accessor :frequency
19
+
20
+ # The tenure type of the billing cycle. In case of a plan having trial
21
+ # cycle, only 2 trial cycles are allowed per plan.
22
+ # @return [TenureType]
23
+ attr_accessor :tenure_type
24
+
25
+ # The order in which this cycle is to run among other billing cycles. For
26
+ # example, a trial billing cycle has a `sequence` of `1` while a regular
27
+ # billing cycle has a `sequence` of `2`, so that trial cycle runs before the
28
+ # regular cycle.
29
+ # @return [Integer]
30
+ attr_accessor :sequence
31
+
32
+ # The number of times this billing cycle gets executed. Trial billing cycles
33
+ # can only be executed a finite number of times (value between 1 and 999 for
34
+ # total_cycles). Regular billing cycles can be executed infinite times
35
+ # (value of 0 for total_cycles) or a finite number of times (value between 1
36
+ # and 999 for total_cycles).
37
+ # @return [Integer]
38
+ attr_accessor :total_cycles
39
+
40
+ # A mapping from model property names to API property names.
41
+ def self.names
42
+ @_hash = {} if @_hash.nil?
43
+ @_hash['pricing_scheme'] = 'pricing_scheme'
44
+ @_hash['frequency'] = 'frequency'
45
+ @_hash['tenure_type'] = 'tenure_type'
46
+ @_hash['sequence'] = 'sequence'
47
+ @_hash['total_cycles'] = 'total_cycles'
48
+ @_hash
49
+ end
50
+
51
+ # An array for optional fields
52
+ def self.optionals
53
+ %w[
54
+ pricing_scheme
55
+ total_cycles
56
+ ]
57
+ end
58
+
59
+ # An array for nullable fields
60
+ def self.nullables
61
+ []
62
+ end
63
+
64
+ def initialize(frequency:, tenure_type:, sequence:, pricing_scheme: SKIP,
65
+ total_cycles: 1)
66
+ @pricing_scheme = pricing_scheme unless pricing_scheme == SKIP
67
+ @frequency = frequency
68
+ @tenure_type = tenure_type
69
+ @sequence = sequence
70
+ @total_cycles = total_cycles unless total_cycles == SKIP
71
+ end
72
+
73
+ # Creates an instance of the object from a hash.
74
+ def self.from_hash(hash)
75
+ return nil unless hash
76
+
77
+ # Extract variables from the hash.
78
+ frequency = Frequency.from_hash(hash['frequency']) if hash['frequency']
79
+ tenure_type = hash.key?('tenure_type') ? hash['tenure_type'] : nil
80
+ sequence = hash.key?('sequence') ? hash['sequence'] : nil
81
+ pricing_scheme = SubscriptionPricingScheme.from_hash(hash['pricing_scheme']) if
82
+ hash['pricing_scheme']
83
+ total_cycles = hash['total_cycles'] ||= 1
84
+
85
+ # Create object from extracted values.
86
+ SubscriptionBillingCycle.new(frequency: frequency,
87
+ tenure_type: tenure_type,
88
+ sequence: sequence,
89
+ pricing_scheme: pricing_scheme,
90
+ total_cycles: total_cycles)
91
+ end
92
+
93
+ # Provides a human-readable string representation of the object.
94
+ def to_s
95
+ class_name = self.class.name.split('::').last
96
+ "<#{class_name} pricing_scheme: #{@pricing_scheme}, frequency: #{@frequency}, tenure_type:"\
97
+ " #{@tenure_type}, sequence: #{@sequence}, total_cycles: #{@total_cycles}>"
98
+ end
99
+
100
+ # Provides a debugging-friendly string with detailed object information.
101
+ def inspect
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} pricing_scheme: #{@pricing_scheme.inspect}, frequency:"\
104
+ " #{@frequency.inspect}, tenure_type: #{@tenure_type.inspect}, sequence:"\
105
+ " #{@sequence.inspect}, total_cycles: #{@total_cycles.inspect}>"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,148 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The billing details for the subscription. If the subscription was or is
8
+ # active, these fields are populated.
9
+ class SubscriptionBillingInformation < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The currency and amount for a financial transaction, such as a balance or
14
+ # payment due.
15
+ # @return [Money]
16
+ attr_accessor :outstanding_balance
17
+
18
+ # The trial and regular billing executions.
19
+ # @return [Array[CycleExecution]]
20
+ attr_accessor :cycle_executions
21
+
22
+ # The details for the last payment.
23
+ # @return [LastPaymentDetails]
24
+ attr_accessor :last_payment
25
+
26
+ # The date and time, in [Internet date and time
27
+ # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
28
+ # required while fractional seconds are optional. Note: The regular
29
+ # expression provides guidance but does not reject all invalid dates.
30
+ # @return [String]
31
+ attr_accessor :next_billing_time
32
+
33
+ # The date and time, in [Internet date and time
34
+ # format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are
35
+ # required while fractional seconds are optional. Note: The regular
36
+ # expression provides guidance but does not reject all invalid dates.
37
+ # @return [String]
38
+ attr_accessor :final_payment_time
39
+
40
+ # The number of consecutive payment failures. Resets to `0` after a
41
+ # successful payment. If this reaches the `payment_failure_threshold` value,
42
+ # the subscription updates to the `SUSPENDED` state.
43
+ # @return [Integer]
44
+ attr_accessor :failed_payments_count
45
+
46
+ # The details for the failed payment of the subscription.
47
+ # @return [FailedPaymentDetails]
48
+ attr_accessor :last_failed_payment
49
+
50
+ # A mapping from model property names to API property names.
51
+ def self.names
52
+ @_hash = {} if @_hash.nil?
53
+ @_hash['outstanding_balance'] = 'outstanding_balance'
54
+ @_hash['cycle_executions'] = 'cycle_executions'
55
+ @_hash['last_payment'] = 'last_payment'
56
+ @_hash['next_billing_time'] = 'next_billing_time'
57
+ @_hash['final_payment_time'] = 'final_payment_time'
58
+ @_hash['failed_payments_count'] = 'failed_payments_count'
59
+ @_hash['last_failed_payment'] = 'last_failed_payment'
60
+ @_hash
61
+ end
62
+
63
+ # An array for optional fields
64
+ def self.optionals
65
+ %w[
66
+ cycle_executions
67
+ last_payment
68
+ next_billing_time
69
+ final_payment_time
70
+ last_failed_payment
71
+ ]
72
+ end
73
+
74
+ # An array for nullable fields
75
+ def self.nullables
76
+ []
77
+ end
78
+
79
+ def initialize(outstanding_balance:, failed_payments_count:,
80
+ cycle_executions: SKIP, last_payment: SKIP,
81
+ next_billing_time: SKIP, final_payment_time: SKIP,
82
+ last_failed_payment: SKIP)
83
+ @outstanding_balance = outstanding_balance
84
+ @cycle_executions = cycle_executions unless cycle_executions == SKIP
85
+ @last_payment = last_payment unless last_payment == SKIP
86
+ @next_billing_time = next_billing_time unless next_billing_time == SKIP
87
+ @final_payment_time = final_payment_time unless final_payment_time == SKIP
88
+ @failed_payments_count = failed_payments_count
89
+ @last_failed_payment = last_failed_payment unless last_failed_payment == SKIP
90
+ end
91
+
92
+ # Creates an instance of the object from a hash.
93
+ def self.from_hash(hash)
94
+ return nil unless hash
95
+
96
+ # Extract variables from the hash.
97
+ outstanding_balance = Money.from_hash(hash['outstanding_balance']) if
98
+ hash['outstanding_balance']
99
+ failed_payments_count =
100
+ hash.key?('failed_payments_count') ? hash['failed_payments_count'] : nil
101
+ # Parameter is an array, so we need to iterate through it
102
+ cycle_executions = nil
103
+ unless hash['cycle_executions'].nil?
104
+ cycle_executions = []
105
+ hash['cycle_executions'].each do |structure|
106
+ cycle_executions << (CycleExecution.from_hash(structure) if structure)
107
+ end
108
+ end
109
+
110
+ cycle_executions = SKIP unless hash.key?('cycle_executions')
111
+ last_payment = LastPaymentDetails.from_hash(hash['last_payment']) if hash['last_payment']
112
+ next_billing_time =
113
+ hash.key?('next_billing_time') ? hash['next_billing_time'] : SKIP
114
+ final_payment_time =
115
+ hash.key?('final_payment_time') ? hash['final_payment_time'] : SKIP
116
+ last_failed_payment = FailedPaymentDetails.from_hash(hash['last_failed_payment']) if
117
+ hash['last_failed_payment']
118
+
119
+ # Create object from extracted values.
120
+ SubscriptionBillingInformation.new(outstanding_balance: outstanding_balance,
121
+ failed_payments_count: failed_payments_count,
122
+ cycle_executions: cycle_executions,
123
+ last_payment: last_payment,
124
+ next_billing_time: next_billing_time,
125
+ final_payment_time: final_payment_time,
126
+ last_failed_payment: last_failed_payment)
127
+ end
128
+
129
+ # Provides a human-readable string representation of the object.
130
+ def to_s
131
+ class_name = self.class.name.split('::').last
132
+ "<#{class_name} outstanding_balance: #{@outstanding_balance}, cycle_executions:"\
133
+ " #{@cycle_executions}, last_payment: #{@last_payment}, next_billing_time:"\
134
+ " #{@next_billing_time}, final_payment_time: #{@final_payment_time}, failed_payments_count:"\
135
+ " #{@failed_payments_count}, last_failed_payment: #{@last_failed_payment}>"
136
+ end
137
+
138
+ # Provides a debugging-friendly string with detailed object information.
139
+ def inspect
140
+ class_name = self.class.name.split('::').last
141
+ "<#{class_name} outstanding_balance: #{@outstanding_balance.inspect}, cycle_executions:"\
142
+ " #{@cycle_executions.inspect}, last_payment: #{@last_payment.inspect}, next_billing_time:"\
143
+ " #{@next_billing_time.inspect}, final_payment_time: #{@final_payment_time.inspect},"\
144
+ " failed_payments_count: #{@failed_payments_count.inspect}, last_failed_payment:"\
145
+ " #{@last_failed_payment.inspect}>"
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,141 @@
1
+ # paypal_server_sdk
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
+
6
+ module PaypalServerSdk
7
+ # The payment card to use to fund a payment. Can be a credit or debit card.
8
+ class SubscriptionCardRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The card holder's name as it appears on the card.
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # The primary account number (PAN) for the payment card.
17
+ # @return [String]
18
+ attr_accessor :number
19
+
20
+ # The year and month, in ISO-8601 `YYYY-MM` date format. See [Internet date
21
+ # and time format](https://tools.ietf.org/html/rfc3339#section-5.6).
22
+ # @return [String]
23
+ attr_accessor :expiry
24
+
25
+ # The three- or four-digit security code of the card. Also known as the CVV,
26
+ # CVC, CVN, CVE, or CID. This parameter cannot be present in the request
27
+ # when `payment_initiator=MERCHANT`.
28
+ # @return [String]
29
+ attr_accessor :security_code
30
+
31
+ # Type of card. i.e Credit, Debit and so on.
32
+ # @return [CardType]
33
+ attr_accessor :type
34
+
35
+ # The card network or brand. Applies to credit, debit, gift, and payment
36
+ # cards.
37
+ # @return [SubscriptionsCardBrand]
38
+ attr_accessor :brand
39
+
40
+ # The portable international postal address. Maps to
41
+ # [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/
42
+ # wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls:
43
+ # the autocomplete
44
+ # attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-co
45
+ # ntrols-the-autocomplete-attribute).
46
+ # @return [Address]
47
+ attr_accessor :billing_address
48
+
49
+ # Additional attributes associated with the use of this card.
50
+ # @return [SubscriptionsCardAttributes]
51
+ attr_accessor :attributes
52
+
53
+ # A mapping from model property names to API property names.
54
+ def self.names
55
+ @_hash = {} if @_hash.nil?
56
+ @_hash['name'] = 'name'
57
+ @_hash['number'] = 'number'
58
+ @_hash['expiry'] = 'expiry'
59
+ @_hash['security_code'] = 'security_code'
60
+ @_hash['type'] = 'type'
61
+ @_hash['brand'] = 'brand'
62
+ @_hash['billing_address'] = 'billing_address'
63
+ @_hash['attributes'] = 'attributes'
64
+ @_hash
65
+ end
66
+
67
+ # An array for optional fields
68
+ def self.optionals
69
+ %w[
70
+ name
71
+ number
72
+ expiry
73
+ security_code
74
+ type
75
+ brand
76
+ billing_address
77
+ attributes
78
+ ]
79
+ end
80
+
81
+ # An array for nullable fields
82
+ def self.nullables
83
+ []
84
+ end
85
+
86
+ def initialize(name: SKIP, number: SKIP, expiry: SKIP, security_code: SKIP,
87
+ type: SKIP, brand: SKIP, billing_address: SKIP,
88
+ attributes: SKIP)
89
+ @name = name unless name == SKIP
90
+ @number = number unless number == SKIP
91
+ @expiry = expiry unless expiry == SKIP
92
+ @security_code = security_code unless security_code == SKIP
93
+ @type = type unless type == SKIP
94
+ @brand = brand unless brand == SKIP
95
+ @billing_address = billing_address unless billing_address == SKIP
96
+ @attributes = attributes unless attributes == SKIP
97
+ end
98
+
99
+ # Creates an instance of the object from a hash.
100
+ def self.from_hash(hash)
101
+ return nil unless hash
102
+
103
+ # Extract variables from the hash.
104
+ name = hash.key?('name') ? hash['name'] : SKIP
105
+ number = hash.key?('number') ? hash['number'] : SKIP
106
+ expiry = hash.key?('expiry') ? hash['expiry'] : SKIP
107
+ security_code = hash.key?('security_code') ? hash['security_code'] : SKIP
108
+ type = hash.key?('type') ? hash['type'] : SKIP
109
+ brand = hash.key?('brand') ? hash['brand'] : SKIP
110
+ billing_address = Address.from_hash(hash['billing_address']) if hash['billing_address']
111
+ attributes = SubscriptionsCardAttributes.from_hash(hash['attributes']) if hash['attributes']
112
+
113
+ # Create object from extracted values.
114
+ SubscriptionCardRequest.new(name: name,
115
+ number: number,
116
+ expiry: expiry,
117
+ security_code: security_code,
118
+ type: type,
119
+ brand: brand,
120
+ billing_address: billing_address,
121
+ attributes: attributes)
122
+ end
123
+
124
+ # Provides a human-readable string representation of the object.
125
+ def to_s
126
+ class_name = self.class.name.split('::').last
127
+ "<#{class_name} name: #{@name}, number: #{@number}, expiry: #{@expiry}, security_code:"\
128
+ " #{@security_code}, type: #{@type}, brand: #{@brand}, billing_address: #{@billing_address},"\
129
+ " attributes: #{@attributes}>"
130
+ end
131
+
132
+ # Provides a debugging-friendly string with detailed object information.
133
+ def inspect
134
+ class_name = self.class.name.split('::').last
135
+ "<#{class_name} name: #{@name.inspect}, number: #{@number.inspect}, expiry:"\
136
+ " #{@expiry.inspect}, security_code: #{@security_code.inspect}, type: #{@type.inspect},"\
137
+ " brand: #{@brand.inspect}, billing_address: #{@billing_address.inspect}, attributes:"\
138
+ " #{@attributes.inspect}>"
139
+ end
140
+ end
141
+ end