recurly 4.17.0 → 4.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +1 -1
  3. data/.github/workflows/ci.yml +29 -0
  4. data/CHANGELOG.md +33 -0
  5. data/GETTING_STARTED.md +1 -1
  6. data/lib/recurly/client/operations.rb +11 -0
  7. data/lib/recurly/requests/account_create.rb +1 -1
  8. data/lib/recurly/requests/account_purchase.rb +1 -1
  9. data/lib/recurly/requests/account_update.rb +1 -1
  10. data/lib/recurly/requests/add_on_pricing.rb +1 -1
  11. data/lib/recurly/requests/billing_info_create.rb +6 -2
  12. data/lib/recurly/requests/plan_create.rb +8 -0
  13. data/lib/recurly/requests/plan_pricing.rb +2 -2
  14. data/lib/recurly/requests/plan_ramp_interval.rb +18 -0
  15. data/lib/recurly/requests/plan_ramp_pricing.rb +18 -0
  16. data/lib/recurly/requests/plan_update.rb +5 -1
  17. data/lib/recurly/requests/pricing.rb +1 -1
  18. data/lib/recurly/requests/subscription_change_create.rb +5 -1
  19. data/lib/recurly/requests/subscription_create.rb +4 -0
  20. data/lib/recurly/requests/subscription_purchase.rb +4 -0
  21. data/lib/recurly/requests/subscription_ramp_interval.rb +18 -0
  22. data/lib/recurly/requests/subscription_update.rb +1 -1
  23. data/lib/recurly/resources/account.rb +1 -1
  24. data/lib/recurly/resources/account_balance_amount.rb +4 -0
  25. data/lib/recurly/resources/add_on_pricing.rb +1 -1
  26. data/lib/recurly/resources/line_item.rb +4 -0
  27. data/lib/recurly/resources/payment_method.rb +4 -0
  28. data/lib/recurly/resources/plan.rb +8 -0
  29. data/lib/recurly/resources/plan_pricing.rb +2 -2
  30. data/lib/recurly/resources/plan_ramp_interval.rb +18 -0
  31. data/lib/recurly/resources/plan_ramp_pricing.rb +18 -0
  32. data/lib/recurly/resources/pricing.rb +1 -1
  33. data/lib/recurly/resources/subscription.rb +8 -0
  34. data/lib/recurly/resources/subscription_change.rb +5 -1
  35. data/lib/recurly/resources/subscription_ramp_interval_response.rb +22 -0
  36. data/lib/recurly/version.rb +1 -1
  37. data/openapi/api.yaml +258 -26
  38. metadata +10 -4
  39. data/.travis.yml +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 775c79b2119f5cd5d0af758f12c69dcc910edaab7ec10ecfd64731e3b253289f
4
- data.tar.gz: 5b360704165933f10980f95032b0b0b4f4527a5a54a1574f9a9f9e3941f5dae7
3
+ metadata.gz: ddbe10a46c49fe38816f13bd6c15dd1c3b99bd941c18c06ba235ab6b3644a377
4
+ data.tar.gz: 1822d5c3bed83c12b5e463cc403e680dd8daa6b5ae776102327697358c8bfde7
5
5
  SHA512:
6
- metadata.gz: eea5fd6d0c0d00b80f2e53facf0df10d18b5ece821ef4fab32ee71946f0934728bf51efa4ebc6fab2c767d0806ad0a4815881db00d8710a79940802cb27a5a0c
7
- data.tar.gz: 32b6c5cde7dd5d318a76c97db54bdac39e507a4799f9c6b5e68dd0d909b7508e81442c44d0c5f7100d147639800ade61e15a4f0f5949c5be1ab3d6cad4e65e85
6
+ metadata.gz: 146925248479fdd7c7027982427da8eed0570220ed095c4346e95dfb5391d005d4b1386b8635fe592318eca4162935b486d796479762687ad4450827c46a2ba6
7
+ data.tar.gz: a5f2f54921c83dc8e0590e4c18c2053a838cd532f86d1bcb545586c26bb894b0a22d7a2116fd9db87f671cf76d6114e337146f54ebeacf42632986fbbc65fbb6
data/.bumpversion.cfg CHANGED
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 4.17.0
2
+ current_version = 4.20.0
3
3
  parse = (?P<major>\d+)
4
4
  \.(?P<minor>\d+)
5
5
  \.(?P<patch>\d+)
