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,563 @@
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 'cgi'
14
+
15
+ module LagoAPI
16
+ class CouponsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Apply a coupon to a customer
23
+ # This endpoint is used to apply a specific coupon to a customer, before or during a subscription.
24
+ # @param applied_coupon_input [AppliedCouponInput] Apply coupon payload
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [AppliedCoupon]
27
+ def apply_coupon(applied_coupon_input, opts = {})
28
+ data, _status_code, _headers = apply_coupon_with_http_info(applied_coupon_input, opts)
29
+ data
30
+ end
31
+
32
+ # Apply a coupon to a customer
33
+ # This endpoint is used to apply a specific coupon to a customer, before or during a subscription.
34
+ # @param applied_coupon_input [AppliedCouponInput] Apply coupon payload
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(AppliedCoupon, Integer, Hash)>] AppliedCoupon data, response status code and response headers
37
+ def apply_coupon_with_http_info(applied_coupon_input, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: CouponsApi.apply_coupon ...'
40
+ end
41
+ # verify the required parameter 'applied_coupon_input' is set
42
+ if @api_client.config.client_side_validation && applied_coupon_input.nil?
43
+ fail ArgumentError, "Missing the required parameter 'applied_coupon_input' when calling CouponsApi.apply_coupon"
44
+ end
45
+ # resource path
46
+ local_var_path = '/applied_coupons'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(applied_coupon_input)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'AppliedCoupon'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"CouponsApi.apply_coupon",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: CouponsApi#apply_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Create a coupon
91
+ # This endpoint is used to create a coupon that can be then attached to a customer to create a discount.
92
+ # @param coupon_create_input [CouponCreateInput] Coupon payload
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [Coupon]
95
+ def create_coupon(coupon_create_input, opts = {})
96
+ data, _status_code, _headers = create_coupon_with_http_info(coupon_create_input, opts)
97
+ data
98
+ end
99
+
100
+ # Create a coupon
101
+ # This endpoint is used to create a coupon that can be then attached to a customer to create a discount.
102
+ # @param coupon_create_input [CouponCreateInput] Coupon payload
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(Coupon, Integer, Hash)>] Coupon data, response status code and response headers
105
+ def create_coupon_with_http_info(coupon_create_input, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: CouponsApi.create_coupon ...'
108
+ end
109
+ # verify the required parameter 'coupon_create_input' is set
110
+ if @api_client.config.client_side_validation && coupon_create_input.nil?
111
+ fail ArgumentError, "Missing the required parameter 'coupon_create_input' when calling CouponsApi.create_coupon"
112
+ end
113
+ # resource path
114
+ local_var_path = '/coupons'
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
123
+ # HTTP header 'Content-Type'
124
+ content_type = @api_client.select_header_content_type(['application/json'])
125
+ if !content_type.nil?
126
+ header_params['Content-Type'] = content_type
127
+ end
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(coupon_create_input)
134
+
135
+ # return_type
136
+ return_type = opts[:debug_return_type] || 'Coupon'
137
+
138
+ # auth_names
139
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
140
+
141
+ new_options = opts.merge(
142
+ :operation => :"CouponsApi.create_coupon",
143
+ :header_params => header_params,
144
+ :query_params => query_params,
145
+ :form_params => form_params,
146
+ :body => post_body,
147
+ :auth_names => auth_names,
148
+ :return_type => return_type
149
+ )
150
+
151
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
152
+ if @api_client.config.debugging
153
+ @api_client.config.logger.debug "API called: CouponsApi#create_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
154
+ end
155
+ return data, status_code, headers
156
+ end
157
+
158
+ # Delete an applied coupon
159
+ # This endpoint is used to delete a specific coupon that has been applied to a customer.
160
+ # @param external_customer_id [String] The customer external unique identifier (provided by your own application)
161
+ # @param applied_coupon_id [String] Unique identifier of the applied coupon, created by Lago.
162
+ # @param [Hash] opts the optional parameters
163
+ # @return [AppliedCoupon]
164
+ def delete_applied_coupon(external_customer_id, applied_coupon_id, opts = {})
165
+ data, _status_code, _headers = delete_applied_coupon_with_http_info(external_customer_id, applied_coupon_id, opts)
166
+ data
167
+ end
168
+
169
+ # Delete an applied coupon
170
+ # This endpoint is used to delete a specific coupon that has been applied to a customer.
171
+ # @param external_customer_id [String] The customer external unique identifier (provided by your own application)
172
+ # @param applied_coupon_id [String] Unique identifier of the applied coupon, created by Lago.
173
+ # @param [Hash] opts the optional parameters
174
+ # @return [Array<(AppliedCoupon, Integer, Hash)>] AppliedCoupon data, response status code and response headers
175
+ def delete_applied_coupon_with_http_info(external_customer_id, applied_coupon_id, opts = {})
176
+ if @api_client.config.debugging
177
+ @api_client.config.logger.debug 'Calling API: CouponsApi.delete_applied_coupon ...'
178
+ end
179
+ # verify the required parameter 'external_customer_id' is set
180
+ if @api_client.config.client_side_validation && external_customer_id.nil?
181
+ fail ArgumentError, "Missing the required parameter 'external_customer_id' when calling CouponsApi.delete_applied_coupon"
182
+ end
183
+ # verify the required parameter 'applied_coupon_id' is set
184
+ if @api_client.config.client_side_validation && applied_coupon_id.nil?
185
+ fail ArgumentError, "Missing the required parameter 'applied_coupon_id' when calling CouponsApi.delete_applied_coupon"
186
+ end
187
+ # resource path
188
+ local_var_path = '/customers/{external_customer_id}/applied_coupons/{applied_coupon_id}'.sub('{' + 'external_customer_id' + '}', CGI.escape(external_customer_id.to_s)).sub('{' + 'applied_coupon_id' + '}', CGI.escape(applied_coupon_id.to_s))
189
+
190
+ # query parameters
191
+ query_params = opts[:query_params] || {}
192
+
193
+ # header parameters
194
+ header_params = opts[:header_params] || {}
195
+ # HTTP header 'Accept' (if needed)
196
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
197
+
198
+ # form parameters
199
+ form_params = opts[:form_params] || {}
200
+
201
+ # http body (model)
202
+ post_body = opts[:debug_body]
203
+
204
+ # return_type
205
+ return_type = opts[:debug_return_type] || 'AppliedCoupon'
206
+
207
+ # auth_names
208
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
209
+
210
+ new_options = opts.merge(
211
+ :operation => :"CouponsApi.delete_applied_coupon",
212
+ :header_params => header_params,
213
+ :query_params => query_params,
214
+ :form_params => form_params,
215
+ :body => post_body,
216
+ :auth_names => auth_names,
217
+ :return_type => return_type
218
+ )
219
+
220
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
221
+ if @api_client.config.debugging
222
+ @api_client.config.logger.debug "API called: CouponsApi#delete_applied_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
223
+ end
224
+ return data, status_code, headers
225
+ end
226
+
227
+ # Delete a coupon
228
+ # This endpoint is used to delete a coupon.
229
+ # @param code [String] Unique code used to identify the coupon.
230
+ # @param [Hash] opts the optional parameters
231
+ # @return [Coupon]
232
+ def destroy_coupon(code, opts = {})
233
+ data, _status_code, _headers = destroy_coupon_with_http_info(code, opts)
234
+ data
235
+ end
236
+
237
+ # Delete a coupon
238
+ # This endpoint is used to delete a coupon.
239
+ # @param code [String] Unique code used to identify the coupon.
240
+ # @param [Hash] opts the optional parameters
241
+ # @return [Array<(Coupon, Integer, Hash)>] Coupon data, response status code and response headers
242
+ def destroy_coupon_with_http_info(code, opts = {})
243
+ if @api_client.config.debugging
244
+ @api_client.config.logger.debug 'Calling API: CouponsApi.destroy_coupon ...'
245
+ end
246
+ # verify the required parameter 'code' is set
247
+ if @api_client.config.client_side_validation && code.nil?
248
+ fail ArgumentError, "Missing the required parameter 'code' when calling CouponsApi.destroy_coupon"
249
+ end
250
+ # resource path
251
+ local_var_path = '/coupons/{code}'.sub('{' + 'code' + '}', CGI.escape(code.to_s))
252
+
253
+ # query parameters
254
+ query_params = opts[:query_params] || {}
255
+
256
+ # header parameters
257
+ header_params = opts[:header_params] || {}
258
+ # HTTP header 'Accept' (if needed)
259
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
260
+
261
+ # form parameters
262
+ form_params = opts[:form_params] || {}
263
+
264
+ # http body (model)
265
+ post_body = opts[:debug_body]
266
+
267
+ # return_type
268
+ return_type = opts[:debug_return_type] || 'Coupon'
269
+
270
+ # auth_names
271
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
272
+
273
+ new_options = opts.merge(
274
+ :operation => :"CouponsApi.destroy_coupon",
275
+ :header_params => header_params,
276
+ :query_params => query_params,
277
+ :form_params => form_params,
278
+ :body => post_body,
279
+ :auth_names => auth_names,
280
+ :return_type => return_type
281
+ )
282
+
283
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
284
+ if @api_client.config.debugging
285
+ @api_client.config.logger.debug "API called: CouponsApi#destroy_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
286
+ end
287
+ return data, status_code, headers
288
+ end
289
+
290
+ # List all applied coupons
291
+ # This endpoint is used to list all applied coupons. You can filter by coupon status and by customer.
292
+ # @param [Hash] opts the optional parameters
293
+ # @option opts [Integer] :page Page number.
294
+ # @option opts [Integer] :per_page Number of records per page.
295
+ # @option opts [String] :status The status of the coupon. Can be either &#x60;active&#x60; or &#x60;terminated&#x60;.
296
+ # @option opts [String] :external_customer_id The customer external unique identifier (provided by your own application)
297
+ # @return [AppliedCouponsPaginated]
298
+ def find_all_applied_coupons(opts = {})
299
+ data, _status_code, _headers = find_all_applied_coupons_with_http_info(opts)
300
+ data
301
+ end
302
+
303
+ # List all applied coupons
304
+ # This endpoint is used to list all applied coupons. You can filter by coupon status and by customer.
305
+ # @param [Hash] opts the optional parameters
306
+ # @option opts [Integer] :page Page number.
307
+ # @option opts [Integer] :per_page Number of records per page.
308
+ # @option opts [String] :status The status of the coupon. Can be either &#x60;active&#x60; or &#x60;terminated&#x60;.
309
+ # @option opts [String] :external_customer_id The customer external unique identifier (provided by your own application)
310
+ # @return [Array<(AppliedCouponsPaginated, Integer, Hash)>] AppliedCouponsPaginated data, response status code and response headers
311
+ def find_all_applied_coupons_with_http_info(opts = {})
312
+ if @api_client.config.debugging
313
+ @api_client.config.logger.debug 'Calling API: CouponsApi.find_all_applied_coupons ...'
314
+ end
315
+ allowable_values = ["active", "terminated"]
316
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
317
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
318
+ end
319
+ # resource path
320
+ local_var_path = '/applied_coupons'
321
+
322
+ # query parameters
323
+ query_params = opts[:query_params] || {}
324
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
325
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
326
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
327
+ query_params[:'external_customer_id'] = opts[:'external_customer_id'] if !opts[:'external_customer_id'].nil?
328
+
329
+ # header parameters
330
+ header_params = opts[:header_params] || {}
331
+ # HTTP header 'Accept' (if needed)
332
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
333
+
334
+ # form parameters
335
+ form_params = opts[:form_params] || {}
336
+
337
+ # http body (model)
338
+ post_body = opts[:debug_body]
339
+
340
+ # return_type
341
+ return_type = opts[:debug_return_type] || 'AppliedCouponsPaginated'
342
+
343
+ # auth_names
344
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
345
+
346
+ new_options = opts.merge(
347
+ :operation => :"CouponsApi.find_all_applied_coupons",
348
+ :header_params => header_params,
349
+ :query_params => query_params,
350
+ :form_params => form_params,
351
+ :body => post_body,
352
+ :auth_names => auth_names,
353
+ :return_type => return_type
354
+ )
355
+
356
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
357
+ if @api_client.config.debugging
358
+ @api_client.config.logger.debug "API called: CouponsApi#find_all_applied_coupons\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
359
+ end
360
+ return data, status_code, headers
361
+ end
362
+
363
+ # List all coupons
364
+ # This endpoint is used to list all existing coupons.
365
+ # @param [Hash] opts the optional parameters
366
+ # @option opts [Integer] :page Page number.
367
+ # @option opts [Integer] :per_page Number of records per page.
368
+ # @return [CouponsPaginated]
369
+ def find_all_coupons(opts = {})
370
+ data, _status_code, _headers = find_all_coupons_with_http_info(opts)
371
+ data
372
+ end
373
+
374
+ # List all coupons
375
+ # This endpoint is used to list all existing coupons.
376
+ # @param [Hash] opts the optional parameters
377
+ # @option opts [Integer] :page Page number.
378
+ # @option opts [Integer] :per_page Number of records per page.
379
+ # @return [Array<(CouponsPaginated, Integer, Hash)>] CouponsPaginated data, response status code and response headers
380
+ def find_all_coupons_with_http_info(opts = {})
381
+ if @api_client.config.debugging
382
+ @api_client.config.logger.debug 'Calling API: CouponsApi.find_all_coupons ...'
383
+ end
384
+ # resource path
385
+ local_var_path = '/coupons'
386
+
387
+ # query parameters
388
+ query_params = opts[:query_params] || {}
389
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
390
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
391
+
392
+ # header parameters
393
+ header_params = opts[:header_params] || {}
394
+ # HTTP header 'Accept' (if needed)
395
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
396
+
397
+ # form parameters
398
+ form_params = opts[:form_params] || {}
399
+
400
+ # http body (model)
401
+ post_body = opts[:debug_body]
402
+
403
+ # return_type
404
+ return_type = opts[:debug_return_type] || 'CouponsPaginated'
405
+
406
+ # auth_names
407
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
408
+
409
+ new_options = opts.merge(
410
+ :operation => :"CouponsApi.find_all_coupons",
411
+ :header_params => header_params,
412
+ :query_params => query_params,
413
+ :form_params => form_params,
414
+ :body => post_body,
415
+ :auth_names => auth_names,
416
+ :return_type => return_type
417
+ )
418
+
419
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
420
+ if @api_client.config.debugging
421
+ @api_client.config.logger.debug "API called: CouponsApi#find_all_coupons\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
422
+ end
423
+ return data, status_code, headers
424
+ end
425
+
426
+ # Retrieve a coupon
427
+ # This endpoint is used to retrieve a specific coupon.
428
+ # @param code [String] Unique code used to identify the coupon.
429
+ # @param [Hash] opts the optional parameters
430
+ # @return [Coupon]
431
+ def find_coupon(code, opts = {})
432
+ data, _status_code, _headers = find_coupon_with_http_info(code, opts)
433
+ data
434
+ end
435
+
436
+ # Retrieve a coupon
437
+ # This endpoint is used to retrieve a specific coupon.
438
+ # @param code [String] Unique code used to identify the coupon.
439
+ # @param [Hash] opts the optional parameters
440
+ # @return [Array<(Coupon, Integer, Hash)>] Coupon data, response status code and response headers
441
+ def find_coupon_with_http_info(code, opts = {})
442
+ if @api_client.config.debugging
443
+ @api_client.config.logger.debug 'Calling API: CouponsApi.find_coupon ...'
444
+ end
445
+ # verify the required parameter 'code' is set
446
+ if @api_client.config.client_side_validation && code.nil?
447
+ fail ArgumentError, "Missing the required parameter 'code' when calling CouponsApi.find_coupon"
448
+ end
449
+ # resource path
450
+ local_var_path = '/coupons/{code}'.sub('{' + 'code' + '}', CGI.escape(code.to_s))
451
+
452
+ # query parameters
453
+ query_params = opts[:query_params] || {}
454
+
455
+ # header parameters
456
+ header_params = opts[:header_params] || {}
457
+ # HTTP header 'Accept' (if needed)
458
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
459
+
460
+ # form parameters
461
+ form_params = opts[:form_params] || {}
462
+
463
+ # http body (model)
464
+ post_body = opts[:debug_body]
465
+
466
+ # return_type
467
+ return_type = opts[:debug_return_type] || 'Coupon'
468
+
469
+ # auth_names
470
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
471
+
472
+ new_options = opts.merge(
473
+ :operation => :"CouponsApi.find_coupon",
474
+ :header_params => header_params,
475
+ :query_params => query_params,
476
+ :form_params => form_params,
477
+ :body => post_body,
478
+ :auth_names => auth_names,
479
+ :return_type => return_type
480
+ )
481
+
482
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
483
+ if @api_client.config.debugging
484
+ @api_client.config.logger.debug "API called: CouponsApi#find_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
485
+ end
486
+ return data, status_code, headers
487
+ end
488
+
489
+ # Update a coupon
490
+ # This endpoint is used to update a coupon that can be then attached to a customer to create a discount.
491
+ # @param code [String] Unique code used to identify the coupon.
492
+ # @param coupon_update_input [CouponUpdateInput] Coupon payload
493
+ # @param [Hash] opts the optional parameters
494
+ # @return [Coupon]
495
+ def update_coupon(code, coupon_update_input, opts = {})
496
+ data, _status_code, _headers = update_coupon_with_http_info(code, coupon_update_input, opts)
497
+ data
498
+ end
499
+
500
+ # Update a coupon
501
+ # This endpoint is used to update a coupon that can be then attached to a customer to create a discount.
502
+ # @param code [String] Unique code used to identify the coupon.
503
+ # @param coupon_update_input [CouponUpdateInput] Coupon payload
504
+ # @param [Hash] opts the optional parameters
505
+ # @return [Array<(Coupon, Integer, Hash)>] Coupon data, response status code and response headers
506
+ def update_coupon_with_http_info(code, coupon_update_input, opts = {})
507
+ if @api_client.config.debugging
508
+ @api_client.config.logger.debug 'Calling API: CouponsApi.update_coupon ...'
509
+ end
510
+ # verify the required parameter 'code' is set
511
+ if @api_client.config.client_side_validation && code.nil?
512
+ fail ArgumentError, "Missing the required parameter 'code' when calling CouponsApi.update_coupon"
513
+ end
514
+ # verify the required parameter 'coupon_update_input' is set
515
+ if @api_client.config.client_side_validation && coupon_update_input.nil?
516
+ fail ArgumentError, "Missing the required parameter 'coupon_update_input' when calling CouponsApi.update_coupon"
517
+ end
518
+ # resource path
519
+ local_var_path = '/coupons/{code}'.sub('{' + 'code' + '}', CGI.escape(code.to_s))
520
+
521
+ # query parameters
522
+ query_params = opts[:query_params] || {}
523
+
524
+ # header parameters
525
+ header_params = opts[:header_params] || {}
526
+ # HTTP header 'Accept' (if needed)
527
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
528
+ # HTTP header 'Content-Type'
529
+ content_type = @api_client.select_header_content_type(['application/json'])
530
+ if !content_type.nil?
531
+ header_params['Content-Type'] = content_type
532
+ end
533
+
534
+ # form parameters
535
+ form_params = opts[:form_params] || {}
536
+
537
+ # http body (model)
538
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(coupon_update_input)
539
+
540
+ # return_type
541
+ return_type = opts[:debug_return_type] || 'Coupon'
542
+
543
+ # auth_names
544
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
545
+
546
+ new_options = opts.merge(
547
+ :operation => :"CouponsApi.update_coupon",
548
+ :header_params => header_params,
549
+ :query_params => query_params,
550
+ :form_params => form_params,
551
+ :body => post_body,
552
+ :auth_names => auth_names,
553
+ :return_type => return_type
554
+ )
555
+
556
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
557
+ if @api_client.config.debugging
558
+ @api_client.config.logger.debug "API called: CouponsApi#update_coupon\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
559
+ end
560
+ return data, status_code, headers
561
+ end
562
+ end
563
+ end