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,651 @@
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 InvoiceObjectExtended
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
+ attr_accessor :credits
83
+
84
+ attr_accessor :fees
85
+
86
+ attr_accessor :subscriptions
87
+
88
+ class EnumAttributeValidator
89
+ attr_reader :datatype
90
+ attr_reader :allowable_values
91
+
92
+ def initialize(datatype, allowable_values)
93
+ @allowable_values = allowable_values.map do |value|
94
+ case datatype.to_s
95
+ when /Integer/i
96
+ value.to_i
97
+ when /Float/i
98
+ value.to_f
99
+ else
100
+ value
101
+ end
102
+ end
103
+ end
104
+
105
+ def valid?(value)
106
+ !value || allowable_values.include?(value)
107
+ end
108
+ end
109
+
110
+ # Attribute mapping from ruby-style variable name to JSON key.
111
+ def self.attribute_map
112
+ {
113
+ :'lago_id' => :'lago_id',
114
+ :'sequential_id' => :'sequential_id',
115
+ :'number' => :'number',
116
+ :'issuing_date' => :'issuing_date',
117
+ :'payment_due_date' => :'payment_due_date',
118
+ :'net_payment_term' => :'net_payment_term',
119
+ :'invoice_type' => :'invoice_type',
120
+ :'status' => :'status',
121
+ :'payment_status' => :'payment_status',
122
+ :'currency' => :'currency',
123
+ :'fees_amount_cents' => :'fees_amount_cents',
124
+ :'coupons_amount_cents' => :'coupons_amount_cents',
125
+ :'credit_notes_amount_cents' => :'credit_notes_amount_cents',
126
+ :'sub_total_excluding_taxes_amount_cents' => :'sub_total_excluding_taxes_amount_cents',
127
+ :'taxes_amount_cents' => :'taxes_amount_cents',
128
+ :'sub_total_including_taxes_amount_cents' => :'sub_total_including_taxes_amount_cents',
129
+ :'prepaid_credit_amount_cents' => :'prepaid_credit_amount_cents',
130
+ :'total_amount_cents' => :'total_amount_cents',
131
+ :'version_number' => :'version_number',
132
+ :'file_url' => :'file_url',
133
+ :'customer' => :'customer',
134
+ :'metadata' => :'metadata',
135
+ :'applied_taxes' => :'applied_taxes',
136
+ :'credits' => :'credits',
137
+ :'fees' => :'fees',
138
+ :'subscriptions' => :'subscriptions'
139
+ }
140
+ end
141
+
142
+ # Returns all the JSON keys this model knows about
143
+ def self.acceptable_attributes
144
+ attribute_map.values
145
+ end
146
+
147
+ # Attribute type mapping.
148
+ def self.openapi_types
149
+ {
150
+ :'lago_id' => :'String',
151
+ :'sequential_id' => :'Integer',
152
+ :'number' => :'String',
153
+ :'issuing_date' => :'Date',
154
+ :'payment_due_date' => :'Date',
155
+ :'net_payment_term' => :'Integer',
156
+ :'invoice_type' => :'String',
157
+ :'status' => :'String',
158
+ :'payment_status' => :'String',
159
+ :'currency' => :'Currency',
160
+ :'fees_amount_cents' => :'Integer',
161
+ :'coupons_amount_cents' => :'Integer',
162
+ :'credit_notes_amount_cents' => :'Integer',
163
+ :'sub_total_excluding_taxes_amount_cents' => :'Integer',
164
+ :'taxes_amount_cents' => :'Integer',
165
+ :'sub_total_including_taxes_amount_cents' => :'Integer',
166
+ :'prepaid_credit_amount_cents' => :'Integer',
167
+ :'total_amount_cents' => :'Integer',
168
+ :'version_number' => :'Integer',
169
+ :'file_url' => :'String',
170
+ :'customer' => :'InvoiceObjectCustomer',
171
+ :'metadata' => :'Array<InvoiceMetadataObject>',
172
+ :'applied_taxes' => :'Array<InvoiceAppliedTaxObject>',
173
+ :'credits' => :'Array<CreditObject>',
174
+ :'fees' => :'Array<FeeObject>',
175
+ :'subscriptions' => :'Array<SubscriptionObject>'
176
+ }
177
+ end
178
+
179
+ # List of attributes with nullable: true
180
+ def self.openapi_nullable
181
+ Set.new([
182
+ ])
183
+ end
184
+
185
+ # List of class defined in allOf (OpenAPI v3)
186
+ def self.openapi_all_of
187
+ [
188
+ :'InvoiceObject'
189
+ ]
190
+ end
191
+
192
+ # Initializes the object
193
+ # @param [Hash] attributes Model attributes in the form of hash
194
+ def initialize(attributes = {})
195
+ if (!attributes.is_a?(Hash))
196
+ fail ArgumentError, "The input argument (attributes) must be a hash in `LagoAPI::InvoiceObjectExtended` initialize method"
197
+ end
198
+
199
+ # check to see if the attribute exists and convert string to symbol for hash key
200
+ attributes = attributes.each_with_object({}) { |(k, v), h|
201
+ if (!self.class.attribute_map.key?(k.to_sym))
202
+ fail ArgumentError, "`#{k}` is not a valid attribute in `LagoAPI::InvoiceObjectExtended`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
203
+ end
204
+ h[k.to_sym] = v
205
+ }
206
+
207
+ if attributes.key?(:'lago_id')
208
+ self.lago_id = attributes[:'lago_id']
209
+ else
210
+ self.lago_id = nil
211
+ end
212
+
213
+ if attributes.key?(:'sequential_id')
214
+ self.sequential_id = attributes[:'sequential_id']
215
+ else
216
+ self.sequential_id = nil
217
+ end
218
+
219
+ if attributes.key?(:'number')
220
+ self.number = attributes[:'number']
221
+ else
222
+ self.number = nil
223
+ end
224
+
225
+ if attributes.key?(:'issuing_date')
226
+ self.issuing_date = attributes[:'issuing_date']
227
+ else
228
+ self.issuing_date = nil
229
+ end
230
+
231
+ if attributes.key?(:'payment_due_date')
232
+ self.payment_due_date = attributes[:'payment_due_date']
233
+ end
234
+
235
+ if attributes.key?(:'net_payment_term')
236
+ self.net_payment_term = attributes[:'net_payment_term']
237
+ end
238
+
239
+ if attributes.key?(:'invoice_type')
240
+ self.invoice_type = attributes[:'invoice_type']
241
+ else
242
+ self.invoice_type = nil
243
+ end
244
+
245
+ if attributes.key?(:'status')
246
+ self.status = attributes[:'status']
247
+ else
248
+ self.status = nil
249
+ end
250
+
251
+ if attributes.key?(:'payment_status')
252
+ self.payment_status = attributes[:'payment_status']
253
+ else
254
+ self.payment_status = nil
255
+ end
256
+
257
+ if attributes.key?(:'currency')
258
+ self.currency = attributes[:'currency']
259
+ else
260
+ self.currency = nil
261
+ end
262
+
263
+ if attributes.key?(:'fees_amount_cents')
264
+ self.fees_amount_cents = attributes[:'fees_amount_cents']
265
+ else
266
+ self.fees_amount_cents = nil
267
+ end
268
+
269
+ if attributes.key?(:'coupons_amount_cents')
270
+ self.coupons_amount_cents = attributes[:'coupons_amount_cents']
271
+ else
272
+ self.coupons_amount_cents = nil
273
+ end
274
+
275
+ if attributes.key?(:'credit_notes_amount_cents')
276
+ self.credit_notes_amount_cents = attributes[:'credit_notes_amount_cents']
277
+ else
278
+ self.credit_notes_amount_cents = nil
279
+ end
280
+
281
+ if attributes.key?(:'sub_total_excluding_taxes_amount_cents')
282
+ self.sub_total_excluding_taxes_amount_cents = attributes[:'sub_total_excluding_taxes_amount_cents']
283
+ else
284
+ self.sub_total_excluding_taxes_amount_cents = nil
285
+ end
286
+
287
+ if attributes.key?(:'taxes_amount_cents')
288
+ self.taxes_amount_cents = attributes[:'taxes_amount_cents']
289
+ else
290
+ self.taxes_amount_cents = nil
291
+ end
292
+
293
+ if attributes.key?(:'sub_total_including_taxes_amount_cents')
294
+ self.sub_total_including_taxes_amount_cents = attributes[:'sub_total_including_taxes_amount_cents']
295
+ else
296
+ self.sub_total_including_taxes_amount_cents = nil
297
+ end
298
+
299
+ if attributes.key?(:'prepaid_credit_amount_cents')
300
+ self.prepaid_credit_amount_cents = attributes[:'prepaid_credit_amount_cents']
301
+ else
302
+ self.prepaid_credit_amount_cents = nil
303
+ end
304
+
305
+ if attributes.key?(:'total_amount_cents')
306
+ self.total_amount_cents = attributes[:'total_amount_cents']
307
+ else
308
+ self.total_amount_cents = nil
309
+ end
310
+
311
+ if attributes.key?(:'version_number')
312
+ self.version_number = attributes[:'version_number']
313
+ else
314
+ self.version_number = nil
315
+ end
316
+
317
+ if attributes.key?(:'file_url')
318
+ self.file_url = attributes[:'file_url']
319
+ end
320
+
321
+ if attributes.key?(:'customer')
322
+ self.customer = attributes[:'customer']
323
+ end
324
+
325
+ if attributes.key?(:'metadata')
326
+ if (value = attributes[:'metadata']).is_a?(Array)
327
+ self.metadata = value
328
+ end
329
+ end
330
+
331
+ if attributes.key?(:'applied_taxes')
332
+ if (value = attributes[:'applied_taxes']).is_a?(Array)
333
+ self.applied_taxes = value
334
+ end
335
+ end
336
+
337
+ if attributes.key?(:'credits')
338
+ if (value = attributes[:'credits']).is_a?(Array)
339
+ self.credits = value
340
+ end
341
+ end
342
+
343
+ if attributes.key?(:'fees')
344
+ if (value = attributes[:'fees']).is_a?(Array)
345
+ self.fees = value
346
+ end
347
+ end
348
+
349
+ if attributes.key?(:'subscriptions')
350
+ if (value = attributes[:'subscriptions']).is_a?(Array)
351
+ self.subscriptions = value
352
+ end
353
+ end
354
+ end
355
+
356
+ # Show invalid properties with the reasons. Usually used together with valid?
357
+ # @return Array for valid properties with the reasons
358
+ def list_invalid_properties
359
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
360
+ invalid_properties = Array.new
361
+ if @lago_id.nil?
362
+ invalid_properties.push('invalid value for "lago_id", lago_id cannot be nil.')
363
+ end
364
+
365
+ if @sequential_id.nil?
366
+ invalid_properties.push('invalid value for "sequential_id", sequential_id cannot be nil.')
367
+ end
368
+
369
+ if @number.nil?
370
+ invalid_properties.push('invalid value for "number", number cannot be nil.')
371
+ end
372
+
373
+ if @issuing_date.nil?
374
+ invalid_properties.push('invalid value for "issuing_date", issuing_date cannot be nil.')
375
+ end
376
+
377
+ if @invoice_type.nil?
378
+ invalid_properties.push('invalid value for "invoice_type", invoice_type cannot be nil.')
379
+ end
380
+
381
+ if @status.nil?
382
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
383
+ end
384
+
385
+ if @payment_status.nil?
386
+ invalid_properties.push('invalid value for "payment_status", payment_status cannot be nil.')
387
+ end
388
+
389
+ if @currency.nil?
390
+ invalid_properties.push('invalid value for "currency", currency cannot be nil.')
391
+ end
392
+
393
+ if @fees_amount_cents.nil?
394
+ invalid_properties.push('invalid value for "fees_amount_cents", fees_amount_cents cannot be nil.')
395
+ end
396
+
397
+ if @coupons_amount_cents.nil?
398
+ invalid_properties.push('invalid value for "coupons_amount_cents", coupons_amount_cents cannot be nil.')
399
+ end
400
+
401
+ if @credit_notes_amount_cents.nil?
402
+ invalid_properties.push('invalid value for "credit_notes_amount_cents", credit_notes_amount_cents cannot be nil.')
403
+ end
404
+
405
+ if @sub_total_excluding_taxes_amount_cents.nil?
406
+ invalid_properties.push('invalid value for "sub_total_excluding_taxes_amount_cents", sub_total_excluding_taxes_amount_cents cannot be nil.')
407
+ end
408
+
409
+ if @taxes_amount_cents.nil?
410
+ invalid_properties.push('invalid value for "taxes_amount_cents", taxes_amount_cents cannot be nil.')
411
+ end
412
+
413
+ if @sub_total_including_taxes_amount_cents.nil?
414
+ invalid_properties.push('invalid value for "sub_total_including_taxes_amount_cents", sub_total_including_taxes_amount_cents cannot be nil.')
415
+ end
416
+
417
+ if @prepaid_credit_amount_cents.nil?
418
+ invalid_properties.push('invalid value for "prepaid_credit_amount_cents", prepaid_credit_amount_cents cannot be nil.')
419
+ end
420
+
421
+ if @total_amount_cents.nil?
422
+ invalid_properties.push('invalid value for "total_amount_cents", total_amount_cents cannot be nil.')
423
+ end
424
+
425
+ if @version_number.nil?
426
+ invalid_properties.push('invalid value for "version_number", version_number cannot be nil.')
427
+ end
428
+
429
+ invalid_properties
430
+ end
431
+
432
+ # Check to see if the all the properties in the model are valid
433
+ # @return true if the model is valid
434
+ def valid?
435
+ warn '[DEPRECATED] the `valid?` method is obsolete'
436
+ return false if @lago_id.nil?
437
+ return false if @sequential_id.nil?
438
+ return false if @number.nil?
439
+ return false if @issuing_date.nil?
440
+ return false if @invoice_type.nil?
441
+ invoice_type_validator = EnumAttributeValidator.new('String', ["subscription", "add_on", "credit", "one_off"])
442
+ return false unless invoice_type_validator.valid?(@invoice_type)
443
+ return false if @status.nil?
444
+ status_validator = EnumAttributeValidator.new('String', ["draft", "finalized"])
445
+ return false unless status_validator.valid?(@status)
446
+ return false if @payment_status.nil?
447
+ payment_status_validator = EnumAttributeValidator.new('String', ["pending", "succeeded", "failed"])
448
+ return false unless payment_status_validator.valid?(@payment_status)
449
+ return false if @currency.nil?
450
+ return false if @fees_amount_cents.nil?
451
+ return false if @coupons_amount_cents.nil?
452
+ return false if @credit_notes_amount_cents.nil?
453
+ return false if @sub_total_excluding_taxes_amount_cents.nil?
454
+ return false if @taxes_amount_cents.nil?
455
+ return false if @sub_total_including_taxes_amount_cents.nil?
456
+ return false if @prepaid_credit_amount_cents.nil?
457
+ return false if @total_amount_cents.nil?
458
+ return false if @version_number.nil?
459
+ true
460
+ end
461
+
462
+ # Custom attribute writer method checking allowed values (enum).
463
+ # @param [Object] invoice_type Object to be assigned
464
+ def invoice_type=(invoice_type)
465
+ validator = EnumAttributeValidator.new('String', ["subscription", "add_on", "credit", "one_off"])
466
+ unless validator.valid?(invoice_type)
467
+ fail ArgumentError, "invalid value for \"invoice_type\", must be one of #{validator.allowable_values}."
468
+ end
469
+ @invoice_type = invoice_type
470
+ end
471
+
472
+ # Custom attribute writer method checking allowed values (enum).
473
+ # @param [Object] status Object to be assigned
474
+ def status=(status)
475
+ validator = EnumAttributeValidator.new('String', ["draft", "finalized"])
476
+ unless validator.valid?(status)
477
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
478
+ end
479
+ @status = status
480
+ end
481
+
482
+ # Custom attribute writer method checking allowed values (enum).
483
+ # @param [Object] payment_status Object to be assigned
484
+ def payment_status=(payment_status)
485
+ validator = EnumAttributeValidator.new('String', ["pending", "succeeded", "failed"])
486
+ unless validator.valid?(payment_status)
487
+ fail ArgumentError, "invalid value for \"payment_status\", must be one of #{validator.allowable_values}."
488
+ end
489
+ @payment_status = payment_status
490
+ end
491
+
492
+ # Checks equality by comparing each attribute.
493
+ # @param [Object] Object to be compared
494
+ def ==(o)
495
+ return true if self.equal?(o)
496
+ self.class == o.class &&
497
+ lago_id == o.lago_id &&
498
+ sequential_id == o.sequential_id &&
499
+ number == o.number &&
500
+ issuing_date == o.issuing_date &&
501
+ payment_due_date == o.payment_due_date &&
502
+ net_payment_term == o.net_payment_term &&
503
+ invoice_type == o.invoice_type &&
504
+ status == o.status &&
505
+ payment_status == o.payment_status &&
506
+ currency == o.currency &&
507
+ fees_amount_cents == o.fees_amount_cents &&
508
+ coupons_amount_cents == o.coupons_amount_cents &&
509
+ credit_notes_amount_cents == o.credit_notes_amount_cents &&
510
+ sub_total_excluding_taxes_amount_cents == o.sub_total_excluding_taxes_amount_cents &&
511
+ taxes_amount_cents == o.taxes_amount_cents &&
512
+ sub_total_including_taxes_amount_cents == o.sub_total_including_taxes_amount_cents &&
513
+ prepaid_credit_amount_cents == o.prepaid_credit_amount_cents &&
514
+ total_amount_cents == o.total_amount_cents &&
515
+ version_number == o.version_number &&
516
+ file_url == o.file_url &&
517
+ customer == o.customer &&
518
+ metadata == o.metadata &&
519
+ applied_taxes == o.applied_taxes &&
520
+ credits == o.credits &&
521
+ fees == o.fees &&
522
+ subscriptions == o.subscriptions
523
+ end
524
+
525
+ # @see the `==` method
526
+ # @param [Object] Object to be compared
527
+ def eql?(o)
528
+ self == o
529
+ end
530
+
531
+ # Calculates hash code according to all attributes.
532
+ # @return [Integer] Hash code
533
+ def hash
534
+ [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, credits, fees, subscriptions].hash
535
+ end
536
+
537
+ # Builds the object from hash
538
+ # @param [Hash] attributes Model attributes in the form of hash
539
+ # @return [Object] Returns the model itself
540
+ def self.build_from_hash(attributes)
541
+ return nil unless attributes.is_a?(Hash)
542
+ attributes = attributes.transform_keys(&:to_sym)
543
+ transformed_hash = {}
544
+ openapi_types.each_pair do |key, type|
545
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
546
+ transformed_hash["#{key}"] = nil
547
+ elsif type =~ /\AArray<(.*)>/i
548
+ # check to ensure the input is an array given that the attribute
549
+ # is documented as an array but the input is not
550
+ if attributes[attribute_map[key]].is_a?(Array)
551
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
552
+ end
553
+ elsif !attributes[attribute_map[key]].nil?
554
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
555
+ end
556
+ end
557
+ new(transformed_hash)
558
+ end
559
+
560
+ # Deserializes the data based on type
561
+ # @param string type Data type
562
+ # @param string value Value to be deserialized
563
+ # @return [Object] Deserialized data
564
+ def self._deserialize(type, value)
565
+ case type.to_sym
566
+ when :Time
567
+ Time.parse(value)
568
+ when :Date
569
+ Date.parse(value)
570
+ when :String
571
+ value.to_s
572
+ when :Integer
573
+ value.to_i
574
+ when :Float
575
+ value.to_f
576
+ when :Boolean
577
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
578
+ true
579
+ else
580
+ false
581
+ end
582
+ when :Object
583
+ # generic object (usually a Hash), return directly
584
+ value
585
+ when /\AArray<(?<inner_type>.+)>\z/
586
+ inner_type = Regexp.last_match[:inner_type]
587
+ value.map { |v| _deserialize(inner_type, v) }
588
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
589
+ k_type = Regexp.last_match[:k_type]
590
+ v_type = Regexp.last_match[:v_type]
591
+ {}.tap do |hash|
592
+ value.each do |k, v|
593
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
594
+ end
595
+ end
596
+ else # model
597
+ # models (e.g. Pet) or oneOf
598
+ klass = LagoAPI.const_get(type)
599
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
600
+ end
601
+ end
602
+
603
+ # Returns the string representation of the object
604
+ # @return [String] String presentation of the object
605
+ def to_s
606
+ to_hash.to_s
607
+ end
608
+
609
+ # to_body is an alias to to_hash (backward compatibility)
610
+ # @return [Hash] Returns the object in the form of hash
611
+ def to_body
612
+ to_hash
613
+ end
614
+
615
+ # Returns the object in the form of hash
616
+ # @return [Hash] Returns the object in the form of hash
617
+ def to_hash
618
+ hash = {}
619
+ self.class.attribute_map.each_pair do |attr, param|
620
+ value = self.send(attr)
621
+ if value.nil?
622
+ is_nullable = self.class.openapi_nullable.include?(attr)
623
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
624
+ end
625
+
626
+ hash[param] = _to_hash(value)
627
+ end
628
+ hash
629
+ end
630
+
631
+ # Outputs non-array value in the form of hash
632
+ # For object, use to_hash. Otherwise, just return the value
633
+ # @param [Object] value Any valid value
634
+ # @return [Hash] Returns the value in the form of hash
635
+ def _to_hash(value)
636
+ if value.is_a?(Array)
637
+ value.compact.map { |v| _to_hash(v) }
638
+ elsif value.is_a?(Hash)
639
+ {}.tap do |hash|
640
+ value.each { |k, v| hash[k] = _to_hash(v) }
641
+ end
642
+ elsif value.respond_to? :to_hash
643
+ value.to_hash
644
+ else
645
+ value
646
+ end
647
+ end
648
+
649
+ end
650
+
651
+ end