@@ -0,0 +1,29 @@
1
+ name: CI
2
+ on: [push]
3
+ concurrency:
4
+ group: ${{ github.ref }}
5
+ cancel-in-progress: true
6
+ jobs:
7
+ build:
8
+ runs-on: ubuntu-latest
9
+ name: Ruby ${{ matrix.ruby }} tests
10
+ strategy:
11
+ matrix:
12
+ ruby: [2.4, 2.5, 2.6, 2.7, 3.0]
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - name: Setup ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: ${{ matrix.ruby }}
19
+ - run: ./scripts/build
20
+ - run: ./scripts/test
21
+ buildall:
22
+ if: ${{ always() }}
23
+ runs-on: ubuntu-latest
24
+ name: Build (matrix)
25
+ needs: build
26
+ steps:
27
+ - name: Check build matrix status
28
+ if: ${{ needs.build.result != 'success' }}
29
+ run: exit 1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.20.0](https://github.com/recurly/recurly-client-ruby/tree/4.20.0) (2022-08-03)
4
+
5
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.19.0...4.20.0)
6
+
7
+
8
+ **Merged Pull Requests**
9
+
10
+ - Generated Latest Changes for v2021-02-25 [#783](https://github.com/recurly/recurly-client-ruby/pull/783) ([recurly-integrations](https://github.com/recurly-integrations))
11
+
12
+
13
+
14
+ ## [4.19.0](https://github.com/recurly/recurly-client-ruby/tree/4.19.0) (2022-07-11)
15
+
16
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.18.0...4.19.0)
17
+
18
+
19
+ **Merged Pull Requests**
20
+
21
+ - Generated Latest Changes for v2021-02-25 [#778](https://github.com/recurly/recurly-client-ruby/pull/778) ([recurly-integrations](https://github.com/recurly-integrations))
22
+
23
+
24
+
25
+ ## [4.18.0](https://github.com/recurly/recurly-client-ruby/tree/4.18.0) (2022-06-16)
26
+
27
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.17.0...4.18.0)
28
+
29
+
30
+ **Merged Pull Requests**
31
+
32
+ - Generated Latest Changes for v2021-02-25 [#776](https://github.com/recurly/recurly-client-ruby/pull/776) ([recurly-integrations](https://github.com/recurly-integrations))
33
+
34
+
35
+
3
36
  ## [4.17.0](https://github.com/recurly/recurly-client-ruby/tree/4.17.0) (2022-04-15)
4
37
 
5
38
  [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.16.0...4.17.0)
data/GETTING_STARTED.md CHANGED
@@ -5,7 +5,7 @@ This repository houses the official ruby client for Recurly's V3 API.
5
5
  In your Gemfile, add `recurly` as a dependency.
6
6
 
7
7
  ```ruby
8
- gem 'recurly', '~> 4.17'
8
+ gem 'recurly', '~> 4.20'
9
9
  ```
10
10
 
11
11
  > *Note*: We try to follow [semantic versioning](https://semver.org/) and will only apply breaking changes to major versions.
@@ -3351,6 +3351,17 @@ module Recurly
3351
3351
  # @param params [Hash] Optional query string parameters:
3352
3352
  #
3353
3353
  # @return [Resources::InvoiceCollection] A preview of the subscription's renewal invoice(s).
3354
+ # @example
3355
+ # begin
3356
+ # invoice_collection = @client.get_preview_renewal(
3357
+ # subscription_id: subscription_id
3358
+ # )
3359
+ # puts "Fetched Renewal Preview with total: #{invoice_collection.charge_invoice.total}"
3360
+ # rescue Recurly::Errors::NotFoundError
3361
+ # # If the resource was not found, you may want to alert the user or
3362
+ # # just return nil
3363
+ # puts "Resource Not Found"
3364
+ # end
3354
3365
  #
3355
3366
  def get_preview_renewal(subscription_id:, **options)
3356
3367
  path = interpolate_path("/subscriptions/{subscription_id}/preview_renewal", subscription_id: subscription_id)
@@ -55,7 +55,7 @@ module Recurly
55
55
  define_attribute :first_name, String
56
56
 
57
57
  # @!attribute invoice_template_id
58
- # @return [String] Unique ID to identify an invoice template. Available when the Invoice Customization feature is enabled. Used to specify which invoice template, if any, should be used to generate invoices for the account.
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
59
  define_attribute :invoice_template_id, String
60
60
 
61
61
  # @!attribute last_name
@@ -59,7 +59,7 @@ module Recurly
59
59
  define_attribute :id, String
60
60
 
61
61
  # @!attribute invoice_template_id
62
- # @return [String] Unique ID to identify an invoice template. Available when the Invoice Customization feature is enabled. Used to specify which invoice template, if any, should be used to generate invoices for the account.
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
63
  define_attribute :invoice_template_id, String
64
64
 
65
65
  # @!attribute last_name
@@ -47,7 +47,7 @@ module Recurly
47
47
  define_attribute :first_name, String
48
48
 
49
49
  # @!attribute invoice_template_id
50
- # @return [String] Unique ID to identify an invoice template. Available when the Invoice Customization feature is enabled. Used to specify which invoice template, if any, should be used to generate invoices for the account.
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
51
  define_attribute :invoice_template_id, String
52
52
 
53
53
  # @!attribute last_name
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :currency, String
12
12
 
13
13
  # @!attribute tax_inclusive
14
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
14
+ # @return [Boolean] This field is deprecated. Please do not use it.
15
15
  define_attribute :tax_inclusive, :Boolean
16
16
 
17
17
  # @!attribute unit_amount
@@ -26,6 +26,10 @@ module Recurly
26
26
  # @return [Boolean] The `backup_payment_method` field is used to designate a billing info as a backup on the account that will be tried if the initial billing info used for an invoice is declined. All payment methods, including the billing info marked `primary_payment_method` can be set as a backup. An account can have a maximum of 1 backup, if a user sets a different payment method as a backup, the existing backup will no longer be marked as such.
27
27
  define_attribute :backup_payment_method, :Boolean
28
28
 
29
+ # @!attribute card_type
30
+ # @return [String]
31
+ define_attribute :card_type, String
32
+
29
33
  # @!attribute company
30
34
  # @return [String] Company name
31
35
  define_attribute :company, String
@@ -99,11 +103,11 @@ module Recurly
99
103
  define_attribute :sort_code, String
100
104
 
101
105
  # @!attribute tax_identifier
102
- # @return [String] Tax identifier is required if adding a billing info that is a consumer card in Brazil or in Argentina. This would be the customer's CPF (Brazil) and CUIT (Argentina). CPF and CUIT are tax identifiers for all residents who pay taxes in Brazil and Argentina respectively.
106
+ # @return [String] Tax identifier is required if adding a billing info that is a consumer card in Brazil or in Argentina. This would be the customer's CPF/CNPJ (Brazil) and CUIT (Argentina). CPF, CNPJ and CUIT are tax identifiers for all residents who pay taxes in Brazil and Argentina respectively.
103
107
  define_attribute :tax_identifier, String
104
108
 
105
109
  # @!attribute tax_identifier_type
106
- # @return [String] This field and a value of `cpf` or `cuit` are required if adding a billing info that is an elo or hipercard type in Brazil or in Argentina.
110
+ # @return [String] This field and a value of `cpf`, `cnpj` or `cuit` are required if adding a billing info that is an elo or hipercard type in Brazil or in Argentina.
107
111
  define_attribute :tax_identifier_type, String
108
112
 
109
113
  # @!attribute three_d_secure_action_result_token_id
@@ -62,6 +62,14 @@ module Recurly
62
62
  # @return [String] This name describes your plan and will appear on the Hosted Payment Page and the subscriber's invoice.
63
63
  define_attribute :name, String
64
64
 
65
+ # @!attribute pricing_model
66
+ # @return [String] A fixed pricing model has the same price for each billing period. A ramp pricing model defines a set of Ramp Intervals, where a subscription changes price on a specified cadence of billing periods. The price change could be an increase or decrease.
67
+ define_attribute :pricing_model, String
68
+
69
+ # @!attribute ramp_intervals
70
+ # @return [Array[PlanRampInterval]] Ramp Intervals
71
+ define_attribute :ramp_intervals, Array, { :item_type => :PlanRampInterval }
72
+
65
73
  # @!attribute revenue_schedule_type
66
74
  # @return [String] Revenue schedule type
67
75
  define_attribute :revenue_schedule_type, String
@@ -15,11 +15,11 @@ module Recurly
15
15
  define_attribute :setup_fee, Float
16
16
 
17
17
  # @!attribute tax_inclusive
18
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
18
+ # @return [Boolean] This field is deprecated. Please do not use it.
19
19
  define_attribute :tax_inclusive, :Boolean
20
20
 
21
21
  # @!attribute unit_amount
22
- # @return [Float] Unit price
22
+ # @return [Float] This field should not be sent when the pricing model is 'ramp'.
23
23
  define_attribute :unit_amount, Float
24
24
  end
25
25
  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 PlanRampInterval < Request
8
+
9
+ # @!attribute currencies
10
+ # @return [Array[PlanRampPricing]] Represents the price for the ramp interval.
11
+ define_attribute :currencies, Array, { :item_type => :PlanRampPricing }
12
+
13
+ # @!attribute starting_billing_cycle
14
+ # @return [Integer] Represents the first billing cycle of a ramp.
15
+ define_attribute :starting_billing_cycle, Integer
16
+ end
17
+ end
18
+ 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 PlanRampPricing < Request
8
+
9
+ # @!attribute currency
10
+ # @return [String] 3-letter ISO 4217 currency code.
11
+ define_attribute :currency, String
12
+
13
+ # @!attribute unit_amount
14
+ # @return [Float] Represents the price for the Ramp Interval.
15
+ define_attribute :unit_amount, Float
16
+ end
17
+ end
18
+ end
@@ -31,7 +31,7 @@ module Recurly
31
31
  define_attribute :code, String
32
32
 
33
33
  # @!attribute currencies
34
- # @return [Array[PlanPricing]] Pricing
34
+ # @return [Array[PlanPricing]] Optional when the pricing model is 'ramp'.
35
35
  define_attribute :currencies, Array, { :item_type => :PlanPricing }
36
36
 
37
37
  # @!attribute description
@@ -54,6 +54,10 @@ module Recurly
54
54
  # @return [String] This name describes your plan and will appear on the Hosted Payment Page and the subscriber's invoice.
55
55
  define_attribute :name, String
56
56
 
57
+ # @!attribute ramp_intervals
58
+ # @return [Array[PlanRampInterval]] Ramp Intervals
59
+ define_attribute :ramp_intervals, Array, { :item_type => :PlanRampInterval }
60
+
57
61
  # @!attribute revenue_schedule_type
58
62
  # @return [String] Revenue schedule type
59
63
  define_attribute :revenue_schedule_type, String
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :currency, String
12
12
 
13
13
  # @!attribute tax_inclusive
14
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
14
+ # @return [Boolean] This field is deprecated. Please do not use it.
15
15
  define_attribute :tax_inclusive, :Boolean
16
16
 
17
17
  # @!attribute unit_amount
@@ -46,6 +46,10 @@ module Recurly
46
46
  # @return [Integer] Optionally override the default quantity of 1.
47
47
  define_attribute :quantity, Integer
48
48
 
49
+ # @!attribute ramp_intervals
50
+ # @return [Array[SubscriptionRampInterval]] The new set of ramp intervals for the subscription.
51
+ define_attribute :ramp_intervals, Array, { :item_type => :SubscriptionRampInterval }
52
+
49
53
  # @!attribute revenue_schedule_type
50
54
  # @return [String] Revenue schedule type
51
55
  define_attribute :revenue_schedule_type, String
@@ -55,7 +59,7 @@ module Recurly
55
59
  define_attribute :shipping, :SubscriptionChangeShippingCreate
56
60
 
57
61
  # @!attribute tax_inclusive
58
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
62
+ # @return [Boolean] This field is deprecated. Please do not use it.
59
63
  define_attribute :tax_inclusive, :Boolean
60
64
 
61
65
  # @!attribute timeframe
@@ -70,6 +70,10 @@ module Recurly
70
70
  # @return [Integer] Optionally override the default quantity of 1.
71
71
  define_attribute :quantity, Integer
72
72
 
73
+ # @!attribute ramp_intervals
74
+ # @return [Array[SubscriptionRampInterval]] The new set of ramp intervals for the subscription.
75
+ define_attribute :ramp_intervals, Array, { :item_type => :SubscriptionRampInterval }
76
+
73
77
  # @!attribute renewal_billing_cycles
74
78
  # @return [Integer] If `auto_renew=true`, when a term completes, `total_billing_cycles` takes this value as the length of subsequent terms. Defaults to the plan's `total_billing_cycles`.
75
79
  define_attribute :renewal_billing_cycles, Integer
@@ -34,6 +34,10 @@ module Recurly
34
34
  # @return [Integer] Optionally override the default quantity of 1.
35
35
  define_attribute :quantity, Integer
36
36
 
37
+ # @!attribute ramp_intervals
38
+ # @return [Array[SubscriptionRampInterval]] The new set of ramp intervals for the subscription.
39
+ define_attribute :ramp_intervals, Array, { :item_type => :SubscriptionRampInterval }
40
+
37
41
  # @!attribute renewal_billing_cycles
38
42
  # @return [Integer] If `auto_renew=true`, when a term completes, `total_billing_cycles` takes this value as the length of subsequent terms. Defaults to the plan's `total_billing_cycles`.
39
43
  define_attribute :renewal_billing_cycles, Integer
@@ -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 SubscriptionRampInterval < Request
8
+
9
+ # @!attribute starting_billing_cycle
10
+ # @return [Integer] Represents how many billing cycles are included in a ramp interval.
11
+ define_attribute :starting_billing_cycle, Integer
12
+
13
+ # @!attribute unit_amount
14
+ # @return [Integer] Represents the price for the ramp interval.
15
+ define_attribute :unit_amount, Integer
16
+ end
17
+ end
18
+ end
@@ -59,7 +59,7 @@ module Recurly
59
59
  define_attribute :shipping, :SubscriptionShippingUpdate
60
60
 
61
61
  # @!attribute tax_inclusive
62
- # @return [Boolean] This field is deprecated. Do not use it anymore to update a subscription's tax inclusivity. Use the POST subscription change route instead.
62
+ # @return [Boolean] This field is deprecated. Please do not use it.
63
63
  define_attribute :tax_inclusive, :Boolean
64
64
 
65
65
  # @!attribute terms_and_conditions
@@ -91,7 +91,7 @@ module Recurly
91
91
  define_attribute :id, String
92
92
 
93
93
  # @!attribute invoice_template_id
94
- # @return [String] Unique ID to identify an invoice template. Available when the Invoice Customization feature is enabled. Used to specify if a non-default invoice template will be used to generate invoices for the account. For sites without multiple invoice templates enabled, the default template will always be used.
94
+ # @return [String] Unique ID to identify an invoice template. Available when the site is on a Pro or Enterprise plan. Used to specify if a non-default invoice template will be used to generate invoices for the account. For sites without multiple invoice templates enabled, the default template will always be used.
95
95
  define_attribute :invoice_template_id, String
96
96
 
97
97
  # @!attribute last_name
@@ -13,6 +13,10 @@ module Recurly
13
13
  # @!attribute currency
14
14
  # @return [String] 3-letter ISO 4217 currency code.
15
15
  define_attribute :currency, String
16
+
17
+ # @!attribute processing_prepayment_amount
18
+ # @return [Float] Total amount for the prepayment credit invoices in a `processing` state on the account.
19
+ define_attribute :processing_prepayment_amount, Float
16
20
  end
17
21
  end
18
22
  end
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :currency, String
12
12
 
13
13
  # @!attribute tax_inclusive
14
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
14
+ # @return [Boolean] This field is deprecated. Please do not use it.
15
15
  define_attribute :tax_inclusive, :Boolean
16
16
 
17
17
  # @!attribute unit_amount
@@ -174,6 +174,10 @@ module Recurly
174
174
  # @return [Boolean] `true` exempts tax on charges, `false` applies tax on charges. If not defined, then defaults to the Plan and Site settings. This attribute does not work for credits (negative line items). Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
175
175
  define_attribute :tax_exempt, :Boolean
176
176
 
177
+ # @!attribute tax_inclusive
178
+ # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to utilize this flag.
179
+ define_attribute :tax_inclusive, :Boolean
180
+
177
181
  # @!attribute tax_info
178
182
  # @return [TaxInfo] Tax info
179
183
  define_attribute :tax_info, :TaxInfo
@@ -65,6 +65,10 @@ module Recurly
65
65
  # @!attribute routing_number_bank
66
66
  # @return [String] The bank name of this routing number.
67
67
  define_attribute :routing_number_bank, String
68
+
69
+ # @!attribute username
70
+ # @return [String] Username of the associated payment method. Currently only associated with Venmo.
71
+ define_attribute :username, String
68
72
  end
69
73
  end
70
74
  end
@@ -74,6 +74,14 @@ module Recurly
74
74
  # @return [String] Object type
75
75
  define_attribute :object, String
76
76
 
77
+ # @!attribute pricing_model
78
+ # @return [String] A fixed pricing model has the same price for each billing period. A ramp pricing model defines a set of Ramp Intervals, where a subscription changes price on a specified cadence of billing periods. The price change could be an increase or decrease.
79
+ define_attribute :pricing_model, String
80
+
81
+ # @!attribute ramp_intervals
82
+ # @return [Array[PlanRampInterval]] Ramp Intervals
83
+ define_attribute :ramp_intervals, Array, { :item_type => :PlanRampInterval }
84
+
77
85
  # @!attribute revenue_schedule_type
78
86
  # @return [String] Revenue schedule type
79
87
  define_attribute :revenue_schedule_type, String
@@ -15,11 +15,11 @@ module Recurly
15
15
  define_attribute :setup_fee, Float
16
16
 
17
17
  # @!attribute tax_inclusive
18
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
18
+ # @return [Boolean] This field is deprecated. Please do not use it.
19
19
  define_attribute :tax_inclusive, :Boolean
20
20
 
21
21
  # @!attribute unit_amount
22
- # @return [Float] Unit price
22
+ # @return [Float] This field should not be sent when the pricing model is 'ramp'.
23
23
  define_attribute :unit_amount, Float
24
24
  end
25
25
  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 Resources
7
+ class PlanRampInterval < Resource
8
+
9
+ # @!attribute currencies
10
+ # @return [Array[PlanRampPricing]] Represents the price for the ramp interval.
11
+ define_attribute :currencies, Array, { :item_type => :PlanRampPricing }
12
+
13
+ # @!attribute starting_billing_cycle
14
+ # @return [Integer] Represents the first billing cycle of a ramp.
15
+ define_attribute :starting_billing_cycle, Integer
16
+ end
17
+ end
18
+ 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 Resources
7
+ class PlanRampPricing < Resource
8
+
9
+ # @!attribute currency
10
+ # @return [String] 3-letter ISO 4217 currency code.
11
+ define_attribute :currency, String
12
+
13
+ # @!attribute unit_amount
14
+ # @return [Float] Represents the price for the Ramp Interval.
15
+ define_attribute :unit_amount, Float
16
+ end
17
+ end
18
+ end
@@ -11,7 +11,7 @@ module Recurly
11
11
  define_attribute :currency, String
12
12
 
13
13
  # @!attribute tax_inclusive
14
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
14
+ # @return [Boolean] This field is deprecated. Please do not use it.
15
15
  define_attribute :tax_inclusive, :Boolean
16
16
 
17
17
  # @!attribute unit_amount
@@ -126,6 +126,10 @@ module Recurly
126
126
  # @return [Integer] Subscription quantity
127
127
  define_attribute :quantity, Integer
128
128
 
129
+ # @!attribute ramp_intervals
130
+ # @return [Array[SubscriptionRampIntervalResponse]] The ramp intervals representing the pricing schedule for the subscription.
131
+ define_attribute :ramp_intervals, Array, { :item_type => :SubscriptionRampIntervalResponse }
132
+
129
133
  # @!attribute remaining_billing_cycles
130
134
  # @return [Integer] The remaining billing cycles in the current term.
131
135
  define_attribute :remaining_billing_cycles, Integer
@@ -158,6 +162,10 @@ module Recurly
158
162
  # @return [Float] Estimated tax
159
163
  define_attribute :tax, Float
160
164
 
165
+ # @!attribute tax_inclusive
166
+ # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to utilize this flag.
167
+ define_attribute :tax_inclusive, :Boolean
168
+
161
169
  # @!attribute tax_info
162
170
  # @return [TaxInfo] Tax info
163
171
  define_attribute :tax_info, :TaxInfo
@@ -54,6 +54,10 @@ module Recurly
54
54
  # @return [Integer] Subscription quantity
55
55
  define_attribute :quantity, Integer
56
56
 
57
+ # @!attribute ramp_intervals
58
+ # @return [Array[SubscriptionRampIntervalResponse]] The ramp intervals representing the pricing schedule for the subscription.
59
+ define_attribute :ramp_intervals, Array, { :item_type => :SubscriptionRampIntervalResponse }
60
+
57
61
  # @!attribute revenue_schedule_type
58
62
  # @return [String] Revenue schedule type
59
63
  define_attribute :revenue_schedule_type, String
@@ -67,7 +71,7 @@ module Recurly
67
71
  define_attribute :subscription_id, String
68
72
 
69
73
  # @!attribute tax_inclusive
70
- # @return [Boolean] Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to use this flag.
74
+ # @return [Boolean] This field is deprecated. Please do not use it.
71
75
  define_attribute :tax_inclusive, :Boolean
72
76
 
73
77
  # @!attribute unit_amount
@@ -0,0 +1,22 @@
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 Resources
7
+ class SubscriptionRampIntervalResponse < Resource
8
+
9
+ # @!attribute remaining_billing_cycles
10
+ # @return [Integer] Represents how many billing cycles are left in a ramp interval.
11
+ define_attribute :remaining_billing_cycles, Integer
12
+
13
+ # @!attribute starting_billing_cycle
14
+ # @return [Integer] Represents how many billing cycles are included in a ramp interval.
15
+ define_attribute :starting_billing_cycle, Integer
16
+
17
+ # @!attribute unit_amount
18
+ # @return [Integer] Represents the price for the ramp interval.
19
+ define_attribute :unit_amount, Integer
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module Recurly
2
- VERSION = "4.17.0"
2
+ VERSION = "4.20.0"
3
3
  end
data/openapi/api.yaml CHANGED
@@ -12519,7 +12519,97 @@ paths:
12519
12519
  application/json:
12520
12520
  schema:
12521
12521
  "$ref": "#/components/schemas/Error"
12522
- x-code-samples: []
12522
+ x-code-samples:
12523
+ - lang: Node.js
12524
+ source: |
12525
+ try {
12526
+ const invoiceCollection = await client.getPreviewRenewal(subscriptionId)
12527
+ console.log('Fetched Renewal Preview with total: ', invoiceCollection.chargeInvoice.total)
12528
+ } catch (err) {
12529
+ if (err instanceof recurly.errors.NotFoundError) {
12530
+ // If the request was not found, you may want to alert the user or
12531
+ // just return null
12532
+ console.log('Resource Not Found')
12533
+ } else {
12534
+ // If we don't know what to do with the err, we should
12535
+ // probably re-raise and let our web framework and logger handle it
12536
+ console.log('Unknown Error: ', err)
12537
+ }
12538
+ }
12539
+ - lang: Python
12540
+ source: |
12541
+ try:
12542
+ invoice_collection = client.get_preview_renewal(subscription_id)
12543
+ print("Fetched Renewal Preview with total: %s" % invoice_collection.charge_invoice.total)
12544
+ except recurly.errors.NotFoundError:
12545
+ # If the resource was not found, you may want to alert the user or
12546
+ # just return nil
12547
+ print("Resource Not Found")
12548
+ - lang: ".NET"
12549
+ source: |
12550
+ try
12551
+ {
12552
+ InvoiceCollection invoiceCollection = client.GetPreviewRenewal(subscriptionId);
12553
+ Console.WriteLine($"Fetched Renewal Preview with total {invoiceCollection.ChargeInvoice.Total}");
12554
+ }
12555
+ catch (Recurly.Errors.NotFound ex)
12556
+ {
12557
+ // If the resource was not found
12558
+ // we may want to alert the user or just return null
12559
+ Console.WriteLine($"Resource Not Found: {ex.Error.Message}");
12560
+ }
12561
+ catch (Recurly.Errors.ApiError ex)
12562
+ {
12563
+ // Use ApiError to catch a generic error from the API
12564
+ Console.WriteLine($"Unexpected Recurly Error: {ex.Error.Message}");
12565
+ }
12566
+ - lang: Ruby
12567
+ source: |
12568
+ begin
12569
+ invoice_collection = @client.get_preview_renewal(
12570
+ subscription_id: subscription_id
12571
+ )
12572
+ puts "Fetched Renewal Preview with total: #{invoice_collection.charge_invoice.total}"
12573
+ rescue Recurly::Errors::NotFoundError
12574
+ # If the resource was not found, you may want to alert the user or
12575
+ # just return nil
12576
+ puts "Resource Not Found"
12577
+ end
12578
+ - lang: Java
12579
+ source: |
12580
+ try {
12581
+ final InvoiceCollection invoiceCollection = client.getPreviewRenewal(subscriptionId);
12582
+ System.out.println("Fetched Renewal Preview with total: " + invoiceCollection.getChargeInvoice().getTotal());
12583
+ } catch (ValidationException e) {
12584
+ // If the request was not valid, you may want to tell your user
12585
+ // why. You can find the invalid params and reasons in e.getError().getParams()
12586
+ System.out.println("Failed validation: " + e.getError().getMessage());
12587
+ } catch (ApiException e) {
12588
+ // Use ApiException to catch a generic error from the API
12589
+ System.out.println("Unexpected Recurly Error: " + e.getError().getMessage());
12590
+ }
12591
+ - lang: PHP
12592
+ source: |
12593
+ try {
12594
+ $invoiceCollection = $client->getPreviewRenewal($subscription_id);
12595
+
12596
+ echo 'Fetched Renewal Preview with total: ' . $invoiceCollection->getChargeInvoice()->getTotal() . PHP_EOL;
12597
+ var_dump($invoiceCollection);
12598
+ } catch (\Recurly\Errors\NotFound $e) {
12599
+ // Could not find the resource, you may want to inform the user
12600
+ // or just return a NULL
12601
+ echo 'Could not find resource.' . PHP_EOL;
12602
+ var_dump($e);
12603
+ } catch (\Recurly\RecurlyError $e) {
12604
+ // Something bad happened... tell the user so that they can fix it?
12605
+ echo 'Some unexpected Recurly error happened. Try again later.' . PHP_EOL;
12606
+ }
12607
+ - lang: Go
12608
+ source: "invoiceCollection, err := client.GetPreviewRenewal(subID)\nif e,
12609
+ ok := err.(*recurly.Error); ok {\n\tif e.Type == recurly.ErrorTypeNotFound
12610
+ {\n\t\tfmt.Printf(\"Resource not found: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
12611
+ Recurly error: %v\", e)\n\treturn nil, err\n}\nfmt.Printf(\"Fetched Renewal
12612
+ Preview with total: %f\", invoiceCollection.ChargeInvoice.Total)"
12523
12613
  "/subscriptions/{subscription_id}/change":
12524
12614
  get:
12525
12615
  tags:
@@ -15852,7 +15942,7 @@ components:
15852
15942
  type: string
15853
15943
  title: Invoice Template ID
15854
15944
  description: Unique ID to identify an invoice template. Available when
15855
- the Invoice Customization feature is enabled. Used to specify which invoice
15945
+ the site is on a Pro or Enterprise plan. Used to specify which invoice
15856
15946
  template, if any, should be used to generate invoices for the account.
15857
15947
  address:
15858
15948
  "$ref": "#/components/schemas/Address"
@@ -15935,7 +16025,7 @@ components:
15935
16025
  type: string
15936
16026
  title: Invoice Template ID
15937
16027
  description: Unique ID to identify an invoice template. Available when the
15938
- Invoice Customization feature is enabled. Used to specify if a non-default
16028
+ site is on a Pro or Enterprise plan. Used to specify if a non-default
15939
16029
  invoice template will be used to generate invoices for the account. For
15940
16030
  sites without multiple invoice templates enabled, the default template
15941
16031
  will always be used.
@@ -16040,6 +16130,12 @@ components:
16040
16130
  format: float
16041
16131
  title: Amount
16042
16132
  description: Total amount the account is past due.
16133
+ processing_prepayment_amount:
16134
+ type: number
16135
+ format: float
16136
+ title: Amount
16137
+ description: Total amount for the prepayment credit invoices in a `processing`
16138
+ state on the account.
16043
16139
  InvoiceAddress:
16044
16140
  allOf:
16045
16141
  - "$ref": "#/components/schemas/Address"
@@ -16805,11 +16901,12 @@ components:
16805
16901
  type: string
16806
16902
  description: Tax identifier is required if adding a billing info that is
16807
16903
  a consumer card in Brazil or in Argentina. This would be the customer's
16808
- CPF (Brazil) and CUIT (Argentina). CPF and CUIT are tax identifiers for
16809
- all residents who pay taxes in Brazil and Argentina respectively.
16904
+ CPF/CNPJ (Brazil) and CUIT (Argentina). CPF, CNPJ and CUIT are tax identifiers
16905
+ for all residents who pay taxes in Brazil and Argentina respectively.
16810
16906
  tax_identifier_type:
16811
- description: This field and a value of `cpf` or `cuit` are required if adding
16812
- a billing info that is an elo or hipercard type in Brazil or in Argentina.
16907
+ description: This field and a value of `cpf`, `cnpj` or `cuit` are required
16908
+ if adding a billing info that is an elo or hipercard type in Brazil or
16909
+ in Argentina.
16813
16910
  "$ref": "#/components/schemas/TaxIdentifierTypeEnum"
16814
16911
  primary_payment_method:
16815
16912
  type: boolean
@@ -16834,6 +16931,8 @@ components:
16834
16931
  "$ref": "#/components/schemas/ExternalHppTypeEnum"
16835
16932
  online_banking_payment_type:
16836
16933
  "$ref": "#/components/schemas/OnlineBankingPaymentTypeEnum"
16934
+ card_type:
16935
+ "$ref": "#/components/schemas/CardTypeEnum"
16837
16936
  BillingInfoVerify:
16838
16937
  type: object
16839
16938
  properties:
@@ -17436,7 +17535,7 @@ components:
17436
17535
  title: Field value
17437
17536
  description: Any values that resemble a credit card number or security code
17438
17537
  (CVV/CVC) will be rejected.
17439
- maxLength: 100
17538
+ maxLength: 255
17440
17539
  required:
17441
17540
  - name
17442
17541
  - value
@@ -18483,6 +18582,12 @@ components:
18483
18582
  type: string
18484
18583
  title: Unit amount decimal
18485
18584
  description: Positive amount for a charge, negative amount for a credit.
18585
+ tax_inclusive:
18586
+ type: boolean
18587
+ title: Tax Inclusive?
18588
+ description: Determines whether or not tax is included in the unit amount.
18589
+ The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
18590
+ feature) must be enabled to utilize this flag.
18486
18591
  subtotal:
18487
18592
  type: number
18488
18593
  format: float
@@ -18854,6 +18959,14 @@ components:
18854
18959
  renew its term at renewal. If `auto_renew` is `false`, then a subscription
18855
18960
  will expire at the end of its term. `auto_renew` can be overridden on
18856
18961
  the subscription record itself.
18962
+ pricing_model:
18963
+ title: Pricing Model
18964
+ "$ref": "#/components/schemas/PricingModelTypeEnum"
18965
+ ramp_intervals:
18966
+ type: array
18967
+ title: Ramp Intervals
18968
+ items:
18969
+ "$ref": "#/components/schemas/PlanRampInterval"
18857
18970
  revenue_schedule_type:
18858
18971
  title: Revenue schedule type
18859
18972
  "$ref": "#/components/schemas/RevenueScheduleTypeEnum"
@@ -19016,6 +19129,14 @@ components:
19016
19129
  renew its term at renewal. If `auto_renew` is `false`, then a subscription
19017
19130
  will expire at the end of its term. `auto_renew` can be overridden on
19018
19131
  the subscription record itself.
19132
+ pricing_model:
19133
+ title: Pricing Model
19134
+ "$ref": "#/components/schemas/PricingModelTypeEnum"
19135
+ ramp_intervals:
19136
+ type: array
19137
+ title: Ramp Intervals
19138
+ items:
19139
+ "$ref": "#/components/schemas/PlanRampInterval"
19019
19140
  revenue_schedule_type:
19020
19141
  title: Revenue schedule type
19021
19142
  "$ref": "#/components/schemas/RevenueScheduleTypeEnum"
@@ -19137,15 +19258,28 @@ components:
19137
19258
  type: number
19138
19259
  format: float
19139
19260
  title: Unit price
19261
+ description: This field should not be sent when the pricing model is 'ramp'.
19140
19262
  minimum: 0
19141
19263
  maximum: 1000000
19142
19264
  tax_inclusive:
19143
19265
  type: boolean
19144
19266
  title: Tax Inclusive?
19145
19267
  default: false
19146
- description: Determines whether or not tax is included in the unit amount.
19147
- The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
19148
- feature) must be enabled to use this flag.
19268
+ description: This field is deprecated. Please do not use it.
19269
+ deprecated: true
19270
+ PlanRampInterval:
19271
+ type: object
19272
+ title: Plan Ramp Interval
19273
+ properties:
19274
+ starting_billing_cycle:
19275
+ type: integer
19276
+ description: Represents the first billing cycle of a ramp.
19277
+ default: 1
19278
+ currencies:
19279
+ type: array
19280
+ description: Represents the price for the ramp interval.
19281
+ items:
19282
+ "$ref": "#/components/schemas/PlanRampPricing"
19149
19283
  PlanUpdate:
19150
19284
  type: object
19151
19285
  properties:
@@ -19212,6 +19346,11 @@ components:
19212
19346
  renew its term at renewal. If `auto_renew` is `false`, then a subscription
19213
19347
  will expire at the end of its term. `auto_renew` can be overridden on
19214
19348
  the subscription record itself.
19349
+ ramp_intervals:
19350
+ type: array
19351
+ title: Ramp Intervals
19352
+ items:
19353
+ "$ref": "#/components/schemas/PlanRampInterval"
19215
19354
  revenue_schedule_type:
19216
19355
  title: Revenue schedule type
19217
19356
  "$ref": "#/components/schemas/RevenueScheduleTypeEnum"
@@ -19258,6 +19397,7 @@ components:
19258
19397
  currencies:
19259
19398
  type: array
19260
19399
  title: Pricing
19400
+ description: Optional when the pricing model is 'ramp'.
19261
19401
  items:
19262
19402
  "$ref": "#/components/schemas/PlanPricing"
19263
19403
  minItems: 1
@@ -19307,9 +19447,8 @@ components:
19307
19447
  type: boolean
19308
19448
  title: Tax Inclusive?
19309
19449
  default: false
19310
- description: Determines whether or not tax is included in the unit amount.
19311
- The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
19312
- feature) must be enabled to use this flag.
19450
+ description: This field is deprecated. Please do not use it.
19451
+ deprecated: true
19313
19452
  required:
19314
19453
  - currency
19315
19454
  TierPricing:
@@ -19338,6 +19477,24 @@ components:
19338
19477
  If `unit_amount_decimal` is provided, `unit_amount` cannot be provided.
19339
19478
  required:
19340
19479
  - currency
19480
+ PlanRampPricing:
19481
+ type: object
19482
+ properties:
19483
+ currency:
19484
+ type: string
19485
+ title: Currency
19486
+ description: 3-letter ISO 4217 currency code.
19487
+ maxLength: 3
19488
+ unit_amount:
19489
+ type: number
19490
+ format: float
19491
+ title: Unit price
19492
+ description: Represents the price for the Ramp Interval.
19493
+ minimum: 0
19494
+ maximum: 1000000
19495
+ required:
19496
+ - currency
19497
+ - unit_amount
19341
19498
  Pricing:
19342
19499
  type: object
19343
19500
  properties:
@@ -19356,9 +19513,8 @@ components:
19356
19513
  type: boolean
19357
19514
  title: Tax Inclusive?
19358
19515
  default: false
19359
- description: Determines whether or not tax is included in the unit amount.
19360
- The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
19361
- feature) must be enabled to use this flag.
19516
+ description: This field is deprecated. Please do not use it.
19517
+ deprecated: true
19362
19518
  required:
19363
19519
  - currency
19364
19520
  - unit_amount
@@ -19942,6 +20098,13 @@ components:
19942
20098
  default: true
19943
20099
  title: Auto renew
19944
20100
  description: Whether the subscription renews at the end of its term.
20101
+ ramp_intervals:
20102
+ type: array
20103
+ title: Ramp Intervals
20104
+ description: The ramp intervals representing the pricing schedule for the
20105
+ subscription.
20106
+ items:
20107
+ "$ref": "#/components/schemas/SubscriptionRampIntervalResponse"
19945
20108
  paused_at:
19946
20109
  type: string
19947
20110
  format: date-time
@@ -19965,6 +20128,12 @@ components:
19965
20128
  type: number
19966
20129
  format: float
19967
20130
  title: Subscription unit price
20131
+ tax_inclusive:
20132
+ type: boolean
20133
+ title: Tax Inclusive?
20134
+ description: Determines whether or not tax is included in the unit amount.
20135
+ The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
20136
+ feature) must be enabled to utilize this flag.
19968
20137
  quantity:
