merge_accounting_client 1.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 (399) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +251 -0
  4. data/Rakefile +10 -0
  5. data/docs/Account.md +38 -0
  6. data/docs/AccountDetails.md +34 -0
  7. data/docs/AccountDetailsAndActions.md +34 -0
  8. data/docs/AccountDetailsAndActionsIntegration.md +32 -0
  9. data/docs/AccountDetailsAndActionsStatusEnum.md +15 -0
  10. data/docs/AccountDetailsApi.md +79 -0
  11. data/docs/AccountIntegration.md +28 -0
  12. data/docs/AccountStatusEnum.md +15 -0
  13. data/docs/AccountToken.md +20 -0
  14. data/docs/AccountTokenApi.md +79 -0
  15. data/docs/AccountingAttachment.md +26 -0
  16. data/docs/AccountingPhoneNumber.md +20 -0
  17. data/docs/AccountsApi.md +177 -0
  18. data/docs/Address.md +30 -0
  19. data/docs/AddressTypeEnum.md +15 -0
  20. data/docs/AddressesApi.md +85 -0
  21. data/docs/AttachmentsApi.md +177 -0
  22. data/docs/AvailableActions.md +22 -0
  23. data/docs/AvailableActionsApi.md +79 -0
  24. data/docs/BalanceSheet.md +36 -0
  25. data/docs/BalanceSheetsApi.md +177 -0
  26. data/docs/CashFlowStatement.md +40 -0
  27. data/docs/CashFlowStatementsApi.md +177 -0
  28. data/docs/CategoriesEnum.md +15 -0
  29. data/docs/CategoryEnum.md +15 -0
  30. data/docs/ClassificationEnum.md +15 -0
  31. data/docs/CompanyInfo.md +42 -0
  32. data/docs/CompanyInfoApi.md +181 -0
  33. data/docs/Contact.md +42 -0
  34. data/docs/ContactsApi.md +181 -0
  35. data/docs/CountryEnum.md +15 -0
  36. data/docs/CreditNote.md +38 -0
  37. data/docs/CreditNoteStatusEnum.md +15 -0
  38. data/docs/CreditNotesApi.md +181 -0
  39. data/docs/CurrencyEnum.md +15 -0
  40. data/docs/DataPassthroughRequest.md +30 -0
  41. data/docs/DebugModeLog.md +22 -0
  42. data/docs/DebugModelLogSummary.md +22 -0
  43. data/docs/DeleteAccountApi.md +78 -0
  44. data/docs/EncodingEnum.md +15 -0
  45. data/docs/EndUserDetailsRequest.md +28 -0
  46. data/docs/ErrorValidationProblem.md +24 -0
  47. data/docs/Expense.md +38 -0
  48. data/docs/ExpenseLine.md +28 -0
  49. data/docs/ExpensesApi.md +181 -0
  50. data/docs/ForceResyncApi.md +79 -0
  51. data/docs/GenerateKeyApi.md +79 -0
  52. data/docs/GenerateRemoteKeyRequest.md +18 -0
  53. data/docs/IncomeStatement.md +42 -0
  54. data/docs/IncomeStatementsApi.md +177 -0
  55. data/docs/Invoice.md +54 -0
  56. data/docs/InvoiceEndpointRequest.md +18 -0
  57. data/docs/InvoiceLineItem.md +34 -0
  58. data/docs/InvoiceLineItemRequest.md +30 -0
  59. data/docs/InvoiceRequest.md +48 -0
  60. data/docs/InvoiceResponse.md +24 -0
  61. data/docs/InvoiceTypeEnum.md +15 -0
  62. data/docs/InvoicesApi.md +337 -0
  63. data/docs/Issue.md +30 -0
  64. data/docs/IssueStatusEnum.md +15 -0
  65. data/docs/IssuesApi.md +177 -0
  66. data/docs/Item.md +36 -0
  67. data/docs/ItemsApi.md +181 -0
  68. data/docs/JournalEntriesApi.md +333 -0
  69. data/docs/JournalEntry.md +32 -0
  70. data/docs/JournalEntryEndpointRequest.md +18 -0
  71. data/docs/JournalEntryRequest.md +26 -0
  72. data/docs/JournalEntryResponse.md +24 -0
  73. data/docs/JournalLine.md +26 -0
  74. data/docs/JournalLineRequest.md +26 -0
  75. data/docs/LinkToken.md +20 -0
  76. data/docs/LinkTokenApi.md +79 -0
  77. data/docs/LinkedAccountStatus.md +20 -0
  78. data/docs/LinkedAccountsApi.md +103 -0
  79. data/docs/MetaResponse.md +24 -0
  80. data/docs/MethodEnum.md +15 -0
  81. data/docs/ModelOperation.md +24 -0
  82. data/docs/MultipartFormFieldRequest.md +26 -0
  83. data/docs/PaginatedAccountDetailsAndActionsList.md +22 -0
  84. data/docs/PaginatedAccountList.md +22 -0
  85. data/docs/PaginatedAccountingAttachmentList.md +22 -0
  86. data/docs/PaginatedBalanceSheetList.md +22 -0
  87. data/docs/PaginatedCashFlowStatementList.md +22 -0
  88. data/docs/PaginatedCompanyInfoList.md +22 -0
  89. data/docs/PaginatedContactList.md +22 -0
  90. data/docs/PaginatedCreditNoteList.md +22 -0
  91. data/docs/PaginatedExpenseList.md +22 -0
  92. data/docs/PaginatedIncomeStatementList.md +22 -0
  93. data/docs/PaginatedInvoiceList.md +22 -0
  94. data/docs/PaginatedIssueList.md +22 -0
  95. data/docs/PaginatedItemList.md +22 -0
  96. data/docs/PaginatedJournalEntryList.md +22 -0
  97. data/docs/PaginatedPaymentList.md +22 -0
  98. data/docs/PaginatedPurchaseOrderList.md +22 -0
  99. data/docs/PaginatedSyncStatusList.md +22 -0
  100. data/docs/PaginatedTaxRateList.md +22 -0
  101. data/docs/PaginatedTrackingCategoryList.md +22 -0
  102. data/docs/PaginatedWebhookReceiverList.md +22 -0
  103. data/docs/PassthroughApi.md +81 -0
  104. data/docs/Payment.md +32 -0
  105. data/docs/PaymentsApi.md +185 -0
  106. data/docs/PhoneNumbersApi.md +85 -0
  107. data/docs/PurchaseOrder.md +40 -0
  108. data/docs/PurchaseOrderLineItem.md +24 -0
  109. data/docs/PurchaseOrderStatusEnum.md +15 -0
  110. data/docs/PurchaseOrdersApi.md +181 -0
  111. data/docs/RegenerateKeyApi.md +79 -0
  112. data/docs/RemoteData.md +20 -0
  113. data/docs/RemoteDataRequest.md +20 -0
  114. data/docs/RemoteKey.md +20 -0
  115. data/docs/RemoteKeyForRegenerationRequest.md +18 -0
  116. data/docs/RemoteResponse.md +26 -0
  117. data/docs/ReportItem.md +24 -0
  118. data/docs/RequestFormatEnum.md +15 -0
  119. data/docs/StateEnum.md +15 -0
  120. data/docs/Status7d1Enum.md +15 -0
  121. data/docs/SyncStatus.md +28 -0
  122. data/docs/SyncStatusApi.md +85 -0
  123. data/docs/SyncStatusStatusEnum.md +15 -0
  124. data/docs/TaxRate.md +28 -0
  125. data/docs/TaxRatesApi.md +177 -0
  126. data/docs/TrackingCategoriesApi.md +177 -0
  127. data/docs/TrackingCategory.md +26 -0
  128. data/docs/ValidationProblemSource.md +18 -0
  129. data/docs/WarningValidationProblem.md +24 -0
  130. data/docs/WebhookReceiver.md +22 -0
  131. data/docs/WebhookReceiverRequest.md +22 -0
  132. data/docs/WebhookReceiversApi.md +155 -0
  133. data/lib/merge_accounting_client/api/account_details_api.rb +84 -0
  134. data/lib/merge_accounting_client/api/account_token_api.rb +83 -0
  135. data/lib/merge_accounting_client/api/accounts_api.rb +182 -0
  136. data/lib/merge_accounting_client/api/addresses_api.rb +93 -0
  137. data/lib/merge_accounting_client/api/attachments_api.rb +182 -0
  138. data/lib/merge_accounting_client/api/available_actions_api.rb +84 -0
  139. data/lib/merge_accounting_client/api/balance_sheets_api.rb +182 -0
  140. data/lib/merge_accounting_client/api/cash_flow_statements_api.rb +182 -0
  141. data/lib/merge_accounting_client/api/company_info_api.rb +196 -0
  142. data/lib/merge_accounting_client/api/contacts_api.rb +196 -0
  143. data/lib/merge_accounting_client/api/credit_notes_api.rb +196 -0
  144. data/lib/merge_accounting_client/api/delete_account_api.rb +82 -0
  145. data/lib/merge_accounting_client/api/expenses_api.rb +196 -0
  146. data/lib/merge_accounting_client/api/force_resync_api.rb +84 -0
  147. data/lib/merge_accounting_client/api/generate_key_api.rb +85 -0
  148. data/lib/merge_accounting_client/api/income_statements_api.rb +182 -0
  149. data/lib/merge_accounting_client/api/invoices_api.rb +344 -0
  150. data/lib/merge_accounting_client/api/issues_api.rb +181 -0
  151. data/lib/merge_accounting_client/api/items_api.rb +196 -0
  152. data/lib/merge_accounting_client/api/journal_entries_api.rb +334 -0
  153. data/lib/merge_accounting_client/api/link_token_api.rb +85 -0
  154. data/lib/merge_accounting_client/api/linked_accounts_api.rb +117 -0
  155. data/lib/merge_accounting_client/api/passthrough_api.rb +92 -0
  156. data/lib/merge_accounting_client/api/payments_api.rb +202 -0
  157. data/lib/merge_accounting_client/api/phone_numbers_api.rb +93 -0
  158. data/lib/merge_accounting_client/api/purchase_orders_api.rb +196 -0
  159. data/lib/merge_accounting_client/api/regenerate_key_api.rb +85 -0
  160. data/lib/merge_accounting_client/api/sync_status_api.rb +90 -0
  161. data/lib/merge_accounting_client/api/tax_rates_api.rb +182 -0
  162. data/lib/merge_accounting_client/api/tracking_categories_api.rb +182 -0
  163. data/lib/merge_accounting_client/api/webhook_receivers_api.rb +146 -0
  164. data/lib/merge_accounting_client/api_client.rb +390 -0
  165. data/lib/merge_accounting_client/api_error.rb +57 -0
  166. data/lib/merge_accounting_client/configuration.rb +281 -0
  167. data/lib/merge_accounting_client/models/account.rb +330 -0
  168. data/lib/merge_accounting_client/models/account_details.rb +291 -0
  169. data/lib/merge_accounting_client/models/account_details_and_actions.rb +316 -0
  170. data/lib/merge_accounting_client/models/account_details_and_actions_integration.rb +310 -0
  171. data/lib/merge_accounting_client/models/account_details_and_actions_status_enum.rb +38 -0
  172. data/lib/merge_accounting_client/models/account_integration.rb +303 -0
  173. data/lib/merge_accounting_client/models/account_status_enum.rb +38 -0
  174. data/lib/merge_accounting_client/models/account_token.rb +237 -0
  175. data/lib/merge_accounting_client/models/accounting_attachment.rb +279 -0
  176. data/lib/merge_accounting_client/models/accounting_phone_number.rb +232 -0
  177. data/lib/merge_accounting_client/models/address.rb +287 -0
  178. data/lib/merge_accounting_client/models/address_type_enum.rb +37 -0
  179. data/lib/merge_accounting_client/models/available_actions.rb +249 -0
  180. data/lib/merge_accounting_client/models/balance_sheet.rb +319 -0
  181. data/lib/merge_accounting_client/models/cash_flow_statement.rb +341 -0
  182. data/lib/merge_accounting_client/models/categories_enum.rb +39 -0
  183. data/lib/merge_accounting_client/models/category_enum.rb +39 -0
  184. data/lib/merge_accounting_client/models/classification_enum.rb +40 -0
  185. data/lib/merge_accounting_client/models/company_info.rb +402 -0
  186. data/lib/merge_accounting_client/models/contact.rb +354 -0
  187. data/lib/merge_accounting_client/models/country_enum.rb +284 -0
  188. data/lib/merge_accounting_client/models/credit_note.rb +331 -0
  189. data/lib/merge_accounting_client/models/credit_note_status_enum.rb +38 -0
  190. data/lib/merge_accounting_client/models/currency_enum.rb +341 -0
  191. data/lib/merge_accounting_client/models/data_passthrough_request.rb +343 -0
  192. data/lib/merge_accounting_client/models/debug_mode_log.rb +251 -0
  193. data/lib/merge_accounting_client/models/debug_model_log_summary.rb +251 -0
  194. data/lib/merge_accounting_client/models/encoding_enum.rb +37 -0
  195. data/lib/merge_accounting_client/models/end_user_details_request.rb +413 -0
  196. data/lib/merge_accounting_client/models/error_validation_problem.rb +260 -0
  197. data/lib/merge_accounting_client/models/expense.rb +328 -0
  198. data/lib/merge_accounting_client/models/expense_line.rb +274 -0
  199. data/lib/merge_accounting_client/models/generate_remote_key_request.rb +243 -0
  200. data/lib/merge_accounting_client/models/income_statement.rb +352 -0
  201. data/lib/merge_accounting_client/models/invoice.rb +418 -0
  202. data/lib/merge_accounting_client/models/invoice_endpoint_request.rb +223 -0
  203. data/lib/merge_accounting_client/models/invoice_line_item.rb +306 -0
  204. data/lib/merge_accounting_client/models/invoice_line_item_request.rb +285 -0
  205. data/lib/merge_accounting_client/models/invoice_request.rb +386 -0
  206. data/lib/merge_accounting_client/models/invoice_response.rb +266 -0
  207. data/lib/merge_accounting_client/models/invoice_type_enum.rb +37 -0
  208. data/lib/merge_accounting_client/models/issue.rb +281 -0
  209. data/lib/merge_accounting_client/models/issue_status_enum.rb +37 -0
  210. data/lib/merge_accounting_client/models/item.rb +317 -0
  211. data/lib/merge_accounting_client/models/journal_entry.rb +298 -0
  212. data/lib/merge_accounting_client/models/journal_entry_endpoint_request.rb +223 -0
  213. data/lib/merge_accounting_client/models/journal_entry_request.rb +266 -0
  214. data/lib/merge_accounting_client/models/journal_entry_response.rb +266 -0
  215. data/lib/merge_accounting_client/models/journal_line.rb +263 -0
  216. data/lib/merge_accounting_client/models/journal_line_request.rb +263 -0
  217. data/lib/merge_accounting_client/models/link_token.rb +237 -0
  218. data/lib/merge_accounting_client/models/linked_account_status.rb +237 -0
  219. data/lib/merge_accounting_client/models/meta_response.rb +262 -0
  220. data/lib/merge_accounting_client/models/method_enum.rb +42 -0
  221. data/lib/merge_accounting_client/models/model_operation.rb +272 -0
  222. data/lib/merge_accounting_client/models/multipart_form_field_request.rb +341 -0
  223. data/lib/merge_accounting_client/models/paginated_account_details_and_actions_list.rb +240 -0
  224. data/lib/merge_accounting_client/models/paginated_account_list.rb +240 -0
  225. data/lib/merge_accounting_client/models/paginated_accounting_attachment_list.rb +240 -0
  226. data/lib/merge_accounting_client/models/paginated_balance_sheet_list.rb +240 -0
  227. data/lib/merge_accounting_client/models/paginated_cash_flow_statement_list.rb +240 -0
  228. data/lib/merge_accounting_client/models/paginated_company_info_list.rb +240 -0
  229. data/lib/merge_accounting_client/models/paginated_contact_list.rb +240 -0
  230. data/lib/merge_accounting_client/models/paginated_credit_note_list.rb +240 -0
  231. data/lib/merge_accounting_client/models/paginated_expense_list.rb +240 -0
  232. data/lib/merge_accounting_client/models/paginated_income_statement_list.rb +240 -0
  233. data/lib/merge_accounting_client/models/paginated_invoice_list.rb +240 -0
  234. data/lib/merge_accounting_client/models/paginated_issue_list.rb +240 -0
  235. data/lib/merge_accounting_client/models/paginated_item_list.rb +240 -0
  236. data/lib/merge_accounting_client/models/paginated_journal_entry_list.rb +240 -0
  237. data/lib/merge_accounting_client/models/paginated_payment_list.rb +240 -0
  238. data/lib/merge_accounting_client/models/paginated_purchase_order_list.rb +240 -0
  239. data/lib/merge_accounting_client/models/paginated_sync_status_list.rb +240 -0
  240. data/lib/merge_accounting_client/models/paginated_tax_rate_list.rb +240 -0
  241. data/lib/merge_accounting_client/models/paginated_tracking_category_list.rb +240 -0
  242. data/lib/merge_accounting_client/models/paginated_webhook_receiver_list.rb +240 -0
  243. data/lib/merge_accounting_client/models/payment.rb +295 -0
  244. data/lib/merge_accounting_client/models/purchase_order.rb +341 -0
  245. data/lib/merge_accounting_client/models/purchase_order_line_item.rb +253 -0
  246. data/lib/merge_accounting_client/models/purchase_order_status_enum.rb +40 -0
  247. data/lib/merge_accounting_client/models/remote_data.rb +234 -0
  248. data/lib/merge_accounting_client/models/remote_data_request.rb +253 -0
  249. data/lib/merge_accounting_client/models/remote_key.rb +238 -0
  250. data/lib/merge_accounting_client/models/remote_key_for_regeneration_request.rb +243 -0
  251. data/lib/merge_accounting_client/models/remote_response.rb +279 -0
  252. data/lib/merge_accounting_client/models/report_item.rb +254 -0
  253. data/lib/merge_accounting_client/models/request_format_enum.rb +38 -0
  254. data/lib/merge_accounting_client/models/state_enum.rb +94 -0
  255. data/lib/merge_accounting_client/models/status7d1_enum.rb +37 -0
  256. data/lib/merge_accounting_client/models/sync_status.rb +294 -0
  257. data/lib/merge_accounting_client/models/sync_status_status_enum.rb +39 -0
  258. data/lib/merge_accounting_client/models/tax_rate.rb +275 -0
  259. data/lib/merge_accounting_client/models/tracking_category.rb +264 -0
  260. data/lib/merge_accounting_client/models/validation_problem_source.rb +223 -0
  261. data/lib/merge_accounting_client/models/warning_validation_problem.rb +260 -0
  262. data/lib/merge_accounting_client/models/webhook_receiver.rb +246 -0
  263. data/lib/merge_accounting_client/models/webhook_receiver_request.rb +280 -0
  264. data/lib/merge_accounting_client/version.rb +15 -0
  265. data/lib/merge_accounting_client.rb +167 -0
  266. data/merge_accounting_client.gemspec +38 -0
  267. data/pull_request_template.md +19 -0
  268. data/spec/api/account_details_api_spec.rb +46 -0
  269. data/spec/api/account_token_api_spec.rb +46 -0
  270. data/spec/api/accounts_api_spec.rb +68 -0
  271. data/spec/api/addresses_api_spec.rb +48 -0
  272. data/spec/api/attachments_api_spec.rb +68 -0
  273. data/spec/api/available_actions_api_spec.rb +46 -0
  274. data/spec/api/balance_sheets_api_spec.rb +68 -0
  275. data/spec/api/cash_flow_statements_api_spec.rb +68 -0
  276. data/spec/api/company_info_api_spec.rb +70 -0
  277. data/spec/api/contacts_api_spec.rb +70 -0
  278. data/spec/api/credit_notes_api_spec.rb +70 -0
  279. data/spec/api/delete_account_api_spec.rb +46 -0
  280. data/spec/api/expenses_api_spec.rb +70 -0
  281. data/spec/api/force_resync_api_spec.rb +46 -0
  282. data/spec/api/generate_key_api_spec.rb +46 -0
  283. data/spec/api/income_statements_api_spec.rb +68 -0
  284. data/spec/api/invoices_api_spec.rb +97 -0
  285. data/spec/api/issues_api_spec.rb +69 -0
  286. data/spec/api/items_api_spec.rb +70 -0
  287. data/spec/api/journal_entries_api_spec.rb +95 -0
  288. data/spec/api/link_token_api_spec.rb +46 -0
  289. data/spec/api/linked_accounts_api_spec.rb +57 -0
  290. data/spec/api/passthrough_api_spec.rb +47 -0
  291. data/spec/api/payments_api_spec.rb +72 -0
  292. data/spec/api/phone_numbers_api_spec.rb +48 -0
  293. data/spec/api/purchase_orders_api_spec.rb +70 -0
  294. data/spec/api/regenerate_key_api_spec.rb +46 -0
  295. data/spec/api/sync_status_api_spec.rb +48 -0
  296. data/spec/api/tax_rates_api_spec.rb +68 -0
  297. data/spec/api/tracking_categories_api_spec.rb +68 -0
  298. data/spec/api/webhook_receivers_api_spec.rb +58 -0
  299. data/spec/api_client_spec.rb +226 -0
  300. data/spec/configuration_spec.rb +42 -0
  301. data/spec/models/account_details_and_actions_integration_spec.rb +76 -0
  302. data/spec/models/account_details_and_actions_spec.rb +82 -0
  303. data/spec/models/account_details_and_actions_status_enum_spec.rb +28 -0
  304. data/spec/models/account_details_spec.rb +82 -0
  305. data/spec/models/account_integration_spec.rb +64 -0
  306. data/spec/models/account_spec.rb +94 -0
  307. data/spec/models/account_status_enum_spec.rb +28 -0
  308. data/spec/models/account_token_spec.rb +40 -0
  309. data/spec/models/accounting_attachment_spec.rb +58 -0
  310. data/spec/models/accounting_phone_number_spec.rb +40 -0
  311. data/spec/models/address_spec.rb +70 -0
  312. data/spec/models/address_type_enum_spec.rb +28 -0
  313. data/spec/models/available_actions_spec.rb +46 -0
  314. data/spec/models/balance_sheet_spec.rb +88 -0
  315. data/spec/models/cash_flow_statement_spec.rb +100 -0
  316. data/spec/models/categories_enum_spec.rb +28 -0
  317. data/spec/models/category_enum_spec.rb +28 -0
  318. data/spec/models/classification_enum_spec.rb +28 -0
  319. data/spec/models/company_info_spec.rb +106 -0
  320. data/spec/models/contact_spec.rb +106 -0
  321. data/spec/models/country_enum_spec.rb +28 -0
  322. data/spec/models/credit_note_spec.rb +94 -0
  323. data/spec/models/credit_note_status_enum_spec.rb +28 -0
  324. data/spec/models/currency_enum_spec.rb +28 -0
  325. data/spec/models/data_passthrough_request_spec.rb +70 -0
  326. data/spec/models/debug_mode_log_spec.rb +46 -0
  327. data/spec/models/debug_model_log_summary_spec.rb +46 -0
  328. data/spec/models/encoding_enum_spec.rb +28 -0
  329. data/spec/models/end_user_details_request_spec.rb +64 -0
  330. data/spec/models/error_validation_problem_spec.rb +52 -0
  331. data/spec/models/expense_line_spec.rb +64 -0
  332. data/spec/models/expense_spec.rb +94 -0
  333. data/spec/models/generate_remote_key_request_spec.rb +34 -0
  334. data/spec/models/income_statement_spec.rb +106 -0
  335. data/spec/models/invoice_endpoint_request_spec.rb +34 -0
  336. data/spec/models/invoice_line_item_request_spec.rb +70 -0
  337. data/spec/models/invoice_line_item_spec.rb +82 -0
  338. data/spec/models/invoice_request_spec.rb +124 -0
  339. data/spec/models/invoice_response_spec.rb +52 -0
  340. data/spec/models/invoice_spec.rb +142 -0
  341. data/spec/models/invoice_type_enum_spec.rb +28 -0
  342. data/spec/models/issue_spec.rb +70 -0
  343. data/spec/models/issue_status_enum_spec.rb +28 -0
  344. data/spec/models/item_spec.rb +88 -0
  345. data/spec/models/journal_entry_endpoint_request_spec.rb +34 -0
  346. data/spec/models/journal_entry_request_spec.rb +58 -0
  347. data/spec/models/journal_entry_response_spec.rb +52 -0
  348. data/spec/models/journal_entry_spec.rb +76 -0
  349. data/spec/models/journal_line_request_spec.rb +58 -0
  350. data/spec/models/journal_line_spec.rb +58 -0
  351. data/spec/models/link_token_spec.rb +40 -0
  352. data/spec/models/linked_account_status_spec.rb +40 -0
  353. data/spec/models/meta_response_spec.rb +52 -0
  354. data/spec/models/method_enum_spec.rb +28 -0
  355. data/spec/models/model_operation_spec.rb +52 -0
  356. data/spec/models/multipart_form_field_request_spec.rb +58 -0
  357. data/spec/models/paginated_account_details_and_actions_list_spec.rb +46 -0
  358. data/spec/models/paginated_account_list_spec.rb +46 -0
  359. data/spec/models/paginated_accounting_attachment_list_spec.rb +46 -0
  360. data/spec/models/paginated_balance_sheet_list_spec.rb +46 -0
  361. data/spec/models/paginated_cash_flow_statement_list_spec.rb +46 -0
  362. data/spec/models/paginated_company_info_list_spec.rb +46 -0
  363. data/spec/models/paginated_contact_list_spec.rb +46 -0
  364. data/spec/models/paginated_credit_note_list_spec.rb +46 -0
  365. data/spec/models/paginated_expense_list_spec.rb +46 -0
  366. data/spec/models/paginated_income_statement_list_spec.rb +46 -0
  367. data/spec/models/paginated_invoice_list_spec.rb +46 -0
  368. data/spec/models/paginated_issue_list_spec.rb +46 -0
  369. data/spec/models/paginated_item_list_spec.rb +46 -0
  370. data/spec/models/paginated_journal_entry_list_spec.rb +46 -0
  371. data/spec/models/paginated_payment_list_spec.rb +46 -0
  372. data/spec/models/paginated_purchase_order_list_spec.rb +46 -0
  373. data/spec/models/paginated_sync_status_list_spec.rb +46 -0
  374. data/spec/models/paginated_tax_rate_list_spec.rb +46 -0
  375. data/spec/models/paginated_tracking_category_list_spec.rb +46 -0
  376. data/spec/models/paginated_webhook_receiver_list_spec.rb +46 -0
  377. data/spec/models/payment_spec.rb +76 -0
  378. data/spec/models/purchase_order_line_item_spec.rb +52 -0
  379. data/spec/models/purchase_order_spec.rb +100 -0
  380. data/spec/models/purchase_order_status_enum_spec.rb +28 -0
  381. data/spec/models/remote_data_request_spec.rb +40 -0
  382. data/spec/models/remote_data_spec.rb +40 -0
  383. data/spec/models/remote_key_for_regeneration_request_spec.rb +34 -0
  384. data/spec/models/remote_key_spec.rb +40 -0
  385. data/spec/models/remote_response_spec.rb +58 -0
  386. data/spec/models/report_item_spec.rb +52 -0
  387. data/spec/models/request_format_enum_spec.rb +28 -0
  388. data/spec/models/state_enum_spec.rb +28 -0
  389. data/spec/models/status7d1_enum_spec.rb +28 -0
  390. data/spec/models/sync_status_spec.rb +64 -0
  391. data/spec/models/sync_status_status_enum_spec.rb +28 -0
  392. data/spec/models/tax_rate_spec.rb +64 -0
  393. data/spec/models/tracking_category_spec.rb +58 -0
  394. data/spec/models/validation_problem_source_spec.rb +34 -0
  395. data/spec/models/warning_validation_problem_spec.rb +52 -0
  396. data/spec/models/webhook_receiver_request_spec.rb +46 -0
  397. data/spec/models/webhook_receiver_spec.rb +46 -0
  398. data/spec/spec_helper.rb +111 -0
  399. metadata +612 -0
