hydrogen-integration-api 1.3.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 (449) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +87 -0
  4. data/Rakefile +8 -0
  5. data/git_push.sh +55 -0
  6. data/integration_api.gemspec +46 -0
  7. data/lib/integration_api.rb +257 -0
  8. data/lib/integration_api/api/accounting_api.rb +870 -0
  9. data/lib/integration_api/api/ach_api.rb +1109 -0
  10. data/lib/integration_api/api/aggregation_api.rb +616 -0
  11. data/lib/integration_api/api/async_api.rb +263 -0
  12. data/lib/integration_api/api/baas_api.rb +518 -0
  13. data/lib/integration_api/api/brokerage_api.rb +1091 -0
  14. data/lib/integration_api/api/card_api.rb +1651 -0
  15. data/lib/integration_api/api/iav_api.rb +186 -0
  16. data/lib/integration_api/api/kms_api.rb +301 -0
  17. data/lib/integration_api/api/kyc_api.rb +138 -0
  18. data/lib/integration_api/api/market_data_api.rb +127 -0
  19. data/lib/integration_api/api/rtp_api.rb +479 -0
  20. data/lib/integration_api/api/sms_api.rb +129 -0
  21. data/lib/integration_api/api/smtp_api.rb +129 -0
  22. data/lib/integration_api/api/utils_api.rb +296 -0
  23. data/lib/integration_api/api/webhook_api.rb +301 -0
  24. data/lib/integration_api/api/wire_api.rb +479 -0
  25. data/lib/integration_api/api_client.rb +392 -0
  26. data/lib/integration_api/api_error.rb +38 -0
  27. data/lib/integration_api/auth_configuration.rb +181 -0
  28. data/lib/integration_api/configuration.rb +209 -0
  29. data/lib/integration_api/environment.rb +26 -0
  30. data/lib/integration_api/models/accounting_customer_response_vo.rb +200 -0
  31. data/lib/integration_api/models/accounting_customer_revenue_response_vo.rb +199 -0
  32. data/lib/integration_api/models/accounting_final_response_vo.rb +252 -0
  33. data/lib/integration_api/models/accounting_invoice_payment_response_vo.rb +199 -0
  34. data/lib/integration_api/models/accounting_invoice_response_vo.rb +199 -0
  35. data/lib/integration_api/models/accounting_stats_response_vo.rb +199 -0
  36. data/lib/integration_api/models/ach_balance_response_vo.rb +230 -0
  37. data/lib/integration_api/models/ach_bank_link_request_co.rb +199 -0
  38. data/lib/integration_api/models/ach_bank_link_response_vo.rb +235 -0
  39. data/lib/integration_api/models/ach_beneficial_owner_request_co.rb +190 -0
  40. data/lib/integration_api/models/ach_beneficial_owner_response_vo.rb +208 -0
  41. data/lib/integration_api/models/ach_business_balance_response_vo.rb +226 -0
  42. data/lib/integration_api/models/ach_business_request_co.rb +199 -0
  43. data/lib/integration_api/models/ach_business_response_vo.rb +217 -0
  44. data/lib/integration_api/models/ach_card_link_request_co.rb +190 -0
  45. data/lib/integration_api/models/ach_card_link_response_vo.rb +217 -0
  46. data/lib/integration_api/models/ach_card_load_response_vo.rb +190 -0
  47. data/lib/integration_api/models/ach_card_request_co.rb +182 -0
  48. data/lib/integration_api/models/ach_card_reserve_request_co.rb +181 -0
  49. data/lib/integration_api/models/ach_card_reserve_response_vo.rb +217 -0
  50. data/lib/integration_api/models/ach_card_response_vo.rb +218 -0
  51. data/lib/integration_api/models/ach_client_request_co.rb +199 -0
  52. data/lib/integration_api/models/ach_client_response_vo.rb +217 -0
  53. data/lib/integration_api/models/ach_reserve_link_request_co.rb +181 -0
  54. data/lib/integration_api/models/ach_reserve_link_response_vo.rb +219 -0
  55. data/lib/integration_api/models/ach_status_response_vo.rb +260 -0
  56. data/lib/integration_api/models/ach_transfer_request_co.rb +199 -0
  57. data/lib/integration_api/models/ach_transfer_response_vo.rb +244 -0
  58. data/lib/integration_api/models/acquiree.rb +199 -0
  59. data/lib/integration_api/models/acquirer.rb +199 -0
  60. data/lib/integration_api/models/address.rb +278 -0
  61. data/lib/integration_api/models/aggregation_account.rb +495 -0
  62. data/lib/integration_api/models/aggregation_account_balance.rb +292 -0
  63. data/lib/integration_api/models/aggregation_account_balance_response_vo.rb +208 -0
  64. data/lib/integration_api/models/aggregation_account_holding.rb +370 -0
  65. data/lib/integration_api/models/aggregation_account_holding_response_internal_object_vo.rb +199 -0
  66. data/lib/integration_api/models/aggregation_account_holding_response_vo.rb +210 -0
  67. data/lib/integration_api/models/aggregation_account_response_internal_object_vo.rb +199 -0
  68. data/lib/integration_api/models/aggregation_account_response_vo.rb +208 -0
  69. data/lib/integration_api/models/aggregation_account_transaction.rb +329 -0
  70. data/lib/integration_api/models/aggregation_account_transaction_response_internal_object_vo.rb +199 -0
  71. data/lib/integration_api/models/aggregation_account_transaction_response_vo.rb +221 -0
  72. data/lib/integration_api/models/aggregation_accounts_response_vo.rb +210 -0
  73. data/lib/integration_api/models/aggregation_request_object.rb +226 -0
  74. data/lib/integration_api/models/aggregation_vendor_request_co.rb +199 -0
  75. data/lib/integration_api/models/apple_payload.rb +199 -0
  76. data/lib/integration_api/models/async_transaction.rb +217 -0
  77. data/lib/integration_api/models/async_transaction_vo.rb +199 -0
  78. data/lib/integration_api/models/attachment_vo.rb +199 -0
  79. data/lib/integration_api/models/baas_account_co.rb +190 -0
  80. data/lib/integration_api/models/baas_account_vo.rb +253 -0
  81. data/lib/integration_api/models/baas_balance_vo.rb +221 -0
  82. data/lib/integration_api/models/baas_business_vo.rb +237 -0
  83. data/lib/integration_api/models/baas_client_vo.rb +237 -0
  84. data/lib/integration_api/models/baas_statement_vo.rb +226 -0
  85. data/lib/integration_api/models/baas_statements_vo.rb +201 -0
  86. data/lib/integration_api/models/baas_sub_account_co.rb +181 -0
  87. data/lib/integration_api/models/baas_sub_account_vo.rb +244 -0
  88. data/lib/integration_api/models/baas_transactions_vo.rb +221 -0
  89. data/lib/integration_api/models/balances.rb +223 -0
  90. data/lib/integration_api/models/bank_credit.rb +282 -0
  91. data/lib/integration_api/models/bank_link.rb +431 -0
  92. data/lib/integration_api/models/bank_link_response_internal_object_vo.rb +199 -0
  93. data/lib/integration_api/models/bank_link_vendor_data_vo.rb +190 -0
  94. data/lib/integration_api/models/base_response_vo.rb +199 -0
  95. data/lib/integration_api/models/brokerage_account_co.rb +192 -0
  96. data/lib/integration_api/models/brokerage_account_vo.rb +217 -0
  97. data/lib/integration_api/models/brokerage_balance_vo.rb +228 -0
  98. data/lib/integration_api/models/brokerage_bank_link_co.rb +181 -0
  99. data/lib/integration_api/models/brokerage_bank_link_vo.rb +226 -0
  100. data/lib/integration_api/models/brokerage_create_client_co.rb +192 -0
  101. data/lib/integration_api/models/brokerage_create_client_vo.rb +217 -0
  102. data/lib/integration_api/models/brokerage_deposit_co.rb +181 -0
  103. data/lib/integration_api/models/brokerage_deposit_vo.rb +217 -0
  104. data/lib/integration_api/models/brokerage_document_co.rb +190 -0
  105. data/lib/integration_api/models/brokerage_document_vo.rb +226 -0
  106. data/lib/integration_api/models/brokerage_holding_vo.rb +226 -0
  107. data/lib/integration_api/models/brokerage_order_co.rb +181 -0
  108. data/lib/integration_api/models/brokerage_order_vo.rb +226 -0
  109. data/lib/integration_api/models/brokerage_performance_vo.rb +226 -0
  110. data/lib/integration_api/models/brokerage_securities_vo.rb +217 -0
  111. data/lib/integration_api/models/brokerage_statement_vo.rb +199 -0
  112. data/lib/integration_api/models/brokerage_transaction_vo.rb +226 -0
  113. data/lib/integration_api/models/brokerage_update_client_co.rb +183 -0
  114. data/lib/integration_api/models/brokerage_update_client_vo.rb +237 -0
  115. data/lib/integration_api/models/brokerage_withdrawal_co.rb +181 -0
  116. data/lib/integration_api/models/brokerage_withdrawal_vo.rb +217 -0
  117. data/lib/integration_api/models/business_address.rb +253 -0
  118. data/lib/integration_api/models/business_status_response_vo.rb +217 -0
  119. data/lib/integration_api/models/business_vendor_request_data_vo.rb +313 -0
  120. data/lib/integration_api/models/card_auto_reload_request_co.rb +208 -0
  121. data/lib/integration_api/models/card_auto_reload_response_vo.rb +226 -0
  122. data/lib/integration_api/models/card_balance_response_vo.rb +230 -0
  123. data/lib/integration_api/models/card_base_request_co.rb +199 -0
  124. data/lib/integration_api/models/card_business_request_co.rb +181 -0
  125. data/lib/integration_api/models/card_client_request_co.rb +192 -0
  126. data/lib/integration_api/models/card_load_request_co.rb +190 -0
  127. data/lib/integration_api/models/card_load_unload_response_vo.rb +235 -0
  128. data/lib/integration_api/models/card_pin_request_co.rb +208 -0
  129. data/lib/integration_api/models/card_replace_response_vo.rb +235 -0
  130. data/lib/integration_api/models/card_reserve_account_response_vo.rb +235 -0
  131. data/lib/integration_api/models/card_reserve_transfer_request_co.rb +181 -0
  132. data/lib/integration_api/models/card_reserve_transfer_response_vo.rb +217 -0
  133. data/lib/integration_api/models/card_spending_control_request_co.rb +181 -0
  134. data/lib/integration_api/models/card_spending_control_response_vo.rb +217 -0
  135. data/lib/integration_api/models/card_token_request_co.rb +242 -0
  136. data/lib/integration_api/models/card_token_response_vo.rb +278 -0
  137. data/lib/integration_api/models/card_transaction_response_vo.rb +230 -0
  138. data/lib/integration_api/models/card_unload_request_co.rb +190 -0
  139. data/lib/integration_api/models/card_update_pin_request_co.rb +208 -0
  140. data/lib/integration_api/models/cash.rb +213 -0
  141. data/lib/integration_api/models/client_address.rb +283 -0
  142. data/lib/integration_api/models/client_vendor_request_data_vo.rb +340 -0
  143. data/lib/integration_api/models/contact.rb +356 -0
  144. data/lib/integration_api/models/contact_address.rb +268 -0
  145. data/lib/integration_api/models/create_baas_business_co.rb +192 -0
  146. data/lib/integration_api/models/create_baas_client_co.rb +192 -0
  147. data/lib/integration_api/models/create_business_response_vo.rb +217 -0
  148. data/lib/integration_api/models/create_card_client_response_vo.rb +217 -0
  149. data/lib/integration_api/models/create_user_request.rb +235 -0
  150. data/lib/integration_api/models/customer_revenue.rb +296 -0
  151. data/lib/integration_api/models/dividend.rb +199 -0
  152. data/lib/integration_api/models/dividend_tax.rb +190 -0
  153. data/lib/integration_api/models/email.rb +359 -0
  154. data/lib/integration_api/models/email_click.rb +220 -0
  155. data/lib/integration_api/models/email_open.rb +205 -0
  156. data/lib/integration_api/models/exchange_public_token_vo.rb +227 -0
  157. data/lib/integration_api/models/exchange_token_co.rb +235 -0
  158. data/lib/integration_api/models/financial_statement.rb +362 -0
  159. data/lib/integration_api/models/get_card_image_response_vo.rb +217 -0
  160. data/lib/integration_api/models/get_card_pci_details_response_vo.rb +235 -0
  161. data/lib/integration_api/models/get_card_statement_response_vo.rb +282 -0
  162. data/lib/integration_api/models/get_card_token_response_vo.rb +278 -0
  163. data/lib/integration_api/models/get_transactions_response.rb +183 -0
  164. data/lib/integration_api/models/google_payload.rb +181 -0
  165. data/lib/integration_api/models/iav_aggregation_response_vo.rb +190 -0
  166. data/lib/integration_api/models/iav_bank_link_response_vo.rb +192 -0
  167. data/lib/integration_api/models/iav_request_co.rb +244 -0
  168. data/lib/integration_api/models/iav_response_vo.rb +199 -0
  169. data/lib/integration_api/models/iav_token_exchange_vendor_response_vo.rb +172 -0
  170. data/lib/integration_api/models/iav_vendor_request_co.rb +199 -0
  171. data/lib/integration_api/models/identification.rb +235 -0
  172. data/lib/integration_api/models/instrument.rb +199 -0
  173. data/lib/integration_api/models/investment.rb +283 -0
  174. data/lib/integration_api/models/invoice.rb +472 -0
  175. data/lib/integration_api/models/invoice_payment.rb +269 -0
  176. data/lib/integration_api/models/json_node.rb +172 -0
  177. data/lib/integration_api/models/kms_config.rb +307 -0
  178. data/lib/integration_api/models/kyc_request_co.rb +255 -0
  179. data/lib/integration_api/models/kyc_response_vo.rb +271 -0
  180. data/lib/integration_api/models/kyc_vendor_request_data_vo.rb +385 -0
  181. data/lib/integration_api/models/line_items.rb +278 -0
  182. data/lib/integration_api/models/location.rb +253 -0
  183. data/lib/integration_api/models/mapstringobject.rb +172 -0
  184. data/lib/integration_api/models/md_history_item_vo.rb +235 -0
  185. data/lib/integration_api/models/md_history_request_co.rb +221 -0
  186. data/lib/integration_api/models/md_history_response_vo.rb +183 -0
  187. data/lib/integration_api/models/md_quote_item_vo.rb +352 -0
  188. data/lib/integration_api/models/md_quote_request_co.rb +246 -0
  189. data/lib/integration_api/models/md_quote_response_vo.rb +183 -0
  190. data/lib/integration_api/models/merger_acquisition.rb +199 -0
  191. data/lib/integration_api/models/nucleus_transfer_fields_co.rb +190 -0
  192. data/lib/integration_api/models/ownership.rb +190 -0
  193. data/lib/integration_api/models/page_ach_transfer_response_vo.rb +258 -0
  194. data/lib/integration_api/models/page_kms_config.rb +258 -0
  195. data/lib/integration_api/models/page_webhook.rb +258 -0
  196. data/lib/integration_api/models/pageobject.rb +258 -0
  197. data/lib/integration_api/models/politically_exposed_person_dto.rb +208 -0
  198. data/lib/integration_api/models/portfolio_asset_size_log.rb +329 -0
  199. data/lib/integration_api/models/property_value_response_vo.rb +226 -0
  200. data/lib/integration_api/models/response_entity.rb +233 -0
  201. data/lib/integration_api/models/rtp_bank_link_request_co.rb +190 -0
  202. data/lib/integration_api/models/rtp_bank_link_response_vo.rb +235 -0
  203. data/lib/integration_api/models/rtp_transfer_request_co.rb +190 -0
  204. data/lib/integration_api/models/rtp_transfer_response_vo.rb +226 -0
  205. data/lib/integration_api/models/samsung_payload.rb +181 -0
  206. data/lib/integration_api/models/sms.rb +335 -0
  207. data/lib/integration_api/models/sms_response_vo.rb +226 -0
  208. data/lib/integration_api/models/smsvo.rb +217 -0
  209. data/lib/integration_api/models/smtp_response_vo.rb +226 -0
  210. data/lib/integration_api/models/smtp_vo.rb +273 -0
  211. data/lib/integration_api/models/sort.rb +233 -0
  212. data/lib/integration_api/models/spending_control_vendor_request_data_vo.rb +255 -0
  213. data/lib/integration_api/models/stat.rb +203 -0
  214. data/lib/integration_api/models/transaction.rb +370 -0
  215. data/lib/integration_api/models/update_baas_business_co.rb +183 -0
  216. data/lib/integration_api/models/update_baas_client_co.rb +183 -0
  217. data/lib/integration_api/models/update_business_response_vo.rb +217 -0
  218. data/lib/integration_api/models/update_card_client_response_vo.rb +217 -0
  219. data/lib/integration_api/models/user_response_interface.rb +172 -0
  220. data/lib/integration_api/models/user_response_vo.rb +235 -0
  221. data/lib/integration_api/models/vendor_access_config_vo.rb +202 -0
  222. data/lib/integration_api/models/webhook.rb +277 -0
  223. data/lib/integration_api/models/widget_url_vo.rb +190 -0
  224. data/lib/integration_api/models/wire_bank_link_request_co.rb +190 -0
  225. data/lib/integration_api/models/wire_bank_link_response_vo.rb +235 -0
  226. data/lib/integration_api/models/wire_transfer_request_co.rb +190 -0
  227. data/lib/integration_api/models/wire_transfer_response_vo.rb +226 -0
  228. data/lib/integration_api/models/zillow_property_vendor_response_vo.rb +217 -0
  229. data/lib/integration_api/version.rb +15 -0
  230. data/spec/api/accounting_api_spec.rb +234 -0
  231. data/spec/api/ach_api_spec.rb +259 -0
  232. data/spec/api/aggregation_api_spec.rb +172 -0
  233. data/spec/api/async_api_spec.rb +88 -0
  234. data/spec/api/baas_api_spec.rb +143 -0
  235. data/spec/api/brokerage_api_spec.rb +264 -0
  236. data/spec/api/card_api_spec.rb +385 -0
  237. data/spec/api/iav_api_spec.rb +73 -0
  238. data/spec/api/kms_api_spec.rb +100 -0
  239. data/spec/api/kyc_api_spec.rb +63 -0
  240. data/spec/api/market_data_api_spec.rb +57 -0
  241. data/spec/api/rtp_api_spec.rb +134 -0
  242. data/spec/api/sms_api_spec.rb +59 -0
  243. data/spec/api/smtp_api_spec.rb +59 -0
  244. data/spec/api/utils_api_spec.rb +104 -0
  245. data/spec/api/webhook_api_spec.rb +100 -0
  246. data/spec/api/wire_api_spec.rb +134 -0
  247. data/spec/api_client_spec.rb +243 -0
  248. data/spec/configuration_spec.rb +42 -0
  249. data/spec/models/accounting_customer_response_vo_spec.rb +53 -0
  250. data/spec/models/accounting_customer_revenue_response_vo_spec.rb +53 -0
  251. data/spec/models/accounting_final_response_vo_spec.rb +83 -0
  252. data/spec/models/accounting_invoice_payment_response_vo_spec.rb +53 -0
  253. data/spec/models/accounting_invoice_response_vo_spec.rb +53 -0
  254. data/spec/models/accounting_stats_response_vo_spec.rb +53 -0
  255. data/spec/models/ach_balance_response_vo_spec.rb +71 -0
  256. data/spec/models/ach_bank_link_request_co_spec.rb +53 -0
  257. data/spec/models/ach_bank_link_response_vo_spec.rb +77 -0
  258. data/spec/models/ach_beneficial_owner_request_co_spec.rb +47 -0
  259. data/spec/models/ach_beneficial_owner_response_vo_spec.rb +59 -0
  260. data/spec/models/ach_business_balance_response_vo_spec.rb +71 -0
  261. data/spec/models/ach_business_request_co_spec.rb +53 -0
  262. data/spec/models/ach_business_response_vo_spec.rb +65 -0
  263. data/spec/models/ach_card_link_request_co_spec.rb +47 -0
  264. data/spec/models/ach_card_link_response_vo_spec.rb +65 -0
  265. data/spec/models/ach_card_load_response_vo_spec.rb +47 -0
  266. data/spec/models/ach_card_request_co_spec.rb +41 -0
  267. data/spec/models/ach_card_reserve_request_co_spec.rb +41 -0
  268. data/spec/models/ach_card_reserve_response_vo_spec.rb +65 -0
  269. data/spec/models/ach_card_response_vo_spec.rb +65 -0
  270. data/spec/models/ach_client_request_co_spec.rb +53 -0
  271. data/spec/models/ach_client_response_vo_spec.rb +65 -0
  272. data/spec/models/ach_reserve_link_request_co_spec.rb +41 -0
  273. data/spec/models/ach_reserve_link_response_vo_spec.rb +65 -0
  274. data/spec/models/ach_status_response_vo_spec.rb +75 -0
  275. data/spec/models/ach_transfer_request_co_spec.rb +53 -0
  276. data/spec/models/ach_transfer_response_vo_spec.rb +83 -0
  277. data/spec/models/acquiree_spec.rb +53 -0
  278. data/spec/models/acquirer_spec.rb +53 -0
  279. data/spec/models/address_spec.rb +87 -0
  280. data/spec/models/aggregation_account_balance_response_vo_spec.rb +59 -0
  281. data/spec/models/aggregation_account_balance_spec.rb +101 -0
  282. data/spec/models/aggregation_account_holding_response_internal_object_vo_spec.rb +53 -0
  283. data/spec/models/aggregation_account_holding_response_vo_spec.rb +59 -0
  284. data/spec/models/aggregation_account_holding_spec.rb +155 -0
  285. data/spec/models/aggregation_account_response_internal_object_vo_spec.rb +53 -0
  286. data/spec/models/aggregation_account_response_vo_spec.rb +59 -0
  287. data/spec/models/aggregation_account_spec.rb +221 -0
  288. data/spec/models/aggregation_account_transaction_response_internal_object_vo_spec.rb +53 -0
  289. data/spec/models/aggregation_account_transaction_response_vo_spec.rb +65 -0
  290. data/spec/models/aggregation_account_transaction_spec.rb +125 -0
  291. data/spec/models/aggregation_accounts_response_vo_spec.rb +59 -0
  292. data/spec/models/aggregation_request_object_spec.rb +71 -0
  293. data/spec/models/aggregation_vendor_request_co_spec.rb +53 -0
  294. data/spec/models/apple_payload_spec.rb +53 -0
  295. data/spec/models/async_transaction_spec.rb +65 -0
  296. data/spec/models/async_transaction_vo_spec.rb +53 -0
  297. data/spec/models/attachment_vo_spec.rb +53 -0
  298. data/spec/models/baas_account_co_spec.rb +47 -0
  299. data/spec/models/baas_account_vo_spec.rb +89 -0
  300. data/spec/models/baas_balance_vo_spec.rb +65 -0
  301. data/spec/models/baas_business_vo_spec.rb +77 -0
  302. data/spec/models/baas_client_vo_spec.rb +77 -0
  303. data/spec/models/baas_statement_vo_spec.rb +71 -0
  304. data/spec/models/baas_statements_vo_spec.rb +53 -0
  305. data/spec/models/baas_sub_account_co_spec.rb +41 -0
  306. data/spec/models/baas_sub_account_vo_spec.rb +83 -0
  307. data/spec/models/baas_transactions_vo_spec.rb +65 -0
  308. data/spec/models/balances_spec.rb +65 -0
  309. data/spec/models/bank_credit_spec.rb +95 -0
  310. data/spec/models/bank_link_response_internal_object_vo_spec.rb +53 -0
  311. data/spec/models/bank_link_spec.rb +179 -0
  312. data/spec/models/bank_link_vendor_data_vo_spec.rb +47 -0
  313. data/spec/models/base_response_vo_spec.rb +53 -0
  314. data/spec/models/brokerage_account_co_spec.rb +47 -0
  315. data/spec/models/brokerage_account_vo_spec.rb +65 -0
  316. data/spec/models/brokerage_balance_vo_spec.rb +71 -0
  317. data/spec/models/brokerage_bank_link_co_spec.rb +41 -0
  318. data/spec/models/brokerage_bank_link_vo_spec.rb +71 -0
  319. data/spec/models/brokerage_create_client_co_spec.rb +47 -0
  320. data/spec/models/brokerage_create_client_vo_spec.rb +65 -0
  321. data/spec/models/brokerage_deposit_co_spec.rb +41 -0
  322. data/spec/models/brokerage_deposit_vo_spec.rb +65 -0
  323. data/spec/models/brokerage_document_co_spec.rb +47 -0
  324. data/spec/models/brokerage_document_vo_spec.rb +71 -0
  325. data/spec/models/brokerage_holding_vo_spec.rb +71 -0
  326. data/spec/models/brokerage_order_co_spec.rb +41 -0
  327. data/spec/models/brokerage_order_vo_spec.rb +71 -0
  328. data/spec/models/brokerage_performance_vo_spec.rb +71 -0
  329. data/spec/models/brokerage_securities_vo_spec.rb +65 -0
  330. data/spec/models/brokerage_statement_vo_spec.rb +53 -0
  331. data/spec/models/brokerage_transaction_vo_spec.rb +71 -0
  332. data/spec/models/brokerage_update_client_co_spec.rb +41 -0
  333. data/spec/models/brokerage_update_client_vo_spec.rb +77 -0
  334. data/spec/models/brokerage_withdrawal_co_spec.rb +41 -0
  335. data/spec/models/brokerage_withdrawal_vo_spec.rb +65 -0
  336. data/spec/models/business_address_spec.rb +83 -0
  337. data/spec/models/business_status_response_vo_spec.rb +65 -0
  338. data/spec/models/business_vendor_request_data_vo_spec.rb +125 -0
  339. data/spec/models/card_auto_reload_request_co_spec.rb +59 -0
  340. data/spec/models/card_auto_reload_response_vo_spec.rb +71 -0
  341. data/spec/models/card_balance_response_vo_spec.rb +71 -0
  342. data/spec/models/card_base_request_co_spec.rb +53 -0
  343. data/spec/models/card_business_request_co_spec.rb +41 -0
  344. data/spec/models/card_client_request_co_spec.rb +47 -0
  345. data/spec/models/card_load_request_co_spec.rb +47 -0
  346. data/spec/models/card_load_unload_response_vo_spec.rb +77 -0
  347. data/spec/models/card_pin_request_co_spec.rb +59 -0
  348. data/spec/models/card_replace_response_vo_spec.rb +77 -0
  349. data/spec/models/card_reserve_account_response_vo_spec.rb +77 -0
  350. data/spec/models/card_reserve_transfer_request_co_spec.rb +41 -0
  351. data/spec/models/card_reserve_transfer_response_vo_spec.rb +65 -0
  352. data/spec/models/card_spending_control_request_co_spec.rb +41 -0
  353. data/spec/models/card_spending_control_response_vo_spec.rb +65 -0
  354. data/spec/models/card_token_request_co_spec.rb +63 -0
  355. data/spec/models/card_token_response_vo_spec.rb +87 -0
  356. data/spec/models/card_transaction_response_vo_spec.rb +71 -0
  357. data/spec/models/card_unload_request_co_spec.rb +47 -0
  358. data/spec/models/card_update_pin_request_co_spec.rb +59 -0
  359. data/spec/models/cash_spec.rb +53 -0
  360. data/spec/models/client_address_spec.rb +87 -0
  361. data/spec/models/client_vendor_request_data_vo_spec.rb +143 -0
  362. data/spec/models/contact_address_spec.rb +77 -0
  363. data/spec/models/contact_spec.rb +143 -0
  364. data/spec/models/create_baas_business_co_spec.rb +47 -0
  365. data/spec/models/create_baas_client_co_spec.rb +47 -0
  366. data/spec/models/create_business_response_vo_spec.rb +65 -0
  367. data/spec/models/create_card_client_response_vo_spec.rb +65 -0
  368. data/spec/models/create_user_request_spec.rb +77 -0
  369. data/spec/models/customer_revenue_spec.rb +95 -0
  370. data/spec/models/dividend_spec.rb +53 -0
  371. data/spec/models/dividend_tax_spec.rb +47 -0
  372. data/spec/models/email_click_spec.rb +59 -0
  373. data/spec/models/email_open_spec.rb +53 -0
  374. data/spec/models/email_spec.rb +149 -0
  375. data/spec/models/exchange_public_token_vo_spec.rb +71 -0
  376. data/spec/models/exchange_token_co_spec.rb +77 -0
  377. data/spec/models/financial_statement_spec.rb +137 -0
  378. data/spec/models/get_card_image_response_vo_spec.rb +65 -0
  379. data/spec/models/get_card_pci_details_response_vo_spec.rb +77 -0
  380. data/spec/models/get_card_statement_response_vo_spec.rb +107 -0
  381. data/spec/models/get_card_token_response_vo_spec.rb +87 -0
  382. data/spec/models/get_transactions_response_spec.rb +41 -0
  383. data/spec/models/google_payload_spec.rb +41 -0
  384. data/spec/models/iav_aggregation_response_vo_spec.rb +47 -0
  385. data/spec/models/iav_bank_link_response_vo_spec.rb +47 -0
  386. data/spec/models/iav_request_co_spec.rb +83 -0
  387. data/spec/models/iav_response_vo_spec.rb +53 -0
  388. data/spec/models/iav_token_exchange_vendor_response_vo_spec.rb +35 -0
  389. data/spec/models/iav_vendor_request_co_spec.rb +53 -0
  390. data/spec/models/identification_spec.rb +77 -0
  391. data/spec/models/instrument_spec.rb +53 -0
  392. data/spec/models/investment_spec.rb +89 -0
  393. data/spec/models/invoice_payment_spec.rb +83 -0
  394. data/spec/models/invoice_spec.rb +197 -0
  395. data/spec/models/json_node_spec.rb +35 -0
  396. data/spec/models/kms_config_spec.rb +107 -0
  397. data/spec/models/kyc_request_co_spec.rb +89 -0
  398. data/spec/models/kyc_response_vo_spec.rb +101 -0
  399. data/spec/models/kyc_vendor_request_data_vo_spec.rb +173 -0
  400. data/spec/models/line_items_spec.rb +83 -0
  401. data/spec/models/location_spec.rb +83 -0
  402. data/spec/models/mapstringobject_spec.rb +35 -0
  403. data/spec/models/md_history_item_vo_spec.rb +77 -0
  404. data/spec/models/md_history_request_co_spec.rb +65 -0
  405. data/spec/models/md_history_response_vo_spec.rb +41 -0
  406. data/spec/models/md_quote_item_vo_spec.rb +155 -0
  407. data/spec/models/md_quote_request_co_spec.rb +63 -0
  408. data/spec/models/md_quote_response_vo_spec.rb +41 -0
  409. data/spec/models/merger_acquisition_spec.rb +53 -0
  410. data/spec/models/nucleus_transfer_fields_co_spec.rb +47 -0
  411. data/spec/models/ownership_spec.rb +47 -0
  412. data/spec/models/page_ach_transfer_response_vo_spec.rb +89 -0
  413. data/spec/models/page_kms_config_spec.rb +89 -0
  414. data/spec/models/page_webhook_spec.rb +89 -0
  415. data/spec/models/pageobject_spec.rb +89 -0
  416. data/spec/models/politically_exposed_person_dto_spec.rb +59 -0
  417. data/spec/models/portfolio_asset_size_log_spec.rb +113 -0
  418. data/spec/models/property_value_response_vo_spec.rb +71 -0
  419. data/spec/models/response_entity_spec.rb +57 -0
  420. data/spec/models/rtp_bank_link_request_co_spec.rb +47 -0
  421. data/spec/models/rtp_bank_link_response_vo_spec.rb +77 -0
  422. data/spec/models/rtp_transfer_request_co_spec.rb +47 -0
  423. data/spec/models/rtp_transfer_response_vo_spec.rb +71 -0
  424. data/spec/models/samsung_payload_spec.rb +41 -0
  425. data/spec/models/sms_response_vo_spec.rb +71 -0
  426. data/spec/models/sms_spec.rb +137 -0
  427. data/spec/models/smsvo_spec.rb +65 -0
  428. data/spec/models/smtp_response_vo_spec.rb +71 -0
  429. data/spec/models/smtp_vo_spec.rb +101 -0
  430. data/spec/models/sort_spec.rb +71 -0
  431. data/spec/models/spending_control_vendor_request_data_vo_spec.rb +89 -0
  432. data/spec/models/stat_spec.rb +47 -0
  433. data/spec/models/transaction_spec.rb +167 -0
  434. data/spec/models/update_baas_business_co_spec.rb +41 -0
  435. data/spec/models/update_baas_client_co_spec.rb +41 -0
  436. data/spec/models/update_business_response_vo_spec.rb +65 -0
  437. data/spec/models/update_card_client_response_vo_spec.rb +65 -0
  438. data/spec/models/user_response_interface_spec.rb +35 -0
  439. data/spec/models/user_response_vo_spec.rb +77 -0
  440. data/spec/models/vendor_access_config_vo_spec.rb +53 -0
  441. data/spec/models/webhook_spec.rb +87 -0
  442. data/spec/models/widget_url_vo_spec.rb +47 -0
  443. data/spec/models/wire_bank_link_request_co_spec.rb +47 -0
  444. data/spec/models/wire_bank_link_response_vo_spec.rb +77 -0
  445. data/spec/models/wire_transfer_request_co_spec.rb +47 -0
  446. data/spec/models/wire_transfer_response_vo_spec.rb +71 -0
  447. data/spec/models/zillow_property_vendor_response_vo_spec.rb +65 -0
  448. data/spec/spec_helper.rb +111 -0
  449. metadata +909 -0