19969
20138
  type: integer
19970
20139
  title: Subscription quantity
@@ -20397,9 +20566,8 @@ components:
20397
20566
  type: boolean
20398
20567
  title: Tax Inclusive?
20399
20568
  default: false
20400
- description: Determines whether or not tax is included in the unit amount.
20401
- The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
20402
- feature) must be enabled to use this flag.
20569
+ description: This field is deprecated. Please do not use it.
20570
+ deprecated: true
20403
20571
  quantity:
20404
20572
  type: integer
20405
20573
  title: Subscription quantity
@@ -20439,6 +20607,13 @@ components:
20439
20607
  readOnly: true
20440
20608
  billing_info:
20441
20609
  "$ref": "#/components/schemas/SubscriptionChangeBillingInfo"
20610
+ ramp_intervals:
20611
+ type: array
20612
+ title: Ramp Intervals
20613
+ description: The ramp intervals representing the pricing schedule for the
20614
+ subscription.
20615
+ items:
20616
+ "$ref": "#/components/schemas/SubscriptionRampIntervalResponse"
20442
20617
  SubscriptionChangeBillingInfo:
20443
20618
  type: object
20444
20619
  description: Accept nested attributes for three_d_secure_action_result_token_id
@@ -20491,9 +20666,8 @@ components:
20491
20666
  type: boolean
