recurly 2.17.11 → 4.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +15 -0
  3. data/.changelog_config.yaml +11 -0
  4. data/.github/ISSUE_TEMPLATE/bug-report.md +30 -0
  5. data/.github/ISSUE_TEMPLATE/question-or-other.md +10 -0
  6. data/.github/workflows/ci.yml +29 -0
  7. data/.github/workflows/docs.yml +28 -0
  8. data/.gitignore +15 -0
  9. data/.rspec +2 -0
  10. data/.yardopts +2 -0
  11. data/CHANGELOG.md +295 -0
  12. data/CODE_OF_CONDUCT.md +130 -0
  13. data/CONTRIBUTING.md +106 -0
  14. data/GETTING_STARTED.md +330 -0
  15. data/Gemfile +4 -0
  16. data/LICENSE.txt +21 -0
  17. data/README.md +9 -148
  18. data/Rakefile +6 -0
  19. data/benchmark.rb +16 -0
  20. data/lib/data/ca-certificates.crt +3466 -0
  21. data/lib/recurly/client/operations.rb +4079 -0
  22. data/lib/recurly/client.rb +400 -0
  23. data/lib/recurly/connection_pool.rb +42 -0
  24. data/lib/recurly/errors/api_errors.rb +90 -0
  25. data/lib/recurly/errors/network_errors.rb +7 -0
  26. data/lib/recurly/errors.rb +51 -0
  27. data/lib/recurly/http.rb +50 -0
  28. data/lib/recurly/pager.rb +136 -0
  29. data/lib/recurly/request.rb +31 -0
  30. data/lib/recurly/requests/account_acquisition_cost.rb +18 -0
  31. data/lib/recurly/requests/account_acquisition_update.rb +26 -0
  32. data/lib/recurly/requests/account_create.rb +98 -0
  33. data/lib/recurly/requests/account_purchase.rb +98 -0
  34. data/lib/recurly/requests/account_update.rb +86 -0
  35. data/lib/recurly/requests/add_on_create.rb +102 -0
  36. data/lib/recurly/requests/add_on_pricing.rb +26 -0
  37. data/lib/recurly/requests/add_on_update.rb +78 -0
  38. data/lib/recurly/requests/address.rb +38 -0
  39. data/lib/recurly/requests/billing_info_create.rb +134 -0
  40. data/lib/recurly/requests/billing_info_verify.rb +14 -0
  41. data/lib/recurly/requests/coupon_bulk_create.rb +14 -0
  42. data/lib/recurly/requests/coupon_create.rb +102 -0
  43. data/lib/recurly/requests/coupon_pricing.rb +18 -0
  44. data/lib/recurly/requests/coupon_redemption_create.rb +22 -0
  45. data/lib/recurly/requests/coupon_update.rb +34 -0
  46. data/lib/recurly/requests/custom_field.rb +18 -0
  47. data/lib/recurly/requests/dunning_campaigns_bulk_update.rb +18 -0
  48. data/lib/recurly/requests/external_refund.rb +22 -0
  49. data/lib/recurly/requests/external_transaction.rb +26 -0
  50. data/lib/recurly/requests/invoice_address.rb +54 -0
  51. data/lib/recurly/requests/invoice_collect.rb +22 -0
  52. data/lib/recurly/requests/invoice_create.rb +42 -0
  53. data/lib/recurly/requests/invoice_refund.rb +34 -0
  54. data/lib/recurly/requests/invoice_update.rb +34 -0
  55. data/lib/recurly/requests/item_create.rb +58 -0
  56. data/lib/recurly/requests/item_update.rb +58 -0
  57. data/lib/recurly/requests/line_item_create.rb +86 -0
  58. data/lib/recurly/requests/line_item_refund.rb +22 -0
  59. data/lib/recurly/requests/measured_unit_create.rb +22 -0
  60. data/lib/recurly/requests/measured_unit_update.rb +22 -0
  61. data/lib/recurly/requests/percentage_tier.rb +18 -0
  62. data/lib/recurly/requests/percentage_tiers_by_currency.rb +18 -0
  63. data/lib/recurly/requests/plan_create.rb +102 -0
  64. data/lib/recurly/requests/plan_hosted_pages.rb +26 -0
  65. data/lib/recurly/requests/plan_pricing.rb +26 -0
  66. data/lib/recurly/requests/plan_update.rb +94 -0
  67. data/lib/recurly/requests/pricing.rb +22 -0
  68. data/lib/recurly/requests/purchase_create.rb +78 -0
  69. data/lib/recurly/requests/shipping_address_create.rb +62 -0
  70. data/lib/recurly/requests/shipping_address_update.rb +66 -0
  71. data/lib/recurly/requests/shipping_fee_create.rb +22 -0
  72. data/lib/recurly/requests/shipping_method_create.rb +26 -0
  73. data/lib/recurly/requests/shipping_method_update.rb +26 -0
  74. data/lib/recurly/requests/shipping_purchase.rb +22 -0
  75. data/lib/recurly/requests/subscription_add_on_create.rb +46 -0
  76. data/lib/recurly/requests/subscription_add_on_percentage_tier.rb +18 -0
  77. data/lib/recurly/requests/subscription_add_on_tier.rb +26 -0
  78. data/lib/recurly/requests/subscription_add_on_update.rb +50 -0
  79. data/lib/recurly/requests/subscription_cancel.rb +14 -0
  80. data/lib/recurly/requests/subscription_change_billing_info_create.rb +14 -0
  81. data/lib/recurly/requests/subscription_change_create.rb +74 -0
  82. data/lib/recurly/requests/subscription_change_shipping_create.rb +30 -0
  83. data/lib/recurly/requests/subscription_create.rb +114 -0
  84. data/lib/recurly/requests/subscription_pause.rb +14 -0
  85. data/lib/recurly/requests/subscription_purchase.rb +70 -0
  86. data/lib/recurly/requests/subscription_shipping_create.rb +30 -0
  87. data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
  88. data/lib/recurly/requests/subscription_shipping_update.rb +22 -0
  89. data/lib/recurly/requests/subscription_update.rb +70 -0
  90. data/lib/recurly/requests/tier.rb +22 -0
  91. data/lib/recurly/requests/tier_pricing.rb +22 -0
  92. data/lib/recurly/requests/usage_create.rb +26 -0
  93. data/lib/recurly/requests.rb +8 -0
  94. data/lib/recurly/resource.rb +23 -1092
  95. data/lib/recurly/resources/account.rb +138 -0
  96. data/lib/recurly/resources/account_acquisition.rb +46 -0
  97. data/lib/recurly/resources/account_acquisition_cost.rb +18 -0
  98. data/lib/recurly/resources/account_balance.rb +26 -0
  99. data/lib/recurly/resources/account_balance_amount.rb +22 -0
  100. data/lib/recurly/resources/account_mini.rb +50 -0
  101. data/lib/recurly/resources/account_note.rb +34 -0
  102. data/lib/recurly/resources/add_on.rb +122 -0
  103. data/lib/recurly/resources/add_on_mini.rb +54 -0
  104. data/lib/recurly/resources/add_on_pricing.rb +26 -0
  105. data/lib/recurly/resources/address.rb +38 -0
  106. data/lib/recurly/resources/address_with_name.rb +46 -0
  107. data/lib/recurly/resources/billing_info.rb +74 -0
  108. data/lib/recurly/resources/billing_info_updated_by.rb +18 -0
  109. data/lib/recurly/resources/binary_file.rb +14 -0
  110. data/lib/recurly/resources/coupon.rb +126 -0
  111. data/lib/recurly/resources/coupon_discount.rb +26 -0
  112. data/lib/recurly/resources/coupon_discount_pricing.rb +18 -0
  113. data/lib/recurly/resources/coupon_discount_trial.rb +18 -0
  114. data/lib/recurly/resources/coupon_mini.rb +42 -0
  115. data/lib/recurly/resources/coupon_redemption.rb +54 -0
  116. data/lib/recurly/resources/coupon_redemption_mini.rb +34 -0
  117. data/lib/recurly/resources/credit_payment.rb +66 -0
  118. data/lib/recurly/resources/custom_field.rb +18 -0
  119. data/lib/recurly/resources/custom_field_definition.rb +50 -0
  120. data/lib/recurly/resources/dunning_campaign.rb +50 -0
  121. data/lib/recurly/resources/dunning_campaigns_bulk_update_response.rb +18 -0
  122. data/lib/recurly/resources/dunning_cycle.rb +58 -0
  123. data/lib/recurly/resources/dunning_interval.rb +18 -0
  124. data/lib/recurly/resources/error.rb +22 -0
  125. data/lib/recurly/resources/error_may_have_transaction.rb +26 -0
  126. data/lib/recurly/resources/export_dates.rb +18 -0
  127. data/lib/recurly/resources/export_file.rb +22 -0
  128. data/lib/recurly/resources/export_files.rb +18 -0
  129. data/lib/recurly/resources/fraud_info.rb +22 -0
  130. data/lib/recurly/resources/invoice.rb +162 -0
  131. data/lib/recurly/resources/invoice_address.rb +54 -0
  132. data/lib/recurly/resources/invoice_collection.rb +22 -0
  133. data/lib/recurly/resources/invoice_mini.rb +30 -0
  134. data/lib/recurly/resources/invoice_template.rb +34 -0
  135. data/lib/recurly/resources/item.rb +82 -0
  136. data/lib/recurly/resources/item_mini.rb +34 -0
  137. data/lib/recurly/resources/line_item.rb +206 -0
  138. data/lib/recurly/resources/measured_unit.rb +46 -0
  139. data/lib/recurly/resources/payment_method.rb +70 -0
  140. data/lib/recurly/resources/percentage_tier.rb +18 -0
  141. data/lib/recurly/resources/percentage_tiers_by_currency.rb +18 -0
  142. data/lib/recurly/resources/plan.rb +122 -0
  143. data/lib/recurly/resources/plan_hosted_pages.rb +26 -0
  144. data/lib/recurly/resources/plan_mini.rb +26 -0
  145. data/lib/recurly/resources/plan_pricing.rb +26 -0
  146. data/lib/recurly/resources/pricing.rb +22 -0
  147. data/lib/recurly/resources/settings.rb +22 -0
  148. data/lib/recurly/resources/shipping_address.rb +82 -0
  149. data/lib/recurly/resources/shipping_method.rb +46 -0
  150. data/lib/recurly/resources/shipping_method_mini.rb +26 -0
  151. data/lib/recurly/resources/site.rb +54 -0
  152. data/lib/recurly/resources/subscription.rb +198 -0
  153. data/lib/recurly/resources/subscription_add_on.rb +78 -0
  154. data/lib/recurly/resources/subscription_add_on_percentage_tier.rb +18 -0
  155. data/lib/recurly/resources/subscription_add_on_tier.rb +26 -0
  156. data/lib/recurly/resources/subscription_change.rb +82 -0
  157. data/lib/recurly/resources/subscription_change_billing_info.rb +14 -0
  158. data/lib/recurly/resources/subscription_shipping.rb +26 -0
  159. data/lib/recurly/resources/tax_detail.rb +26 -0
  160. data/lib/recurly/resources/tax_info.rb +26 -0
  161. data/lib/recurly/resources/tier.rb +22 -0
  162. data/lib/recurly/resources/tier_pricing.rb +22 -0
  163. data/lib/recurly/resources/transaction.rb +162 -0
  164. data/lib/recurly/resources/transaction_error.rb +38 -0
  165. data/lib/recurly/resources/transaction_payment_gateway.rb +26 -0
  166. data/lib/recurly/resources/unique_coupon_code.rb +50 -0
  167. data/lib/recurly/resources/unique_coupon_code_params.rb +26 -0
  168. data/lib/recurly/resources/usage.rb +78 -0
  169. data/lib/recurly/resources/user.rb +42 -0
  170. data/lib/recurly/resources.rb +18 -0
  171. data/lib/recurly/schema/file_parser.rb +13 -0
  172. data/lib/recurly/schema/json_parser.rb +72 -0
  173. data/lib/recurly/schema/request_caster.rb +60 -0
  174. data/lib/recurly/schema/resource_caster.rb +46 -0
  175. data/lib/recurly/schema/schema_factory.rb +48 -0
  176. data/lib/recurly/schema/schema_validator.rb +144 -0
  177. data/lib/recurly/schema.rb +156 -0
  178. data/lib/recurly/version.rb +1 -15
  179. data/lib/recurly.rb +15 -141
  180. data/openapi/api.yaml +22879 -0
  181. data/recurly.gemspec +39 -0
  182. data/scripts/build +5 -0
  183. data/scripts/clean +6 -0
  184. data/scripts/format +12 -0
  185. data/scripts/prepare-release +50 -0
  186. data/scripts/release +17 -0
  187. data/scripts/test +15 -0
  188. metadata +217 -220
  189. data/lib/recurly/account.rb +0 -189
  190. data/lib/recurly/account_acquisition.rb +0 -19
  191. data/lib/recurly/account_balance.rb +0 -21
  192. data/lib/recurly/add_on.rb +0 -30
  193. data/lib/recurly/address.rb +0 -25
  194. data/lib/recurly/adjustment.rb +0 -76
  195. data/lib/recurly/api/errors.rb +0 -208
  196. data/lib/recurly/api/net_http_adapter.rb +0 -111
  197. data/lib/recurly/api.rb +0 -101
  198. data/lib/recurly/billing_info.rb +0 -82
  199. data/lib/recurly/coupon.rb +0 -134
  200. data/lib/recurly/credit_payment.rb +0 -32
  201. data/lib/recurly/custom_field.rb +0 -15
  202. data/lib/recurly/delivery.rb +0 -19
  203. data/lib/recurly/error.rb +0 -13
  204. data/lib/recurly/gift_card.rb +0 -82
  205. data/lib/recurly/helper.rb +0 -51
  206. data/lib/recurly/invoice.rb +0 -273
  207. data/lib/recurly/invoice_collection.rb +0 -14
  208. data/lib/recurly/js.rb +0 -14
  209. data/lib/recurly/juris_detail.rb +0 -14
  210. data/lib/recurly/measured_unit.rb +0 -16
  211. data/lib/recurly/money.rb +0 -120
  212. data/lib/recurly/note.rb +0 -14
  213. data/lib/recurly/plan.rb +0 -40
  214. data/lib/recurly/purchase.rb +0 -234
  215. data/lib/recurly/redemption.rb +0 -46
  216. data/lib/recurly/resource/association.rb +0 -16
  217. data/lib/recurly/resource/errors.rb +0 -20
  218. data/lib/recurly/resource/pager.rb +0 -313
  219. data/lib/recurly/shipping_address.rb +0 -26
  220. data/lib/recurly/shipping_fee.rb +0 -17
  221. data/lib/recurly/shipping_method.rb +0 -13
  222. data/lib/recurly/subscription/add_ons.rb +0 -77
  223. data/lib/recurly/subscription.rb +0 -330
  224. data/lib/recurly/subscription_add_on.rb +0 -50
  225. data/lib/recurly/tax_detail.rb +0 -14
  226. data/lib/recurly/tax_type.rb +0 -12
  227. data/lib/recurly/transaction/errors.rb +0 -115
  228. data/lib/recurly/transaction.rb +0 -129
  229. data/lib/recurly/usage.rb +0 -28
  230. data/lib/recurly/webhook/account_notification.rb +0 -10
  231. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  232. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  233. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  234. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  235. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  236. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  237. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  238. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  239. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  240. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  241. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  242. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  243. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  244. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  245. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  246. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  247. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  248. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  249. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  250. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  251. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  252. data/lib/recurly/webhook/notification.rb +0 -18
  253. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  254. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  255. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  256. data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
  257. data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
  258. data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
  259. data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
  260. data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
  261. data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
  262. data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
  263. data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
  264. data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
  265. data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
  266. data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
  267. data/lib/recurly/webhook/subscription_notification.rb +0 -12
  268. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  269. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  270. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  271. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  272. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  273. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  274. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  275. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  276. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  277. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  278. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  279. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  280. data/lib/recurly/webhook.rb +0 -91
  281. data/lib/recurly/xml/nokogiri.rb +0 -60
  282. data/lib/recurly/xml/rexml.rb +0 -52
  283. data/lib/recurly/xml.rb +0 -122