@@ -0,0 +1,392 @@
1
+ =begin
2
+ #Hydrogen Integration API
3
+
4
+ #The Hydrogen Integration API
5
+
6
+ OpenAPI spec version: 1.3.1
7
+ Contact: info@hydrogenplatform.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.21
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'json'
15
+ require 'logger'
16
+ require 'tempfile'
17
+ require 'typhoeus'
18
+ require 'addressable/uri'
19
+ require 'uri'
20
+
21
+ module IntegrationApi
22
+ class ApiClient
23
+ # The Configuration object holding settings to be used in the API client.
24
+ attr_accessor :config
25
+
26
+ # Defines the headers to be used in HTTP requests of all API calls by default.
27
+ #
28
+ # @return [Hash]
29
+ attr_accessor :default_headers
30
+
31
+ # Initializes the ApiClient
32
+ # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
33
+ def initialize(config = AuthConfiguration.default)
34
+ @config = config.config
35
+ @user_agent = "Swagger-Codegen/#{VERSION}/ruby"
36
+ @default_headers = {
37
+ 'Content-Type' => 'application/json',
38
+ 'User-Agent' => @user_agent
39
+ }
40
+ end
41
+
42
+ def self.default
43
+ @@default ||= ApiClient.new
44
+ end
45
+
46
+ # Call an API with given options.
47
+ #
48
+ # @return [Array<(Object, Fixnum, Hash)>] an array of 3 elements:
49
+ # the data deserialized from response body (could be nil), response status code and response headers.
50
+ def call_api(http_method, path, opts = {})
51
+ request = build_request(http_method, path, opts)
52
+ response = request.run
53
+
54
+ if @config.debugging
55
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
56
+ end
57
+
58
+ unless response.success?
59
+ if response.timed_out?
60
+ fail ApiError.new('Connection timed out')
61
+ elsif response.code == 0
62
+ # Errors from libcurl will be made visible here
63
+ fail ApiError.new(:code => 0,
64
+ :message => response.return_message)
65
+ else
66
+ fail ApiError.new(:code => response.code,
67
+ :response_headers => response.headers.to_h,
68
+ :response_body => response.body),
69
+ response.status_message
70
+ end
71
+ end
72
+
73
+ if opts[:return_type]
74
+ data = deserialize(response, opts[:return_type])
75
+ else
76
+ data = nil
77
+ end
78
+ return data, response.code, response.headers
79
+ end
80
+
81
+ # Builds the HTTP request
82
+ #
83
+ # @param [String] http_method HTTP method/verb (e.g. POST)
84
+ # @param [String] path URL path (e.g. /account/new)
85
+ # @option opts [Hash] :header_params Header parameters
86
+ # @option opts [Hash] :query_params Query parameters
87
+ # @option opts [Hash] :form_params Query parameters
88
+ # @option opts [Object] :body HTTP body (JSON/XML)
89
+ # @return [Typhoeus::Request] A Typhoeus Request
90
+ def build_request(http_method, path, opts = {})
91
+ url = build_request_url(path)
92
+ http_method = http_method.to_sym.downcase
93
+
94
+ header_params = @default_headers.merge(opts[:header_params] || {})
95
+ query_params = opts[:query_params] || {}
96
+ form_params = opts[:form_params] || {}
97
+
98
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
99
+
100
+ # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
101
+ _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
102
+
103
+ req_opts = {
104
+ :method => http_method,
105
+ :headers => header_params,
106
+ :params => query_params,
107
+ :params_encoding => @config.params_encoding,
108
+ :timeout => @config.timeout,
109
+ :ssl_verifypeer => @config.verify_ssl,
110
+ :ssl_verifyhost => _verify_ssl_host,
111
+ :sslcert => @config.cert_file,
112
+ :sslkey => @config.key_file,
113
+ :verbose => @config.debugging
114
+ }
115
+
116
+ req_opts.merge!(multipart: true) if header_params['Content-Type'].start_with? "multipart/"
117
+
118
+ # set custom cert, if provided
119
+ req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
120
+
121
+ if [:post, :patch, :put, :delete].include?(http_method)
122
+ req_body = build_request_body(header_params, form_params, opts[:body])
123
+ req_opts.update :body => req_body
124
+ if @config.debugging
125
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
126
+ end
127
+ end
128
+
129
+ request = Typhoeus::Request.new(url, req_opts)
130
+ download_file(request) if opts[:return_type] == 'File'
131
+ request
132
+ end
133
+
134
+ # Check if the given MIME is a JSON MIME.
135
+ # JSON MIME examples:
136
+ # application/json
137
+ # application/json; charset=UTF8
138
+ # APPLICATION/JSON
139
+ # */*
140
+ # @param [String] mime MIME
141
+ # @return [Boolean] True if the MIME is application/json
142
+ def json_mime?(mime)
143
+ (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
144
+ end
145
+
146
+ # Deserialize the response to the given return type.
147
+ #
148
+ # @param [Response] response HTTP response
149
+ # @param [String] return_type some examples: "User", "Array[User]", "Hash[String,Integer]"
150
+ def deserialize(response, return_type)
151
+ body = response.body
152
+
153
+ # handle file downloading - return the File instance processed in request callbacks
154
+ # note that response body is empty when the file is written in chunks in request on_body callback
155
+ return @tempfile if return_type == 'File'
156
+
157
+ return nil if body.nil? || body.empty?
158
+
159
+ # return response body directly for String return type
160
+ return body if return_type == 'String'
161
+
162
+ # ensuring a default content type
163
+ content_type = response.headers['Content-Type'] || 'application/json'
164
+
165
+ fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
166
+
167
+ begin
168
+ data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
169
+ rescue JSON::ParserError => e
170
+ if %w(String Date DateTime).include?(return_type)
171
+ data = body
172
+ else
173
+ raise e
174
+ end
175
+ end
176
+
177
+ convert_to_type data, return_type
178
+ end
179
+
180
+ # Convert data to the given return type.
181
+ # @param [Object] data Data to be converted
182
+ # @param [String] return_type Return type
183
+ # @return [Mixed] Data in a particular type
184
+ def convert_to_type(data, return_type)
185
+ return nil if data.nil?
186
+ case return_type
187
+ when 'String'
188
+ data.to_s
189
+ when 'Integer'
190
+ data.to_i
191
+ when 'Float'
192
+ data.to_f
193
+ when 'BOOLEAN'
194
+ data == true
195
+ when 'DateTime'
196
+ # parse date time (expecting ISO 8601 format)
197
+ data
198
+ when 'Date'
199
+ # parse date time (expecting ISO 8601 format)
200
+ data
201
+ when 'Object'
202
+ # generic object (usually a Hash), return directly
203
+ data
204
+ when /\AArray<(.+)>\z/
205
+ # e.g. Array<Pet>
206
+ sub_type = $1
207
+ data.map { |item| convert_to_type(item, sub_type) }
208
+ when /\AHash\<String, (.+)\>\z/
209
+ # e.g. Hash<String, Integer>
210
+ sub_type = $1
211
+ {}.tap do |hash|
212
+ data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
213
+ end
214
+ else
215
+ # models, e.g. Pet
216
+ IntegrationApi.const_get(return_type).new.tap do |model|
217
+ model.build_from_hash data
218
+ end
219
+ end
220
+ end
221
+
222
+ # Save response body into a file in (the defined) temporary folder, using the filename
223
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
224
+ # The response body is written to the file in chunks in order to handle files which
225
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
226
+ # process can use.
227
+ #
228
+ # @see Configuration#temp_folder_path
229
+ def download_file(request)
230
+ tempfile = nil
231
+ encoding = nil
232
+ request.on_headers do |response|
233
+ content_disposition = response.headers['Content-Disposition']
234
+ if content_disposition && content_disposition =~ /filename=/i
235
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
236
+ prefix = sanitize_filename(filename)
237
+ else
238
+ prefix = 'download-'
239
+ end
240
+ prefix = prefix + '-' unless prefix.end_with?('-')
241
+ encoding = response.body.encoding
242
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
243
+ @tempfile = tempfile
244
+ end
245
+ request.on_body do |chunk|
246
+ chunk.force_encoding(encoding)
247
+ tempfile.write(chunk)
248
+ end
249
+ request.on_complete do |response|
250
+ tempfile.close
251
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
252
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
253
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
254
+ "explicitly with `tempfile.delete`"
255
+ end
256
+ end
257
+
258
+ # Sanitize filename by removing path.
259
+ # e.g. ../../sun.gif becomes sun.gif
260
+ #
261
+ # @param [String] filename the filename to be sanitized
262
+ # @return [String] the sanitized filename
263
+ def sanitize_filename(filename)
264
+ filename.gsub(/.*[\/\\]/, '')
265
+ end
266
+
267
+ def build_request_url(path)
268
+ # Add leading and trailing slashes to path
269
+ path = "/#{path}".gsub(/\/+/, '/')
270
+ Addressable::URI.encode(@config.base_url + path)
271
+ end
272
+
273
+ # Builds the HTTP request body
274
+ #
275
+ # @param [Hash] header_params Header parameters
276
+ # @param [Hash] form_params Query parameters
277
+ # @param [Object] body HTTP body (JSON/XML)
278
+ # @return [String] HTTP body data in the form of string
279
+ def build_request_body(header_params, form_params, body)
280
+ # http form
281
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
282
+ header_params['Content-Type'] == 'multipart/form-data'
283
+ data = {}
284
+ form_params.each do |key, value|
285
+ case value
286
+ when ::File, ::Array, nil
287
+ # let typhoeus handle File, Array and nil parameters
288
+ data[key] = value
289
+ else
290
+ data[key] = value.to_s
291
+ end
292
+ end
293
+ elsif body
294
+ data = body.is_a?(String) ? body : body.to_json
295
+ else
296
+ data = nil
297
+ end
298
+ data
299
+ end
300
+
301
+ # Update hearder and query params based on authentication settings.
302
+ #
303
+ # @param [Hash] header_params Header parameters
304
+ # @param [Hash] query_params Query parameters
305
+ # @param [String] auth_names Authentication scheme name
306
+ def update_params_for_auth!(header_params, query_params, auth_names)
307
+ Array(auth_names).each do |auth_name|
308
+ auth_setting = @config.auth_settings[auth_name]
309
+ next unless auth_setting
310
+ case auth_setting[:in]
311
+ when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
312
+ when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
313
+ else fail ArgumentError, 'Authentication token must be in `query` of `header`'
314
+ end
315
+ end
316
+ end
317
+
318
+ # Sets user agent in HTTP header
319
+ #
320
+ # @param [String] user_agent User agent (e.g. swagger-codegen/ruby/1.0.0)
321
+ def user_agent=(user_agent)
322
+ @user_agent = user_agent
323
+ @default_headers['User-Agent'] = @user_agent
324
+ end
325
+
326
+ # Return Accept header based on an array of accepts provided.
327
+ # @param [Array] accepts array for Accept
328
+ # @return [String] the Accept header (e.g. application/json)
329
+ def select_header_accept(accepts)
330
+ return nil if accepts.nil? || accepts.empty?
331
+ # use JSON when present, otherwise use all of the provided
332
+ json_accept = accepts.find { |s| json_mime?(s) }
333
+ json_accept || accepts.join(',')
334
+ end
335
+
336
+ # Return Content-Type header based on an array of content types provided.
337
+ # @param [Array] content_types array for Content-Type
338
+ # @return [String] the Content-Type header (e.g. application/json)
339
+ def select_header_content_type(content_types)
340
+ # use application/json by default
341
+ return 'application/json' if content_types.nil? || content_types.empty?
342
+ # use JSON when present, otherwise use the first one
343
+ json_content_type = content_types.find { |s| json_mime?(s) }
344
+ json_content_type || content_types.first
345
+ end
346
+
347
+ # Convert object (array, hash, object, etc) to JSON string.
348
+ # @param [Object] model object to be converted into JSON string
349
+ # @return [String] JSON string representation of the object
350
+ def object_to_http_body(model)
351
+ return model if model.nil? || model.is_a?(String)
352
+ local_body = nil
353
+ if model.is_a?(Array)
354
+ local_body = model.map { |m| object_to_hash(m) }
355
+ else
356
+ local_body = object_to_hash(model)
357
+ end
358
+ local_body.to_json
359
+ end
360
+
361
+ # Convert object(non-array) to hash.
362
+ # @param [Object] obj object to be converted into JSON string
363
+ # @return [String] JSON string representation of the object
364
+ def object_to_hash(obj)
365
+ if obj.respond_to?(:to_hash)
366
+ obj.to_hash
367
+ else
368
+ obj
369
+ end
370
+ end
371
+
372
+ # Build parameter value according to the given collection format.
373
+ # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
374
+ def build_collection_param(param, collection_format)
375
+ case collection_format
376
+ when :csv
377
+ param.join(',')
378
+ when :ssv
379
+ param.join(' ')
380
+ when :tsv
381
+ param.join("\t")
382
+ when :pipes
383
+ param.join('|')
384
+ when :multi
385
+ # return the array directly as typhoeus will handle it as expected
386
+ param
387
+ else
388
+ fail "unknown collection format: #{collection_format.inspect}"
389
+ end
390
+ end
391
+ end
392
+ end
@@ -0,0 +1,38 @@
1
+ =begin
2
+ #Hydrogen Integration API
3
+
4
+ #The Hydrogen Integration API
5
+
6
+ OpenAPI spec version: 1.3.1
7
+ Contact: info@hydrogenplatform.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.21
10
+
11
+ =end
12
+
13
+ module IntegrationApi
14
+ class ApiError < StandardError
15
+ attr_reader :code, :response_headers, :response_body
16
+
17
+ # Usage examples:
18
+ # ApiError.new
19
+ # ApiError.new("message")
20
+ # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
21
+ # ApiError.new(:code => 404, :message => "Not Found")
22
+ def initialize(arg = nil)
23
+ if arg.is_a? Hash
24
+ if arg.key?(:message) || arg.key?('message')
25
+ super(arg[:message] || arg['message'])
26
+ else
27
+ super arg
28
+ end
29
+
30
+ arg.each do |k, v|
31
+ instance_variable_set "@#{k}", v
32
+ end
33
+ else
34
+ super arg
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,181 @@
1
+ =begin
2
+ #Hydrogen Atom API
3
+
4
+ #The Hydrogen Atom API
5
+
6
+ OpenAPI spec version: 1.7.0
7
+ Contact: info@hydrogenplatform.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.13
10
+
11
+ =end
12
+ require 'date'
13
+ require 'json'
14
+ require 'logger'
15
+ require 'tempfile'
16
+ require 'typhoeus'
17
+ require 'uri'
18
+ module IntegrationApi
19
+ class AuthConfiguration < Configuration
20
+ attr_accessor :authorization
21
+ attr_accessor :client_token
22
+ attr_accessor :grant_type_key
23
+ attr_accessor :client_credentials
24
+ attr_accessor :password
25
+ attr_accessor :username
26
+ attr_accessor :application_json_value
27
+ attr_accessor :auth_uri
28
+ attr_accessor :client_token_auth_uri
29
+ attr_accessor :config
30
+ attr_accessor :bearer
31
+ attr_accessor :base_url
32
+ def initialize
33
+ super
34
+ @authorization = 'Authorization'
35
+ @client_token = 'Client-Token'
36
+ @grant_type_key = 'grant_type'
37
+ @client_credentials = 'client_credentials'
38
+ @password = 'password'
39
+ @username = 'username'
40
+ @application_json_value = 'application/json'
41
+ @auth_uri = '/authorization/v1/oauth/token'
42
+ @client_token_auth_uri = '/authorization/v1/client-token'
43
+ @bearer = 'Bearer '
44
+ @config = Configuration.default
45
+ yield(self) if block_given?
46
+ end
47
+
48
+ def self.default
49
+ @@default ||= AuthConfiguration.new
50
+ end
51
+
52
+ def configure
53
+ yield(self) if block_given?
54
+ end
55
+
56
+ def set_base_url(base_url)
57
+ @config.host = base_url
58
+ end
59
+
60
+ def auth_url(host)
61
+ url = "#{scheme}://#{[host, auth_uri].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
62
+ URI.encode(url)
63
+ end
64
+
65
+ def client_token_auth_url(host)
66
+ url = "#{scheme}://#{[host, client_token_auth_uri].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
67
+ URI.encode(url)
68
+ end
69
+
70
+ def create_client_token_credential(client_id, client_secret, client_token)
71
+ basic_cred = 'Basic ' + ["#{client_id}:#{client_secret}"].pack('m').delete("\r\n")
72
+ header_params = {}
73
+ header_params[@authorization] = basic_cred;
74
+ header_params[@client_token] = @bearer + client_token;
75
+ response = Typhoeus::Request.new(
76
+ client_token_auth_url(@config.host),
77
+ :method => :post,
78
+ :headers => header_params,
79
+ :params => nil
80
+ ).run
81
+
82
+ if @debugging
83
+ @logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
84
+ end
85
+ body = JSON.parse(response.body)
86
+ unless response.success?
87
+ if response.timed_out?
88
+ raise ApiError.new('Connection timed out')
89
+ elsif response.code == 0
90
+ # Errors from libcurl will be made visible here
91
+ raise ApiError.new(:code => 0,
92
+ :message => response.return_message)
93
+ else
94
+ raise ApiError.new(:code => response.code,
95
+ :response_headers => response.headers,
96
+ :response_body => response.body), response.body
97
+ end
98
+ end
99
+ @config.access_token = body['access_token']
100
+ end
101
+
102
+ def create_client_credential(client_id, client_secret)
103
+ basic_cred = 'Basic ' + ["#{client_id}:#{client_secret}"].pack('m').delete("\r\n")
104
+ # Request Params
105
+ params = {}
106
+ params[@grant_type_key] = @client_credentials
107
+ # Header parameters
108
+ header_params = {}
109
+ header_params['Accept'] = '*/*'
110
+ header_params['Content-Type'] = 'application/json'
111
+ header_params[@authorization] = basic_cred
112
+ response = Typhoeus::Request.new(
113
+ auth_url(@config.host),
114
+ :method => :post,
115
+ :headers => header_params,
116
+ :params => params
117
+ ).run
118
+
119
+ if @debugging
120
+ @logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
121
+ end
122
+ body = JSON.parse(response.body)
123
+ unless response.success?
124
+ if response.timed_out?
125
+ raise ApiError.new('Connection timed out')
126
+ elsif response.code == 0
127
+ # Errors from libcurl will be made visible here
128
+ raise ApiError.new(:code => 0,
129
+ :message => response.return_message)
130
+ else
131
+ raise ApiError.new(:code => response.code,
132
+ :response_headers => response.headers,
133
+ :response_body => response.body), response.body
134
+ end
135
+ end
136
+ @config.access_token = body['access_token']
137
+ end
138
+
139
+ def set_access_token(token)
140
+ @config.access_token = token
141
+ end
142
+
143
+ def create_password_credential(client_id, client_secret, username, password)
144
+ basic_cred = 'Basic ' + ["#{client_id}:#{client_secret}"].pack('m').delete("\r\n")
145
+ # Request Params
146
+ params = {}
147
+ params[@grant_type_key] = @password
148
+ params[@username] = username
149
+ params[@password] = password
150
+ # header parameters
151
+ header_params = {}
152
+ header_params['Accept'] = '*/*'
153
+ header_params['Content-Type'] = 'application/json'
154
+ header_params[@authorization] = basic_cred
155
+ response = Typhoeus::Request.new(
156
+ auth_url(@config.host),
157
+ :method => :post,
158
+ :headers => header_params,
159
+ :params => params
160
+ ).run
161
+ if @debugging
162
+ @logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
163
+ end
164
+ body = JSON.parse(response.body)
165
+ unless response.success?
166
+ if response.timed_out?
167
+ raise ApiError.new('Connection timed out')
168
+ elsif response.code == 0
169
+ # Errors from libcurl will be made visible here
170
+ raise ApiError.new(:code => 0,
171
+ :message => response.return_message)
172
+ else
173
+ raise ApiError.new(:code => response.code,
174
+ :response_headers => response.headers,
175
+ :response_body => response.body), body
176
+ end
177
+ end
178
+ @config.access_token = body['access_token']
179
+ end
180
+ end
181
+ end