20492
20667
  title: Tax Inclusive?
20493
20668
  default: false
20494
- description: Determines whether or not tax is included in the unit amount.
20495
- The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing
20496
- feature) must be enabled to use this flag.
20669
+ description: This field is deprecated. Please do not use it.
20670
+ deprecated: true
20497
20671
  quantity:
20498
20672
  type: integer
20499
20673
  title: Quantity
@@ -20565,6 +20739,12 @@ components:
20565
20739
  "$ref": "#/components/schemas/GatewayTransactionTypeEnum"
20566
20740
  billing_info:
20567
20741
  "$ref": "#/components/schemas/SubscriptionChangeBillingInfoCreate"
20742
+ ramp_intervals:
20743
+ type: array
20744
+ title: Ramp Intervals
20745
+ description: The new set of ramp intervals for the subscription.
20746
+ items:
20747
+ "$ref": "#/components/schemas/SubscriptionRampInterval"
20568
20748
  SubscriptionChangeShippingCreate:
20569
20749
  type: object
20570
20750
  title: Shipping details that will be changed on a subscription
@@ -20719,6 +20899,12 @@ components:
20719
20899
  default: true
20720
20900
  title: Auto renew
20721
20901
  description: Whether the subscription renews at the end of its term.
20902
+ ramp_intervals:
20903
+ type: array
20904
+ title: Ramp Intervals
20905
+ description: The new set of ramp intervals for the subscription.
20906
+ items:
20907
+ "$ref": "#/components/schemas/SubscriptionRampInterval"
20722
20908
  revenue_schedule_type:
