firefly-iii-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 (414) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +349 -0
  4. data/Rakefile +10 -0
  5. data/docs/AboutApi.md +143 -0
  6. data/docs/Account.md +70 -0
  7. data/docs/AccountArray.md +20 -0
  8. data/docs/AccountRead.md +22 -0
  9. data/docs/AccountSingle.md +18 -0
  10. data/docs/AccountTypeFilter.md +15 -0
  11. data/docs/AccountTypeProperty.md +15 -0
  12. data/docs/AccountsApi.md +531 -0
  13. data/docs/Attachment.md +44 -0
  14. data/docs/AttachmentArray.md +20 -0
  15. data/docs/AttachmentRead.md +24 -0
  16. data/docs/AttachmentSingle.md +18 -0
  17. data/docs/AttachmentsApi.md +510 -0
  18. data/docs/AvailableBudget.md +38 -0
  19. data/docs/AvailableBudgetArray.md +20 -0
  20. data/docs/AvailableBudgetRead.md +22 -0
  21. data/docs/AvailableBudgetSingle.md +18 -0
  22. data/docs/AvailableBudgetsApi.md +369 -0
  23. data/docs/BasicSummaryEntry.md +36 -0
  24. data/docs/Bill.md +50 -0
  25. data/docs/BillArray.md +20 -0
  26. data/docs/BillPaidDates.md +22 -0
  27. data/docs/BillRead.md +22 -0
  28. data/docs/BillSingle.md +18 -0
  29. data/docs/BillsApi.md +600 -0
  30. data/docs/Budget.md +28 -0
  31. data/docs/BudgetArray.md +20 -0
  32. data/docs/BudgetLimit.md +38 -0
  33. data/docs/BudgetLimitArray.md +20 -0
  34. data/docs/BudgetLimitRead.md +22 -0
  35. data/docs/BudgetLimitSingle.md +18 -0
  36. data/docs/BudgetRead.md +22 -0
  37. data/docs/BudgetSingle.md +18 -0
  38. data/docs/BudgetSpent.md +26 -0
  39. data/docs/BudgetsApi.md +897 -0
  40. data/docs/CategoriesApi.md +446 -0
  41. data/docs/Category.md +26 -0
  42. data/docs/CategoryArray.md +20 -0
  43. data/docs/CategoryEarned.md +30 -0
  44. data/docs/CategoryRead.md +22 -0
  45. data/docs/CategorySingle.md +18 -0
  46. data/docs/CategorySpent.md +30 -0
  47. data/docs/ChartDataPoint.md +18 -0
  48. data/docs/ChartDataSet.md +32 -0
  49. data/docs/ChartsApi.md +374 -0
  50. data/docs/ConfigurationApi.md +148 -0
  51. data/docs/ConfigurationUpdate.md +18 -0
  52. data/docs/CurrenciesApi.md +1198 -0
  53. data/docs/Currency.md +32 -0
  54. data/docs/CurrencyArray.md +22 -0
  55. data/docs/CurrencyExchangeRatesApi.md +86 -0
  56. data/docs/CurrencyRead.md +22 -0
  57. data/docs/CurrencySingle.md +18 -0
  58. data/docs/ExchangeRate.md +22 -0
  59. data/docs/ExchangeRateArray.md +22 -0
  60. data/docs/ExchangeRateAttributes.md +44 -0
  61. data/docs/ImportApi.md +232 -0
  62. data/docs/ImportJob.md +22 -0
  63. data/docs/ImportJobArray.md +22 -0
  64. data/docs/ImportJobAttributes.md +42 -0
  65. data/docs/ImportJobSingle.md +18 -0
  66. data/docs/LinkType.md +26 -0
  67. data/docs/LinkTypeArray.md +22 -0
  68. data/docs/LinkTypeRead.md +24 -0
  69. data/docs/LinkTypeSingle.md +18 -0
  70. data/docs/LinksApi.md +804 -0
  71. data/docs/Meta.md +18 -0
  72. data/docs/MetaPagination.md +26 -0
  73. data/docs/ObjectLink.md +20 -0
  74. data/docs/ObjectLink0.md +20 -0
  75. data/docs/PageLink.md +22 -0
  76. data/docs/PiggyBank.md +54 -0
  77. data/docs/PiggyBankArray.md +22 -0
  78. data/docs/PiggyBankEvent.md +24 -0
  79. data/docs/PiggyBankEventArray.md +22 -0
  80. data/docs/PiggyBankEventAttributes.md +34 -0
  81. data/docs/PiggyBankRead.md +24 -0
  82. data/docs/PiggyBankSingle.md +18 -0
  83. data/docs/PiggyBanksApi.md +440 -0
  84. data/docs/Preference.md +24 -0
  85. data/docs/PreferenceArray.md +22 -0
  86. data/docs/PreferenceRead.md +22 -0
  87. data/docs/PreferenceSingle.md +18 -0
  88. data/docs/PreferencesApi.md +224 -0
  89. data/docs/Recurrence.md +45 -0
  90. data/docs/RecurrenceArray.md +22 -0
  91. data/docs/RecurrenceRead.md +24 -0
  92. data/docs/RecurrenceRepetition.md +34 -0
  93. data/docs/RecurrenceSingle.md +18 -0
  94. data/docs/RecurrenceTransaction.md +68 -0
  95. data/docs/RecurrencesApi.md +513 -0
  96. data/docs/Rule.md +42 -0
  97. data/docs/RuleAction.md +32 -0
  98. data/docs/RuleArray.md +22 -0
  99. data/docs/RuleGroup.md +28 -0
  100. data/docs/RuleGroupArray.md +22 -0
  101. data/docs/RuleGroupRead.md +24 -0
  102. data/docs/RuleGroupSingle.md +18 -0
  103. data/docs/RuleGroupsApi.md +603 -0
  104. data/docs/RuleRead.md +24 -0
  105. data/docs/RuleSingle.md +18 -0
  106. data/docs/RuleTrigger.md +32 -0
  107. data/docs/RulesApi.md +528 -0
  108. data/docs/SummaryApi.md +84 -0
  109. data/docs/SystemConfiguration.md +18 -0
  110. data/docs/SystemConfigurationData.md +24 -0
  111. data/docs/SystemInfo.md +18 -0
  112. data/docs/SystemInfoData.md +26 -0
  113. data/docs/TagArray.md +22 -0
  114. data/docs/TagCloud.md +18 -0
  115. data/docs/TagCloudTag.md +24 -0
  116. data/docs/TagModel.md +34 -0
  117. data/docs/TagRead.md +24 -0
  118. data/docs/TagSingle.md +18 -0
  119. data/docs/TagsApi.md +523 -0
  120. data/docs/Transaction.md +26 -0
  121. data/docs/TransactionArray.md +22 -0
  122. data/docs/TransactionLink.md +30 -0
  123. data/docs/TransactionLinkArray.md +22 -0
  124. data/docs/TransactionLinkRead.md +24 -0
  125. data/docs/TransactionLinkSingle.md +18 -0
  126. data/docs/TransactionRead.md +24 -0
  127. data/docs/TransactionSingle.md +18 -0
  128. data/docs/TransactionSplit.md +128 -0
  129. data/docs/TransactionTypeFilter.md +15 -0
  130. data/docs/TransactionsApi.md +592 -0
  131. data/docs/User.md +28 -0
  132. data/docs/UserArray.md +22 -0
  133. data/docs/UserRead.md +24 -0
  134. data/docs/UserSingle.md +18 -0
  135. data/docs/UsersApi.md +365 -0
  136. data/docs/ValidationError.md +20 -0
  137. data/docs/ValidationErrorErrors.md +20 -0
  138. data/firefly-iii-client.gemspec +39 -0
  139. data/git_push.sh +58 -0
  140. data/lib/firefly_iii_client.rb +172 -0
  141. data/lib/firefly_iii_client/api/about_api.rb +136 -0
  142. data/lib/firefly_iii_client/api/accounts_api.rb +495 -0
  143. data/lib/firefly_iii_client/api/attachments_api.rb +470 -0
  144. data/lib/firefly_iii_client/api/available_budgets_api.rb +348 -0
  145. data/lib/firefly_iii_client/api/bills_api.rb +555 -0
  146. data/lib/firefly_iii_client/api/budgets_api.rb +866 -0
  147. data/lib/firefly_iii_client/api/categories_api.rb +417 -0
  148. data/lib/firefly_iii_client/api/charts_api.rb +383 -0
  149. data/lib/firefly_iii_client/api/configuration_api.rb +156 -0
  150. data/lib/firefly_iii_client/api/currencies_api.rb +1089 -0
  151. data/lib/firefly_iii_client/api/currency_exchange_rates_api.rb +91 -0
  152. data/lib/firefly_iii_client/api/import_api.rb +220 -0
  153. data/lib/firefly_iii_client/api/links_api.rb +737 -0
  154. data/lib/firefly_iii_client/api/piggy_banks_api.rb +408 -0
  155. data/lib/firefly_iii_client/api/preferences_api.rb +216 -0
  156. data/lib/firefly_iii_client/api/recurrences_api.rb +472 -0
  157. data/lib/firefly_iii_client/api/rule_groups_api.rb +559 -0
  158. data/lib/firefly_iii_client/api/rules_api.rb +493 -0
  159. data/lib/firefly_iii_client/api/summary_api.rb +96 -0
  160. data/lib/firefly_iii_client/api/tags_api.rb +491 -0
  161. data/lib/firefly_iii_client/api/transactions_api.rb +546 -0
  162. data/lib/firefly_iii_client/api/users_api.rb +342 -0
  163. data/lib/firefly_iii_client/api_client.rb +390 -0
  164. data/lib/firefly_iii_client/api_error.rb +57 -0
  165. data/lib/firefly_iii_client/configuration.rb +277 -0
  166. data/lib/firefly_iii_client/models/account.rb +564 -0
  167. data/lib/firefly_iii_client/models/account_array.rb +229 -0
  168. data/lib/firefly_iii_client/models/account_read.rb +237 -0
  169. data/lib/firefly_iii_client/models/account_single.rb +218 -0
  170. data/lib/firefly_iii_client/models/account_type_filter.rb +56 -0
  171. data/lib/firefly_iii_client/models/account_type_property.rb +47 -0
  172. data/lib/firefly_iii_client/models/attachment.rb +401 -0
  173. data/lib/firefly_iii_client/models/attachment_array.rb +229 -0
  174. data/lib/firefly_iii_client/models/attachment_read.rb +246 -0
  175. data/lib/firefly_iii_client/models/attachment_single.rb +218 -0
  176. data/lib/firefly_iii_client/models/available_budget.rb +331 -0
  177. data/lib/firefly_iii_client/models/available_budget_array.rb +229 -0
  178. data/lib/firefly_iii_client/models/available_budget_read.rb +237 -0
  179. data/lib/firefly_iii_client/models/available_budget_single.rb +218 -0
  180. data/lib/firefly_iii_client/models/basic_summary_entry.rb +307 -0
  181. data/lib/firefly_iii_client/models/bill.rb +433 -0
  182. data/lib/firefly_iii_client/models/bill_array.rb +229 -0
  183. data/lib/firefly_iii_client/models/bill_paid_dates.rb +239 -0
  184. data/lib/firefly_iii_client/models/bill_read.rb +237 -0
  185. data/lib/firefly_iii_client/models/bill_single.rb +218 -0
  186. data/lib/firefly_iii_client/models/budget.rb +271 -0
  187. data/lib/firefly_iii_client/models/budget_array.rb +229 -0
  188. data/lib/firefly_iii_client/models/budget_limit.rb +335 -0
  189. data/lib/firefly_iii_client/models/budget_limit_array.rb +229 -0
  190. data/lib/firefly_iii_client/models/budget_limit_read.rb +237 -0
  191. data/lib/firefly_iii_client/models/budget_limit_single.rb +218 -0
  192. data/lib/firefly_iii_client/models/budget_read.rb +237 -0
  193. data/lib/firefly_iii_client/models/budget_single.rb +218 -0
  194. data/lib/firefly_iii_client/models/budget_spent.rb +256 -0
  195. data/lib/firefly_iii_client/models/category.rb +263 -0
  196. data/lib/firefly_iii_client/models/category_array.rb +229 -0
  197. data/lib/firefly_iii_client/models/category_earned.rb +274 -0
  198. data/lib/firefly_iii_client/models/category_read.rb +237 -0
  199. data/lib/firefly_iii_client/models/category_single.rb +218 -0
  200. data/lib/firefly_iii_client/models/category_spent.rb +274 -0
  201. data/lib/firefly_iii_client/models/chart_data_point.rb +219 -0
  202. data/lib/firefly_iii_client/models/chart_data_set.rb +289 -0
  203. data/lib/firefly_iii_client/models/configuration_update.rb +224 -0
  204. data/lib/firefly_iii_client/models/currency.rb +299 -0
  205. data/lib/firefly_iii_client/models/currency_array.rb +238 -0
  206. data/lib/firefly_iii_client/models/currency_read.rb +237 -0
  207. data/lib/firefly_iii_client/models/currency_single.rb +218 -0
  208. data/lib/firefly_iii_client/models/exchange_rate.rb +237 -0
  209. data/lib/firefly_iii_client/models/exchange_rate_array.rb +238 -0
  210. data/lib/firefly_iii_client/models/exchange_rate_attributes.rb +336 -0
  211. data/lib/firefly_iii_client/models/import_job.rb +237 -0
  212. data/lib/firefly_iii_client/models/import_job_array.rb +238 -0
  213. data/lib/firefly_iii_client/models/import_job_attributes.rb +337 -0
  214. data/lib/firefly_iii_client/models/import_job_single.rb +218 -0
  215. data/lib/firefly_iii_client/models/link_type.rb +260 -0
  216. data/lib/firefly_iii_client/models/link_type_array.rb +238 -0
  217. data/lib/firefly_iii_client/models/link_type_read.rb +246 -0
  218. data/lib/firefly_iii_client/models/link_type_single.rb +218 -0
  219. data/lib/firefly_iii_client/models/meta.rb +218 -0
  220. data/lib/firefly_iii_client/models/meta_pagination.rb +254 -0
  221. data/lib/firefly_iii_client/models/object_link.rb +227 -0
  222. data/lib/firefly_iii_client/models/object_link0.rb +227 -0
  223. data/lib/firefly_iii_client/models/page_link.rb +236 -0
  224. data/lib/firefly_iii_client/models/piggy_bank.rb +400 -0
  225. data/lib/firefly_iii_client/models/piggy_bank_array.rb +238 -0
  226. data/lib/firefly_iii_client/models/piggy_bank_event.rb +246 -0
  227. data/lib/firefly_iii_client/models/piggy_bank_event_array.rb +238 -0
  228. data/lib/firefly_iii_client/models/piggy_bank_event_attributes.rb +291 -0
  229. data/lib/firefly_iii_client/models/piggy_bank_read.rb +246 -0
  230. data/lib/firefly_iii_client/models/piggy_bank_single.rb +218 -0
  231. data/lib/firefly_iii_client/models/preference.rb +251 -0
  232. data/lib/firefly_iii_client/models/preference_array.rb +238 -0
  233. data/lib/firefly_iii_client/models/preference_read.rb +237 -0
  234. data/lib/firefly_iii_client/models/preference_single.rb +218 -0
  235. data/lib/firefly_iii_client/models/recurrence.rb +395 -0
  236. data/lib/firefly_iii_client/models/recurrence_array.rb +238 -0
  237. data/lib/firefly_iii_client/models/recurrence_read.rb +246 -0
  238. data/lib/firefly_iii_client/models/recurrence_repetition.rb +342 -0
  239. data/lib/firefly_iii_client/models/recurrence_single.rb +218 -0
  240. data/lib/firefly_iii_client/models/recurrence_transaction.rb +483 -0
  241. data/lib/firefly_iii_client/models/rule.rb +395 -0
  242. data/lib/firefly_iii_client/models/rule_action.rb +326 -0
  243. data/lib/firefly_iii_client/models/rule_array.rb +238 -0
  244. data/lib/firefly_iii_client/models/rule_group.rb +268 -0
  245. data/lib/firefly_iii_client/models/rule_group_array.rb +238 -0
  246. data/lib/firefly_iii_client/models/rule_group_read.rb +246 -0
  247. data/lib/firefly_iii_client/models/rule_group_single.rb +218 -0
  248. data/lib/firefly_iii_client/models/rule_read.rb +246 -0
  249. data/lib/firefly_iii_client/models/rule_single.rb +218 -0
  250. data/lib/firefly_iii_client/models/rule_trigger.rb +330 -0
  251. data/lib/firefly_iii_client/models/system_configuration.rb +218 -0
  252. data/lib/firefly_iii_client/models/system_configuration_data.rb +248 -0
  253. data/lib/firefly_iii_client/models/system_info.rb +223 -0
  254. data/lib/firefly_iii_client/models/system_info_data.rb +279 -0
  255. data/lib/firefly_iii_client/models/tag_array.rb +238 -0
  256. data/lib/firefly_iii_client/models/tag_cloud.rb +220 -0
  257. data/lib/firefly_iii_client/models/tag_cloud_tag.rb +249 -0
  258. data/lib/firefly_iii_client/models/tag_model.rb +295 -0
  259. data/lib/firefly_iii_client/models/tag_read.rb +246 -0
  260. data/lib/firefly_iii_client/models/tag_single.rb +218 -0
  261. data/lib/firefly_iii_client/models/transaction.rb +263 -0
  262. data/lib/firefly_iii_client/models/transaction_array.rb +238 -0
  263. data/lib/firefly_iii_client/models/transaction_link.rb +292 -0
  264. data/lib/firefly_iii_client/models/transaction_link_array.rb +238 -0
  265. data/lib/firefly_iii_client/models/transaction_link_read.rb +246 -0
  266. data/lib/firefly_iii_client/models/transaction_link_single.rb +218 -0
  267. data/lib/firefly_iii_client/models/transaction_read.rb +246 -0
  268. data/lib/firefly_iii_client/models/transaction_single.rb +218 -0
  269. data/lib/firefly_iii_client/models/transaction_split.rb +850 -0
  270. data/lib/firefly_iii_client/models/transaction_type_filter.rb +49 -0
  271. data/lib/firefly_iii_client/models/user.rb +320 -0
  272. data/lib/firefly_iii_client/models/user_array.rb +238 -0
  273. data/lib/firefly_iii_client/models/user_read.rb +246 -0
  274. data/lib/firefly_iii_client/models/user_single.rb +218 -0
  275. data/lib/firefly_iii_client/models/validation_error.rb +227 -0
  276. data/lib/firefly_iii_client/models/validation_error_errors.rb +231 -0
  277. data/lib/firefly_iii_client/version.rb +15 -0
  278. data/spec/api/about_api_spec.rb +57 -0
  279. data/spec/api/accounts_api_spec.rb +129 -0
  280. data/spec/api/attachments_api_spec.rb +121 -0
  281. data/spec/api/available_budgets_api_spec.rb +98 -0
  282. data/spec/api/bills_api_spec.rb +140 -0
  283. data/spec/api/budgets_api_spec.rb +194 -0
  284. data/spec/api/categories_api_spec.rb +112 -0
  285. data/spec/api/charts_api_spec.rb +101 -0
  286. data/spec/api/configuration_api_spec.rb +59 -0
  287. data/spec/api/currencies_api_spec.rb +246 -0
  288. data/spec/api/currency_exchange_rates_api_spec.rb +50 -0
  289. data/spec/api/import_api_spec.rb +75 -0
  290. data/spec/api/links_api_spec.rb +173 -0
  291. data/spec/api/piggy_banks_api_spec.rb +109 -0
  292. data/spec/api/preferences_api_spec.rb +72 -0
  293. data/spec/api/recurrences_api_spec.rb +123 -0
  294. data/spec/api/rule_groups_api_spec.rb +142 -0
  295. data/spec/api/rules_api_spec.rb +129 -0
  296. data/spec/api/summary_api_spec.rb +49 -0
  297. data/spec/api/tags_api_spec.rb +126 -0
  298. data/spec/api/transactions_api_spec.rb +137 -0
  299. data/spec/api/users_api_spec.rb +96 -0
  300. data/spec/api_client_spec.rb +226 -0
  301. data/spec/configuration_spec.rb +42 -0
  302. data/spec/models/account_array_spec.rb +40 -0
  303. data/spec/models/account_read_spec.rb +46 -0
  304. data/spec/models/account_single_spec.rb +34 -0
  305. data/spec/models/account_spec.rb +210 -0
  306. data/spec/models/account_type_filter_spec.rb +28 -0
  307. data/spec/models/account_type_property_spec.rb +28 -0
  308. data/spec/models/attachment_array_spec.rb +40 -0
  309. data/spec/models/attachment_read_spec.rb +52 -0
  310. data/spec/models/attachment_single_spec.rb +34 -0
  311. data/spec/models/attachment_spec.rb +120 -0
  312. data/spec/models/available_budget_array_spec.rb +40 -0
  313. data/spec/models/available_budget_read_spec.rb +46 -0
  314. data/spec/models/available_budget_single_spec.rb +34 -0
  315. data/spec/models/available_budget_spec.rb +94 -0
  316. data/spec/models/basic_summary_entry_spec.rb +88 -0
  317. data/spec/models/bill_array_spec.rb +40 -0
  318. data/spec/models/bill_paid_dates_spec.rb +46 -0
  319. data/spec/models/bill_read_spec.rb +46 -0
  320. data/spec/models/bill_single_spec.rb +34 -0
  321. data/spec/models/bill_spec.rb +134 -0
  322. data/spec/models/budget_array_spec.rb +40 -0
  323. data/spec/models/budget_limit_array_spec.rb +40 -0
  324. data/spec/models/budget_limit_read_spec.rb +46 -0
  325. data/spec/models/budget_limit_single_spec.rb +34 -0
  326. data/spec/models/budget_limit_spec.rb +94 -0
  327. data/spec/models/budget_read_spec.rb +46 -0
  328. data/spec/models/budget_single_spec.rb +34 -0
  329. data/spec/models/budget_spec.rb +64 -0
  330. data/spec/models/budget_spent_spec.rb +58 -0
  331. data/spec/models/category_array_spec.rb +40 -0
  332. data/spec/models/category_earned_spec.rb +70 -0
  333. data/spec/models/category_read_spec.rb +46 -0
  334. data/spec/models/category_single_spec.rb +34 -0
  335. data/spec/models/category_spec.rb +58 -0
  336. data/spec/models/category_spent_spec.rb +70 -0
  337. data/spec/models/chart_data_point_spec.rb +34 -0
  338. data/spec/models/chart_data_set_spec.rb +76 -0
  339. data/spec/models/configuration_update_spec.rb +34 -0
  340. data/spec/models/currency_array_spec.rb +46 -0
  341. data/spec/models/currency_read_spec.rb +46 -0
  342. data/spec/models/currency_single_spec.rb +34 -0
  343. data/spec/models/currency_spec.rb +76 -0
  344. data/spec/models/exchange_rate_array_spec.rb +46 -0
  345. data/spec/models/exchange_rate_attributes_spec.rb +112 -0
  346. data/spec/models/exchange_rate_spec.rb +46 -0
  347. data/spec/models/import_job_array_spec.rb +46 -0
  348. data/spec/models/import_job_attributes_spec.rb +106 -0
  349. data/spec/models/import_job_single_spec.rb +34 -0
  350. data/spec/models/import_job_spec.rb +46 -0
  351. data/spec/models/link_type_array_spec.rb +46 -0
  352. data/spec/models/link_type_read_spec.rb +52 -0
  353. data/spec/models/link_type_single_spec.rb +34 -0
  354. data/spec/models/link_type_spec.rb +52 -0
  355. data/spec/models/meta_pagination_spec.rb +58 -0
  356. data/spec/models/meta_spec.rb +34 -0
  357. data/spec/models/object_link0_spec.rb +40 -0
  358. data/spec/models/object_link_spec.rb +40 -0
  359. data/spec/models/page_link_spec.rb +46 -0
  360. data/spec/models/piggy_bank_array_spec.rb +46 -0
  361. data/spec/models/piggy_bank_event_array_spec.rb +46 -0
  362. data/spec/models/piggy_bank_event_attributes_spec.rb +82 -0
  363. data/spec/models/piggy_bank_event_spec.rb +52 -0
  364. data/spec/models/piggy_bank_read_spec.rb +52 -0
  365. data/spec/models/piggy_bank_single_spec.rb +34 -0
  366. data/spec/models/piggy_bank_spec.rb +142 -0
  367. data/spec/models/preference_array_spec.rb +46 -0
  368. data/spec/models/preference_read_spec.rb +46 -0
  369. data/spec/models/preference_single_spec.rb +34 -0
  370. data/spec/models/preference_spec.rb +52 -0
  371. data/spec/models/recurrence_array_spec.rb +46 -0
  372. data/spec/models/recurrence_read_spec.rb +52 -0
  373. data/spec/models/recurrence_repetition_spec.rb +86 -0
  374. data/spec/models/recurrence_single_spec.rb +34 -0
  375. data/spec/models/recurrence_spec.rb +116 -0
  376. data/spec/models/recurrence_transaction_spec.rb +184 -0
  377. data/spec/models/rule_action_spec.rb +80 -0
  378. data/spec/models/rule_array_spec.rb +46 -0
  379. data/spec/models/rule_group_array_spec.rb +46 -0
  380. data/spec/models/rule_group_read_spec.rb +52 -0
  381. data/spec/models/rule_group_single_spec.rb +34 -0
  382. data/spec/models/rule_group_spec.rb +64 -0
  383. data/spec/models/rule_read_spec.rb +52 -0
  384. data/spec/models/rule_single_spec.rb +34 -0
  385. data/spec/models/rule_spec.rb +110 -0
  386. data/spec/models/rule_trigger_spec.rb +80 -0
  387. data/spec/models/system_configuration_data_spec.rb +52 -0
  388. data/spec/models/system_configuration_spec.rb +34 -0
  389. data/spec/models/system_info_data_spec.rb +58 -0
  390. data/spec/models/system_info_spec.rb +34 -0
  391. data/spec/models/tag_array_spec.rb +46 -0
  392. data/spec/models/tag_cloud_spec.rb +34 -0
  393. data/spec/models/tag_cloud_tag_spec.rb +52 -0
  394. data/spec/models/tag_model_spec.rb +76 -0
  395. data/spec/models/tag_read_spec.rb +52 -0
  396. data/spec/models/tag_single_spec.rb +34 -0
  397. data/spec/models/transaction_array_spec.rb +46 -0
  398. data/spec/models/transaction_link_array_spec.rb +46 -0
  399. data/spec/models/transaction_link_read_spec.rb +52 -0
  400. data/spec/models/transaction_link_single_spec.rb +34 -0
  401. data/spec/models/transaction_link_spec.rb +70 -0
  402. data/spec/models/transaction_read_spec.rb +52 -0
  403. data/spec/models/transaction_single_spec.rb +34 -0
  404. data/spec/models/transaction_spec.rb +58 -0
  405. data/spec/models/transaction_split_spec.rb +368 -0
  406. data/spec/models/transaction_type_filter_spec.rb +28 -0
  407. data/spec/models/user_array_spec.rb +46 -0
  408. data/spec/models/user_read_spec.rb +52 -0
  409. data/spec/models/user_single_spec.rb +34 -0
  410. data/spec/models/user_spec.rb +72 -0
  411. data/spec/models/validation_error_errors_spec.rb +40 -0
  412. data/spec/models/validation_error_spec.rb +40 -0
  413. data/spec/spec_helper.rb +111 -0
  414. metadata +495 -0
