lago_ruby 0.46.0.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (553) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +128 -0
  3. data/CONTRIBUTING.md +213 -0
  4. data/Gemfile +9 -0
  5. data/Gemfile.lock +72 -0
  6. data/LICENSE +21 -0
  7. data/README.md +343 -0
  8. data/Rakefile +10 -0
  9. data/docs/AddOn.md +18 -0
  10. data/docs/AddOnBaseInput.md +28 -0
  11. data/docs/AddOnCreateInput.md +18 -0
  12. data/docs/AddOnCreateInputAddOn.md +28 -0
  13. data/docs/AddOnObject.md +32 -0
  14. data/docs/AddOnUpdateInput.md +18 -0
  15. data/docs/AddOnsApi.md +433 -0
  16. data/docs/AddOnsPaginated.md +20 -0
  17. data/docs/ApiErrorBadRequest.md +20 -0
  18. data/docs/ApiErrorForbidden.md +22 -0
  19. data/docs/ApiErrorNotAllowed.md +22 -0
  20. data/docs/ApiErrorNotFound.md +22 -0
  21. data/docs/ApiErrorUnauthorized.md +20 -0
  22. data/docs/ApiErrorUnprocessableEntity.md +24 -0
  23. data/docs/AppliedAddOn.md +18 -0
  24. data/docs/AppliedAddOnInput.md +18 -0
  25. data/docs/AppliedAddOnInputAppliedAddOn.md +24 -0
  26. data/docs/AppliedAddOnObject.md +32 -0
  27. data/docs/AppliedCoupon.md +18 -0
  28. data/docs/AppliedCouponInput.md +18 -0
  29. data/docs/AppliedCouponInputAppliedCoupon.md +30 -0
  30. data/docs/AppliedCouponObject.md +50 -0
  31. data/docs/AppliedCouponObjectExtended.md +52 -0
  32. data/docs/AppliedCouponsPaginated.md +20 -0
  33. data/docs/BaseAppliedTax.md +34 -0
  34. data/docs/BillableMetric.md +18 -0
  35. data/docs/BillableMetricBaseInput.md +30 -0
  36. data/docs/BillableMetricCreateInput.md +18 -0
  37. data/docs/BillableMetricCreateInputBillableMetric.md +30 -0
  38. data/docs/BillableMetricGroup.md +20 -0
  39. data/docs/BillableMetricGroupValuesInner.md +49 -0
  40. data/docs/BillableMetricGroupValuesInnerOneOf.md +20 -0
  41. data/docs/BillableMetricObject.md +40 -0
  42. data/docs/BillableMetricUpdateInput.md +18 -0
  43. data/docs/BillableMetricsApi.md +439 -0
  44. data/docs/BillableMetricsPaginated.md +20 -0
  45. data/docs/ChargeObject.md +40 -0
  46. data/docs/ChargeObjectProperties.md +40 -0
  47. data/docs/ChargeProperties.md +40 -0
  48. data/docs/ChargePropertiesGraduatedPercentageRangesInner.md +24 -0
  49. data/docs/ChargePropertiesGraduatedRangesInner.md +24 -0
  50. data/docs/ChargePropertiesVolumeRangesInner.md +24 -0
  51. data/docs/Country.md +15 -0
  52. data/docs/Coupon.md +18 -0
  53. data/docs/CouponBaseInput.md +42 -0
  54. data/docs/CouponBaseInputAppliesTo.md +20 -0
  55. data/docs/CouponCreateInput.md +18 -0
  56. data/docs/CouponCreateInputCoupon.md +42 -0
  57. data/docs/CouponObject.md +52 -0
  58. data/docs/CouponUpdateInput.md +18 -0
  59. data/docs/CouponsApi.md +583 -0
  60. data/docs/CouponsPaginated.md +20 -0
  61. data/docs/CreateWebhookEndpoint200Response.md +18 -0
  62. data/docs/CreateWebhookEndpoint200ResponseWebhookEndpoint.md +26 -0
  63. data/docs/CreateWebhookEndpointRequest.md +18 -0
  64. data/docs/CreateWebhookEndpointRequestWebhookEndpoint.md +20 -0
  65. data/docs/CreditNote.md +18 -0
  66. data/docs/CreditNoteAppliedTaxObject.md +38 -0
  67. data/docs/CreditNoteCreateInput.md +18 -0
  68. data/docs/CreditNoteCreateInputCreditNote.md +28 -0
  69. data/docs/CreditNoteCreateInputCreditNoteItemsInner.md +20 -0
  70. data/docs/CreditNoteItemObject.md +24 -0
  71. data/docs/CreditNoteItemObjectFee.md +74 -0
  72. data/docs/CreditNoteObject.md +64 -0
  73. data/docs/CreditNoteUpdateInput.md +18 -0
  74. data/docs/CreditNoteUpdateInputCreditNote.md +18 -0
  75. data/docs/CreditNotes.md +18 -0
  76. data/docs/CreditNotesApi.md +435 -0
  77. data/docs/CreditObject.md +28 -0
  78. data/docs/CreditObjectInvoice.md +20 -0
  79. data/docs/CreditObjectItem.md +24 -0
  80. data/docs/Currency.md +15 -0
  81. data/docs/Customer.md +18 -0
  82. data/docs/CustomerBillingConfiguration.md +30 -0
  83. data/docs/CustomerChargeUsageObject.md +28 -0
  84. data/docs/CustomerChargeUsageObjectBillableMetric.md +24 -0
  85. data/docs/CustomerChargeUsageObjectCharge.md +20 -0
  86. data/docs/CustomerChargeUsageObjectGroupsInner.md +26 -0
  87. data/docs/CustomerCreateInput.md +18 -0
  88. data/docs/CustomerCreateInputCustomer.md +58 -0
  89. data/docs/CustomerCreateInputCustomerMetadataInner.md +24 -0
  90. data/docs/CustomerMetadata.md +26 -0
  91. data/docs/CustomerObject.md +68 -0
  92. data/docs/CustomerObjectExtended.md +70 -0
  93. data/docs/CustomerUsage.md +18 -0
  94. data/docs/CustomerUsageObject.md +32 -0
  95. data/docs/CustomersApi.md +505 -0
  96. data/docs/CustomersPaginated.md +20 -0
  97. data/docs/Event.md +18 -0
  98. data/docs/EventBatchInput.md +18 -0
  99. data/docs/EventBatchInputEvent.md +28 -0
  100. data/docs/EventBatchInputEventProperties.md +18 -0
  101. data/docs/EventEstimateFeesInput.md +18 -0
  102. data/docs/EventEstimateFeesInputEvent.md +24 -0
  103. data/docs/EventInput.md +18 -0
  104. data/docs/EventInputEvent.md +28 -0
  105. data/docs/EventObject.md +36 -0
  106. data/docs/EventsApi.md +285 -0
  107. data/docs/Fee.md +18 -0
  108. data/docs/FeeAppliedTaxObject.md +36 -0
  109. data/docs/FeeObject.md +74 -0
  110. data/docs/FeeObjectItem.md +26 -0
  111. data/docs/FeeUpdateInput.md +18 -0
  112. data/docs/FeeUpdateInputFee.md +18 -0
  113. data/docs/Fees.md +18 -0
  114. data/docs/FeesApi.md +253 -0
  115. data/docs/FeesPaginated.md +20 -0
  116. data/docs/FindAllWebhookEndpoints200Response.md +20 -0
  117. data/docs/GetCustomerPortalUrl200Response.md +18 -0
  118. data/docs/GetCustomerPortalUrl200ResponseCustomer.md +18 -0
  119. data/docs/GroupObject.md +22 -0
  120. data/docs/GroupPropertiesObject.md +20 -0
  121. data/docs/GroupPropertiesObjectValues.md +40 -0
  122. data/docs/GroupsPaginated.md +20 -0
  123. data/docs/Invoice.md +18 -0
  124. data/docs/InvoiceAppliedTaxObject.md +38 -0
  125. data/docs/InvoiceMetadataObject.md +24 -0
  126. data/docs/InvoiceObject.md +62 -0
  127. data/docs/InvoiceObjectCustomer.md +68 -0
  128. data/docs/InvoiceObjectExtended.md +68 -0
  129. data/docs/InvoiceOneOffCreateInput.md +18 -0
  130. data/docs/InvoiceOneOffCreateInputInvoice.md +22 -0
  131. data/docs/InvoiceOneOffCreateInputInvoiceFeesInner.md +26 -0
  132. data/docs/InvoiceUpdateInput.md +18 -0
  133. data/docs/InvoiceUpdateInputInvoice.md +20 -0
  134. data/docs/InvoiceUpdateInputInvoiceMetadataInner.md +22 -0
  135. data/docs/InvoicesApi.md +582 -0
  136. data/docs/InvoicesPaginated.md +20 -0
  137. data/docs/Organization.md +18 -0
  138. data/docs/OrganizationBillingConfiguration.md +22 -0
  139. data/docs/OrganizationObject.md +54 -0
  140. data/docs/OrganizationUpdateInput.md +18 -0
  141. data/docs/OrganizationUpdateInputOrganization.md +46 -0
  142. data/docs/OrganizationsApi.md +77 -0
  143. data/docs/PaginationMeta.md +26 -0
  144. data/docs/Plan.md +18 -0
  145. data/docs/PlanCreateInput.md +18 -0
  146. data/docs/PlanCreateInputPlan.md +38 -0
  147. data/docs/PlanCreateInputPlanChargesInner.md +34 -0
  148. data/docs/PlanCreateInputPlanChargesInnerGroupPropertiesInner.md +20 -0
  149. data/docs/PlanObject.md +46 -0
  150. data/docs/PlanUpdateInput.md +18 -0
  151. data/docs/PlanUpdateInputPlan.md +38 -0
  152. data/docs/PlanUpdateInputPlanChargesInner.md +36 -0
  153. data/docs/PlansApi.md +363 -0
  154. data/docs/PlansPaginated.md +20 -0
  155. data/docs/Subscription.md +18 -0
  156. data/docs/SubscriptionCreateInput.md +18 -0
  157. data/docs/SubscriptionCreateInputSubscription.md +28 -0
  158. data/docs/SubscriptionObject.md +48 -0
  159. data/docs/SubscriptionUpdateInput.md +18 -0
  160. data/docs/SubscriptionUpdateInputSubscription.md +20 -0
  161. data/docs/SubscriptionsApi.md +303 -0
  162. data/docs/SubscriptionsPaginated.md +20 -0
  163. data/docs/Tax.md +18 -0
  164. data/docs/TaxBaseInput.md +26 -0
  165. data/docs/TaxCreateInput.md +18 -0
  166. data/docs/TaxCreateInputTax.md +26 -0
  167. data/docs/TaxObject.md +38 -0
  168. data/docs/TaxUpdateInput.md +18 -0
  169. data/docs/TaxesApi.md +363 -0
  170. data/docs/TaxesPaginated.md +20 -0
  171. data/docs/Timezone.md +15 -0
  172. data/docs/Wallet.md +18 -0
  173. data/docs/WalletCreateInput.md +18 -0
  174. data/docs/WalletCreateInputWallet.md +30 -0
  175. data/docs/WalletObject.md +46 -0
  176. data/docs/WalletTransactionCreateInput.md +18 -0
  177. data/docs/WalletTransactionCreateInputWalletTransaction.md +22 -0
  178. data/docs/WalletTransactionObject.md +32 -0
  179. data/docs/WalletTransactions.md +18 -0
  180. data/docs/WalletTransactionsPaginated.md +20 -0
  181. data/docs/WalletUpdateInput.md +18 -0
  182. data/docs/WalletUpdateInputWallet.md +20 -0
  183. data/docs/WalletsApi.md +515 -0
  184. data/docs/WalletsPaginated.md +20 -0
  185. data/docs/WebhookEndpointsApi.md +363 -0
  186. data/docs/WebhooksApi.md +74 -0
  187. data/git_push.sh +57 -0
  188. data/lago_ruby.gemspec +42 -0
  189. data/lib/lago_ruby/api/add_ons_api.rb +421 -0
  190. data/lib/lago_ruby/api/billable_metrics_api.rb +422 -0
  191. data/lib/lago_ruby/api/coupons_api.rb +563 -0
  192. data/lib/lago_ruby/api/credit_notes_api.rb +419 -0
  193. data/lib/lago_ruby/api/customers_api.rb +481 -0
  194. data/lib/lago_ruby/api/events_api.rb +289 -0
  195. data/lib/lago_ruby/api/fees_api.rb +268 -0
  196. data/lib/lago_ruby/api/invoices_api.rb +565 -0
  197. data/lib/lago_ruby/api/organizations_api.rb +90 -0
  198. data/lib/lago_ruby/api/plans_api.rb +353 -0
  199. data/lib/lago_ruby/api/subscriptions_api.rb +306 -0
  200. data/lib/lago_ruby/api/taxes_api.rb +353 -0
  201. data/lib/lago_ruby/api/wallets_api.rb +503 -0
  202. data/lib/lago_ruby/api/webhook_endpoints_api.rb +353 -0
  203. data/lib/lago_ruby/api/webhooks_api.rb +79 -0
  204. data/lib/lago_ruby/api_client.rb +392 -0
  205. data/lib/lago_ruby/api_error.rb +58 -0
  206. data/lib/lago_ruby/configuration.rb +297 -0
  207. data/lib/lago_ruby/models/add_on.rb +221 -0
  208. data/lib/lago_ruby/models/add_on_base_input.rb +267 -0
  209. data/lib/lago_ruby/models/add_on_create_input.rb +221 -0
  210. data/lib/lago_ruby/models/add_on_create_input_add_on.rb +302 -0
  211. data/lib/lago_ruby/models/add_on_object.rb +329 -0
  212. data/lib/lago_ruby/models/add_on_update_input.rb +221 -0
  213. data/lib/lago_ruby/models/add_ons_paginated.rb +239 -0
  214. data/lib/lago_ruby/models/api_error_bad_request.rb +237 -0
  215. data/lib/lago_ruby/models/api_error_forbidden.rb +253 -0
  216. data/lib/lago_ruby/models/api_error_not_allowed.rb +253 -0
  217. data/lib/lago_ruby/models/api_error_not_found.rb +253 -0
  218. data/lib/lago_ruby/models/api_error_unauthorized.rb +237 -0
  219. data/lib/lago_ruby/models/api_error_unprocessable_entity.rb +269 -0
  220. data/lib/lago_ruby/models/applied_add_on.rb +221 -0
  221. data/lib/lago_ruby/models/applied_add_on_input.rb +221 -0
  222. data/lib/lago_ruby/models/applied_add_on_input_applied_add_on.rb +259 -0
  223. data/lib/lago_ruby/models/applied_add_on_object.rb +339 -0
  224. data/lib/lago_ruby/models/applied_coupon.rb +221 -0
  225. data/lib/lago_ruby/models/applied_coupon_input.rb +221 -0
  226. data/lib/lago_ruby/models/applied_coupon_input_applied_coupon.rb +343 -0
  227. data/lib/lago_ruby/models/applied_coupon_object.rb +507 -0
  228. data/lib/lago_ruby/models/applied_coupon_object_extended.rb +532 -0
  229. data/lib/lago_ruby/models/applied_coupons_paginated.rb +239 -0
  230. data/lib/lago_ruby/models/base_applied_tax.rb +294 -0
  231. data/lib/lago_ruby/models/billable_metric.rb +221 -0
  232. data/lib/lago_ruby/models/billable_metric_base_input.rb +310 -0
  233. data/lib/lago_ruby/models/billable_metric_create_input.rb +221 -0
  234. data/lib/lago_ruby/models/billable_metric_create_input_billable_metric.rb +338 -0
  235. data/lib/lago_ruby/models/billable_metric_group.rb +242 -0
  236. data/lib/lago_ruby/models/billable_metric_group_values_inner.rb +105 -0
  237. data/lib/lago_ruby/models/billable_metric_group_values_inner_one_of.rb +242 -0
  238. data/lib/lago_ruby/models/billable_metric_object.rb +423 -0
  239. data/lib/lago_ruby/models/billable_metric_update_input.rb +221 -0
  240. data/lib/lago_ruby/models/billable_metrics_paginated.rb +239 -0
  241. data/lib/lago_ruby/models/charge_object.rb +397 -0
  242. data/lib/lago_ruby/models/charge_object_properties.rb +422 -0
  243. data/lib/lago_ruby/models/charge_properties.rb +415 -0
  244. data/lib/lago_ruby/models/charge_properties_graduated_percentage_ranges_inner.rb +269 -0
  245. data/lib/lago_ruby/models/charge_properties_graduated_ranges_inner.rb +311 -0
  246. data/lib/lago_ruby/models/charge_properties_volume_ranges_inner.rb +311 -0
  247. data/lib/lago_ruby/models/country.rb +287 -0
  248. data/lib/lago_ruby/models/coupon.rb +221 -0
  249. data/lib/lago_ruby/models/coupon_base_input.rb +414 -0
  250. data/lib/lago_ruby/models/coupon_base_input_applies_to.rb +232 -0
  251. data/lib/lago_ruby/models/coupon_create_input.rb +221 -0
  252. data/lib/lago_ruby/models/coupon_create_input_coupon.rb +449 -0
  253. data/lib/lago_ruby/models/coupon_object.rb +538 -0
  254. data/lib/lago_ruby/models/coupon_update_input.rb +221 -0
  255. data/lib/lago_ruby/models/coupons_paginated.rb +239 -0
  256. data/lib/lago_ruby/models/create_webhook_endpoint200_response.rb +221 -0
  257. data/lib/lago_ruby/models/create_webhook_endpoint200_response_webhook_endpoint.rb +317 -0
  258. data/lib/lago_ruby/models/create_webhook_endpoint_request.rb +214 -0
  259. data/lib/lago_ruby/models/create_webhook_endpoint_request_webhook_endpoint.rb +267 -0
  260. data/lib/lago_ruby/models/credit_note.rb +221 -0
  261. data/lib/lago_ruby/models/credit_note_applied_tax_object.rb +320 -0
  262. data/lib/lago_ruby/models/credit_note_create_input.rb +221 -0
  263. data/lib/lago_ruby/models/credit_note_create_input_credit_note.rb +318 -0
  264. data/lib/lago_ruby/models/credit_note_create_input_credit_note_items_inner.rb +239 -0
  265. data/lib/lago_ruby/models/credit_note_item_object.rb +271 -0
  266. data/lib/lago_ruby/models/credit_note_item_object_fee.rb +628 -0
  267. data/lib/lago_ruby/models/credit_note_object.rb +635 -0
  268. data/lib/lago_ruby/models/credit_note_update_input.rb +221 -0
  269. data/lib/lago_ruby/models/credit_note_update_input_credit_note.rb +256 -0
  270. data/lib/lago_ruby/models/credit_notes.rb +223 -0
  271. data/lib/lago_ruby/models/credit_object.rb +304 -0
  272. data/lib/lago_ruby/models/credit_object_invoice.rb +271 -0
  273. data/lib/lago_ruby/models/credit_object_item.rb +308 -0
  274. data/lib/lago_ruby/models/currency.rb +175 -0
  275. data/lib/lago_ruby/models/customer.rb +221 -0
  276. data/lib/lago_ruby/models/customer_billing_configuration.rb +313 -0
  277. data/lib/lago_ruby/models/customer_charge_usage_object.rb +327 -0
  278. data/lib/lago_ruby/models/customer_charge_usage_object_billable_metric.rb +308 -0
  279. data/lib/lago_ruby/models/customer_charge_usage_object_charge.rb +274 -0
  280. data/lib/lago_ruby/models/customer_charge_usage_object_groups_inner.rb +277 -0
  281. data/lib/lago_ruby/models/customer_create_input.rb +221 -0
  282. data/lib/lago_ruby/models/customer_create_input_customer.rb +436 -0
  283. data/lib/lago_ruby/models/customer_create_input_customer_metadata_inner.rb +266 -0
  284. data/lib/lago_ruby/models/customer_metadata.rb +291 -0
  285. data/lib/lago_ruby/models/customer_object.rb +517 -0
  286. data/lib/lago_ruby/models/customer_object_extended.rb +536 -0
  287. data/lib/lago_ruby/models/customer_usage.rb +221 -0
  288. data/lib/lago_ruby/models/customer_usage_object.rb +335 -0
  289. data/lib/lago_ruby/models/customers_paginated.rb +239 -0
  290. data/lib/lago_ruby/models/event.rb +221 -0
  291. data/lib/lago_ruby/models/event_batch_input.rb +221 -0
  292. data/lib/lago_ruby/models/event_batch_input_event.rb +287 -0
  293. data/lib/lago_ruby/models/event_batch_input_event_properties.rb +250 -0
  294. data/lib/lago_ruby/models/event_estimate_fees_input.rb +221 -0
  295. data/lib/lago_ruby/models/event_estimate_fees_input_event.rb +252 -0
  296. data/lib/lago_ruby/models/event_input.rb +221 -0
  297. data/lib/lago_ruby/models/event_input_event.rb +278 -0
  298. data/lib/lago_ruby/models/event_object.rb +367 -0
  299. data/lib/lago_ruby/models/fee.rb +221 -0
  300. data/lib/lago_ruby/models/fee_applied_tax_object.rb +311 -0
  301. data/lib/lago_ruby/models/fee_object.rb +621 -0
  302. data/lib/lago_ruby/models/fee_object_item.rb +337 -0
  303. data/lib/lago_ruby/models/fee_update_input.rb +221 -0
  304. data/lib/lago_ruby/models/fee_update_input_fee.rb +256 -0
  305. data/lib/lago_ruby/models/fees.rb +223 -0
  306. data/lib/lago_ruby/models/fees_paginated.rb +246 -0
  307. data/lib/lago_ruby/models/find_all_webhook_endpoints200_response.rb +239 -0
  308. data/lib/lago_ruby/models/get_customer_portal_url200_response.rb +221 -0
  309. data/lib/lago_ruby/models/get_customer_portal_url200_response_customer.rb +222 -0
  310. data/lib/lago_ruby/models/group_object.rb +256 -0
  311. data/lib/lago_ruby/models/group_properties_object.rb +238 -0
  312. data/lib/lago_ruby/models/group_properties_object_values.rb +422 -0
  313. data/lib/lago_ruby/models/groups_paginated.rb +239 -0
  314. data/lib/lago_ruby/models/invoice.rb +221 -0
  315. data/lib/lago_ruby/models/invoice_applied_tax_object.rb +321 -0
  316. data/lib/lago_ruby/models/invoice_metadata_object.rb +245 -0
  317. data/lib/lago_ruby/models/invoice_object.rb +611 -0
  318. data/lib/lago_ruby/models/invoice_object_customer.rb +524 -0
  319. data/lib/lago_ruby/models/invoice_object_extended.rb +651 -0
  320. data/lib/lago_ruby/models/invoice_one_off_create_input.rb +221 -0
  321. data/lib/lago_ruby/models/invoice_one_off_create_input_invoice.rb +249 -0
  322. data/lib/lago_ruby/models/invoice_one_off_create_input_invoice_fees_inner.rb +284 -0
  323. data/lib/lago_ruby/models/invoice_update_input.rb +221 -0
  324. data/lib/lago_ruby/models/invoice_update_input_invoice.rb +260 -0
  325. data/lib/lago_ruby/models/invoice_update_input_invoice_metadata_inner.rb +235 -0
  326. data/lib/lago_ruby/models/invoices_paginated.rb +239 -0
  327. data/lib/lago_ruby/models/organization.rb +221 -0
  328. data/lib/lago_ruby/models/organization_billing_configuration.rb +237 -0
  329. data/lib/lago_ruby/models/organization_object.rb +431 -0
  330. data/lib/lago_ruby/models/organization_update_input.rb +221 -0
  331. data/lib/lago_ruby/models/organization_update_input_organization.rb +386 -0
  332. data/lib/lago_ruby/models/pagination_meta.rb +278 -0
  333. data/lib/lago_ruby/models/plan.rb +221 -0
  334. data/lib/lago_ruby/models/plan_create_input.rb +221 -0
  335. data/lib/lago_ruby/models/plan_create_input_plan.rb +353 -0
  336. data/lib/lago_ruby/models/plan_create_input_plan_charges_inner.rb +332 -0
  337. data/lib/lago_ruby/models/plan_create_input_plan_charges_inner_group_properties_inner.rb +238 -0
  338. data/lib/lago_ruby/models/plan_object.rb +456 -0
  339. data/lib/lago_ruby/models/plan_update_input.rb +221 -0
  340. data/lib/lago_ruby/models/plan_update_input_plan.rb +353 -0
  341. data/lib/lago_ruby/models/plan_update_input_plan_charges_inner.rb +342 -0
  342. data/lib/lago_ruby/models/plans_paginated.rb +239 -0
  343. data/lib/lago_ruby/models/subscription.rb +221 -0
  344. data/lib/lago_ruby/models/subscription_create_input.rb +221 -0
  345. data/lib/lago_ruby/models/subscription_create_input_subscription.rb +320 -0
  346. data/lib/lago_ruby/models/subscription_object.rb +481 -0
  347. data/lib/lago_ruby/models/subscription_update_input.rb +221 -0
  348. data/lib/lago_ruby/models/subscription_update_input_subscription.rb +226 -0
  349. data/lib/lago_ruby/models/subscriptions_paginated.rb +239 -0
  350. data/lib/lago_ruby/models/tax.rb +221 -0
  351. data/lib/lago_ruby/models/tax_base_input.rb +277 -0
  352. data/lib/lago_ruby/models/tax_create_input.rb +221 -0
  353. data/lib/lago_ruby/models/tax_create_input_tax.rb +305 -0
  354. data/lib/lago_ruby/models/tax_object.rb +364 -0
  355. data/lib/lago_ruby/models/tax_update_input.rb +221 -0
  356. data/lib/lago_ruby/models/taxes_paginated.rb +239 -0
  357. data/lib/lago_ruby/models/timezone.rb +173 -0
  358. data/lib/lago_ruby/models/wallet.rb +221 -0
  359. data/lib/lago_ruby/models/wallet_create_input.rb +214 -0
  360. data/lib/lago_ruby/models/wallet_create_input_wallet.rb +353 -0
  361. data/lib/lago_ruby/models/wallet_object.rb +525 -0
  362. data/lib/lago_ruby/models/wallet_transaction_create_input.rb +221 -0
  363. data/lib/lago_ruby/models/wallet_transaction_create_input_wallet_transaction.rb +284 -0
  364. data/lib/lago_ruby/models/wallet_transaction_object.rb +422 -0
  365. data/lib/lago_ruby/models/wallet_transactions.rb +223 -0
  366. data/lib/lago_ruby/models/wallet_transactions_paginated.rb +246 -0
  367. data/lib/lago_ruby/models/wallet_update_input.rb +221 -0
  368. data/lib/lago_ruby/models/wallet_update_input_wallet.rb +227 -0
  369. data/lib/lago_ruby/models/wallets_paginated.rb +239 -0
  370. data/lib/lago_ruby/version.rb +15 -0
  371. data/lib/lago_ruby.rb +217 -0
  372. data/spec/api/add_ons_api_spec.rb +109 -0
  373. data/spec/api/billable_metrics_api_spec.rb +111 -0
  374. data/spec/api/coupons_api_spec.rb +137 -0
  375. data/spec/api/credit_notes_api_spec.rb +110 -0
  376. data/spec/api/customers_api_spec.rb +122 -0
  377. data/spec/api/events_api_spec.rb +83 -0
  378. data/spec/api/fees_api_spec.rb +87 -0
  379. data/spec/api/invoices_api_spec.rb +138 -0
  380. data/spec/api/organizations_api_spec.rb +47 -0
  381. data/spec/api/plans_api_spec.rb +97 -0
  382. data/spec/api/subscriptions_api_spec.rb +89 -0
  383. data/spec/api/taxes_api_spec.rb +97 -0
  384. data/spec/api/wallets_api_spec.rb +126 -0
  385. data/spec/api/webhook_endpoints_api_spec.rb +97 -0
  386. data/spec/api/webhooks_api_spec.rb +46 -0
  387. data/spec/api_client_spec.rb +228 -0
  388. data/spec/configuration_spec.rb +42 -0
  389. data/spec/models/add_on_base_input_spec.rb +64 -0
  390. data/spec/models/add_on_create_input_add_on_spec.rb +64 -0
  391. data/spec/models/add_on_create_input_spec.rb +34 -0
  392. data/spec/models/add_on_object_spec.rb +76 -0
  393. data/spec/models/add_on_spec.rb +34 -0
  394. data/spec/models/add_on_update_input_spec.rb +34 -0
  395. data/spec/models/add_ons_paginated_spec.rb +40 -0
  396. data/spec/models/api_error_bad_request_spec.rb +40 -0
  397. data/spec/models/api_error_forbidden_spec.rb +46 -0
  398. data/spec/models/api_error_not_allowed_spec.rb +46 -0
  399. data/spec/models/api_error_not_found_spec.rb +46 -0
  400. data/spec/models/api_error_unauthorized_spec.rb +40 -0
  401. data/spec/models/api_error_unprocessable_entity_spec.rb +52 -0
  402. data/spec/models/applied_add_on_input_applied_add_on_spec.rb +52 -0
  403. data/spec/models/applied_add_on_input_spec.rb +34 -0
  404. data/spec/models/applied_add_on_object_spec.rb +76 -0
  405. data/spec/models/applied_add_on_spec.rb +34 -0
  406. data/spec/models/applied_coupon_input_applied_coupon_spec.rb +74 -0
  407. data/spec/models/applied_coupon_input_spec.rb +34 -0
  408. data/spec/models/applied_coupon_object_extended_spec.rb +144 -0
  409. data/spec/models/applied_coupon_object_spec.rb +138 -0
  410. data/spec/models/applied_coupon_spec.rb +34 -0
  411. data/spec/models/applied_coupons_paginated_spec.rb +40 -0
  412. data/spec/models/base_applied_tax_spec.rb +82 -0
  413. data/spec/models/billable_metric_base_input_spec.rb +74 -0
  414. data/spec/models/billable_metric_create_input_billable_metric_spec.rb +74 -0
  415. data/spec/models/billable_metric_create_input_spec.rb +34 -0
  416. data/spec/models/billable_metric_group_spec.rb +40 -0
  417. data/spec/models/billable_metric_group_values_inner_one_of_spec.rb +40 -0
  418. data/spec/models/billable_metric_group_values_inner_spec.rb +31 -0
  419. data/spec/models/billable_metric_object_spec.rb +104 -0
  420. data/spec/models/billable_metric_spec.rb +34 -0
  421. data/spec/models/billable_metric_update_input_spec.rb +34 -0
  422. data/spec/models/billable_metrics_paginated_spec.rb +40 -0
  423. data/spec/models/charge_object_properties_spec.rb +100 -0
  424. data/spec/models/charge_object_spec.rb +104 -0
  425. data/spec/models/charge_properties_graduated_percentage_ranges_inner_spec.rb +52 -0
  426. data/spec/models/charge_properties_graduated_ranges_inner_spec.rb +59 -0
  427. data/spec/models/charge_properties_spec.rb +100 -0
  428. data/spec/models/charge_properties_volume_ranges_inner_spec.rb +59 -0
  429. data/spec/models/country_spec.rb +28 -0
  430. data/spec/models/coupon_base_input_applies_to_spec.rb +40 -0
  431. data/spec/models/coupon_base_input_spec.rb +118 -0
  432. data/spec/models/coupon_create_input_coupon_spec.rb +118 -0
  433. data/spec/models/coupon_create_input_spec.rb +34 -0
  434. data/spec/models/coupon_object_spec.rb +148 -0
  435. data/spec/models/coupon_spec.rb +34 -0
  436. data/spec/models/coupon_update_input_spec.rb +34 -0
  437. data/spec/models/coupons_paginated_spec.rb +40 -0
  438. data/spec/models/create_webhook_endpoint200_response_spec.rb +34 -0
  439. data/spec/models/create_webhook_endpoint200_response_webhook_endpoint_spec.rb +62 -0
  440. data/spec/models/create_webhook_endpoint_request_spec.rb +34 -0
  441. data/spec/models/create_webhook_endpoint_request_webhook_endpoint_spec.rb +44 -0
  442. data/spec/models/credit_note_applied_tax_object_spec.rb +94 -0
  443. data/spec/models/credit_note_create_input_credit_note_items_inner_spec.rb +40 -0
  444. data/spec/models/credit_note_create_input_credit_note_spec.rb +68 -0
  445. data/spec/models/credit_note_create_input_spec.rb +34 -0
  446. data/spec/models/credit_note_item_object_fee_spec.rb +206 -0
  447. data/spec/models/credit_note_item_object_spec.rb +52 -0
  448. data/spec/models/credit_note_object_spec.rb +184 -0
  449. data/spec/models/credit_note_spec.rb +34 -0
  450. data/spec/models/credit_note_update_input_credit_note_spec.rb +38 -0
  451. data/spec/models/credit_note_update_input_spec.rb +34 -0
  452. data/spec/models/credit_notes_spec.rb +34 -0
  453. data/spec/models/credit_object_invoice_spec.rb +44 -0
  454. data/spec/models/credit_object_item_spec.rb +56 -0
  455. data/spec/models/credit_object_spec.rb +64 -0
  456. data/spec/models/currency_spec.rb +28 -0
  457. data/spec/models/customer_billing_configuration_spec.rb +74 -0
  458. data/spec/models/customer_charge_usage_object_billable_metric_spec.rb +56 -0
  459. data/spec/models/customer_charge_usage_object_charge_spec.rb +44 -0
  460. data/spec/models/customer_charge_usage_object_groups_inner_spec.rb +58 -0
  461. data/spec/models/customer_charge_usage_object_spec.rb +89 -0
  462. data/spec/models/customer_create_input_customer_metadata_inner_spec.rb +52 -0
  463. data/spec/models/customer_create_input_customer_spec.rb +154 -0
  464. data/spec/models/customer_create_input_spec.rb +34 -0
  465. data/spec/models/customer_metadata_spec.rb +58 -0
  466. data/spec/models/customer_object_extended_spec.rb +190 -0
  467. data/spec/models/customer_object_spec.rb +184 -0
  468. data/spec/models/customer_spec.rb +34 -0
  469. data/spec/models/customer_usage_object_spec.rb +76 -0
  470. data/spec/models/customer_usage_spec.rb +34 -0
  471. data/spec/models/customers_paginated_spec.rb +40 -0
  472. data/spec/models/event_batch_input_event_properties_spec.rb +38 -0
  473. data/spec/models/event_batch_input_event_spec.rb +64 -0
  474. data/spec/models/event_batch_input_spec.rb +34 -0
  475. data/spec/models/event_estimate_fees_input_event_spec.rb +52 -0
  476. data/spec/models/event_estimate_fees_input_spec.rb +34 -0
  477. data/spec/models/event_input_event_spec.rb +64 -0
  478. data/spec/models/event_input_spec.rb +34 -0
  479. data/spec/models/event_object_spec.rb +88 -0
  480. data/spec/models/event_spec.rb +34 -0
  481. data/spec/models/fee_applied_tax_object_spec.rb +88 -0
  482. data/spec/models/fee_object_item_spec.rb +66 -0
  483. data/spec/models/fee_object_spec.rb +206 -0
  484. data/spec/models/fee_spec.rb +34 -0
  485. data/spec/models/fee_update_input_fee_spec.rb +38 -0
  486. data/spec/models/fee_update_input_spec.rb +34 -0
  487. data/spec/models/fees_paginated_spec.rb +40 -0
  488. data/spec/models/fees_spec.rb +34 -0
  489. data/spec/models/find_all_webhook_endpoints200_response_spec.rb +40 -0
  490. data/spec/models/get_customer_portal_url200_response_customer_spec.rb +34 -0
  491. data/spec/models/get_customer_portal_url200_response_spec.rb +34 -0
  492. data/spec/models/group_object_spec.rb +46 -0
  493. data/spec/models/group_properties_object_spec.rb +40 -0
  494. data/spec/models/group_properties_object_values_spec.rb +100 -0
  495. data/spec/models/groups_paginated_spec.rb +40 -0
  496. data/spec/models/invoice_applied_tax_object_spec.rb +94 -0
  497. data/spec/models/invoice_metadata_object_spec.rb +52 -0
  498. data/spec/models/invoice_object_customer_spec.rb +184 -0
  499. data/spec/models/invoice_object_extended_spec.rb +196 -0
  500. data/spec/models/invoice_object_spec.rb +178 -0
  501. data/spec/models/invoice_one_off_create_input_invoice_fees_inner_spec.rb +58 -0
  502. data/spec/models/invoice_one_off_create_input_invoice_spec.rb +46 -0
  503. data/spec/models/invoice_one_off_create_input_spec.rb +34 -0
  504. data/spec/models/invoice_spec.rb +34 -0
  505. data/spec/models/invoice_update_input_invoice_metadata_inner_spec.rb +46 -0
  506. data/spec/models/invoice_update_input_invoice_spec.rb +44 -0
  507. data/spec/models/invoice_update_input_spec.rb +34 -0
  508. data/spec/models/invoices_paginated_spec.rb +40 -0
  509. data/spec/models/organization_billing_configuration_spec.rb +46 -0
  510. data/spec/models/organization_object_spec.rb +142 -0
  511. data/spec/models/organization_spec.rb +34 -0
  512. data/spec/models/organization_update_input_organization_spec.rb +122 -0
  513. data/spec/models/organization_update_input_spec.rb +34 -0
  514. data/spec/models/pagination_meta_spec.rb +58 -0
  515. data/spec/models/plan_create_input_plan_charges_inner_group_properties_inner_spec.rb +40 -0
  516. data/spec/models/plan_create_input_plan_charges_inner_spec.rb +86 -0
  517. data/spec/models/plan_create_input_plan_spec.rb +98 -0
  518. data/spec/models/plan_create_input_spec.rb +34 -0
  519. data/spec/models/plan_object_spec.rb +122 -0
  520. data/spec/models/plan_spec.rb +34 -0
  521. data/spec/models/plan_update_input_plan_charges_inner_spec.rb +92 -0
  522. data/spec/models/plan_update_input_plan_spec.rb +98 -0
  523. data/spec/models/plan_update_input_spec.rb +34 -0
  524. data/spec/models/plans_paginated_spec.rb +40 -0
  525. data/spec/models/subscription_create_input_spec.rb +34 -0
  526. data/spec/models/subscription_create_input_subscription_spec.rb +68 -0
  527. data/spec/models/subscription_object_spec.rb +132 -0
  528. data/spec/models/subscription_spec.rb +34 -0
  529. data/spec/models/subscription_update_input_spec.rb +34 -0
  530. data/spec/models/subscription_update_input_subscription_spec.rb +40 -0
  531. data/spec/models/subscriptions_paginated_spec.rb +40 -0
  532. data/spec/models/tax_base_input_spec.rb +58 -0
  533. data/spec/models/tax_create_input_spec.rb +34 -0
  534. data/spec/models/tax_create_input_tax_spec.rb +66 -0
  535. data/spec/models/tax_object_spec.rb +94 -0
  536. data/spec/models/tax_spec.rb +34 -0
  537. data/spec/models/tax_update_input_spec.rb +34 -0
  538. data/spec/models/taxes_paginated_spec.rb +40 -0
  539. data/spec/models/timezone_spec.rb +28 -0
  540. data/spec/models/wallet_create_input_spec.rb +34 -0
  541. data/spec/models/wallet_create_input_wallet_spec.rb +80 -0
  542. data/spec/models/wallet_object_spec.rb +140 -0
  543. data/spec/models/wallet_spec.rb +34 -0
  544. data/spec/models/wallet_transaction_create_input_spec.rb +34 -0
  545. data/spec/models/wallet_transaction_create_input_wallet_transaction_spec.rb +46 -0
  546. data/spec/models/wallet_transaction_object_spec.rb +95 -0
  547. data/spec/models/wallet_transactions_paginated_spec.rb +40 -0
  548. data/spec/models/wallet_transactions_spec.rb +34 -0
  549. data/spec/models/wallet_update_input_spec.rb +34 -0
  550. data/spec/models/wallet_update_input_wallet_spec.rb +40 -0
  551. data/spec/models/wallets_paginated_spec.rb +40 -0
  552. data/spec/spec_helper.rb +111 -0
  553. metadata +818 -0