20723
20909
  title: Revenue schedule type
20724
20910
  "$ref": "#/components/schemas/RevenueScheduleTypeEnum"
@@ -20858,6 +21044,12 @@ components:
20858
21044
  revenue_schedule_type:
20859
21045
  title: Revenue schedule type
20860
21046
  "$ref": "#/components/schemas/RevenueScheduleTypeEnum"
21047
+ ramp_intervals:
21048
+ type: array
21049
+ title: Ramp Intervals
21050
+ description: The new set of ramp intervals for the subscription.
21051
+ items:
21052
+ "$ref": "#/components/schemas/SubscriptionRampInterval"
20861
21053
  required:
20862
21054
  - plan_code
20863
21055
  SubscriptionUpdate:
@@ -20932,9 +21124,7 @@ components:
20932
21124
  type: boolean
20933
21125
  title: Tax Inclusive?
20934
21126
  default: false
20935
- description: This field is deprecated. Do not use it anymore to update a
20936
- subscription's tax inclusivity. Use the POST subscription change route
20937
- instead.
21127
+ description: This field is deprecated. Please do not use it.
20938
21128
  deprecated: true
20939
21129
  shipping:
20940
21130
  "$ref": "#/components/schemas/SubscriptionShippingUpdate"
@@ -21041,6 +21231,30 @@ components:
21041
21231
  format: float
