recurly 3.29.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +1 -1
  3. data/.github/workflows/docs.yml +2 -2
  4. data/.github_changelog_generator +8 -0
  5. data/.travis.yml +13 -0
  6. data/CHANGELOG.md +202 -391
  7. data/CONTRIBUTING.md +0 -4
  8. data/GETTING_STARTED.md +20 -17
  9. data/README.md +0 -3
  10. data/lib/data/ca-certificates.crt +40 -0
  11. data/lib/recurly/client/operations.rb +815 -748
  12. data/lib/recurly/client.rb +44 -28
  13. data/lib/recurly/errors/api_errors.rb +33 -1
  14. data/lib/recurly/errors.rb +5 -23
  15. data/lib/recurly/pager.rb +5 -15
  16. data/lib/recurly/requests/{account_acquisition_updatable.rb → account_acquisition_update.rb} +1 -1
  17. data/lib/recurly/requests/account_create.rb +2 -14
  18. data/lib/recurly/requests/account_purchase.rb +2 -14
  19. data/lib/recurly/requests/account_update.rb +0 -12
  20. data/lib/recurly/requests/add_on_create.rb +5 -5
  21. data/lib/recurly/requests/add_on_pricing.rb +5 -5
  22. data/lib/recurly/requests/add_on_update.rb +3 -3
  23. data/lib/recurly/requests/address.rb +1 -13
  24. data/lib/recurly/requests/billing_info_create.rb +4 -52
  25. data/lib/recurly/requests/coupon_create.rb +1 -1
  26. data/lib/recurly/requests/custom_field.rb +0 -8
  27. data/lib/recurly/requests/external_transaction.rb +1 -1
  28. data/lib/recurly/requests/invoice_address.rb +1 -5
  29. data/lib/recurly/requests/invoice_collect.rb +1 -1
  30. data/lib/recurly/requests/invoice_create.rb +1 -9
  31. data/lib/recurly/requests/{invoice_updatable.rb → invoice_update.rb} +1 -1
  32. data/lib/recurly/requests/item_create.rb +1 -1
  33. data/lib/recurly/requests/item_update.rb +1 -1
  34. data/lib/recurly/requests/line_item_create.rb +3 -15
  35. data/lib/recurly/requests/line_item_refund.rb +0 -4
  36. data/lib/recurly/requests/plan_create.rb +1 -17
  37. data/lib/recurly/requests/plan_pricing.rb +1 -5
  38. data/lib/recurly/requests/plan_update.rb +1 -13
  39. data/lib/recurly/requests/pricing.rb +0 -4
  40. data/lib/recurly/requests/purchase_create.rb +1 -9
  41. data/lib/recurly/requests/shipping_address_create.rb +1 -5
  42. data/lib/recurly/requests/shipping_address_update.rb +1 -5
  43. data/lib/recurly/requests/subscription_add_on_create.rb +8 -4
  44. data/lib/recurly/requests/subscription_add_on_tier.rb +5 -1
  45. data/lib/recurly/requests/subscription_add_on_update.rb +6 -2
  46. data/lib/recurly/requests/subscription_change_create.rb +1 -13
  47. data/lib/recurly/requests/subscription_create.rb +6 -26
  48. data/lib/recurly/requests/subscription_pause.rb +1 -1
  49. data/lib/recurly/requests/subscription_purchase.rb +3 -31
  50. data/lib/recurly/requests/subscription_update.rb +1 -13
  51. data/lib/recurly/requests/tier.rb +2 -2
  52. data/lib/recurly/requests/{plan_ramp_pricing.rb → tier_pricing.rb} +6 -2
  53. data/lib/recurly/requests/usage_create.rb +1 -1
  54. data/lib/recurly/resources/account.rb +0 -12
  55. data/lib/recurly/resources/account_balance_amount.rb +0 -8
  56. data/lib/recurly/resources/account_mini.rb +0 -4
  57. data/lib/recurly/resources/add_on.rb +2 -2
  58. data/lib/recurly/resources/add_on_pricing.rb +5 -5
  59. data/lib/recurly/resources/address.rb +1 -13
  60. data/lib/recurly/resources/address_with_name.rb +46 -0
  61. data/lib/recurly/resources/billing_info.rb +1 -5
  62. data/lib/recurly/resources/billing_info_updated_by.rb +1 -1
  63. data/lib/recurly/resources/coupon.rb +5 -17
  64. data/lib/recurly/resources/custom_field.rb +0 -8
  65. data/lib/recurly/resources/custom_field_definition.rb +1 -1
  66. data/lib/recurly/resources/invoice.rb +8 -20
  67. data/lib/recurly/resources/invoice_address.rb +1 -5
  68. data/lib/recurly/resources/item.rb +1 -1
  69. data/lib/recurly/resources/line_item.rb +9 -29
  70. data/lib/recurly/resources/payment_method.rb +0 -12
  71. data/lib/recurly/resources/plan.rb +2 -18
  72. data/lib/recurly/resources/plan_pricing.rb +1 -5
  73. data/lib/recurly/resources/pricing.rb +0 -4
  74. data/lib/recurly/resources/shipping_address.rb +1 -5
  75. data/lib/recurly/resources/subscription.rb +0 -20
  76. data/lib/recurly/resources/subscription_add_on.rb +6 -2
  77. data/lib/recurly/resources/subscription_add_on_tier.rb +5 -1
  78. data/lib/recurly/resources/subscription_change.rb +0 -16
  79. data/lib/recurly/resources/tax_info.rb +3 -7
  80. data/lib/recurly/resources/tier.rb +2 -2
  81. data/lib/recurly/resources/{plan_ramp_pricing.rb → tier_pricing.rb} +6 -2
  82. data/lib/recurly/resources/transaction.rb +3 -7
  83. data/lib/recurly/resources/unique_coupon_code_params.rb +26 -0
  84. data/lib/recurly/resources/usage.rb +6 -2
  85. data/lib/recurly/version.rb +1 -1
  86. data/openapi/api.yaml +2308 -13819
  87. data/scripts/build +2 -2
  88. data/scripts/bump +11 -0
  89. data/scripts/changelog +14 -0
  90. data/scripts/format +2 -2
  91. data/scripts/prepare-release +29 -43
  92. data/scripts/release +20 -5
  93. metadata +14 -33
  94. data/.changelog_config.yaml +0 -11
  95. data/.github/workflows/ci.yml +0 -29
  96. data/.github/workflows/pr-review.yml +0 -27
  97. data/CODE_OF_CONDUCT.md +0 -130
  98. data/lib/recurly/errors/network_errors.rb +0 -10
  99. data/lib/recurly/requests/billing_info_verify.rb +0 -18
  100. data/lib/recurly/requests/billing_info_verify_cvv.rb +0 -26
  101. data/lib/recurly/requests/credit_application_policy.rb +0 -18
  102. data/lib/recurly/requests/dunning_campaigns_bulk_update.rb +0 -18
  103. data/lib/recurly/requests/gateway_attributes.rb +0 -14
  104. data/lib/recurly/requests/plan_ramp_interval.rb +0 -18
  105. data/lib/recurly/requests/subscription_change_billing_info_create.rb +0 -14
  106. data/lib/recurly/requests/subscription_ramp_interval.rb +0 -18
  107. data/lib/recurly/resources/credit_application_policy.rb +0 -18
  108. data/lib/recurly/resources/dunning_campaign.rb +0 -50
  109. data/lib/recurly/resources/dunning_campaigns_bulk_update_response.rb +0 -18
  110. data/lib/recurly/resources/dunning_cycle.rb +0 -58
  111. data/lib/recurly/resources/dunning_interval.rb +0 -18
  112. data/lib/recurly/resources/gateway_attributes.rb +0 -14
  113. data/lib/recurly/resources/line_item_list.rb +0 -26
  114. data/lib/recurly/resources/plan_ramp_interval.rb +0 -18
  115. data/lib/recurly/resources/subscription_change_billing_info.rb +0 -14
  116. data/lib/recurly/resources/subscription_change_preview.rb +0 -90
  117. data/lib/recurly/resources/subscription_ramp_interval_response.rb +0 -30
  118. data/lib/recurly/resources/tax_detail.rb +0 -38