@@ -0,0 +1,136 @@
1
+ module Recurly
2
+ class Pager
3
+ attr_accessor :client
4
+ attr_reader :data, :next
5
+
6
+ def initialize(client:, path:, options: {})
7
+ @client = client
8
+ @path = path
9
+ @options = options
10
+ rewind!
11
+ end
12
+
13
+ # Performs a request with the pager `limit` set to 1 and only returns the first
14
+ # result in the response.
15
+ def first
16
+ # Modify the @next url to set the :limit to 1
17
+ original_next = @next
18
+ @next = @path
19
+ fetch_next!(@options.merge(params: @options.fetch(:params, {}).merge({ limit: 1 })))
20
+ # Restore the @next url to the original
21
+ @next = original_next
22
+ @data.first
23
+ end
24
+
25
+ # Makes a HEAD request to the API to determine how many total records exist.
26
+ def count
27
+ resource = @client.send(:head, self.next, **@options)
28
+ resource.get_response.total_records
29
+ end
30
+
31
+ # Enumerates each "page" from the server.
32
+ # This method yields a given block with the array of items
33
+ # in the page `data` and the page number the pagination is on
34
+ # `page_num` which is 0-indexed.
35
+ #
36
+ # @example
37
+ # plans = client.list_plans()
38
+ # plans.each_page do |data|
39
+ # data.each do |plan|
40
+ # puts "Plan: #{plan.id}"
41
+ # end
42
+ # end
43
+ # @example
44
+ # plans = client.list_plans()
45
+ # plans.each_page.each_with_index do |data, page_num|
46
+ # puts "Page Number: #{page_num}"
47
+ # data.each do |plan|
48
+ # puts "Plan: #{plan.id}"
49
+ # end
50
+ # end
51
+ def each_page(&block)
52
+ if block_given?
53
+ page_enumerator.each(&block)
54
+ else
55
+ page_enumerator
56
+ end
57
+ end
58
+
59
+ # Enumerates each item on the server. Each item is yielded to the
60
+ # block presenting the effect of a continuous stream of items.
61
+ # In reality, the pager is fetching blocks of data (pages) under the hood.
62
+ # This method yields a given block with the next item to process.
63
+ #
64
+ # @example
65
+ # plans = client.list_plans()
66
+ # plans.each do |plan|
67
+ # puts "Plan: #{plan.id}"
68
+ # end
69
+ # @example
70
+ # plans = client.list_plans()
71
+ # plans.each.each_with_index do |plan, idx|
72
+ # puts "Plan #{idx}: #{plan.id}"
73
+ # end
74
+ def each(&block)
75
+ if block_given?
76
+ item_enumerator.each(&block)
77
+ else
78
+ item_enumerator
79
+ end
80
+ end
81
+
82
+ def has_more?
83
+ !!@has_more
84
+ end
85
+
86
+ def requires_client?
87
+ true
88
+ end
89
+
90
+ private
91
+
92
+ def item_enumerator
93
+ Enumerator.new do |yielder|
94
+ page_enumerator.each do |data|
95
+ data.each do |item|
96
+ yielder << item
97
+ end
98
+ end
99
+ end
100
+ end
101
+
102
+ def page_enumerator
103
+ Enumerator.new do |yielder|
104
+ loop do
105
+ # Pass in @options when requesting the first page (@data.empty?)
106
+ next_options = @data.empty? ? @options : @options.merge(params: {})
107
+ fetch_next!(next_options)
108
+ yielder << data
109
+ unless has_more?
110
+ rewind!
111
+ break
112
+ end
113
+ end
114
+ end
115
+ end
116
+
117
+ def fetch_next!(options)
118
+ path = extract_path(self.next)
119
+ page = @client.send(:get, path, **options)
120
+ @data = page.data.map { |d| JSONParser.from_json(d) }
121
+ @has_more = page.has_more
122
+ @next = page.next
123
+ end
124
+
125
+ def rewind!
126
+ @data = []
127
+ @next = @path
128
+ end
129
+
130
+ # Returns just the path and parameters so we can safely reuse the connection
131
+ def extract_path(uri_or_path)
132
+ uri = URI(uri_or_path)
133
+ uri.kind_of?(URI::HTTP) ? uri.request_uri : uri_or_path
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,31 @@
1
+ module Recurly
2
+ # This class represents a request to Recurly.
3
+ # It's used to validate requests data as well as
4
+ # cast and serialize the request data to JSON.
5
+ class Request
6
+ extend Schema::SchemaFactory
7
+ extend Schema::RequestCaster
8
+ extend Schema::ResourceCaster
9
+ include Schema::SchemaValidator
10
+
11
+ attr_reader :attributes
12
+
13
+ def ==(other_resource)
14
+ self.attributes == other_resource.attributes
15
+ end
16
+
17
+ def to_s
18
+ self.inspect
19
+ end
20
+
21
+ protected
22
+
23
+ def initialize(attributes = {})
24
+ @attributes = self.class.cast_request(attributes)
25
+ end
26
+
27
+ def schema
28
+ self.class.schema
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,18 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AccountAcquisitionCost < Request
8
+
9
+ # @!attribute amount
10
+ # @return [Float] The amount of the corresponding currency used to acquire the account.
11
+ define_attribute :amount, Float
12
+
13
+ # @!attribute currency
14
+ # @return [String] 3-letter ISO 4217 currency code.
15
+ define_attribute :currency, String
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AccountAcquisitionUpdate < Request
8
+
9
+ # @!attribute campaign
10
+ # @return [String] An arbitrary identifier for the marketing campaign that led to the acquisition of this account.
11
+ define_attribute :campaign, String
12
+
13
+ # @!attribute channel
14
+ # @return [String] The channel through which the account was acquired.
15
+ define_attribute :channel, String
16
+
17
+ # @!attribute cost
18
+ # @return [AccountAcquisitionCost] Account balance
19
+ define_attribute :cost, :AccountAcquisitionCost
20
+
21
+ # @!attribute subchannel
22
+ # @return [String] An arbitrary subchannel string representing a distinction/subcategory within a broader channel.
23
+ define_attribute :subchannel, String
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,98 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AccountCreate < Request
8
+
9
+ # @!attribute acquisition
10
+ # @return [AccountAcquisitionUpdate]
11
+ define_attribute :acquisition, :AccountAcquisitionUpdate
12
+
13
+ # @!attribute address
14
+ # @return [Address]
15
+ define_attribute :address, :Address
16
+
17
+ # @!attribute bill_to
18
+ # @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
19
+ define_attribute :bill_to, String
20
+
21
+ # @!attribute billing_info
22
+ # @return [BillingInfoCreate]
23
+ define_attribute :billing_info, :BillingInfoCreate
24
+
25
+ # @!attribute cc_emails
26
+ # @return [String] Additional email address that should receive account correspondence. These should be separated only by commas. These CC emails will receive all emails that the `email` field also receives.
27
+ define_attribute :cc_emails, String
28
+
29
+ # @!attribute code
30
+ # @return [String] The unique identifier of the account. This cannot be changed once the account is created.
31
+ define_attribute :code, String
32
+
33
+ # @!attribute company
34
+ # @return [String]
35
+ define_attribute :company, String
36
+
37
+ # @!attribute custom_fields
38
+ # @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
39
+ define_attribute :custom_fields, Array, { :item_type => :CustomField }
40
+
41
+ # @!attribute dunning_campaign_id
42
+ # @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
43
+ define_attribute :dunning_campaign_id, String
44
+
45
+ # @!attribute email
46
+ # @return [String] The email address used for communicating with this customer. The customer will also use this email address to log into your hosted account management pages. This value does not need to be unique.
47
+ define_attribute :email, String
48
+
49
+ # @!attribute exemption_certificate
50
+ # @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
51
+ define_attribute :exemption_certificate, String
52
+
53
+ # @!attribute first_name
54
+ # @return [String]
55
+ define_attribute :first_name, String
56
+
57
+ # @!attribute invoice_template_id
58
+ # @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
59
+ define_attribute :invoice_template_id, String
60
+
61
+ # @!attribute last_name
62
+ # @return [String]
63
+ define_attribute :last_name, String
64
+
65
+ # @!attribute parent_account_code
66
+ # @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
67
+ define_attribute :parent_account_code, String
68
+
69
+ # @!attribute parent_account_id
70
+ # @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
71
+ define_attribute :parent_account_id, String
72
+
73
+ # @!attribute preferred_locale
74
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer. The list of locales is restricted to those the merchant has enabled on the site.
75
+ define_attribute :preferred_locale, String
76
+
77
+ # @!attribute shipping_addresses
78
+ # @return [Array[ShippingAddressCreate]]
79
+ define_attribute :shipping_addresses, Array, { :item_type => :ShippingAddressCreate }
80
+
81
+ # @!attribute tax_exempt
82
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
83
+ define_attribute :tax_exempt, :Boolean
84
+
85
+ # @!attribute transaction_type
86
+ # @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
87
+ define_attribute :transaction_type, String
88
+
89
+ # @!attribute username
90
+ # @return [String] A secondary value for the account.
91
+ define_attribute :username, String
92
+
93
+ # @!attribute vat_number
94
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
95
+ define_attribute :vat_number, String
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,98 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AccountPurchase < Request
8
+
9
+ # @!attribute acquisition
10
+ # @return [AccountAcquisitionUpdate]
11
+ define_attribute :acquisition, :AccountAcquisitionUpdate
12
+
13
+ # @!attribute address
14
+ # @return [Address]
15
+ define_attribute :address, :Address
16
+
17
+ # @!attribute bill_to
18
+ # @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
19
+ define_attribute :bill_to, String
20
+
21
+ # @!attribute billing_info
22
+ # @return [BillingInfoCreate]
23
+ define_attribute :billing_info, :BillingInfoCreate
24
+
25
+ # @!attribute cc_emails
26
+ # @return [String] Additional email address that should receive account correspondence. These should be separated only by commas. These CC emails will receive all emails that the `email` field also receives.
27
+ define_attribute :cc_emails, String
28
+
29
+ # @!attribute code
30
+ # @return [String] The unique identifier of the account. This cannot be changed once the account is created.
31
+ define_attribute :code, String
32
+
33
+ # @!attribute company
34
+ # @return [String]
35
+ define_attribute :company, String
36
+
37
+ # @!attribute custom_fields
38
+ # @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
39
+ define_attribute :custom_fields, Array, { :item_type => :CustomField }
40
+
41
+ # @!attribute dunning_campaign_id
42
+ # @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
43
+ define_attribute :dunning_campaign_id, String
44
+
45
+ # @!attribute email
46
+ # @return [String] The email address used for communicating with this customer. The customer will also use this email address to log into your hosted account management pages. This value does not need to be unique.
47
+ define_attribute :email, String
48
+
49
+ # @!attribute exemption_certificate
50
+ # @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
51
+ define_attribute :exemption_certificate, String
52
+
53
+ # @!attribute first_name
54
+ # @return [String]
55
+ define_attribute :first_name, String
56
+
57
+ # @!attribute id
58
+ # @return [String] Optional, but if present allows an existing account to be used and updated as part of the purchase.
59
+ define_attribute :id, String
60
+
61
+ # @!attribute invoice_template_id
62
+ # @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
63
+ define_attribute :invoice_template_id, String
64
+
65
+ # @!attribute last_name
66
+ # @return [String]
67
+ define_attribute :last_name, String
68
+
69
+ # @!attribute parent_account_code
70
+ # @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
71
+ define_attribute :parent_account_code, String
72
+
73
+ # @!attribute parent_account_id
74
+ # @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
75
+ define_attribute :parent_account_id, String
76
+
77
+ # @!attribute preferred_locale
78
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer. The list of locales is restricted to those the merchant has enabled on the site.
79
+ define_attribute :preferred_locale, String
80
+
81
+ # @!attribute tax_exempt
82
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
83
+ define_attribute :tax_exempt, :Boolean
84
+
85
+ # @!attribute transaction_type
86
+ # @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
87
+ define_attribute :transaction_type, String
88
+
89
+ # @!attribute username
90
+ # @return [String] A secondary value for the account.
91
+ define_attribute :username, String
92
+
93
+ # @!attribute vat_number
94
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
95
+ define_attribute :vat_number, String
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,86 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AccountUpdate < Request
8
+
9
+ # @!attribute address
10
+ # @return [Address]
11
+ define_attribute :address, :Address
12
+
13
+ # @!attribute bill_to
14
+ # @return [String] An enumerable describing the billing behavior of the account, specifically whether the account is self-paying or will rely on the parent account to pay.
15
+ define_attribute :bill_to, String
16
+
17
+ # @!attribute billing_info
18
+ # @return [BillingInfoCreate]
19
+ define_attribute :billing_info, :BillingInfoCreate
20
+
21
+ # @!attribute cc_emails
22
+ # @return [String] Additional email address that should receive account correspondence. These should be separated only by commas. These CC emails will receive all emails that the `email` field also receives.
23
+ define_attribute :cc_emails, String
24
+
25
+ # @!attribute company
26
+ # @return [String]
27
+ define_attribute :company, String
28
+
29
+ # @!attribute custom_fields
30
+ # @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
31
+ define_attribute :custom_fields, Array, { :item_type => :CustomField }
32
+
33
+ # @!attribute dunning_campaign_id
34
+ # @return [String] Unique ID to identify a dunning campaign. Used to specify if a non-default dunning campaign should be assigned to this account. For sites without multiple dunning campaigns enabled, the default dunning campaign will always be used.
35
+ define_attribute :dunning_campaign_id, String
36
+
37
+ # @!attribute email
38
+ # @return [String] The email address used for communicating with this customer. The customer will also use this email address to log into your hosted account management pages. This value does not need to be unique.
39
+ define_attribute :email, String
40
+
41
+ # @!attribute exemption_certificate
42
+ # @return [String] The tax exemption certificate number for the account. If the merchant has an integration for the Vertex tax provider, this optional value will be sent in any tax calculation requests for the account.
43
+ define_attribute :exemption_certificate, String
44
+
45
+ # @!attribute first_name
46
+ # @return [String]
47
+ define_attribute :first_name, String
48
+
49
+ # @!attribute invoice_template_id
50
+ # @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify which invoice template, if any, should be used to generate invoices for the account.
51
+ define_attribute :invoice_template_id, String
52
+
53
+ # @!attribute last_name
54
+ # @return [String]
55
+ define_attribute :last_name, String
56
+
57
+ # @!attribute parent_account_code
58
+ # @return [String] The account code of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
59
+ define_attribute :parent_account_code, String
60
+
61
+ # @!attribute parent_account_id
62
+ # @return [String] The UUID of the parent account to be associated with this account. Passing an empty value removes any existing parent association from this account. If both `parent_account_code` and `parent_account_id` are passed, the non-blank value in `parent_account_id` will be used. Only one level of parent child relationship is allowed. You cannot assign a parent account that itself has a parent account.
63
+ define_attribute :parent_account_id, String
64
+
65
+ # @!attribute preferred_locale
66
+ # @return [String] Used to determine the language and locale of emails sent on behalf of the merchant to the customer. The list of locales is restricted to those the merchant has enabled on the site.
67
+ define_attribute :preferred_locale, String
68
+
69
+ # @!attribute tax_exempt
70
+ # @return [Boolean] The tax status of the account. `true` exempts tax on the account, `false` applies tax on the account.
71
+ define_attribute :tax_exempt, :Boolean
72
+
73
+ # @!attribute transaction_type
74
+ # @return [String] An optional type designation for the payment gateway transaction created by this request. Supports 'moto' value, which is the acronym for mail order and telephone transactions.
75
+ define_attribute :transaction_type, String
76
+
77
+ # @!attribute username
78
+ # @return [String] A secondary value for the account.
79
+ define_attribute :username, String
80
+
81
+ # @!attribute vat_number
82
+ # @return [String] The VAT number of the account (to avoid having the VAT applied). This is only used for manually collected invoices.
83
+ define_attribute :vat_number, String
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,102 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AddOnCreate < Request
8
+
9
+ # @!attribute accounting_code
10
+ # @return [String] Accounting code for invoice line items for this add-on. If no value is provided, it defaults to add-on's code. If `item_code`/`item_id` is part of the request then `accounting_code` must be absent.
11
+ define_attribute :accounting_code, String
12
+
13
+ # @!attribute add_on_type
14
+ # @return [String] Whether the add-on type is fixed, or usage-based.
15
+ define_attribute :add_on_type, String
16
+
17
+ # @!attribute avalara_service_type
18
+ # @return [Integer] Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the add-on is taxed. Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t/s types. If an `Item` is associated to the `AddOn`, then the `avalara_service_type` must be absent.
19
+ define_attribute :avalara_service_type, Integer
20
+
21
+ # @!attribute avalara_transaction_type
22
+ # @return [Integer] Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the add-on is taxed. Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t/s types. If an `Item` is associated to the `AddOn`, then the `avalara_transaction_type` must be absent.
23
+ define_attribute :avalara_transaction_type, Integer
24
+
25
+ # @!attribute code
26
+ # @return [String] The unique identifier for the add-on within its plan. If `item_code`/`item_id` is part of the request then `code` must be absent. If `item_code`/`item_id` is not present `code` is required.
27
+ define_attribute :code, String
28
+
29
+ # @!attribute currencies
30
+ # @return [Array[AddOnPricing]] * If `item_code`/`item_id` is part of the request and the item has a default currency then `currencies` is optional. If the item does not have a default currency, then `currencies` is required. If `item_code`/`item_id` is not present `currencies` is required. * If the add-on's `tier_type` is `tiered`, `volume`, or `stairstep`, then `currencies` must be absent. * Must be absent if `add_on_type` is `usage` and `usage_type` is `percentage`.
31
+ define_attribute :currencies, Array, { :item_type => :AddOnPricing }
32
+
33
+ # @!attribute default_quantity
34
+ # @return [Integer] Default quantity for the hosted pages.
35
+ define_attribute :default_quantity, Integer
36
+
37
+ # @!attribute display_quantity
38
+ # @return [Boolean] Determines if the quantity field is displayed on the hosted pages for the add-on.
39
+ define_attribute :display_quantity, :Boolean
40
+
41
+ # @!attribute item_code
42
+ # @return [String] Unique code to identify an item. Available when the `Credit Invoices` feature are enabled. If `item_id` and `item_code` are both present, `item_id` will be used.
43
+ define_attribute :item_code, String
44
+
45
+ # @!attribute item_id
46
+ # @return [String] System-generated unique identifier for an item. Available when the `Credit Invoices` feature is enabled. If `item_id` and `item_code` are both present, `item_id` will be used.
47
+ define_attribute :item_id, String
48
+
49
+ # @!attribute measured_unit_id
50
+ # @return [String] System-generated unique identifier for a measured unit to be associated with the add-on. Either `measured_unit_id` or `measured_unit_name` are required when `add_on_type` is `usage`. If `measured_unit_id` and `measured_unit_name` are both present, `measured_unit_id` will be used.
51
+ define_attribute :measured_unit_id, String
52
+
53
+ # @!attribute measured_unit_name
54
+ # @return [String] Name of a measured unit to be associated with the add-on. Either `measured_unit_id` or `measured_unit_name` are required when `add_on_type` is `usage`. If `measured_unit_id` and `measured_unit_name` are both present, `measured_unit_id` will be used.
55
+ define_attribute :measured_unit_name, String
56
+
57
+ # @!attribute name
58
+ # @return [String] Describes your add-on and will appear in subscribers' invoices. If `item_code`/`item_id` is part of the request then `name` must be absent. If `item_code`/`item_id` is not present `name` is required.
59
+ define_attribute :name, String
60
+
61
+ # @!attribute optional
62
+ # @return [Boolean] Whether the add-on is optional for the customer to include in their purchase on the hosted payment page. If false, the add-on will be included when a subscription is created through the Recurly UI. However, the add-on will not be included when a subscription is created through the API.
63
+ define_attribute :optional, :Boolean
64
+
65
+ # @!attribute percentage_tiers
66
+ # @return [Array[PercentageTiersByCurrency]] Array of objects which must have at least one set of tiers per currency and the currency code. The tier_type must be `volume` or `tiered`, if not, it must be absent. There must be one tier without an `ending_amount` value which represents the final tier.
67
+ define_attribute :percentage_tiers, Array, { :item_type => :PercentageTiersByCurrency }
68
+
69
+ # @!attribute plan_id
70
+ # @return [String] Plan ID
71
+ define_attribute :plan_id, String
72
+
73
+ # @!attribute revenue_schedule_type
74
+ # @return [String] When this add-on is invoiced, the line item will use this revenue schedule. If `item_code`/`item_id` is part of the request then `revenue_schedule_type` must be absent in the request as the value will be set from the item.
75
+ define_attribute :revenue_schedule_type, String
76
+
77
+ # @!attribute tax_code
78
+ # @return [String] Optional field used by Avalara, Vertex, and Recurly's EU VAT tax feature to determine taxation rules. If you have your own AvaTax or Vertex account configured, use their tax codes to assign specific tax rules. If you are using Recurly's EU VAT feature, you can use values of `unknown`, `physical`, or `digital`. If `item_code`/`item_id` is part of the request then `tax_code` must be absent.
79
+ define_attribute :tax_code, String
80
+
81
+ # @!attribute tier_type
82
+ # @return [String] The pricing model for the add-on. For more information, [click here](https://docs.recurly.com/docs/billing-models#section-quantity-based). See our [Guide](https://developers.recurly.com/guides/item-addon-guide.html) for an overview of how to configure quantity-based pricing models.
83
+ define_attribute :tier_type, String
84
+
85
+ # @!attribute tiers
86
+ # @return [Array[Tier]] If the tier_type is `flat`, then `tiers` must be absent. The `tiers` object must include one to many tiers with `ending_quantity` and `unit_amount` for the desired `currencies`. There must be one tier without an `ending_quantity` value which represents the final tier.
87
+ define_attribute :tiers, Array, { :item_type => :Tier }
88
+
89
+ # @!attribute usage_percentage
90
+ # @return [Float] The percentage taken of the monetary amount of usage tracked. This can be up to 4 decimal places. A value between 0.0 and 100.0. Required if `add_on_type` is usage, `tier_type` is `flat` and `usage_type` is percentage. Must be omitted otherwise.
91
+ define_attribute :usage_percentage, Float
92
+
93
+ # @!attribute usage_timeframe
94
+ # @return [String] The time at which usage totals are reset for billing purposes. Allows for `tiered` add-ons to accumulate usage over the course of multiple billing periods.
95
+ define_attribute :usage_timeframe, String
96
+
97
+ # @!attribute usage_type
98
+ # @return [String] Type of usage, required if `add_on_type` is `usage`. See our [Guide](https://developers.recurly.com/guides/usage-based-billing-guide.html) for an overview of how to configure usage add-ons.
99
+ define_attribute :usage_type, String
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,26 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class AddOnPricing < Request
8
+
9
+ # @!attribute currency
10
+ # @return [String] 3-letter ISO 4217 currency code.
11
+ define_attribute :currency, String
12
+
13
+ # @!attribute tax_inclusive
14
+ # @return [Boolean] This field is deprecated. Please do not use it.
15
+ define_attribute :tax_inclusive, :Boolean
16
+
17
+ # @!attribute unit_amount
18
+ # @return [Float] Allows up to 2 decimal places. Required unless `unit_amount_decimal` is provided.
19
+ define_attribute :unit_amount, Float
20
+
21
+ # @!attribute unit_amount_decimal
22
+ # @return [String] Allows up to 9 decimal places. Only supported when `add_on_type` = `usage`. If `unit_amount_decimal` is provided, `unit_amount` cannot be provided.
23
+ define_attribute :unit_amount_decimal, String
24
+ end
25
+ end
26
+ end