21042
21232
  title: Assigns the subscription's shipping cost. If this is greater than
21043
21233
  zero then a `method_id` or `method_code` is required.
21234
+ SubscriptionRampInterval:
21235
+ type: object
21236
+ title: Subscription Ramp Interval
21237
+ properties:
21238
+ starting_billing_cycle:
21239
+ type: integer
21240
+ description: Represents how many billing cycles are included in a ramp interval.
21241
+ default: 1
21242
+ unit_amount:
21243
+ type: integer
21244
+ description: Represents the price for the ramp interval.
21245
+ SubscriptionRampIntervalResponse:
21246
+ type: object
21247
+ title: Subscription Ramp Interval
21248
+ properties:
21249
+ starting_billing_cycle:
21250
+ type: integer
21251
+ description: Represents how many billing cycles are included in a ramp interval.
21252
+ remaining_billing_cycles:
21253
+ type: integer
21254
+ description: Represents how many billing cycles are left in a ramp interval.
21255
+ unit_amount:
21256
+ type: integer
21257
+ description: Represents the price for the ramp interval.
21044
21258
  TaxInfo:
21045
21259
  type: object
21046
21260
  title: Tax info
@@ -21894,6 +22108,10 @@ components:
21894
22108
  routing_number_bank:
21895
22109
  type: string