data/CONTRIBUTING.md CHANGED
@@ -7,10 +7,6 @@ however, we may not get to these right away. Although we try to be quick, our pr
7
7
  writing code. If you want a timely response (especially if you have an emergency), we recommend
8
8
  you contact our [official support team](https://support.recurly.com/).
9
9
 
10
- ## Code of Conduct
11
-
12
- Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
13
-
14
10
  #### Table Of Contents
15
11
 
16
12
  * [I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
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', '~> 3.29'
8
+ gem 'recurly', '~> 4.0'
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.
@@ -106,17 +106,19 @@ plans.each_page.each_with_index do |data, page_num|
106
106
  end
107
107
  ```
108
108
 
109
- Pagination endpoints take a number of options to sort and filter the results. They can be passed in as keyword arguments.
109
+ Pagination endpoints take a number of options to sort and filter the results. They can be passed in as a hash provided by the `:params` keyword argument.
110
110
  The names, types, and descriptions of these arguments are listed in the rubydocs for each method:
111
111
 
112
112
  ```ruby
113
113
  options = {
114
- limit: 200, # number of items per page
115
- state: :active, # only active plans
116
- sort: :updated_at,
117
- order: :asc,
118
- begin_time: DateTime.new(2017,1,1), # January 1st 2017,
119
- end_time: DateTime.now
114
+ params: {
115
+ limit: 200, # number of items per page
116
+ state: :active, # only active plans
117
+ sort: :updated_at,
118
+ order: :asc,
119
+ begin_time: DateTime.new(2017,1,1), # January 1st 2017,
120
+ end_time: DateTime.now
121
+ }
120
122
  }
121
123
 
122
124
  plans = client.list_plans(**options)
@@ -200,12 +202,11 @@ plan = client.create_plan(body: plan_data)
200
202
 
201
203
  # Error Handling
202
204
 
203
- This library currently throws 2 types of exceptions. {Recurly::Errors::APIError} and {Recurly::Errors::NetworkError}. See these 2 files for the types of exceptions you can catch:
205
+ All errors thrown by this library are based off of the `Recurly::Errors::APIError`. There
204
206
 
205
- 1. [API Errors](./lib/recurly/errors/api_errors.rb)
206
- 2. [Network Errors](./lib/recurly/errors/network_errors.rb)
207
+ This library throws one main type of exception, `Recurly::Errors::APIError`. There exists an additional hierarchy of errors to facilitate the process of rescuing various classes of errors. More detail can be found in the [Api Errors Module](./lib/recurly/errors/api_errors.rb).
207
208
 
208
- You will normally be working with {Recurly::Errors::APIError}. You can catch specific or generic versions of these exceptions. Example:
209
+ You can catch specific or generic versions of these exceptions. Example:
209
210
 
210
211
  ```ruby
211
212
  begin
@@ -233,15 +234,17 @@ rescue Recurly::Errors::ValidationError => ex
233
234
  #=> #<Recurly::Error:0x007fbbdf8a32c8 @attributes={:type=>"validation", :message=>"Code 'iexistalready' already exists", :params=>[{"param"=>"code", "message"=>"'iexistalready' already exists"}]}>
234
235
  puts ex.status_code
235
236
  #=> 422
237
+ rescue Recurly::Errors::TimeoutError => ex
238
+ # catch a specific server error
239
+ rescue Recurly::Errors::ServerError => ex
240
+ # catch a generic server error
236
241
  rescue Recurly::Errors::APIError => ex
237
242
  # catch a generic api error
238
- rescue Recurly::Errors::TimeoutError => ex
239
- # catch a specific network error
240
- rescue Recurly::Errors::NetworkError => ex
241
- # catch a generic network error
242
243
  end
243
244
  ```
244
245
 
246
+ `Recurly::Errors::APIError` instances provide access to the response via the `#get_response` method.
247
+
245
248
  # HTTP Metadata
246
249
 
247
250
  Sometimes you might want to get some additional information about the underlying HTTP request and response. Instead of
@@ -266,7 +269,7 @@ response = @client.remove_line_item(
266
269
  line_item_id: "a959576b2b10b012"
267
270
  ).get_response
268
271
  ```
269
- And it can be captured on exceptions through the {Recurly::ApiError} object:
272
+ And it can be captured on exceptions through the {Recurly::APIError} object:
270
273
 
271
274
  ```ruby
272
275
  begin
data/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
  # Recurly
2
2
 
3
- [![Rubygems](https://img.shields.io/static/v1?label=rubygems&message=recurly&color=purple)](https://rubygems.org/gems/recurly)
4
- [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
5
-
6
3
  This repository houses the official ruby client for Recurly's V3 API.
7
4
 
8
5
  > *Note*:
@@ -261,6 +261,30 @@ gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
261
261
  X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
262
262
  -----END CERTIFICATE-----
263
263
 
264
+ Comodo AAA Services root
265
+ ========================
266
+ -----BEGIN CERTIFICATE-----
267
+ MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
268
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
269
+ TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
270
+ MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
271
+ c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
272
+ BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
273
+ ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
274
+ C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
275
+ i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
276
+ Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
277
+ Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
278
+ Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
279
+ BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
280
+ cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
281
+ LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
282
+ 7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
283
+ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
284
+ 8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
285
+ 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
286
+ -----END CERTIFICATE-----
287
+
264
288
  QuoVadis Root CA
265
289
  ================
266
290
  -----BEGIN CERTIFICATE-----
@@ -3323,6 +3347,22 @@ U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx
3323
3347
  iN66zB+Afko=
3324
3348
  -----END CERTIFICATE-----
3325
3349
 
3350
+ emSign ECC Root CA - G3
3351
+ =======================
3352
+ -----BEGIN CERTIFICATE-----
3353
+ MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG
3354
+ A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg
3355
+ MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4
3356
+ MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11
3357
+ ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
3358
+ RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc
3359
+ 58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr
3360
+ MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC
3361
+ AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D
3362
+ CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7
3363
+ jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj
3364
+ -----END CERTIFICATE-----
3365
+
3326
3366
  emSign Root CA - C1
3327
3367
  ===================
3328
3368
  -----BEGIN CERTIFICATE-----