@@ -0,0 +1,866 @@
1
+ =begin
2
+ #Firefly III API
3
+
4
+ #This is the official documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. This version of the API is live from version v4.7.9 and onwards. You may use the \"Authorize\" button to try the API below.
5
+
6
+ The version of the OpenAPI document: 0.10.4-modified
7
+ Contact: thegrumpydictator@gmail.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.1.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module OpenapiClient
16
+ class BudgetsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Delete a budget.
23
+ # Delete a budget. Transactions will not be deleted.
24
+ # @param id [Integer] The ID of the budget.
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [nil]
27
+ def delete_budget(id, opts = {})
28
+ delete_budget_with_http_info(id, opts)
29
+ nil
30
+ end
31
+
32
+ # Delete a budget.
33
+ # Delete a budget. Transactions will not be deleted.
34
+ # @param id [Integer] The ID of the budget.
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
37
+ def delete_budget_with_http_info(id, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.delete_budget ...'
40
+ end
41
+ # verify the required parameter 'id' is set
42
+ if @api_client.config.client_side_validation && id.nil?
43
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.delete_budget"
44
+ end
45
+ if @api_client.config.client_side_validation && id < 1
46
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.delete_budget, must be greater than or equal to 1.'
47
+ end
48
+
49
+ # resource path
50
+ local_var_path = '/api/v1/budgets/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
51
+
52
+ # query parameters
53
+ query_params = opts[:query_params] || {}
54
+
55
+ # header parameters
56
+ header_params = opts[:header_params] || {}
57
+
58
+ # form parameters
59
+ form_params = opts[:form_params] || {}
60
+
61
+ # http body (model)
62
+ post_body = opts[:debug_body]
63
+
64
+ # return_type
65
+ return_type = opts[:debug_return_type]
66
+
67
+ # auth_names
68
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
69
+
70
+ new_options = opts.merge(
71
+ :operation => :"BudgetsApi.delete_budget",
72
+ :header_params => header_params,
73
+ :query_params => query_params,
74
+ :form_params => form_params,
75
+ :body => post_body,
76
+ :auth_names => auth_names,
77
+ :return_type => return_type
78
+ )
79
+
80
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
81
+ if @api_client.config.debugging
82
+ @api_client.config.logger.debug "API called: BudgetsApi#delete_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
83
+ end
84
+ return data, status_code, headers
85
+ end
86
+
87
+ # Delete a budget limit.
88
+ # Delete a budget limit.
89
+ # @param id [Integer] The ID of the requested budget limit.
90
+ # @param [Hash] opts the optional parameters
91
+ # @return [nil]
92
+ def delete_budget_limit(id, opts = {})
93
+ delete_budget_limit_with_http_info(id, opts)
94
+ nil
95
+ end
96
+
97
+ # Delete a budget limit.
98
+ # Delete a budget limit.
99
+ # @param id [Integer] The ID of the requested budget limit.
100
+ # @param [Hash] opts the optional parameters
101
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
102
+ def delete_budget_limit_with_http_info(id, opts = {})
103
+ if @api_client.config.debugging
104
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.delete_budget_limit ...'
105
+ end
106
+ # verify the required parameter 'id' is set
107
+ if @api_client.config.client_side_validation && id.nil?
108
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.delete_budget_limit"
109
+ end
110
+ if @api_client.config.client_side_validation && id < 1
111
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.delete_budget_limit, must be greater than or equal to 1.'
112
+ end
113
+
114
+ # resource path
115
+ local_var_path = '/api/v1/budgets/limits/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
116
+
117
+ # query parameters
118
+ query_params = opts[:query_params] || {}
119
+
120
+ # header parameters
121
+ header_params = opts[:header_params] || {}
122
+
123
+ # form parameters
124
+ form_params = opts[:form_params] || {}
125
+
126
+ # http body (model)
127
+ post_body = opts[:debug_body]
128
+
129
+ # return_type
130
+ return_type = opts[:debug_return_type]
131
+
132
+ # auth_names
133
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
134
+
135
+ new_options = opts.merge(
136
+ :operation => :"BudgetsApi.delete_budget_limit",
137
+ :header_params => header_params,
138
+ :query_params => query_params,
139
+ :form_params => form_params,
140
+ :body => post_body,
141
+ :auth_names => auth_names,
142
+ :return_type => return_type
143
+ )
144
+
145
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
146
+ if @api_client.config.debugging
147
+ @api_client.config.logger.debug "API called: BudgetsApi#delete_budget_limit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
148
+ end
149
+ return data, status_code, headers
150
+ end
151
+
152
+ # Get a single budget.
153
+ # Get a single budget. If the start date and end date are submitted as well, the \"spent\" array will be updated accordingly.
154
+ # @param id [Integer] The ID of the requested budget.
155
+ # @param [Hash] opts the optional parameters
156
+ # @option opts [Date] :start_date A date formatted YYYY-MM-DD, to get info on how much the user has spent.
157
+ # @option opts [Date] :end_date A date formatted YYYY-MM-DD, to get info on how much the user has spent.
158
+ # @return [BudgetSingle]
159
+ def get_budget(id, opts = {})
160
+ data, _status_code, _headers = get_budget_with_http_info(id, opts)
161
+ data
162
+ end
163
+
164
+ # Get a single budget.
165
+ # Get a single budget. If the start date and end date are submitted as well, the \&quot;spent\&quot; array will be updated accordingly.
166
+ # @param id [Integer] The ID of the requested budget.
167
+ # @param [Hash] opts the optional parameters
168
+ # @option opts [Date] :start_date A date formatted YYYY-MM-DD, to get info on how much the user has spent.
169
+ # @option opts [Date] :end_date A date formatted YYYY-MM-DD, to get info on how much the user has spent.
170
+ # @return [Array<(BudgetSingle, Integer, Hash)>] BudgetSingle data, response status code and response headers
171
+ def get_budget_with_http_info(id, opts = {})
172
+ if @api_client.config.debugging
173
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.get_budget ...'
174
+ end
175
+ # verify the required parameter 'id' is set
176
+ if @api_client.config.client_side_validation && id.nil?
177
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.get_budget"
178
+ end
179
+ # resource path
180
+ local_var_path = '/api/v1/budgets/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
181
+
182
+ # query parameters
183
+ query_params = opts[:query_params] || {}
184
+ query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil?
185
+ query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil?
186
+
187
+ # header parameters
188
+ header_params = opts[:header_params] || {}
189
+ # HTTP header 'Accept' (if needed)
190
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
191
+
192
+ # form parameters
193
+ form_params = opts[:form_params] || {}
194
+
195
+ # http body (model)
196
+ post_body = opts[:debug_body]
197
+
198
+ # return_type
199
+ return_type = opts[:debug_return_type] || 'BudgetSingle'
200
+
201
+ # auth_names
202
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
203
+
204
+ new_options = opts.merge(
205
+ :operation => :"BudgetsApi.get_budget",
206
+ :header_params => header_params,
207
+ :query_params => query_params,
208
+ :form_params => form_params,
209
+ :body => post_body,
210
+ :auth_names => auth_names,
211
+ :return_type => return_type
212
+ )
213
+
214
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
215
+ if @api_client.config.debugging
216
+ @api_client.config.logger.debug "API called: BudgetsApi#get_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
217
+ end
218
+ return data, status_code, headers
219
+ end
220
+
221
+ # Get single budget limit.
222
+ # @param id [Integer] The ID of the requested budget limit.
223
+ # @param [Hash] opts the optional parameters
224
+ # @return [BudgetLimitSingle]
225
+ def get_budget_limit(id, opts = {})
226
+ data, _status_code, _headers = get_budget_limit_with_http_info(id, opts)
227
+ data
228
+ end
229
+
230
+ # Get single budget limit.
231
+ # @param id [Integer] The ID of the requested budget limit.
232
+ # @param [Hash] opts the optional parameters
233
+ # @return [Array<(BudgetLimitSingle, Integer, Hash)>] BudgetLimitSingle data, response status code and response headers
234
+ def get_budget_limit_with_http_info(id, opts = {})
235
+ if @api_client.config.debugging
236
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.get_budget_limit ...'
237
+ end
238
+ # verify the required parameter 'id' is set
239
+ if @api_client.config.client_side_validation && id.nil?
240
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.get_budget_limit"
241
+ end
242
+ if @api_client.config.client_side_validation && id < 1
243
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.get_budget_limit, must be greater than or equal to 1.'
244
+ end
245
+
246
+ # resource path
247
+ local_var_path = '/api/v1/budgets/limits/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
248
+
249
+ # query parameters
250
+ query_params = opts[:query_params] || {}
251
+
252
+ # header parameters
253
+ header_params = opts[:header_params] || {}
254
+ # HTTP header 'Accept' (if needed)
255
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
256
+
257
+ # form parameters
258
+ form_params = opts[:form_params] || {}
259
+
260
+ # http body (model)
261
+ post_body = opts[:debug_body]
262
+
263
+ # return_type
264
+ return_type = opts[:debug_return_type] || 'BudgetLimitSingle'
265
+
266
+ # auth_names
267
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
268
+
269
+ new_options = opts.merge(
270
+ :operation => :"BudgetsApi.get_budget_limit",
271
+ :header_params => header_params,
272
+ :query_params => query_params,
273
+ :form_params => form_params,
274
+ :body => post_body,
275
+ :auth_names => auth_names,
276
+ :return_type => return_type
277
+ )
278
+
279
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
280
+ if @api_client.config.debugging
281
+ @api_client.config.logger.debug "API called: BudgetsApi#get_budget_limit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
282
+ end
283
+ return data, status_code, headers
284
+ end
285
+
286
+ # List all budgets.
287
+ # List all the budgets the user has made. If the start date and end date are submitted as well, the \"spent\" array will be updated accordingly.
288
+ # @param [Hash] opts the optional parameters
289
+ # @option opts [Integer] :page Page number. The default pagination is 50.
290
+ # @option opts [Date] :start A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end.
291
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end.
292
+ # @return [BudgetArray]
293
+ def list_budget(opts = {})
294
+ data, _status_code, _headers = list_budget_with_http_info(opts)
295
+ data
296
+ end
297
+
298
+ # List all budgets.
299
+ # List all the budgets the user has made. If the start date and end date are submitted as well, the \&quot;spent\&quot; array will be updated accordingly.
300
+ # @param [Hash] opts the optional parameters
301
+ # @option opts [Integer] :page Page number. The default pagination is 50.
302
+ # @option opts [Date] :start A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end.
303
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end.
304
+ # @return [Array<(BudgetArray, Integer, Hash)>] BudgetArray data, response status code and response headers
305
+ def list_budget_with_http_info(opts = {})
306
+ if @api_client.config.debugging
307
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.list_budget ...'
308
+ end
309
+ # resource path
310
+ local_var_path = '/api/v1/budgets'
311
+
312
+ # query parameters
313
+ query_params = opts[:query_params] || {}
314
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
315
+ query_params[:'start'] = opts[:'start'] if !opts[:'start'].nil?
316
+ query_params[:'end'] = opts[:'_end'] if !opts[:'_end'].nil?
317
+
318
+ # header parameters
319
+ header_params = opts[:header_params] || {}
320
+ # HTTP header 'Accept' (if needed)
321
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
322
+
323
+ # form parameters
324
+ form_params = opts[:form_params] || {}
325
+
326
+ # http body (model)
327
+ post_body = opts[:debug_body]
328
+
329
+ # return_type
330
+ return_type = opts[:debug_return_type] || 'BudgetArray'
331
+
332
+ # auth_names
333
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
334
+
335
+ new_options = opts.merge(
336
+ :operation => :"BudgetsApi.list_budget",
337
+ :header_params => header_params,
338
+ :query_params => query_params,
339
+ :form_params => form_params,
340
+ :body => post_body,
341
+ :auth_names => auth_names,
342
+ :return_type => return_type
343
+ )
344
+
345
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
346
+ if @api_client.config.debugging
347
+ @api_client.config.logger.debug "API called: BudgetsApi#list_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
348
+ end
349
+ return data, status_code, headers
350
+ end
351
+
352
+ # Get all limits
353
+ # Get all budget limits for this budget and the money spent, and money left. You can limit the list by submitting a date range as well. The \"spent\" array for each budget limit is NOT influenced by the start and end date of your query, but by the start and end date of the budget limit itself.
354
+ # @param id [Integer] The ID of the requested budget.
355
+ # @param [Hash] opts the optional parameters
356
+ # @option opts [Date] :start A date formatted YYYY-MM-DD.
357
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD.
358
+ # @return [BudgetLimitArray]
359
+ def list_budget_limit_by_budget(id, opts = {})
360
+ data, _status_code, _headers = list_budget_limit_by_budget_with_http_info(id, opts)
361
+ data
362
+ end
363
+
364
+ # Get all limits
365
+ # Get all budget limits for this budget and the money spent, and money left. You can limit the list by submitting a date range as well. The \&quot;spent\&quot; array for each budget limit is NOT influenced by the start and end date of your query, but by the start and end date of the budget limit itself.
366
+ # @param id [Integer] The ID of the requested budget.
367
+ # @param [Hash] opts the optional parameters
368
+ # @option opts [Date] :start A date formatted YYYY-MM-DD.
369
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD.
370
+ # @return [Array<(BudgetLimitArray, Integer, Hash)>] BudgetLimitArray data, response status code and response headers
371
+ def list_budget_limit_by_budget_with_http_info(id, opts = {})
372
+ if @api_client.config.debugging
373
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.list_budget_limit_by_budget ...'
374
+ end
375
+ # verify the required parameter 'id' is set
376
+ if @api_client.config.client_side_validation && id.nil?
377
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.list_budget_limit_by_budget"
378
+ end
379
+ if @api_client.config.client_side_validation && id < 1
380
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.list_budget_limit_by_budget, must be greater than or equal to 1.'
381
+ end
382
+
383
+ # resource path
384
+ local_var_path = '/api/v1/budgets/{id}/limits'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
385
+
386
+ # query parameters
387
+ query_params = opts[:query_params] || {}
388
+ query_params[:'start'] = opts[:'start'] if !opts[:'start'].nil?
389
+ query_params[:'end'] = opts[:'_end'] if !opts[:'_end'].nil?
390
+
391
+ # header parameters
392
+ header_params = opts[:header_params] || {}
393
+ # HTTP header 'Accept' (if needed)
394
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
395
+
396
+ # form parameters
397
+ form_params = opts[:form_params] || {}
398
+
399
+ # http body (model)
400
+ post_body = opts[:debug_body]
401
+
402
+ # return_type
403
+ return_type = opts[:debug_return_type] || 'BudgetLimitArray'
404
+
405
+ # auth_names
406
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
407
+
408
+ new_options = opts.merge(
409
+ :operation => :"BudgetsApi.list_budget_limit_by_budget",
410
+ :header_params => header_params,
411
+ :query_params => query_params,
412
+ :form_params => form_params,
413
+ :body => post_body,
414
+ :auth_names => auth_names,
415
+ :return_type => return_type
416
+ )
417
+
418
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
419
+ if @api_client.config.debugging
420
+ @api_client.config.logger.debug "API called: BudgetsApi#list_budget_limit_by_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
421
+ end
422
+ return data, status_code, headers
423
+ end
424
+
425
+ # All transactions to a budget.
426
+ # Get all transactions linked to a budget, possibly limited by start and end
427
+ # @param id [Integer] The ID of the budget.
428
+ # @param [Hash] opts the optional parameters
429
+ # @option opts [Integer] :limit Limits the number of results on one page.
430
+ # @option opts [Integer] :page Page number. The default pagination is 50.
431
+ # @option opts [Date] :start A date formatted YYYY-MM-DD.
432
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD.
433
+ # @option opts [TransactionTypeFilter] :type Optional filter on the transaction type(s) returned
434
+ # @return [TransactionArray]
435
+ def list_transaction_by_budget(id, opts = {})
436
+ data, _status_code, _headers = list_transaction_by_budget_with_http_info(id, opts)
437
+ data
438
+ end
439
+
440
+ # All transactions to a budget.
441
+ # Get all transactions linked to a budget, possibly limited by start and end
442
+ # @param id [Integer] The ID of the budget.
443
+ # @param [Hash] opts the optional parameters
444
+ # @option opts [Integer] :limit Limits the number of results on one page.
445
+ # @option opts [Integer] :page Page number. The default pagination is 50.
446
+ # @option opts [Date] :start A date formatted YYYY-MM-DD.
447
+ # @option opts [Date] :_end A date formatted YYYY-MM-DD.
448
+ # @option opts [TransactionTypeFilter] :type Optional filter on the transaction type(s) returned
449
+ # @return [Array<(TransactionArray, Integer, Hash)>] TransactionArray data, response status code and response headers
450
+ def list_transaction_by_budget_with_http_info(id, opts = {})
451
+ if @api_client.config.debugging
452
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.list_transaction_by_budget ...'
453
+ end
454
+ # verify the required parameter 'id' is set
455
+ if @api_client.config.client_side_validation && id.nil?
456
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.list_transaction_by_budget"
457
+ end
458
+ # resource path
459
+ local_var_path = '/api/v1/budgets/{id}/transactions'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
460
+
461
+ # query parameters
462
+ query_params = opts[:query_params] || {}
463
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
464
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
465
+ query_params[:'start'] = opts[:'start'] if !opts[:'start'].nil?
466
+ query_params[:'end'] = opts[:'_end'] if !opts[:'_end'].nil?
467
+ query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
468
+
469
+ # header parameters
470
+ header_params = opts[:header_params] || {}
471
+ # HTTP header 'Accept' (if needed)
472
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
473
+
474
+ # form parameters
475
+ form_params = opts[:form_params] || {}
476
+
477
+ # http body (model)
478
+ post_body = opts[:debug_body]
479
+
480
+ # return_type
481
+ return_type = opts[:debug_return_type] || 'TransactionArray'
482
+
483
+ # auth_names
484
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
485
+
486
+ new_options = opts.merge(
487
+ :operation => :"BudgetsApi.list_transaction_by_budget",
488
+ :header_params => header_params,
489
+ :query_params => query_params,
490
+ :form_params => form_params,
491
+ :body => post_body,
492
+ :auth_names => auth_names,
493
+ :return_type => return_type
494
+ )
495
+
496
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
497
+ if @api_client.config.debugging
498
+ @api_client.config.logger.debug "API called: BudgetsApi#list_transaction_by_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
499
+ end
500
+ return data, status_code, headers
501
+ end
502
+
503
+ # List all transactions by a budget limit ID.
504
+ # List all the transactions within one budget limit. The start and end date are dictated by the budget limit.
505
+ # @param id [Integer] The ID of the requested budget limit.
506
+ # @param [Hash] opts the optional parameters
507
+ # @option opts [Integer] :page Page number. The default pagination is 50.
508
+ # @option opts [TransactionTypeFilter] :type Optional filter on the transaction type(s) returned
509
+ # @return [TransactionArray]
510
+ def list_transaction_by_budget_limit(id, opts = {})
511
+ data, _status_code, _headers = list_transaction_by_budget_limit_with_http_info(id, opts)
512
+ data
513
+ end
514
+
515
+ # List all transactions by a budget limit ID.
516
+ # List all the transactions within one budget limit. The start and end date are dictated by the budget limit.
517
+ # @param id [Integer] The ID of the requested budget limit.
518
+ # @param [Hash] opts the optional parameters
519
+ # @option opts [Integer] :page Page number. The default pagination is 50.
520
+ # @option opts [TransactionTypeFilter] :type Optional filter on the transaction type(s) returned
521
+ # @return [Array<(TransactionArray, Integer, Hash)>] TransactionArray data, response status code and response headers
522
+ def list_transaction_by_budget_limit_with_http_info(id, opts = {})
523
+ if @api_client.config.debugging
524
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.list_transaction_by_budget_limit ...'
525
+ end
526
+ # verify the required parameter 'id' is set
527
+ if @api_client.config.client_side_validation && id.nil?
528
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.list_transaction_by_budget_limit"
529
+ end
530
+ if @api_client.config.client_side_validation && id < 1
531
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.list_transaction_by_budget_limit, must be greater than or equal to 1.'
532
+ end
533
+
534
+ # resource path
535
+ local_var_path = '/api/v1/budgets/limits/{id}/transactions'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
536
+
537
+ # query parameters
538
+ query_params = opts[:query_params] || {}
539
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
540
+ query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
541
+
542
+ # header parameters
543
+ header_params = opts[:header_params] || {}
544
+ # HTTP header 'Accept' (if needed)
545
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
546
+
547
+ # form parameters
548
+ form_params = opts[:form_params] || {}
549
+
550
+ # http body (model)
551
+ post_body = opts[:debug_body]
552
+
553
+ # return_type
554
+ return_type = opts[:debug_return_type] || 'TransactionArray'
555
+
556
+ # auth_names
557
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
558
+
559
+ new_options = opts.merge(
560
+ :operation => :"BudgetsApi.list_transaction_by_budget_limit",
561
+ :header_params => header_params,
562
+ :query_params => query_params,
563
+ :form_params => form_params,
564
+ :body => post_body,
565
+ :auth_names => auth_names,
566
+ :return_type => return_type
567
+ )
568
+
569
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
570
+ if @api_client.config.debugging
571
+ @api_client.config.logger.debug "API called: BudgetsApi#list_transaction_by_budget_limit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
572
+ end
573
+ return data, status_code, headers
574
+ end
575
+
576
+ # Store a new budget
577
+ # Creates a new budget. The data required can be submitted as a JSON body or as a list of parameters.
578
+ # @param budget [Budget] JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.
579
+ # @param [Hash] opts the optional parameters
580
+ # @return [BudgetSingle]
581
+ def store_budget(budget, opts = {})
582
+ data, _status_code, _headers = store_budget_with_http_info(budget, opts)
583
+ data
584
+ end
585
+
586
+ # Store a new budget
587
+ # Creates a new budget. The data required can be submitted as a JSON body or as a list of parameters.
588
+ # @param budget [Budget] JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.
589
+ # @param [Hash] opts the optional parameters
590
+ # @return [Array<(BudgetSingle, Integer, Hash)>] BudgetSingle data, response status code and response headers
591
+ def store_budget_with_http_info(budget, opts = {})
592
+ if @api_client.config.debugging
593
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.store_budget ...'
594
+ end
595
+ # verify the required parameter 'budget' is set
596
+ if @api_client.config.client_side_validation && budget.nil?
597
+ fail ArgumentError, "Missing the required parameter 'budget' when calling BudgetsApi.store_budget"
598
+ end
599
+ # resource path
600
+ local_var_path = '/api/v1/budgets'
601
+
602
+ # query parameters
603
+ query_params = opts[:query_params] || {}
604
+
605
+ # header parameters
606
+ header_params = opts[:header_params] || {}
607
+ # HTTP header 'Accept' (if needed)
608
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
609
+ # HTTP header 'Content-Type'
610
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded'])
611
+
612
+ # form parameters
613
+ form_params = opts[:form_params] || {}
614
+
615
+ # http body (model)
616
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(budget)
617
+
618
+ # return_type
619
+ return_type = opts[:debug_return_type] || 'BudgetSingle'
620
+
621
+ # auth_names
622
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
623
+
624
+ new_options = opts.merge(
625
+ :operation => :"BudgetsApi.store_budget",
626
+ :header_params => header_params,
627
+ :query_params => query_params,
628
+ :form_params => form_params,
629
+ :body => post_body,
630
+ :auth_names => auth_names,
631
+ :return_type => return_type
632
+ )
633
+
634
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
635
+ if @api_client.config.debugging
636
+ @api_client.config.logger.debug "API called: BudgetsApi#store_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
637
+ end
638
+ return data, status_code, headers
639
+ end
640
+
641
+ # Store new budget limit.
642
+ # Store a new budget limit.
643
+ # @param id [Integer] The ID of the budget.
644
+ # @param budget_limit [BudgetLimit] JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.
645
+ # @param [Hash] opts the optional parameters
646
+ # @return [BudgetLimitSingle]
647
+ def store_budget_limit(id, budget_limit, opts = {})
648
+ data, _status_code, _headers = store_budget_limit_with_http_info(id, budget_limit, opts)
649
+ data
650
+ end
651
+
652
+ # Store new budget limit.
653
+ # Store a new budget limit.
654
+ # @param id [Integer] The ID of the budget.
655
+ # @param budget_limit [BudgetLimit] JSON array or key&#x3D;value pairs with the necessary budget information. See the model for the exact specifications.
656
+ # @param [Hash] opts the optional parameters
657
+ # @return [Array<(BudgetLimitSingle, Integer, Hash)>] BudgetLimitSingle data, response status code and response headers
658
+ def store_budget_limit_with_http_info(id, budget_limit, opts = {})
659
+ if @api_client.config.debugging
660
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.store_budget_limit ...'
661
+ end
662
+ # verify the required parameter 'id' is set
663
+ if @api_client.config.client_side_validation && id.nil?
664
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.store_budget_limit"
665
+ end
666
+ if @api_client.config.client_side_validation && id < 1
667
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.store_budget_limit, must be greater than or equal to 1.'
668
+ end
669
+
670
+ # verify the required parameter 'budget_limit' is set
671
+ if @api_client.config.client_side_validation && budget_limit.nil?
672
+ fail ArgumentError, "Missing the required parameter 'budget_limit' when calling BudgetsApi.store_budget_limit"
673
+ end
674
+ # resource path
675
+ local_var_path = '/api/v1/budgets/{id}/limits'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
676
+
677
+ # query parameters
678
+ query_params = opts[:query_params] || {}
679
+
680
+ # header parameters
681
+ header_params = opts[:header_params] || {}
682
+ # HTTP header 'Accept' (if needed)
683
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
684
+ # HTTP header 'Content-Type'
685
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded'])
686
+
687
+ # form parameters
688
+ form_params = opts[:form_params] || {}
689
+
690
+ # http body (model)
691
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(budget_limit)
692
+
693
+ # return_type
694
+ return_type = opts[:debug_return_type] || 'BudgetLimitSingle'
695
+
696
+ # auth_names
697
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
698
+
699
+ new_options = opts.merge(
700
+ :operation => :"BudgetsApi.store_budget_limit",
701
+ :header_params => header_params,
702
+ :query_params => query_params,
703
+ :form_params => form_params,
704
+ :body => post_body,
705
+ :auth_names => auth_names,
706
+ :return_type => return_type
707
+ )
708
+
709
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
710
+ if @api_client.config.debugging
711
+ @api_client.config.logger.debug "API called: BudgetsApi#store_budget_limit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
712
+ end
713
+ return data, status_code, headers
714
+ end
715
+
716
+ # Update existing budget.
717
+ # Update existing budget. This endpoint cannot be used to set budget amount limits.
718
+ # @param id [Integer] The ID of the budget.
719
+ # @param budget [Budget] JSON array with updated budget information. See the model for the exact specifications.
720
+ # @param [Hash] opts the optional parameters
721
+ # @return [BudgetSingle]
722
+ def update_budget(id, budget, opts = {})
723
+ data, _status_code, _headers = update_budget_with_http_info(id, budget, opts)
724
+ data
725
+ end
726
+
727
+ # Update existing budget.
728
+ # Update existing budget. This endpoint cannot be used to set budget amount limits.
729
+ # @param id [Integer] The ID of the budget.
730
+ # @param budget [Budget] JSON array with updated budget information. See the model for the exact specifications.
731
+ # @param [Hash] opts the optional parameters
732
+ # @return [Array<(BudgetSingle, Integer, Hash)>] BudgetSingle data, response status code and response headers
733
+ def update_budget_with_http_info(id, budget, opts = {})
734
+ if @api_client.config.debugging
735
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.update_budget ...'
736
+ end
737
+ # verify the required parameter 'id' is set
738
+ if @api_client.config.client_side_validation && id.nil?
739
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.update_budget"
740
+ end
741
+ if @api_client.config.client_side_validation && id < 1
742
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.update_budget, must be greater than or equal to 1.'
743
+ end
744
+
745
+ # verify the required parameter 'budget' is set
746
+ if @api_client.config.client_side_validation && budget.nil?
747
+ fail ArgumentError, "Missing the required parameter 'budget' when calling BudgetsApi.update_budget"
748
+ end
749
+ # resource path
750
+ local_var_path = '/api/v1/budgets/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
751
+
752
+ # query parameters
753
+ query_params = opts[:query_params] || {}
754
+
755
+ # header parameters
756
+ header_params = opts[:header_params] || {}
757
+ # HTTP header 'Accept' (if needed)
758
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
759
+ # HTTP header 'Content-Type'
760
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded'])
761
+
762
+ # form parameters
763
+ form_params = opts[:form_params] || {}
764
+
765
+ # http body (model)
766
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(budget)
767
+
768
+ # return_type
769
+ return_type = opts[:debug_return_type] || 'BudgetSingle'
770
+
771
+ # auth_names
772
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
773
+
774
+ new_options = opts.merge(
775
+ :operation => :"BudgetsApi.update_budget",
776
+ :header_params => header_params,
777
+ :query_params => query_params,
778
+ :form_params => form_params,
779
+ :body => post_body,
780
+ :auth_names => auth_names,
781
+ :return_type => return_type
782
+ )
783
+
784
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
785
+ if @api_client.config.debugging
786
+ @api_client.config.logger.debug "API called: BudgetsApi#update_budget\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
787
+ end
788
+ return data, status_code, headers
789
+ end
790
+
791
+ # Update existing budget limit.
792
+ # Update existing budget limit.
793
+ # @param id [Integer] The ID of the requested budget limit. The budget limit MUST be associated to the budget ID.
794
+ # @param budget_limit [BudgetLimit] JSON array with updated budget limit information. See the model for the exact specifications.
795
+ # @param [Hash] opts the optional parameters
796
+ # @return [BudgetLimitSingle]
797
+ def update_budget_limit(id, budget_limit, opts = {})
798
+ data, _status_code, _headers = update_budget_limit_with_http_info(id, budget_limit, opts)
799
+ data
800
+ end
801
+
802
+ # Update existing budget limit.
803
+ # Update existing budget limit.
804
+ # @param id [Integer] The ID of the requested budget limit. The budget limit MUST be associated to the budget ID.
805
+ # @param budget_limit [BudgetLimit] JSON array with updated budget limit information. See the model for the exact specifications.
806
+ # @param [Hash] opts the optional parameters
807
+ # @return [Array<(BudgetLimitSingle, Integer, Hash)>] BudgetLimitSingle data, response status code and response headers
808
+ def update_budget_limit_with_http_info(id, budget_limit, opts = {})
809
+ if @api_client.config.debugging
810
+ @api_client.config.logger.debug 'Calling API: BudgetsApi.update_budget_limit ...'
811
+ end
812
+ # verify the required parameter 'id' is set
813
+ if @api_client.config.client_side_validation && id.nil?
814
+ fail ArgumentError, "Missing the required parameter 'id' when calling BudgetsApi.update_budget_limit"
815
+ end
816
+ if @api_client.config.client_side_validation && id < 1
817
+ fail ArgumentError, 'invalid value for "id" when calling BudgetsApi.update_budget_limit, must be greater than or equal to 1.'
818
+ end
819
+
820
+ # verify the required parameter 'budget_limit' is set
821
+ if @api_client.config.client_side_validation && budget_limit.nil?
822
+ fail ArgumentError, "Missing the required parameter 'budget_limit' when calling BudgetsApi.update_budget_limit"
823
+ end
824
+ # resource path
825
+ local_var_path = '/api/v1/budgets/limits/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
826
+
827
+ # query parameters
828
+ query_params = opts[:query_params] || {}
829
+
830
+ # header parameters
831
+ header_params = opts[:header_params] || {}
832
+ # HTTP header 'Accept' (if needed)
833
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
834
+ # HTTP header 'Content-Type'
835
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded'])
836
+
837
+ # form parameters
838
+ form_params = opts[:form_params] || {}
839
+
840
+ # http body (model)
841
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(budget_limit)
842
+
843
+ # return_type
844
+ return_type = opts[:debug_return_type] || 'BudgetLimitSingle'
845
+
846
+ # auth_names
847
+ auth_names = opts[:debug_auth_names] || ['firefly_iii_auth']
848
+
849
+ new_options = opts.merge(
850
+ :operation => :"BudgetsApi.update_budget_limit",
851
+ :header_params => header_params,
852
+ :query_params => query_params,
853
+ :form_params => form_params,
854
+ :body => post_body,
855
+ :auth_names => auth_names,
856
+ :return_type => return_type
857
+ )
858
+
859
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
860
+ if @api_client.config.debugging
861
+ @api_client.config.logger.debug "API called: BudgetsApi#update_budget_limit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
862
+ end
863
+ return data, status_code, headers
864
+ end
865
+ end
866
+ end