@@ -0,0 +1,281 @@
1
+ =begin
2
+ #Merge Accounting API
3
+
4
+ #The unified API for building rich integrations with multiple Accounting & Finance platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeAccountingClient
17
+ class Issue
18
+ attr_accessor :id
19
+
20
+ attr_accessor :status
21
+
22
+ attr_accessor :error_description
23
+
24
+ attr_accessor :end_user
25
+
26
+ attr_accessor :first_incident_time
27
+
28
+ attr_accessor :last_incident_time
29
+
30
+ attr_accessor :is_muted
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'id' => :'id',
36
+ :'status' => :'status',
37
+ :'error_description' => :'error_description',
38
+ :'end_user' => :'end_user',
39
+ :'first_incident_time' => :'first_incident_time',
40
+ :'last_incident_time' => :'last_incident_time',
41
+ :'is_muted' => :'is_muted'
42
+ }
43
+ end
44
+
45
+ # Returns all the JSON keys this model knows about
46
+ def self.acceptable_attributes
47
+ attribute_map.values
48
+ end
49
+
50
+ # Attribute type mapping.
51
+ def self.openapi_types
52
+ {
53
+ :'id' => :'String',
54
+ :'status' => :'IssueStatusEnum',
55
+ :'error_description' => :'String',
56
+ :'end_user' => :'Hash<String, AnyType>',
57
+ :'first_incident_time' => :'Time',
58
+ :'last_incident_time' => :'Time',
59
+ :'is_muted' => :'Boolean'
60
+ }
61
+ end
62
+
63
+ # List of attributes with nullable: true
64
+ def self.openapi_nullable
65
+ Set.new([
66
+ :'first_incident_time',
67
+ :'last_incident_time',
68
+ ])
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ if (!attributes.is_a?(Hash))
75
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MergeAccountingClient::Issue` initialize method"
76
+ end
77
+
78
+ # check to see if the attribute exists and convert string to symbol for hash key
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!self.class.attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MergeAccountingClient::Issue`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'id')
87
+ self.id = attributes[:'id']
88
+ end
89
+
90
+ if attributes.key?(:'status')
91
+ self.status = attributes[:'status']
92
+ end
93
+
94
+ if attributes.key?(:'error_description')
95
+ self.error_description = attributes[:'error_description']
96
+ end
97
+
98
+ if attributes.key?(:'end_user')
99
+ if (value = attributes[:'end_user']).is_a?(Hash)
100
+ self.end_user = value
101
+ end
102
+ end
103
+
104
+ if attributes.key?(:'first_incident_time')
105
+ self.first_incident_time = attributes[:'first_incident_time']
106
+ end
107
+
108
+ if attributes.key?(:'last_incident_time')
109
+ self.last_incident_time = attributes[:'last_incident_time']
110
+ end
111
+
112
+ if attributes.key?(:'is_muted')
113
+ self.is_muted = attributes[:'is_muted']
114
+ end
115
+ end
116
+
117
+ # Show invalid properties with the reasons. Usually used together with valid?
118
+ # @return Array for valid properties with the reasons
119
+ def list_invalid_properties
120
+ invalid_properties = Array.new
121
+ if @error_description.nil?
122
+ invalid_properties.push('invalid value for "error_description", error_description cannot be nil.')
123
+ end
124
+
125
+ invalid_properties
126
+ end
127
+
128
+ # Check to see if the all the properties in the model are valid
129
+ # @return true if the model is valid
130
+ def valid?
131
+ return false if @error_description.nil?
132
+ true
133
+ end
134
+
135
+ # Checks equality by comparing each attribute.
136
+ # @param [Object] Object to be compared
137
+ def ==(o)
138
+ return true if self.equal?(o)
139
+ self.class == o.class &&
140
+ id == o.id &&
141
+ status == o.status &&
142
+ error_description == o.error_description &&
143
+ end_user == o.end_user &&
144
+ first_incident_time == o.first_incident_time &&
145
+ last_incident_time == o.last_incident_time &&
146
+ is_muted == o.is_muted
147
+ end
148
+
149
+ # @see the `==` method
150
+ # @param [Object] Object to be compared
151
+ def eql?(o)
152
+ self == o
153
+ end
154
+
155
+ # Calculates hash code according to all attributes.
156
+ # @return [Integer] Hash code
157
+ def hash
158
+ [id, status, error_description, end_user, first_incident_time, last_incident_time, is_muted].hash
159
+ end
160
+
161
+ # Builds the object from hash
162
+ # @param [Hash] attributes Model attributes in the form of hash
163
+ # @return [Object] Returns the model itself
164
+ def self.build_from_hash(attributes)
165
+ new.build_from_hash(attributes)
166
+ end
167
+
168
+ # Builds the object from hash
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ # @return [Object] Returns the model itself
171
+ def build_from_hash(attributes)
172
+ return nil unless attributes.is_a?(Hash)
173
+ self.class.openapi_types.each_pair do |key, type|
174
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
175
+ self.send("#{key}=", nil)
176
+ elsif type =~ /\AArray<(.*)>/i
177
+ # check to ensure the input is an array given that the attribute
178
+ # is documented as an array but the input is not
179
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
180
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
181
+ end
182
+ elsif !attributes[self.class.attribute_map[key]].nil?
183
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
184
+ end
185
+ end
186
+
187
+ self
188
+ end
189
+
190
+ # Deserializes the data based on type
191
+ # @param string type Data type
192
+ # @param string value Value to be deserialized
193
+ # @return [Object] Deserialized data
194
+ def _deserialize(type, value)
195
+ case type.to_sym
196
+ when :Time
197
+ Time.parse(value)
198
+ when :Date
199
+ Date.parse(value)
200
+ when :String
201
+ value
202
+ when :Integer
203
+ value.to_i
204
+ when :Float
205
+ value.to_f
206
+ when :Boolean
207
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
208
+ true
209
+ else
210
+ false
211
+ end
212
+ when :Object
213
+ # generic object (usually a Hash), return directly
214
+ value
215
+ when /\AArray<(?<inner_type>.+)>\z/
216
+ inner_type = Regexp.last_match[:inner_type]
217
+ value.map { |v| _deserialize(inner_type, v) }
218
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
219
+ k_type = Regexp.last_match[:k_type]
220
+ v_type = Regexp.last_match[:v_type]
221
+ {}.tap do |hash|
222
+ value.each do |k, v|
223
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
224
+ end
225
+ end
226
+ else # model
227
+ # models (e.g. Pet) or oneOf
228
+ klass = MergeAccountingClient.const_get(type)
229
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
230
+ end
231
+ end
232
+
233
+ # Returns the string representation of the object
234
+ # @return [String] String presentation of the object
235
+ def to_s
236
+ to_hash.to_s
237
+ end
238
+
239
+ # to_body is an alias to to_hash (backward compatibility)
240
+ # @return [Hash] Returns the object in the form of hash
241
+ def to_body
242
+ to_hash
243
+ end
244
+
245
+ # Returns the object in the form of hash
246
+ # @return [Hash] Returns the object in the form of hash
247
+ def to_hash
248
+ hash = {}
249
+ self.class.attribute_map.each_pair do |attr, param|
250
+ value = self.send(attr)
251
+ if value.nil?
252
+ is_nullable = self.class.openapi_nullable.include?(attr)
253
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
254
+ end
255
+
256
+ hash[param] = _to_hash(value)
257
+ end
258
+ hash
259
+ end
260
+
261
+ # Outputs non-array value in the form of hash
262
+ # For object, use to_hash. Otherwise, just return the value
263
+ # @param [Object] value Any valid value
264
+ # @return [Hash] Returns the value in the form of hash
265
+ def _to_hash(value)
266
+ if value.is_a?(Array)
267
+ value.compact.map { |v| _to_hash(v) }
268
+ elsif value.is_a?(Hash)
269
+ {}.tap do |hash|
270
+ value.each { |k, v| hash[k] = _to_hash(v) }
271
+ end
272
+ elsif value.respond_to? :to_hash
273
+ value.to_hash
274
+ else
275
+ value
276
+ end
277
+ end
278
+
279
+ end
280
+
281
+ end
@@ -0,0 +1,37 @@
1
+ =begin
2
+ #Merge Accounting API
3
+
4
+ #The unified API for building rich integrations with multiple Accounting & Finance platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeAccountingClient
17
+ class IssueStatusEnum
18
+ ONGOING = "ONGOING".freeze
19
+ RESOLVED = "RESOLVED".freeze
20
+
21
+ # Builds the enum from string
22
+ # @param [String] The enum value in the form of the string
23
+ # @return [String] The enum value
24
+ def self.build_from_hash(value)
25
+ new.build_from_hash(value)
26
+ end
27
+
28
+ # Builds the enum from string
29
+ # @param [String] The enum value in the form of the string
30
+ # @return [String] The enum value
31
+ def build_from_hash(value)
32
+ constantValues = IssueStatusEnum.constants.select { |c| IssueStatusEnum::const_get(c) == value }
33
+ raise "Invalid ENUM value #{value} for class #IssueStatusEnum" if constantValues.empty?
34
+ value
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,317 @@
1
+ =begin
2
+ #Merge Accounting API
3
+
4
+ #The unified API for building rich integrations with multiple Accounting & Finance platforms.
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: hello@merge.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MergeAccountingClient
17
+ # # The Item Object ### Description The `Item` object is used to represent an item that a company buys, sells, or resells, such as products and services. ### Usage Example Fetch from the `LIST Items` endpoint and view a company's items.
18
+ class Item
19
+ attr_accessor :id
20
+
21
+ # The third-party API ID of the matching object.
22
+ attr_accessor :remote_id
23
+
24
+ attr_accessor :remote_data
25
+
26
+ # The item's name.
27
+ attr_accessor :name
28
+
29
+ # The item's status.
30
+ attr_accessor :status
31
+
32
+ # The item's unit price.
33
+ attr_accessor :unit_price
34
+
35
+ # The item's purchase price.
36
+ attr_accessor :purchase_price
37
+
38
+ attr_accessor :purchase_account
39
+
40
+ attr_accessor :sales_account
41
+
42
+ # When the third party's item note was updated.
43
+ attr_accessor :remote_updated_at
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'id' => :'id',
49
+ :'remote_id' => :'remote_id',
50
+ :'remote_data' => :'remote_data',
51
+ :'name' => :'name',
52
+ :'status' => :'status',
53
+ :'unit_price' => :'unit_price',
54
+ :'purchase_price' => :'purchase_price',
55
+ :'purchase_account' => :'purchase_account',
56
+ :'sales_account' => :'sales_account',
57
+ :'remote_updated_at' => :'remote_updated_at'
58
+ }
59
+ end
60
+
61
+ # Returns all the JSON keys this model knows about
62
+ def self.acceptable_attributes
63
+ attribute_map.values
64
+ end
65
+
66
+ # Attribute type mapping.
67
+ def self.openapi_types
68
+ {
69
+ :'id' => :'String',
70
+ :'remote_id' => :'String',
71
+ :'remote_data' => :'Array<RemoteData>',
72
+ :'name' => :'String',
73
+ :'status' => :'Status7d1Enum',
74
+ :'unit_price' => :'Float',
75
+ :'purchase_price' => :'Float',
76
+ :'purchase_account' => :'String',
77
+ :'sales_account' => :'String',
78
+ :'remote_updated_at' => :'Time'
79
+ }
80
+ end
81
+
82
+ # List of attributes with nullable: true
83
+ def self.openapi_nullable
84
+ Set.new([
85
+ :'remote_id',
86
+ :'remote_data',
87
+ :'name',
88
+ :'status',
89
+ :'unit_price',
90
+ :'purchase_price',
91
+ :'purchase_account',
92
+ :'sales_account',
93
+ :'remote_updated_at'
94
+ ])
95
+ end
96
+
97
+ # Initializes the object
98
+ # @param [Hash] attributes Model attributes in the form of hash
99
+ def initialize(attributes = {})
100
+ if (!attributes.is_a?(Hash))
101
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MergeAccountingClient::Item` initialize method"
102
+ end
103
+
104
+ # check to see if the attribute exists and convert string to symbol for hash key
105
+ attributes = attributes.each_with_object({}) { |(k, v), h|
106
+ if (!self.class.attribute_map.key?(k.to_sym))
107
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MergeAccountingClient::Item`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
108
+ end
109
+ h[k.to_sym] = v
110
+ }
111
+
112
+ if attributes.key?(:'id')
113
+ self.id = attributes[:'id']
114
+ end
115
+
116
+ if attributes.key?(:'remote_id')
117
+ self.remote_id = attributes[:'remote_id']
118
+ end
119
+
120
+ if attributes.key?(:'remote_data')
121
+ if (value = attributes[:'remote_data']).is_a?(Array)
122
+ self.remote_data = value
123
+ end
124
+ end
125
+
126
+ if attributes.key?(:'name')
127
+ self.name = attributes[:'name']
128
+ end
129
+
130
+ if attributes.key?(:'status')
131
+ self.status = attributes[:'status']
132
+ end
133
+
134
+ if attributes.key?(:'unit_price')
135
+ self.unit_price = attributes[:'unit_price']
136
+ end
137
+
138
+ if attributes.key?(:'purchase_price')
139
+ self.purchase_price = attributes[:'purchase_price']
140
+ end
141
+
142
+ if attributes.key?(:'purchase_account')
143
+ self.purchase_account = attributes[:'purchase_account']
144
+ end
145
+
146
+ if attributes.key?(:'sales_account')
147
+ self.sales_account = attributes[:'sales_account']
148
+ end
149
+
150
+ if attributes.key?(:'remote_updated_at')
151
+ self.remote_updated_at = attributes[:'remote_updated_at']
152
+ end
153
+ end
154
+
155
+ # Show invalid properties with the reasons. Usually used together with valid?
156
+ # @return Array for valid properties with the reasons
157
+ def list_invalid_properties
158
+ invalid_properties = Array.new
159
+ invalid_properties
160
+ end
161
+
162
+ # Check to see if the all the properties in the model are valid
163
+ # @return true if the model is valid
164
+ def valid?
165
+ true
166
+ end
167
+
168
+ # Checks equality by comparing each attribute.
169
+ # @param [Object] Object to be compared
170
+ def ==(o)
171
+ return true if self.equal?(o)
172
+ self.class == o.class &&
173
+ id == o.id &&
174
+ remote_id == o.remote_id &&
175
+ remote_data == o.remote_data &&
176
+ name == o.name &&
177
+ status == o.status &&
178
+ unit_price == o.unit_price &&
179
+ purchase_price == o.purchase_price &&
180
+ purchase_account == o.purchase_account &&
181
+ sales_account == o.sales_account &&
182
+ remote_updated_at == o.remote_updated_at
183
+ end
184
+
185
+ # @see the `==` method
186
+ # @param [Object] Object to be compared
187
+ def eql?(o)
188
+ self == o
189
+ end
190
+
191
+ # Calculates hash code according to all attributes.
192
+ # @return [Integer] Hash code
193
+ def hash
194
+ [id, remote_id, remote_data, name, status, unit_price, purchase_price, purchase_account, sales_account, remote_updated_at].hash
195
+ end
196
+
197
+ # Builds the object from hash
198
+ # @param [Hash] attributes Model attributes in the form of hash
199
+ # @return [Object] Returns the model itself
200
+ def self.build_from_hash(attributes)
201
+ new.build_from_hash(attributes)
202
+ end
203
+
204
+ # Builds the object from hash
205
+ # @param [Hash] attributes Model attributes in the form of hash
206
+ # @return [Object] Returns the model itself
207
+ def build_from_hash(attributes)
208
+ return nil unless attributes.is_a?(Hash)
209
+ self.class.openapi_types.each_pair do |key, type|
210
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
211
+ self.send("#{key}=", nil)
212
+ elsif type =~ /\AArray<(.*)>/i
213
+ # check to ensure the input is an array given that the attribute
214
+ # is documented as an array but the input is not
215
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
216
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
217
+ end
218
+ elsif !attributes[self.class.attribute_map[key]].nil?
219
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
220
+ end
221
+ end
222
+
223
+ self
224
+ end
225
+
226
+ # Deserializes the data based on type
227
+ # @param string type Data type
228
+ # @param string value Value to be deserialized
229
+ # @return [Object] Deserialized data
230
+ def _deserialize(type, value)
231
+ case type.to_sym
232
+ when :Time
233
+ Time.parse(value)
234
+ when :Date
235
+ Date.parse(value)
236
+ when :String
237
+ value
238
+ when :Integer
239
+ value.to_i
240
+ when :Float
241
+ value.to_f
242
+ when :Boolean
243
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
244
+ true
245
+ else
246
+ false
247
+ end
248
+ when :Object
249
+ # generic object (usually a Hash), return directly
250
+ value
251
+ when /\AArray<(?<inner_type>.+)>\z/
252
+ inner_type = Regexp.last_match[:inner_type]
253
+ value.map { |v| _deserialize(inner_type, v) }
254
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
255
+ k_type = Regexp.last_match[:k_type]
256
+ v_type = Regexp.last_match[:v_type]
257
+ {}.tap do |hash|
258
+ value.each do |k, v|
259
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
260
+ end
261
+ end
262
+ else # model
263
+ # models (e.g. Pet) or oneOf
264
+ klass = MergeAccountingClient.const_get(type)
265
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
266
+ end
267
+ end
268
+
269
+ # Returns the string representation of the object
270
+ # @return [String] String presentation of the object
271
+ def to_s
272
+ to_hash.to_s
273
+ end
274
+
275
+ # to_body is an alias to to_hash (backward compatibility)
276
+ # @return [Hash] Returns the object in the form of hash
277
+ def to_body
278
+ to_hash
279
+ end
280
+
281
+ # Returns the object in the form of hash
282
+ # @return [Hash] Returns the object in the form of hash
283
+ def to_hash
284
+ hash = {}
285
+ self.class.attribute_map.each_pair do |attr, param|
286
+ value = self.send(attr)
287
+ if value.nil?
288
+ is_nullable = self.class.openapi_nullable.include?(attr)
289
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
290
+ end
291
+
292
+ hash[param] = _to_hash(value)
293
+ end
294
+ hash
295
+ end
296
+
297
+ # Outputs non-array value in the form of hash
298
+ # For object, use to_hash. Otherwise, just return the value
299
+ # @param [Object] value Any valid value
300
+ # @return [Hash] Returns the value in the form of hash
301
+ def _to_hash(value)
302
+ if value.is_a?(Array)
303
+ value.compact.map { |v| _to_hash(v) }
304
+ elsif value.is_a?(Hash)
305
+ {}.tap do |hash|
306
+ value.each { |k, v| hash[k] = _to_hash(v) }
307
+ end
308
+ elsif value.respond_to? :to_hash
309
+ value.to_hash
310
+ else
311
+ value
312
+ end
313
+ end
314
+
315
+ end
316
+
317
+ end