21896
22110
  description: The bank name of this routing number.
22111
+ username:
22112
+ type: string
22113
+ description: Username of the associated payment method. Currently only associated
22114
+ with Venmo.
21897
22115
  Error:
21898
22116
  type: object
21899
22117
  properties:
@@ -22074,11 +22292,13 @@ components:
22074
22292
  - ko-KR
22075
22293
  - nl-BE
22076
22294
  - nl-NL
22295
+ - pl-PL
22077
22296
  - pt-BR
22078
22297
  - pt-PT
22079
22298
  - ro-RO
22080
22299
  - ru-RU
22081
22300
  - sk-SK
22301
+ - sv-SE
22082
22302
  - tr-TR
22083
22303
  - zh-CN
22084
22304
  BillToEnum:
@@ -22221,6 +22441,16 @@ components:
22221
22441
  - api_only
22222
22442
  - read_only
22223
22443
  - write
22444
+ PricingModelTypeEnum:
22445
+ type: string
22446
+ enum:
22447
+ - fixed
22448
+ - ramp
22449
+ default: fixed
22450
+ description: |
22451
+ A fixed pricing model has the same price for each billing period.
22452
+ A ramp pricing model defines a set of Ramp Intervals, where a subscription changes price on
22453
+ a specified cadence of billing periods. The price change could be an increase or decrease.
22224
22454
  RevenueScheduleTypeEnum:
22225
22455
  type: string
22226
22456
  enum:
@@ -22488,6 +22718,7 @@ components:
22488
22718
  - paypal_billing_agreement
22489
22719
  - roku
22490
22720
  - sepadirectdebit
22721
+ - venmo
22491
22722
  - wire_transfer
22492
22723
  - braintree_v_zero
22493
22724
  CardTypeEnum:
@@ -22752,6 +22983,7 @@ components:
22752
22983
  type: string
22753
22984
  enum:
22754
22985
  - cpf
22986
+ - cnpj
22755
22987
  - cuit
22756
22988
  DunningCycleTypeEnum:
22757
22989
  type: string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recurly
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.17.0
4
+ version: 4.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recurly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-15 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -119,10 +119,10 @@ files:
119
119
  - ".changelog_config.yaml"
120
120
  - ".github/ISSUE_TEMPLATE/bug-report.md"
121
121
  - ".github/ISSUE_TEMPLATE/question-or-other.md"
122
+ - ".github/workflows/ci.yml"
122
123
  - ".github/workflows/docs.yml"
123
124
  - ".gitignore"
124
125
  - ".rspec"
125
- - ".travis.yml"
126
126
  - ".yardopts"
127
127
  - CHANGELOG.md
128
128
  - CODE_OF_CONDUCT.md
@@ -181,6 +181,8 @@ files:
181
181
  - lib/recurly/requests/plan_create.rb
182
182
  - lib/recurly/requests/plan_hosted_pages.rb
183
183
  - lib/recurly/requests/plan_pricing.rb
184
+ - lib/recurly/requests/plan_ramp_interval.rb
185
+ - lib/recurly/requests/plan_ramp_pricing.rb
184
186
  - lib/recurly/requests/plan_update.rb
185
187
  - lib/recurly/requests/pricing.rb
186
188
  - lib/recurly/requests/purchase_create.rb
@@ -201,6 +203,7 @@ files:
201
203
  - lib/recurly/requests/subscription_create.rb
202
204
  - lib/recurly/requests/subscription_pause.rb
203
205
  - lib/recurly/requests/subscription_purchase.rb
206
+ - lib/recurly/requests/subscription_ramp_interval.rb
204
207
  - lib/recurly/requests/subscription_shipping_create.rb
205
208
  - lib/recurly/requests/subscription_shipping_purchase.rb
206
209
  - lib/recurly/requests/subscription_shipping_update.rb
@@ -261,6 +264,8 @@ files:
261
264
  - lib/recurly/resources/plan_hosted_pages.rb
262
265
  - lib/recurly/resources/plan_mini.rb
263
266
  - lib/recurly/resources/plan_pricing.rb
267
+ - lib/recurly/resources/plan_ramp_interval.rb
268
+ - lib/recurly/resources/plan_ramp_pricing.rb
264
269
  - lib/recurly/resources/pricing.rb
265
270
  - lib/recurly/resources/settings.rb
266
271
  - lib/recurly/resources/shipping_address.rb
@@ -273,6 +278,7 @@ files:
273
278
  - lib/recurly/resources/subscription_add_on_tier.rb
274
279
  - lib/recurly/resources/subscription_change.rb
275
280
  - lib/recurly/resources/subscription_change_billing_info.rb
281
+ - lib/recurly/resources/subscription_ramp_interval_response.rb
276
282
  - lib/recurly/resources/subscription_shipping.rb
277
283
  - lib/recurly/resources/tax_detail.rb
278
284
  - lib/recurly/resources/tax_info.rb
@@ -309,7 +315,7 @@ metadata:
309
315
  changelog_uri: https://github.com/recurly/recurly-client-ruby/blob/master/CHANGELOG.md
310
316
  documentation_uri: https://recurly.github.io/recurly-client-ruby/
311
317
  homepage_uri: https://github.com/recurly/recurly-client-ruby
312
- source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.17.0
318
+ source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.20.0
313
319
  post_install_message:
314
320
  rdoc_options: []
315
321
  require_paths:
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4
5
- - 2.5
6
- - 2.6
7
- - 2.7
8
- - 3.0
9
- bundler_args: --binstubs
10
- before_install:
11
- - sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates -y && sudo update-ca-certificates
12
- - gem update --system
13
- - gem install bundler
14
- dist: focal
15
- script:
16
- - ./scripts/test