@@ -0,0 +1,611 @@
1
+ =begin
2
+ #Lago API documentation
3
+
4
+ #Lago API allows your application to push customer information and metrics (events) from your application to the billing application.
5
+
6
+ The version of the OpenAPI document: 0.46.0-beta
7
+ Contact: tech@getlago.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.0.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module LagoAPI
17
+ class InvoiceObject
18
+ # Unique identifier assigned to the fee within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the fee’s record within the Lago system.
19
+ attr_accessor :lago_id
20
+
21
+ # This ID helps in uniquely identifying and organizing the invoices associated with a specific customer. It provides a sequential numbering system specific to the customer, allowing for easy tracking and management of invoices within the customer's context.
22
+ attr_accessor :sequential_id
23
+
24
+ # The unique number assigned to the invoice. This number serves as a distinct identifier for the invoice and helps in differentiating it from other invoices in the system.
25
+ attr_accessor :number
26
+
27
+ # The date when the invoice was issued. It is provided in the ISO 8601 date format.
28
+ attr_accessor :issuing_date
29
+
30
+ # The payment due date for the invoice, specified in the ISO 8601 date format.
31
+ attr_accessor :payment_due_date
32
+
33
+ # The net payment term, expressed in days, specifies the duration within which a customer is expected to remit payment after the invoice is finalized.
34
+ attr_accessor :net_payment_term
35
+
36
+ # The type of invoice issued. Possible values are `subscription`, `one-off` or `credit`.
37
+ attr_accessor :invoice_type
38
+
39
+ # The status of the invoice. It indicates the current state of the invoice and can have two possible values: - `draft`: the invoice is in the draft state, waiting for the end of the grace period to be finalized. During this period, events can still be ingested and added to the invoice. - `finalized`: the invoice has been issued and finalized. In this state, events cannot be ingested or added to the invoice anymore.
40
+ attr_accessor :status
41
+
42
+ # The status of the payment associated with the invoice. It can have one of the following values: - `pending`: the payment is pending, waiting for payment processing in Stripe or when the invoice is emitted but users have not updated the payment status through the endpoint. - `succeeded`: the payment of the invoice has been successfully processed. - `failed`: the payment of the invoice has failed or encountered an error during processing.
43
+ attr_accessor :payment_status
44
+
45
+ attr_accessor :currency
46
+
47
+ # The total sum of fees amount in cents. It calculates the cumulative amount of all the fees associated with the invoice, providing a consolidated value.
48
+ attr_accessor :fees_amount_cents
49
+
50
+ # The total sum of all coupons discounted on the invoice. It calculates the cumulative discount amount applied by coupons, expressed in cents.
51
+ attr_accessor :coupons_amount_cents
52
+
53
+ # The total sum of all credit notes discounted on the invoice. It calculates the cumulative discount amount applied by credit notes, expressed in cents.
54
+ attr_accessor :credit_notes_amount_cents
55
+
56
+ # Subtotal amount, excluding taxes, expressed in cents. This field depends on the version number. Here are the definitions based on the version: - Version 1: is equal to the sum of `fees_amount_cents`, minus `coupons_amount_cents`, and minus `prepaid_credit_amount_cents`. - Version 2: is equal to the `fees_amount_cents`. - Version 3: is equal to the `fees_amount_cents`, minus `coupons_amount_cents`
57
+ attr_accessor :sub_total_excluding_taxes_amount_cents
58
+
59
+ # The sum of tax amount associated with the invoice, expressed in cents.
60
+ attr_accessor :taxes_amount_cents
61
+
62
+ # Subtotal amount, including taxes, expressed in cents. This field depends on the version number. Here are the definitions based on the version: - Version 1: is equal to the `total_amount_cents`. - Version 2: is equal to the sum of `fees_amount_cents` and `taxes_amount_cents`. - Version 3: is equal to the sum `sub_total_excluding_taxes_amount_cents` and `taxes_amount_cents`
63
+ attr_accessor :sub_total_including_taxes_amount_cents
64
+
65
+ # The total sum of all prepaid credits discounted on the invoice. It calculates the cumulative discount amount applied by prepaid credits, expressed in cents.
66
+ attr_accessor :prepaid_credit_amount_cents
67
+
68
+ # The sum of the amount and taxes amount on the invoice, expressed in cents. It calculates the total financial value of the invoice, including both the original amount and any applicable taxes.
69
+ attr_accessor :total_amount_cents
70
+
71
+ attr_accessor :version_number
72
+
73
+ # Contains the URL that provides direct access to the invoice PDF file. You can use this URL to download or view the PDF document of the invoice
74
+ attr_accessor :file_url
75
+
76
+ attr_accessor :customer
77
+
78
+ attr_accessor :metadata
79
+
80
+ attr_accessor :applied_taxes
81
+
82
+ class EnumAttributeValidator
83
+ attr_reader :datatype
84
+ attr_reader :allowable_values
85
+
86
+ def initialize(datatype, allowable_values)
87
+ @allowable_values = allowable_values.map do |value|
88
+ case datatype.to_s
89
+ when /Integer/i
90
+ value.to_i
91
+ when /Float/i
92
+ value.to_f
93
+ else
94
+ value
95
+ end
96
+ end
97
+ end
98
+
99
+ def valid?(value)
100
+ !value || allowable_values.include?(value)
101
+ end
102
+ end
103
+
104
+ # Attribute mapping from ruby-style variable name to JSON key.
105
+ def self.attribute_map
106
+ {
107
+ :'lago_id' => :'lago_id',
108
+ :'sequential_id' => :'sequential_id',
109
+ :'number' => :'number',
110
+ :'issuing_date' => :'issuing_date',
111
+ :'payment_due_date' => :'payment_due_date',
112
+ :'net_payment_term' => :'net_payment_term',
113
+ :'invoice_type' => :'invoice_type',
114
+ :'status' => :'status',
115
+ :'payment_status' => :'payment_status',
116
+ :'currency' => :'currency',
117
+ :'fees_amount_cents' => :'fees_amount_cents',
118
+ :'coupons_amount_cents' => :'coupons_amount_cents',
119
+ :'credit_notes_amount_cents' => :'credit_notes_amount_cents',
120
+ :'sub_total_excluding_taxes_amount_cents' => :'sub_total_excluding_taxes_amount_cents',
121
+ :'taxes_amount_cents' => :'taxes_amount_cents',
122
+ :'sub_total_including_taxes_amount_cents' => :'sub_total_including_taxes_amount_cents',
123
+ :'prepaid_credit_amount_cents' => :'prepaid_credit_amount_cents',
124
+ :'total_amount_cents' => :'total_amount_cents',
125
+ :'version_number' => :'version_number',
126
+ :'file_url' => :'file_url',
127
+ :'customer' => :'customer',
128
+ :'metadata' => :'metadata',
129
+ :'applied_taxes' => :'applied_taxes'
130
+ }
131
+ end
132
+
133
+ # Returns all the JSON keys this model knows about
134
+ def self.acceptable_attributes
135
+ attribute_map.values
136
+ end
137
+
138
+ # Attribute type mapping.
139
+ def self.openapi_types
140
+ {
141
+ :'lago_id' => :'String',
142
+ :'sequential_id' => :'Integer',
143
+ :'number' => :'String',
144
+ :'issuing_date' => :'Date',
145
+ :'payment_due_date' => :'Date',
146
+ :'net_payment_term' => :'Integer',
147
+ :'invoice_type' => :'String',
148
+ :'status' => :'String',
149
+ :'payment_status' => :'String',
150
+ :'currency' => :'Currency',
151
+ :'fees_amount_cents' => :'Integer',
152
+ :'coupons_amount_cents' => :'Integer',
153
+ :'credit_notes_amount_cents' => :'Integer',
154
+ :'sub_total_excluding_taxes_amount_cents' => :'Integer',
155
+ :'taxes_amount_cents' => :'Integer',
156
+ :'sub_total_including_taxes_amount_cents' => :'Integer',
157
+ :'prepaid_credit_amount_cents' => :'Integer',
158
+ :'total_amount_cents' => :'Integer',
159
+ :'version_number' => :'Integer',
160
+ :'file_url' => :'String',
161
+ :'customer' => :'InvoiceObjectCustomer',
162
+ :'metadata' => :'Array<InvoiceMetadataObject>',
163
+ :'applied_taxes' => :'Array<InvoiceAppliedTaxObject>'
164
+ }
165
+ end
166
+
167
+ # List of attributes with nullable: true
168
+ def self.openapi_nullable
169
+ Set.new([
170
+ ])
171
+ end
172
+
173
+ # Initializes the object
174
+ # @param [Hash] attributes Model attributes in the form of hash
175
+ def initialize(attributes = {})
176
+ if (!attributes.is_a?(Hash))
177
+ fail ArgumentError, "The input argument (attributes) must be a hash in `LagoAPI::InvoiceObject` initialize method"
178
+ end
179
+
180
+ # check to see if the attribute exists and convert string to symbol for hash key
181
+ attributes = attributes.each_with_object({}) { |(k, v), h|
182
+ if (!self.class.attribute_map.key?(k.to_sym))
183
+ fail ArgumentError, "`#{k}` is not a valid attribute in `LagoAPI::InvoiceObject`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
184
+ end
185
+ h[k.to_sym] = v
186
+ }
187
+
188
+ if attributes.key?(:'lago_id')
189
+ self.lago_id = attributes[:'lago_id']
190
+ else
191
+ self.lago_id = nil
192
+ end
193
+
194
+ if attributes.key?(:'sequential_id')
195
+ self.sequential_id = attributes[:'sequential_id']
196
+ else
197
+ self.sequential_id = nil
198
+ end
199
+
200
+ if attributes.key?(:'number')
201
+ self.number = attributes[:'number']
202
+ else
203
+ self.number = nil
204
+ end
205
+
206
+ if attributes.key?(:'issuing_date')
207
+ self.issuing_date = attributes[:'issuing_date']
208
+ else
209
+ self.issuing_date = nil
210
+ end
211
+
212
+ if attributes.key?(:'payment_due_date')
213
+ self.payment_due_date = attributes[:'payment_due_date']
214
+ end
215
+
216
+ if attributes.key?(:'net_payment_term')
217
+ self.net_payment_term = attributes[:'net_payment_term']
218
+ end
219
+
220
+ if attributes.key?(:'invoice_type')
221
+ self.invoice_type = attributes[:'invoice_type']
222
+ else
223
+ self.invoice_type = nil
224
+ end
225
+
226
+ if attributes.key?(:'status')
227
+ self.status = attributes[:'status']
228
+ else
229
+ self.status = nil
230
+ end
231
+
232
+ if attributes.key?(:'payment_status')
233
+ self.payment_status = attributes[:'payment_status']
234
+ else
235
+ self.payment_status = nil
236
+ end
237
+
238
+ if attributes.key?(:'currency')
239
+ self.currency = attributes[:'currency']
240
+ else
241
+ self.currency = nil
242
+ end
243
+
244
+ if attributes.key?(:'fees_amount_cents')
245
+ self.fees_amount_cents = attributes[:'fees_amount_cents']
246
+ else
247
+ self.fees_amount_cents = nil
248
+ end
249
+
250
+ if attributes.key?(:'coupons_amount_cents')
251
+ self.coupons_amount_cents = attributes[:'coupons_amount_cents']
252
+ else
253
+ self.coupons_amount_cents = nil
254
+ end
255
+
256
+ if attributes.key?(:'credit_notes_amount_cents')
257
+ self.credit_notes_amount_cents = attributes[:'credit_notes_amount_cents']
258
+ else
259
+ self.credit_notes_amount_cents = nil
260
+ end
261
+
262
+ if attributes.key?(:'sub_total_excluding_taxes_amount_cents')
263
+ self.sub_total_excluding_taxes_amount_cents = attributes[:'sub_total_excluding_taxes_amount_cents']
264
+ else
265
+ self.sub_total_excluding_taxes_amount_cents = nil
266
+ end
267
+
268
+ if attributes.key?(:'taxes_amount_cents')
269
+ self.taxes_amount_cents = attributes[:'taxes_amount_cents']
270
+ else
271
+ self.taxes_amount_cents = nil
272
+ end
273
+
274
+ if attributes.key?(:'sub_total_including_taxes_amount_cents')
275
+ self.sub_total_including_taxes_amount_cents = attributes[:'sub_total_including_taxes_amount_cents']
276
+ else
277
+ self.sub_total_including_taxes_amount_cents = nil
278
+ end
279
+
280
+ if attributes.key?(:'prepaid_credit_amount_cents')
281
+ self.prepaid_credit_amount_cents = attributes[:'prepaid_credit_amount_cents']
282
+ else
283
+ self.prepaid_credit_amount_cents = nil
284
+ end
285
+
286
+ if attributes.key?(:'total_amount_cents')
287
+ self.total_amount_cents = attributes[:'total_amount_cents']
288
+ else
289
+ self.total_amount_cents = nil
290
+ end
291
+
292
+ if attributes.key?(:'version_number')
293
+ self.version_number = attributes[:'version_number']
294
+ else
295
+ self.version_number = nil
296
+ end
297
+
298
+ if attributes.key?(:'file_url')
299
+ self.file_url = attributes[:'file_url']
300
+ end
301
+
302
+ if attributes.key?(:'customer')
303
+ self.customer = attributes[:'customer']
304
+ end
305
+
306
+ if attributes.key?(:'metadata')
307
+ if (value = attributes[:'metadata']).is_a?(Array)
308
+ self.metadata = value
309
+ end
310
+ end
311
+
312
+ if attributes.key?(:'applied_taxes')
313
+ if (value = attributes[:'applied_taxes']).is_a?(Array)
314
+ self.applied_taxes = value
315
+ end
316
+ end
317
+ end
318
+
319
+ # Show invalid properties with the reasons. Usually used together with valid?
320
+ # @return Array for valid properties with the reasons
321
+ def list_invalid_properties
322
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
323
+ invalid_properties = Array.new
324
+ if @lago_id.nil?
325
+ invalid_properties.push('invalid value for "lago_id", lago_id cannot be nil.')
326
+ end
327
+
328
+ if @sequential_id.nil?
329
+ invalid_properties.push('invalid value for "sequential_id", sequential_id cannot be nil.')
330
+ end
331
+
332
+ if @number.nil?
333
+ invalid_properties.push('invalid value for "number", number cannot be nil.')
334
+ end
335
+
336
+ if @issuing_date.nil?
337
+ invalid_properties.push('invalid value for "issuing_date", issuing_date cannot be nil.')
338
+ end
339
+
340
+ if @invoice_type.nil?
341
+ invalid_properties.push('invalid value for "invoice_type", invoice_type cannot be nil.')
342
+ end
343
+
344
+ if @status.nil?
345
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
346
+ end
347
+
348
+ if @payment_status.nil?
349
+ invalid_properties.push('invalid value for "payment_status", payment_status cannot be nil.')
350
+ end
351
+
352
+ if @currency.nil?
353
+ invalid_properties.push('invalid value for "currency", currency cannot be nil.')
354
+ end
355
+
356
+ if @fees_amount_cents.nil?
357
+ invalid_properties.push('invalid value for "fees_amount_cents", fees_amount_cents cannot be nil.')
358
+ end
359
+
360
+ if @coupons_amount_cents.nil?
361
+ invalid_properties.push('invalid value for "coupons_amount_cents", coupons_amount_cents cannot be nil.')
362
+ end
363
+
364
+ if @credit_notes_amount_cents.nil?
365
+ invalid_properties.push('invalid value for "credit_notes_amount_cents", credit_notes_amount_cents cannot be nil.')
366
+ end
367
+
368
+ if @sub_total_excluding_taxes_amount_cents.nil?
369
+ invalid_properties.push('invalid value for "sub_total_excluding_taxes_amount_cents", sub_total_excluding_taxes_amount_cents cannot be nil.')
370
+ end
371
+
372
+ if @taxes_amount_cents.nil?
373
+ invalid_properties.push('invalid value for "taxes_amount_cents", taxes_amount_cents cannot be nil.')
374
+ end
375
+
376
+ if @sub_total_including_taxes_amount_cents.nil?
377
+ invalid_properties.push('invalid value for "sub_total_including_taxes_amount_cents", sub_total_including_taxes_amount_cents cannot be nil.')
378
+ end
379
+
380
+ if @prepaid_credit_amount_cents.nil?
381
+ invalid_properties.push('invalid value for "prepaid_credit_amount_cents", prepaid_credit_amount_cents cannot be nil.')
382
+ end
383
+
384
+ if @total_amount_cents.nil?
385
+ invalid_properties.push('invalid value for "total_amount_cents", total_amount_cents cannot be nil.')
386
+ end
387
+
388
+ if @version_number.nil?
389
+ invalid_properties.push('invalid value for "version_number", version_number cannot be nil.')
390
+ end
391
+
392
+ invalid_properties
393
+ end
394
+
395
+ # Check to see if the all the properties in the model are valid
396
+ # @return true if the model is valid
397
+ def valid?
398
+ warn '[DEPRECATED] the `valid?` method is obsolete'
399
+ return false if @lago_id.nil?
400
+ return false if @sequential_id.nil?
401
+ return false if @number.nil?
402
+ return false if @issuing_date.nil?
403
+ return false if @invoice_type.nil?
404
+ invoice_type_validator = EnumAttributeValidator.new('String', ["subscription", "add_on", "credit", "one_off"])
405
+ return false unless invoice_type_validator.valid?(@invoice_type)
406
+ return false if @status.nil?
407
+ status_validator = EnumAttributeValidator.new('String', ["draft", "finalized"])
408
+ return false unless status_validator.valid?(@status)
409
+ return false if @payment_status.nil?
410
+ payment_status_validator = EnumAttributeValidator.new('String', ["pending", "succeeded", "failed"])
411
+ return false unless payment_status_validator.valid?(@payment_status)
412
+ return false if @currency.nil?
413
+ return false if @fees_amount_cents.nil?
414
+ return false if @coupons_amount_cents.nil?
415
+ return false if @credit_notes_amount_cents.nil?
416
+ return false if @sub_total_excluding_taxes_amount_cents.nil?
417
+ return false if @taxes_amount_cents.nil?
418
+ return false if @sub_total_including_taxes_amount_cents.nil?
419
+ return false if @prepaid_credit_amount_cents.nil?
420
+ return false if @total_amount_cents.nil?
421
+ return false if @version_number.nil?
422
+ true
423
+ end
424
+
425
+ # Custom attribute writer method checking allowed values (enum).
426
+ # @param [Object] invoice_type Object to be assigned
427
+ def invoice_type=(invoice_type)
428
+ validator = EnumAttributeValidator.new('String', ["subscription", "add_on", "credit", "one_off"])
429
+ unless validator.valid?(invoice_type)
430
+ fail ArgumentError, "invalid value for \"invoice_type\", must be one of #{validator.allowable_values}."
431
+ end
432
+ @invoice_type = invoice_type
433
+ end
434
+
435
+ # Custom attribute writer method checking allowed values (enum).
436
+ # @param [Object] status Object to be assigned
437
+ def status=(status)
438
+ validator = EnumAttributeValidator.new('String', ["draft", "finalized"])
439
+ unless validator.valid?(status)
440
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
441
+ end
442
+ @status = status
443
+ end
444
+
445
+ # Custom attribute writer method checking allowed values (enum).
446
+ # @param [Object] payment_status Object to be assigned
447
+ def payment_status=(payment_status)
448
+ validator = EnumAttributeValidator.new('String', ["pending", "succeeded", "failed"])
449
+ unless validator.valid?(payment_status)
450
+ fail ArgumentError, "invalid value for \"payment_status\", must be one of #{validator.allowable_values}."
451
+ end
452
+ @payment_status = payment_status
453
+ end
454
+
455
+ # Checks equality by comparing each attribute.
456
+ # @param [Object] Object to be compared
457
+ def ==(o)
458
+ return true if self.equal?(o)
459
+ self.class == o.class &&
460
+ lago_id == o.lago_id &&
461
+ sequential_id == o.sequential_id &&
462
+ number == o.number &&
463
+ issuing_date == o.issuing_date &&
464
+ payment_due_date == o.payment_due_date &&
465
+ net_payment_term == o.net_payment_term &&
466
+ invoice_type == o.invoice_type &&
467
+ status == o.status &&
468
+ payment_status == o.payment_status &&
469
+ currency == o.currency &&
470
+ fees_amount_cents == o.fees_amount_cents &&
471
+ coupons_amount_cents == o.coupons_amount_cents &&
472
+ credit_notes_amount_cents == o.credit_notes_amount_cents &&
473
+ sub_total_excluding_taxes_amount_cents == o.sub_total_excluding_taxes_amount_cents &&
474
+ taxes_amount_cents == o.taxes_amount_cents &&
475
+ sub_total_including_taxes_amount_cents == o.sub_total_including_taxes_amount_cents &&
476
+ prepaid_credit_amount_cents == o.prepaid_credit_amount_cents &&
477
+ total_amount_cents == o.total_amount_cents &&
478
+ version_number == o.version_number &&
479
+ file_url == o.file_url &&
480
+ customer == o.customer &&
481
+ metadata == o.metadata &&
482
+ applied_taxes == o.applied_taxes
483
+ end
484
+
485
+ # @see the `==` method
486
+ # @param [Object] Object to be compared
487
+ def eql?(o)
488
+ self == o
489
+ end
490
+
491
+ # Calculates hash code according to all attributes.
492
+ # @return [Integer] Hash code
493
+ def hash
494
+ [lago_id, sequential_id, number, issuing_date, payment_due_date, net_payment_term, invoice_type, status, payment_status, currency, fees_amount_cents, coupons_amount_cents, credit_notes_amount_cents, sub_total_excluding_taxes_amount_cents, taxes_amount_cents, sub_total_including_taxes_amount_cents, prepaid_credit_amount_cents, total_amount_cents, version_number, file_url, customer, metadata, applied_taxes].hash
495
+ end
496
+
497
+ # Builds the object from hash
498
+ # @param [Hash] attributes Model attributes in the form of hash
499
+ # @return [Object] Returns the model itself
500
+ def self.build_from_hash(attributes)
501
+ return nil unless attributes.is_a?(Hash)
502
+ attributes = attributes.transform_keys(&:to_sym)
503
+ transformed_hash = {}
504
+ openapi_types.each_pair do |key, type|
505
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
506
+ transformed_hash["#{key}"] = nil
507
+ elsif type =~ /\AArray<(.*)>/i
508
+ # check to ensure the input is an array given that the attribute
509
+ # is documented as an array but the input is not
510
+ if attributes[attribute_map[key]].is_a?(Array)
511
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
512
+ end
513
+ elsif !attributes[attribute_map[key]].nil?
514
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
515
+ end
516
+ end
517
+ new(transformed_hash)
518
+ end
519
+
520
+ # Deserializes the data based on type
521
+ # @param string type Data type
522
+ # @param string value Value to be deserialized
523
+ # @return [Object] Deserialized data
524
+ def self._deserialize(type, value)
525
+ case type.to_sym
526
+ when :Time
527
+ Time.parse(value)
528
+ when :Date
529
+ Date.parse(value)
530
+ when :String
531
+ value.to_s
532
+ when :Integer
533
+ value.to_i
534
+ when :Float
535
+ value.to_f
536
+ when :Boolean
537
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
538
+ true
539
+ else
540
+ false
541
+ end
542
+ when :Object
543
+ # generic object (usually a Hash), return directly
544
+ value
545
+ when /\AArray<(?<inner_type>.+)>\z/
546
+ inner_type = Regexp.last_match[:inner_type]
547
+ value.map { |v| _deserialize(inner_type, v) }
548
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
549
+ k_type = Regexp.last_match[:k_type]
550
+ v_type = Regexp.last_match[:v_type]
551
+ {}.tap do |hash|
552
+ value.each do |k, v|
553
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
554
+ end
555
+ end
556
+ else # model
557
+ # models (e.g. Pet) or oneOf
558
+ klass = LagoAPI.const_get(type)
559
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
560
+ end
561
+ end
562
+
563
+ # Returns the string representation of the object
564
+ # @return [String] String presentation of the object
565
+ def to_s
566
+ to_hash.to_s
567
+ end
568
+
569
+ # to_body is an alias to to_hash (backward compatibility)
570
+ # @return [Hash] Returns the object in the form of hash
571
+ def to_body
572
+ to_hash
573
+ end
574
+
575
+ # Returns the object in the form of hash
576
+ # @return [Hash] Returns the object in the form of hash
577
+ def to_hash
578
+ hash = {}
579
+ self.class.attribute_map.each_pair do |attr, param|
580
+ value = self.send(attr)
581
+ if value.nil?
582
+ is_nullable = self.class.openapi_nullable.include?(attr)
583
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
584
+ end
585
+
586
+ hash[param] = _to_hash(value)
587
+ end
588
+ hash
589
+ end
590
+
591
+ # Outputs non-array value in the form of hash
592
+ # For object, use to_hash. Otherwise, just return the value
593
+ # @param [Object] value Any valid value
594
+ # @return [Hash] Returns the value in the form of hash
595
+ def _to_hash(value)
596
+ if value.is_a?(Array)
597
+ value.compact.map { |v| _to_hash(v) }
598
+ elsif value.is_a?(Hash)
599
+ {}.tap do |hash|
600
+ value.each { |k, v| hash[k] = _to_hash(v) }
601
+ end
602
+ elsif value.respond_to? :to_hash
603
+ value.to_hash
604
+ else
605
+ value
606
+ end
607
+ end
608
+
609
+ end
610
+
611
+ end