recurly 3.0.0.beta.2 → 3.0.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +1 -1
  4. data/lib/recurly/client.rb +39 -37
  5. data/lib/recurly/client/adapter.rb +46 -0
  6. data/lib/recurly/client/operations.rb +626 -170
  7. data/lib/recurly/errors.rb +1 -1
  8. data/lib/recurly/requests/{create_account.rb → account_create.rb} +5 -1
  9. data/lib/recurly/requests/{account_updatable.rb → account_update.rb} +5 -1
  10. data/lib/recurly/requests/add_on_create.rb +2 -2
  11. data/lib/recurly/requests/add_on_update.rb +2 -2
  12. data/lib/recurly/requests/coupon_bulk_create.rb +10 -0
  13. data/lib/recurly/requests/{create_coupon.rb → coupon_create.rb} +3 -3
  14. data/lib/recurly/requests/coupon_redemption_create.rb +14 -0
  15. data/lib/recurly/requests/{update_coupon.rb → coupon_update.rb} +1 -1
  16. data/lib/recurly/requests/invoice_refund.rb +2 -2
  17. data/lib/recurly/requests/line_item_refund.rb +18 -0
  18. data/lib/recurly/requests/plan_create.rb +8 -4
  19. data/lib/recurly/requests/plan_update.rb +8 -12
  20. data/lib/recurly/requests/subscription_add_on_create.rb +0 -4
  21. data/lib/recurly/requests/subscription_create.rb +21 -9
  22. data/lib/recurly/requests/subscription_pause.rb +10 -0
  23. data/lib/recurly/requests/subscription_update.rb +16 -4
  24. data/lib/recurly/resources/account.rb +4 -0
  25. data/lib/recurly/resources/account_acquisition.rb +2 -2
  26. data/lib/recurly/resources/account_balance.rb +2 -2
  27. data/lib/recurly/resources/add_on.rb +2 -2
  28. data/lib/recurly/resources/coupon.rb +2 -2
  29. data/lib/recurly/resources/coupon_discount.rb +2 -2
  30. data/lib/recurly/resources/coupon_redemption_mini.rb +2 -2
  31. data/lib/recurly/resources/credit_payment.rb +6 -6
  32. data/lib/recurly/resources/custom_field.rb +14 -0
  33. data/lib/recurly/resources/custom_field_definition.rb +46 -0
  34. data/lib/recurly/resources/error.rb +2 -2
  35. data/lib/recurly/resources/error_may_have_transaction.rb +2 -2
  36. data/lib/recurly/resources/invoice.rb +4 -4
  37. data/lib/recurly/resources/line_item.rb +3 -3
  38. data/lib/recurly/resources/line_item_list.rb +22 -0
  39. data/lib/recurly/resources/plan.rb +6 -2
  40. data/lib/recurly/resources/subscription.rb +37 -5
  41. data/lib/recurly/resources/subscription_add_on.rb +2 -2
  42. data/lib/recurly/resources/subscription_change.rb +2 -2
  43. data/lib/recurly/resources/transaction.rb +6 -6
  44. data/lib/recurly/version.rb +1 -1
  45. data/recurly.gemspec +1 -0
  46. metadata +28 -21
  47. data/bin/bundle +0 -105
  48. data/bin/coderay +0 -29
  49. data/bin/console +0 -14
  50. data/bin/htmldiff +0 -29
  51. data/bin/ldiff +0 -29
  52. data/bin/pry +0 -29
  53. data/bin/rake +0 -29
  54. data/bin/rspec +0 -29
  55. data/bin/setup +0 -8
  56. data/bin/yard +0 -29
  57. data/bin/yardoc +0 -29
  58. data/bin/yri +0 -29
  59. data/lib/recurly/requests/account_create_only.rb +0 -18
  60. data/lib/recurly/requests/coupon_create_only.rb +0 -66
  61. data/lib/recurly/requests/coupon_updatable.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2eff2defc3b440056f3a6fde80b0d8a7f2ec6e514e317666fe28f9f0d7f7a10b
4
- data.tar.gz: 540a0e4f98a3a366974e650471e93e4fc70e2e54f2c9004905a6633cc066c4fc
3
+ metadata.gz: c06a13da0a4a02efc0494087590ad6e050b7c21ee0e3539dc85184e7136f2444
4
+ data.tar.gz: aad797e4c85cfa7e8388755d86fc443b27b187169d65f4db225d73c26a9da6c0
5
5
  SHA512:
6
- metadata.gz: 503ebf6c95d9195f90fc221d1ff125d99626c5608648a913f8480c02c57a9229141cedd86004394db94fa1fe69f2549b740934d91eca85d5da86d666cec51d1d
7
- data.tar.gz: d77e6d6c319e9a16007f470300f4358be1048673c9783cf92b06347043c0db1609c2f2eb0c6d991a7f2856749be3f15407595e6d0d39796f26522c3fa4fcd2d8
6
+ metadata.gz: ed00a71ff9a370d9ad98fdda0c224bd6c273b69bfd543d1e5f2b40c5aee9d69b79fc1c6a8fe965d4727615d4c06a61291767961659d88567f5ee8e8153c11beb
7
+ data.tar.gz: 44a44276941e20c12c0998db7b73fb195eaea121be054a6b978a9f3a22cdbef04bf0e9bf5373b1db78cb75f128fec697112907ee0daff2187d7bc5db2b442ee9
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  /.yardoc
3
3
  /Gemfile.lock
4
4
  /_yardoc/
5
+ /bin/
5
6
  /coverage/
6
7
  /doc/
7
8
  /pkg/
data/README.md CHANGED
@@ -15,7 +15,7 @@ This contains everything in the README as well as code-level documentation. We s
15
15
  This gem is a pre-release. In your Gemfile, add `recurly` as a dependency.
16
16
 
17
17
  ```ruby
18
- gem 'recurly', '3.0.0.beta.1'
18
+ gem 'recurly', '3.0.0.beta.3'
19
19
  ```
20
20
 
21
21
  It's important that you lock on a specific version as there may be breaking changes between releases.
@@ -1,6 +1,7 @@
1
1
  require 'faraday'
2
2
  require 'logger'
3
3
  require_relative './schema/json_parser'
4
+ require_relative './client/adapter'
4
5
 
5
6
  module Recurly
6
7
  class Client
@@ -42,58 +43,30 @@ module Recurly
42
43
  # # Give a `site_id`
43
44
  # client = Recurly::Client.new(api_key: API_KEY, site_id: SITE_ID)
44
45
  # # Or use the subdomain
45
- # client = Recurly::Client.new(api_key: API_KEY, subdomain: 'mysite-dev')
46
+ # client = Recurly::Client.new(api_key: API_KEY, subdomain: 'mysite-dev')
46
47
  #
47
48
  # sub = client.get_subscription(subscription_id: 'abcd123456')
48
49
  #
49
50
  # # you should create a new client to connect to another site
50
- # client = Recurly::Client.new(api_key: API_KEY, subdomain: 'mysite-prod')
51
+ # client = Recurly::Client.new(api_key: API_KEY, subdomain: 'mysite-prod')
51
52
  # sub = client.get_subscription(subscription_id: 'abcd7890')
52
53
  #
53
54
  # @param api_key [String] The private API key
54
55
  # @param site_id [String] The site you wish to be scoped to.
55
56
  # @param subdomain [String] Optional subdomain for the site you wish to be scoped to. Providing this makes all the `site_id` parameters optional.
56
57
  def initialize(api_key:, site_id: nil, subdomain: nil, **options)
57
- if site_id
58
- @site_id = site_id
59
- elsif subdomain
60
- @site_id = "subdomain-#{subdomain}"
61
- else
62
- raise ArgumentError, "You must pass a site_id or subdomain argument to initialize the Client"
63
- end
64
-
65
- @log_level = options[:log_level] || Logger::WARN
66
- @logger = Logger.new(STDOUT)
67
- @logger.level = @log_level
68
-
69
- @conn = Faraday.new(url: BASE_URL) do |faraday|
70
- if @log_level == Logger::INFO
71
- faraday.response :logger
72
- end
73
- faraday.basic_auth(api_key, '')
74
- faraday.adapter :net_http do |http| # yields Net::HTTP
75
- # Let's not use the bundled cert in production yet
76
- # but we will use these certs for any other staging or dev environment
77
- unless BASE_URL.end_with?('.recurly.com')
78
- http.ca_file = File.join(File.dirname(__FILE__), '../data/ca-certificates.crt')
79
- end
80
- http.use_ssl = true
81
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
82
- http.open_timeout = 50
83
- http.read_timeout = 60
84
- http.keep_alive_timeout = 60
85
- end
86
- end
87
-
88
- # TODO this is undocumented until we finalize it
89
- @extra_headers = options[:headers] || {}
58
+ set_site_id(site_id, subdomain)
59
+ set_options(options)
60
+ set_faraday_connection(api_key)
90
61
 
91
62
  # execute block with this client if given
92
63
  yield(self) if block_given?
93
64
  end
94
65
 
95
66
  def next_page(pager)
96
- run_request(:get, pager.next, nil, headers)
67
+ run_request(:get, pager.next, nil, headers).tap do |response|
68
+ raise_api_error!(response) if response.status != 200
69
+ end
97
70
  end
98
71
 
99
72
  protected
@@ -133,7 +106,7 @@ module Recurly
133
106
  end
134
107
 
135
108
  def delete(path, **options)
136
- response = run_request(:delete, path, options.compact, headers)
109
+ response = run_request(:delete, path, nil, headers)
137
110
  raise_api_error!(response) if ![200, 201].include?(response.status)
138
111
  JSONParser.parse(self, response.body)
139
112
  rescue Faraday::ClientError => ex
@@ -194,5 +167,34 @@ module Recurly
194
167
  path = path.gsub("{", "%{")
195
168
  path % options
196
169
  end
170
+
171
+ def set_site_id(site_id, subdomain)
172
+ if site_id
173
+ @site_id = site_id
174
+ elsif subdomain
175
+ @site_id = "subdomain-#{subdomain}"
176
+ else
177
+ raise ArgumentError, "You must pass a site_id or subdomain argument to initialize the Client"
178
+ end
179
+ end
180
+
181
+ def set_faraday_connection(api_key)
182
+ @conn = Faraday.new(url: BASE_URL) do |faraday|
183
+ if @log_level == Logger::INFO
184
+ faraday.response :logger
185
+ end
186
+ faraday.basic_auth(api_key, '')
187
+ configure_net_adapter(faraday)
188
+ end
189
+ end
190
+
191
+ def set_options(options)
192
+ @log_level = options[:log_level] || Logger::WARN
193
+ @logger = Logger.new(STDOUT)
194
+ @logger.level = @log_level
195
+
196
+ # TODO this is undocumented until we finalize it
197
+ @extra_headers = options[:headers] || {}
198
+ end
197
199
  end
198
200
  end
@@ -0,0 +1,46 @@
1
+ require 'openssl'
2
+
3
+ module Recurly
4
+ class Client
5
+ module NetHttpPersistentAdapter
6
+ protected
7
+ def configure_net_adapter(faraday)
8
+ faraday.adapter :net_http_persistent do |http| # yields Net::HTTP
9
+ # Let's not use the bundled cert in production yet
10
+ # but we will use these certs for any other staging or dev environment
11
+ unless BASE_URL.end_with?('.recurly.com')
12
+ http.ca_file = File.join(File.dirname(__FILE__), '../data/ca-certificates.crt')
13
+ end
14
+ http.open_timeout = 50
15
+ http.read_timeout = 60
16
+ end
17
+ end
18
+ end
19
+
20
+ module NetHttpAdapter
21
+ protected
22
+ def configure_net_adapter(faraday)
23
+ faraday.adapter :net_http do |http| # yields Net::HTTP
24
+ # Let's not use the bundled cert in production yet
25
+ # but we will use these certs for any other staging or dev environment
26
+ unless BASE_URL.end_with?('.recurly.com')
27
+ http.ca_file = File.join(File.dirname(__FILE__), '../data/ca-certificates.crt')
28
+ end
29
+ http.use_ssl = true
30
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
31
+ http.open_timeout = 50
32
+ http.read_timeout = 60
33
+ http.keep_alive_timeout = 60
34
+ end
35
+ end
36
+ end
37
+
38
+ include NetHttpAdapter
39
+
40
+ begin
41
+ require 'net/http/persistent'
42
+ include NetHttpPersistentAdapter
43
+ rescue LoadError
44
+ end
45
+ end
46
+ end
@@ -1,15 +1,28 @@
1
1
  module Recurly
2
2
  class Client
3
3
  def api_version
4
- "v2018-01-24"
4
+ "v2018-06-06"
5
5
  end
6
6
 
7
7
  # List sites
8
8
  #
9
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
9
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
10
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
11
+ #
12
+ # *Important notes:*
13
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
14
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
15
+ # * Invalid or unknown IDs will be ignored, so you should check that the
16
+ # results correspond to your request.
17
+ # * Records are returned in an arbitrary order. Since results are all
18
+ # returned at once you can sort the records yourself.
19
+ #
10
20
  # @param limit [Integer] Limit number of records 1-200.
11
21
  # @param order [String] Sort order.
12
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
22
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
23
+ # order. In descending order updated records will move behind the cursor and could
24
+ # prevent some records from being returned.
25
+ #
13
26
  # @return [Pager<Resources::Site>] A list of sites.
14
27
  def list_sites(**options)
15
28
  path = "/sites"
@@ -26,14 +39,33 @@ module Recurly
26
39
 
27
40
  # List a site's accounts
28
41
  #
29
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
42
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
43
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
44
+ #
45
+ # *Important notes:*
46
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
47
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
48
+ # * Invalid or unknown IDs will be ignored, so you should check that the
49
+ # results correspond to your request.
50
+ # * Records are returned in an arbitrary order. Since results are all
51
+ # returned at once you can sort the records yourself.
52
+ #
30
53
  # @param limit [Integer] Limit number of records 1-200.
31
54
  # @param order [String] Sort order.
32
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
33
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
34
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
35
- # @param subscriber [String] Filter accounts accounts with or without a subscription in the `active`, `canceled`, or `future` state.
36
- # @param past_due [String] Filter for accounts with an invoice in the `past_due` state.
55
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
56
+ # order. In descending order updated records will move behind the cursor and could
57
+ # prevent some records from being returned.
58
+ #
59
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
60
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
61
+ #
62
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
63
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
64
+ #
65
+ # @param subscriber [String] Filter accounts accounts with or without a subscription in the +active+,
66
+ # +canceled+, or +future+ state.
67
+ #
68
+ # @param past_due [String] Filter for accounts with an invoice in the +past_due+ state.
37
69
  # @return [Pager<Resources::Account>] A list of the site's accounts.
38
70
  def list_accounts(**options)
39
71
  path = interpolate_path("/sites/{site_id}/accounts", site_id: site_id)
@@ -42,16 +74,16 @@ module Recurly
42
74
 
43
75
  # Create an account
44
76
  #
45
- # @param body [Requests::CreateAccount] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CreateAccount}
77
+ # @param body [Requests::AccountCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountCreate}
46
78
  # @return [Resources::Account] An account.
47
79
  def create_account(body:)
48
80
  path = interpolate_path("/sites/{site_id}/accounts", site_id: site_id)
49
- post(path, body, Requests::CreateAccount)
81
+ post(path, body, Requests::AccountCreate)
50
82
  end
51
83
 
52
84
  # Fetch an account
53
85
  #
54
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
86
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
55
87
  # @return [Resources::Account] An account.
56
88
  # @example
57
89
  # begin
@@ -73,17 +105,17 @@ module Recurly
73
105
 
74
106
  # Modify an account
75
107
  #
76
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
77
- # @param body [Requests::AccountUpdatable] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountUpdatable}
108
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
109
+ # @param body [Requests::AccountUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountUpdate}
78
110
  # @return [Resources::Account] An account.
79
111
  def update_account(account_id:, body:)
80
112
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}", site_id: site_id, account_id: account_id)
81
- put(path, body, Requests::AccountUpdatable)
113
+ put(path, body, Requests::AccountUpdate)
82
114
  end
83
115
 
84
116
  # Deactivate an account
85
117
  #
86
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
118
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
87
119
  # @return [Resources::Account] An account.
88
120
  def deactivate_account(account_id:)
89
121
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}", site_id: site_id, account_id: account_id)
@@ -92,7 +124,7 @@ module Recurly
92
124
 
93
125
  # Fetch an account's acquisition data
94
126
  #
95
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
127
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
96
128
  # @return [Resources::AccountAcquisition] An account's acquisition data.
97
129
  def get_account_acquisition(account_id:)
98
130
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/acquisition", site_id: site_id, account_id: account_id)
@@ -101,7 +133,7 @@ module Recurly
101
133
 
102
134
  # Update an account's acquisition data
103
135
  #
104
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
136
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
105
137
  # @param body [Requests::AccountAcquisitionUpdatable] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountAcquisitionUpdatable}
106
138
  # @return [Resources::AccountAcquisition] An account's updated acquisition data.
107
139
  def update_account_acquisition(account_id:, body:)
@@ -111,7 +143,7 @@ module Recurly
111
143
 
112
144
  # Remove an account's acquisition data
113
145
  #
114
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
146
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
115
147
  def remove_account_acquisition(account_id:)
116
148
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/acquisition", site_id: site_id, account_id: account_id)
117
149
  delete(path)
@@ -119,7 +151,7 @@ module Recurly
119
151
 
120
152
  # Reactivate an inactive account
121
153
  #
122
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
154
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
123
155
  # @return [Resources::Account] An account.
124
156
  def reactivate_account(account_id:)
125
157
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/reactivate", site_id: site_id, account_id: account_id)
@@ -128,7 +160,7 @@ module Recurly
128
160
 
129
161
  # Fetch an account's balance and past due status
130
162
  #
131
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
163
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
132
164
  # @return [Resources::AccountBalance] An account's balance.
133
165
  def get_account_balance(account_id:)
134
166
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/balance", site_id: site_id, account_id: account_id)
@@ -137,7 +169,7 @@ module Recurly
137
169
 
138
170
  # Fetch an account's billing information
139
171
  #
140
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
172
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
141
173
  # @return [Resources::BillingInfo] An account's billing information.
142
174
  def get_billing_info(account_id:)
143
175
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/billing_info", site_id: site_id, account_id: account_id)
@@ -146,7 +178,7 @@ module Recurly
146
178
 
147
179
  # Set an account's billing information
148
180
  #
149
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
181
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
150
182
  # @param body [Requests::BillingInfoCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::BillingInfoCreate}
151
183
  # @return [Resources::BillingInfo] Updated billing information.
152
184
  def update_billing_info(account_id:, body:)
@@ -156,7 +188,7 @@ module Recurly
156
188
 
157
189
  # Remove an account's billing information
158
190
  #
159
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
191
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
160
192
  def remove_billing_info(account_id:)
161
193
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/billing_info", site_id: site_id, account_id: account_id)
162
194
  delete(path)
@@ -164,8 +196,18 @@ module Recurly
164
196
 
165
197
  # Show the coupon redemptions for an account
166
198
  #
167
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
168
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
199
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
200
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
201
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
202
+ #
203
+ # *Important notes:*
204
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
205
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
206
+ # * Invalid or unknown IDs will be ignored, so you should check that the
207
+ # results correspond to your request.
208
+ # * Records are returned in an arbitrary order. Since results are all
209
+ # returned at once you can sort the records yourself.
210
+ #
169
211
  # @return [Pager<Resources::CouponRedemption>] A list of the the coupon redemptions on an account.
170
212
  def list_account_coupon_redemptions(account_id:, **options)
171
213
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions", site_id: site_id, account_id: account_id)
@@ -174,7 +216,7 @@ module Recurly
174
216
 
175
217
  # Show the coupon redemption that is active on an account
176
218
  #
177
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
219
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
178
220
  # @return [Resources::CouponRedemption] An active coupon redemption on an account.
179
221
  def get_active_coupon_redemption(account_id:)
180
222
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
@@ -183,17 +225,17 @@ module Recurly
183
225
 
184
226
  # Generate an active coupon redemption on an account
185
227
  #
186
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
187
- # @param body [Requests::CreateCouponRedemption] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CreateCouponRedemption}
228
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
229
+ # @param body [Requests::CouponRedemptionCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponRedemptionCreate}
188
230
  # @return [Resources::CouponRedemption] Returns the new coupon redemption.
189
231
  def create_coupon_redemption(account_id:, body:)
190
232
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
191
- post(path, body, Requests::CreateCouponRedemption)
233
+ post(path, body, Requests::CouponRedemptionCreate)
192
234
  end
193
235
 
194
236
  # Delete the active coupon redemption from an account
195
237
  #
196
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
238
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
197
239
  # @return [Resources::CouponRedemption] Coupon redemption deleted.
198
240
  def remove_coupon_redemption(account_id:)
199
241
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
@@ -202,12 +244,19 @@ module Recurly
202
244
 
203
245
  # List an account's credit payments
204
246
  #
205
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
247
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
206
248
  # @param limit [Integer] Limit number of records 1-200.
207
249
  # @param order [String] Sort order.
208
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
209
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
210
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
250
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
251
+ # order. In descending order updated records will move behind the cursor and could
252
+ # prevent some records from being returned.
253
+ #
254
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
255
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
256
+ #
257
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
258
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
259
+ #
211
260
  # @return [Pager<Resources::CreditPayment>] A list of the account's credit payments.
212
261
  def list_account_credit_payments(account_id:, **options)
213
262
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/credit_payments", site_id: site_id, account_id: account_id)
@@ -216,14 +265,36 @@ module Recurly
216
265
 
217
266
  # List an account's invoices
218
267
  #
219
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
220
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
268
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
269
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
270
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
271
+ #
272
+ # *Important notes:*
273
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
274
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
275
+ # * Invalid or unknown IDs will be ignored, so you should check that the
276
+ # results correspond to your request.
277
+ # * Records are returned in an arbitrary order. Since results are all
278
+ # returned at once you can sort the records yourself.
279
+ #
221
280
  # @param limit [Integer] Limit number of records 1-200.
222
281
  # @param order [String] Sort order.
223
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
224
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
225
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
226
- # @param type [String] Filter by type when: - `type=charge`, only charge invoices will be returned. - `type=credit`, only credit invoices will be returned. - `type=non-legacy`, only charge and credit invoices will be returned. - `type=legacy`, only legacy invoices will be returned.
282
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
283
+ # order. In descending order updated records will move behind the cursor and could
284
+ # prevent some records from being returned.
285
+ #
286
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
287
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
288
+ #
289
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
290
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
291
+ #
292
+ # @param type [String] Filter by type when:
293
+ # - +type=charge+, only charge invoices will be returned.
294
+ # - +type=credit+, only credit invoices will be returned.
295
+ # - +type=non-legacy+, only charge and credit invoices will be returned.
296
+ # - +type=legacy+, only legacy invoices will be returned.
297
+ #
227
298
  # @return [Pager<Resources::Invoice>] A list of the account's invoices.
228
299
  def list_account_invoices(account_id:, **options)
229
300
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/invoices", site_id: site_id, account_id: account_id)
@@ -232,7 +303,7 @@ module Recurly
232
303
 
233
304
  # Create an invoice for pending line items
234
305
  #
235
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
306
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
236
307
  # @param body [Requests::InvoiceCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceCreate}
237
308
  # @return [Resources::InvoiceCollection] Returns the new invoices.
238
309
  def create_invoice(account_id:, body:)
@@ -242,7 +313,7 @@ module Recurly
242
313
 
243
314
  # Preview new invoice for pending line items
244
315
  #
245
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
316
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
246
317
  # @param body [Requests::InvoiceCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceCreate}
247
318
  # @return [Resources::InvoiceCollection] Returns the invoice previews.
248
319
  def preview_invoice(account_id:, body:)
@@ -252,13 +323,30 @@ module Recurly
252
323
 
253
324
  # List an account's line items
254
325
  #
255
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
256
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
326
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
327
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
328
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
329
+ #
330
+ # *Important notes:*
331
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
332
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
333
+ # * Invalid or unknown IDs will be ignored, so you should check that the
334
+ # results correspond to your request.
335
+ # * Records are returned in an arbitrary order. Since results are all
336
+ # returned at once you can sort the records yourself.
337
+ #
257
338
  # @param limit [Integer] Limit number of records 1-200.
258
339
  # @param order [String] Sort order.
259
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
260
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
261
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
340
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
341
+ # order. In descending order updated records will move behind the cursor and could
342
+ # prevent some records from being returned.
343
+ #
344
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
345
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
346
+ #
347
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
348
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
349
+ #
262
350
  # @param original [String] Filter by original field.
263
351
  # @param state [String] Filter by state field.
264
352
  # @param type [String] Filter by type field.
@@ -270,7 +358,7 @@ module Recurly
270
358
 
271
359
  # Create a new line item for the account
272
360
  #
273
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
361
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
274
362
  # @param body [Requests::LineItemCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::LineItemCreate}
275
363
  # @return [Resources::LineItem] Returns the new line item.
276
364
  def create_line_item(account_id:, body:)
@@ -280,8 +368,18 @@ module Recurly
280
368
 
281
369
  # Fetch a list of an account's notes
282
370
  #
283
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
284
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
371
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
372
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
373
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
374
+ #
375
+ # *Important notes:*
376
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
377
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
378
+ # * Invalid or unknown IDs will be ignored, so you should check that the
379
+ # results correspond to your request.
380
+ # * Records are returned in an arbitrary order. Since results are all
381
+ # returned at once you can sort the records yourself.
382
+ #
285
383
  # @return [Pager<Resources::AccountNote>] A list of an account's notes.
286
384
  def list_account_notes(account_id:, **options)
287
385
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/notes", site_id: site_id, account_id: account_id)
@@ -290,7 +388,7 @@ module Recurly
290
388
 
291
389
  # Fetch an account note
292
390
  #
293
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
391
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
294
392
  # @param account_note_id [String] Account Note ID.
295
393
  # @return [Resources::AccountNote] An account note.
296
394
  def get_account_note(account_id:, account_note_id:)
@@ -300,13 +398,30 @@ module Recurly
300
398
 
301
399
  # Fetch a list of an account's shipping addresses
302
400
  #
303
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
304
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
401
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
402
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
403
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
404
+ #
405
+ # *Important notes:*
406
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
407
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
408
+ # * Invalid or unknown IDs will be ignored, so you should check that the
409
+ # results correspond to your request.
410
+ # * Records are returned in an arbitrary order. Since results are all
411
+ # returned at once you can sort the records yourself.
412
+ #
305
413
  # @param limit [Integer] Limit number of records 1-200.
306
414
  # @param order [String] Sort order.
307
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
308
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
309
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
415
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
416
+ # order. In descending order updated records will move behind the cursor and could
417
+ # prevent some records from being returned.
418
+ #
419
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
420
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
421
+ #
422
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
423
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
424
+ #
310
425
  # @return [Pager<Resources::ShippingAddress>] A list of an account's shipping addresses.
311
426
  def list_shipping_addresses(account_id:, **options)
312
427
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses", site_id: site_id, account_id: account_id)
@@ -315,7 +430,7 @@ module Recurly
315
430
 
316
431
  # Create a new shipping address for the account
317
432
  #
318
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
433
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
319
434
  # @param body [Requests::ShippingAddressCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::ShippingAddressCreate}
320
435
  # @return [Resources::ShippingAddress] Returns the new shipping address.
321
436
  def create_shipping_address(account_id:, body:)
@@ -325,7 +440,7 @@ module Recurly
325
440
 
326
441
  # Fetch an account's shipping address
327
442
  #
328
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
443
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
329
444
  # @param shipping_address_id [String] Shipping Address ID.
330
445
  # @return [Resources::ShippingAddress] A shipping address.
331
446
  def get_shipping_address(account_id:, shipping_address_id:)
@@ -335,7 +450,7 @@ module Recurly
335
450
 
336
451
  # Update an account's shipping address
337
452
  #
338
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
453
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
339
454
  # @param shipping_address_id [String] Shipping Address ID.
340
455
  # @param body [Requests::ShippingAddressUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::ShippingAddressUpdate}
341
456
  # @return [Resources::ShippingAddress] The updated shipping address.
@@ -346,7 +461,7 @@ module Recurly
346
461
 
347
462
  # Remove an account's shipping address
348
463
  #
349
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
464
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
350
465
  # @param shipping_address_id [String] Shipping Address ID.
351
466
  def remove_shipping_address(account_id:, shipping_address_id:)
352
467
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses/{shipping_address_id}", site_id: site_id, account_id: account_id, shipping_address_id: shipping_address_id)
@@ -355,14 +470,35 @@ module Recurly
355
470
 
356
471
  # List an account's subscriptions
357
472
  #
358
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
359
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
473
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
474
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
475
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
476
+ #
477
+ # *Important notes:*
478
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
479
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
480
+ # * Invalid or unknown IDs will be ignored, so you should check that the
481
+ # results correspond to your request.
482
+ # * Records are returned in an arbitrary order. Since results are all
483
+ # returned at once you can sort the records yourself.
484
+ #
360
485
  # @param limit [Integer] Limit number of records 1-200.
361
486
  # @param order [String] Sort order.
362
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
363
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
364
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
365
- # @param state [String] Filter by state. - When `state=active`, `state=canceled`, `state=expired`, or `state=future`, subscriptions with states that match the query and only those subscriptions will be returned. - When `state=in_trial`, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned. - When `state=live`, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
487
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
488
+ # order. In descending order updated records will move behind the cursor and could
489
+ # prevent some records from being returned.
490
+ #
491
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
492
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
493
+ #
494
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
495
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
496
+ #
497
+ # @param state [String] Filter by state.
498
+ # - When +state=active+, +state=canceled+, +state=expired+, or +state=future+, subscriptions with states that match the query and only those subscriptions will be returned.
499
+ # - When +state=in_trial+, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned.
500
+ # - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
501
+ #
366
502
  # @return [Pager<Resources::Subscription>] A list of the account's subscriptions.
367
503
  def list_account_subscriptions(account_id:, **options)
368
504
  path = interpolate_path("/sites/{site_id}/accounts/{account_id}/subscriptions", site_id: site_id, account_id: account_id)
@@ -371,13 +507,30 @@ module Recurly
371
507
 
372
508
  # List an account's transactions
373
509
  #
374
- # @param account_id [String] Account ID or code (use prefix: `code-`, e.g. `code-bob`).
375
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
510
+ # @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
511
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
512
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
513
+ #
514
+ # *Important notes:*
515
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
516
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
517
+ # * Invalid or unknown IDs will be ignored, so you should check that the
518
+ # results correspond to your request.
519
+ # * Records are returned in an arbitrary order. Since results are all
520
+ # returned at once you can sort the records yourself.
521
+ #
376
522
  # @param limit [Integer] Limit number of records 1-200.
377
523
  # @param order [String] Sort order.
378
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
379
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
380
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
524
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
525
+ # order. In descending order updated records will move behind the cursor and could
526
+ # prevent some records from being returned.
527
+ #
528
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
529
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
530
+ #
531
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
532
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
533
+ #
381
534
  # @param type [String] Filter by type field.
382
535
  # @param success [String] Filter by success field.
383
536
  # @return [Pager<Resources::Transaction>] A list of the account's transactions.
@@ -388,12 +541,29 @@ module Recurly
388
541
 
389
542
  # List a site's account acquisition data
390
543
  #
391
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
544
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
545
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
546
+ #
547
+ # *Important notes:*
548
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
549
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
550
+ # * Invalid or unknown IDs will be ignored, so you should check that the
551
+ # results correspond to your request.
552
+ # * Records are returned in an arbitrary order. Since results are all
553
+ # returned at once you can sort the records yourself.
554
+ #
392
555
  # @param limit [Integer] Limit number of records 1-200.
393
556
  # @param order [String] Sort order.
394
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
395
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
396
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
557
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
558
+ # order. In descending order updated records will move behind the cursor and could
559
+ # prevent some records from being returned.
560
+ #
561
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
562
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
563
+ #
564
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
565
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
566
+ #
397
567
  # @return [Resources::AccountAcquisition] A list of the site's account acquisition data.
398
568
  def list_account_acquisition(**options)
399
569
  path = interpolate_path("/sites/{site_id}/acquisitions", site_id: site_id)
@@ -402,12 +572,29 @@ module Recurly
402
572
 
403
573
  # List a site's coupons
404
574
  #
405
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
575
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
576
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
577
+ #
578
+ # *Important notes:*
579
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
580
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
581
+ # * Invalid or unknown IDs will be ignored, so you should check that the
582
+ # results correspond to your request.
583
+ # * Records are returned in an arbitrary order. Since results are all
584
+ # returned at once you can sort the records yourself.
585
+ #
406
586
  # @param limit [Integer] Limit number of records 1-200.
407
587
  # @param order [String] Sort order.
408
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
409
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
410
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
588
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
589
+ # order. In descending order updated records will move behind the cursor and could
590
+ # prevent some records from being returned.
591
+ #
592
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
593
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
594
+ #
595
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
596
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
597
+ #
411
598
  # @return [Pager<Resources::Coupon>] A list of the site's coupons.
412
599
  def list_coupons(**options)
413
600
  path = interpolate_path("/sites/{site_id}/coupons", site_id: site_id)
@@ -416,16 +603,16 @@ module Recurly
416
603
 
417
604
  # Create a new coupon
418
605
  #
419
- # @param body [Requests::CreateCoupon] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CreateCoupon}
606
+ # @param body [Requests::CouponCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponCreate}
420
607
  # @return [Resources::Coupon] A new coupon.
421
608
  def create_coupon(body:)
422
609
  path = interpolate_path("/sites/{site_id}/coupons", site_id: site_id)
423
- post(path, body, Requests::CreateCoupon)
610
+ post(path, body, Requests::CouponCreate)
424
611
  end
425
612
 
426
613
  # Fetch a coupon
427
614
  #
428
- # @param coupon_id [String] Coupon ID or code (use prefix: `code-`, e.g. `code-10off`).
615
+ # @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
429
616
  # @return [Resources::Coupon] A coupon.
430
617
  def get_coupon(coupon_id:)
431
618
  path = interpolate_path("/sites/{site_id}/coupons/{coupon_id}", site_id: site_id, coupon_id: coupon_id)
@@ -434,23 +621,40 @@ module Recurly
434
621
 
435
622
  # Update an active coupon
436
623
  #
437
- # @param coupon_id [String] Coupon ID or code (use prefix: `code-`, e.g. `code-10off`).
438
- # @param body [Requests::UpdateCoupon] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::UpdateCoupon}
624
+ # @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
625
+ # @param body [Requests::CouponUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponUpdate}
439
626
  # @return [Resources::Coupon] The updated coupon.
440
627
  def update_coupon(coupon_id:, body:)
441
628
  path = interpolate_path("/sites/{site_id}/coupons/{coupon_id}", site_id: site_id, coupon_id: coupon_id)
442
- put(path, body, Requests::UpdateCoupon)
629
+ put(path, body, Requests::CouponUpdate)
443
630
  end
444
631
 
445
632
  # List unique coupon codes associated with a bulk coupon
446
633
  #
447
- # @param coupon_id [String] Coupon ID or code (use prefix: `code-`, e.g. `code-10off`).
448
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
634
+ # @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
635
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
636
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
637
+ #
638
+ # *Important notes:*
639
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
640
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
641
+ # * Invalid or unknown IDs will be ignored, so you should check that the
642
+ # results correspond to your request.
643
+ # * Records are returned in an arbitrary order. Since results are all
644
+ # returned at once you can sort the records yourself.
645
+ #
449
646
  # @param limit [Integer] Limit number of records 1-200.
450
647
  # @param order [String] Sort order.
451
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
452
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
453
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
648
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
649
+ # order. In descending order updated records will move behind the cursor and could
650
+ # prevent some records from being returned.
651
+ #
652
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
653
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
654
+ #
655
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
656
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
657
+ #
454
658
  # @return [Pager<Resources::UniqueCouponCode>] A list of unique coupon codes that were generated
455
659
  def list_unique_coupon_codes(coupon_id:, **options)
456
660
  path = interpolate_path("/sites/{site_id}/coupons/{coupon_id}/unique_coupon_codes", site_id: site_id, coupon_id: coupon_id)
@@ -461,9 +665,16 @@ module Recurly
461
665
  #
462
666
  # @param limit [Integer] Limit number of records 1-200.
463
667
  # @param order [String] Sort order.
464
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
465
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
466
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
668
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
669
+ # order. In descending order updated records will move behind the cursor and could
670
+ # prevent some records from being returned.
671
+ #
672
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
673
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
674
+ #
675
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
676
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
677
+ #
467
678
  # @return [Pager<Resources::CreditPayment>] A list of the site's credit payments.
468
679
  def list_credit_payments(**options)
469
680
  path = interpolate_path("/sites/{site_id}/credit_payments", site_id: site_id)
@@ -472,22 +683,84 @@ module Recurly
472
683
 
473
684
  # Fetch a credit payment
474
685
  #
475
- # @param credit_payment_id [String] Credit Payment ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
686
+ # @param credit_payment_id [String] Credit Payment ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
476
687
  # @return [Resources::CreditPayment] A credit payment.
477
688
  def get_credit_payment(credit_payment_id:)
478
689
  path = interpolate_path("/sites/{site_id}/credit_payments/{credit_payment_id}", site_id: site_id, credit_payment_id: credit_payment_id)
479
690
  get(path)
480
691
  end
481
692
 
693
+ # List a site's custom field definitions
694
+ #
695
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
696
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
697
+ #
698
+ # *Important notes:*
699
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
700
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
701
+ # * Invalid or unknown IDs will be ignored, so you should check that the
702
+ # results correspond to your request.
703
+ # * Records are returned in an arbitrary order. Since results are all
704
+ # returned at once you can sort the records yourself.
705
+ #
706
+ # @param limit [Integer] Limit number of records 1-200.
707
+ # @param order [String] Sort order.
708
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
709
+ # order. In descending order updated records will move behind the cursor and could
710
+ # prevent some records from being returned.
711
+ #
712
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
713
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
714
+ #
715
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
716
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
717
+ #
718
+ # @return [Pager<Resources::CustomFieldDefinition>] A list of the site's custom field definitions.
719
+ def list_custom_field_definitions(**options)
720
+ path = interpolate_path("/sites/{site_id}/custom_field_definitions", site_id: site_id)
721
+ pager(path, **options)
722
+ end
723
+
724
+ # Fetch an custom field definition
725
+ #
726
+ # @param custom_field_definition_id [String] Custom Field Definition ID
727
+ # @return [Resources::CustomFieldDefinition] An custom field definition.
728
+ def get_custom_field_definition(custom_field_definition_id:)
729
+ path = interpolate_path("/sites/{site_id}/custom_field_definitions/{custom_field_definition_id}", site_id: site_id, custom_field_definition_id: custom_field_definition_id)
730
+ get(path)
731
+ end
732
+
482
733
  # List a site's invoices
483
734
  #
484
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
735
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
736
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
737
+ #
738
+ # *Important notes:*
739
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
740
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
741
+ # * Invalid or unknown IDs will be ignored, so you should check that the
742
+ # results correspond to your request.
743
+ # * Records are returned in an arbitrary order. Since results are all
744
+ # returned at once you can sort the records yourself.
745
+ #
485
746
  # @param limit [Integer] Limit number of records 1-200.
486
747
  # @param order [String] Sort order.
487
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
488
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
489
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
490
- # @param type [String] Filter by type when: - `type=charge`, only charge invoices will be returned. - `type=credit`, only credit invoices will be returned. - `type=non-legacy`, only charge and credit invoices will be returned. - `type=legacy`, only legacy invoices will be returned.
748
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
749
+ # order. In descending order updated records will move behind the cursor and could
750
+ # prevent some records from being returned.
751
+ #
752
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
753
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
754
+ #
755
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
756
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
757
+ #
758
+ # @param type [String] Filter by type when:
759
+ # - +type=charge+, only charge invoices will be returned.
760
+ # - +type=credit+, only credit invoices will be returned.
761
+ # - +type=non-legacy+, only charge and credit invoices will be returned.
762
+ # - +type=legacy+, only legacy invoices will be returned.
763
+ #
491
764
  # @return [Pager<Resources::Invoice>] A list of the site's invoices.
492
765
  def list_invoices(**options)
493
766
  path = interpolate_path("/sites/{site_id}/invoices", site_id: site_id)
@@ -496,7 +769,7 @@ module Recurly
496
769
 
497
770
  # Fetch an invoice
498
771
  #
499
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
772
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
500
773
  # @return [Resources::Invoice] An invoice.
501
774
  def get_invoice(invoice_id:)
502
775
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}", site_id: site_id, invoice_id: invoice_id)
@@ -505,7 +778,7 @@ module Recurly
505
778
 
506
779
  # Collect a pending or past due, automatic invoice
507
780
  #
508
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
781
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
509
782
  # @return [Resources::Invoice] The updated invoice.
510
783
  def collect_invoice(invoice_id:)
511
784
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/collect", site_id: site_id, invoice_id: invoice_id)
@@ -514,7 +787,7 @@ module Recurly
514
787
 
515
788
  # Mark an open invoice as failed
516
789
  #
517
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
790
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
518
791
  # @return [Resources::Invoice] The updated invoice.
519
792
  def fail_invoice(invoice_id:)
520
793
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/mark_failed", site_id: site_id, invoice_id: invoice_id)
@@ -523,7 +796,7 @@ module Recurly
523
796
 
524
797
  # Mark an open invoice as successful
525
798
  #
526
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
799
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
527
800
  # @return [Resources::Invoice] The updated invoice.
528
801
  def mark_invoice_successful(invoice_id:)
529
802
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/mark_successful", site_id: site_id, invoice_id: invoice_id)
@@ -532,7 +805,7 @@ module Recurly
532
805
 
533
806
  # Reopen a closed, manual invoice
534
807
  #
535
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
808
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
536
809
  # @return [Resources::Invoice] The updated invoice.
537
810
  def reopen_invoice(invoice_id:)
538
811
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/reopen", site_id: site_id, invoice_id: invoice_id)
@@ -541,13 +814,30 @@ module Recurly
541
814
 
542
815
  # List a invoice's line items
543
816
  #
544
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
545
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
817
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
818
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
819
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
820
+ #
821
+ # *Important notes:*
822
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
823
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
824
+ # * Invalid or unknown IDs will be ignored, so you should check that the
825
+ # results correspond to your request.
826
+ # * Records are returned in an arbitrary order. Since results are all
827
+ # returned at once you can sort the records yourself.
828
+ #
546
829
  # @param limit [Integer] Limit number of records 1-200.
547
830
  # @param order [String] Sort order.
548
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
549
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
550
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
831
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
832
+ # order. In descending order updated records will move behind the cursor and could
833
+ # prevent some records from being returned.
834
+ #
835
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
836
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
837
+ #
838
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
839
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
840
+ #
551
841
  # @param original [String] Filter by original field.
552
842
  # @param state [String] Filter by state field.
553
843
  # @param type [String] Filter by type field.
@@ -559,8 +849,18 @@ module Recurly
559
849
 
560
850
  # Show the coupon redemptions applied to an invoice
561
851
  #
562
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
563
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
852
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
853
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
854
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
855
+ #
856
+ # *Important notes:*
857
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
858
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
859
+ # * Invalid or unknown IDs will be ignored, so you should check that the
860
+ # results correspond to your request.
861
+ # * Records are returned in an arbitrary order. Since results are all
862
+ # returned at once you can sort the records yourself.
863
+ #
564
864
  # @return [Pager<Resources::CouponRedemption>] A list of the the coupon redemptions associated with the invoice.
565
865
  def list_invoice_coupon_redemptions(invoice_id:, **options)
566
866
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/coupon_redemptions", site_id: site_id, invoice_id: invoice_id)
@@ -569,7 +869,7 @@ module Recurly
569
869
 
570
870
  # List an invoice's related credit or charge invoices
571
871
  #
572
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
872
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
573
873
  # @return [Pager<Resources::Invoice>] A list of the credit or charge invoices associated with the invoice.
574
874
  def list_related_invoices(invoice_id:)
575
875
  path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/related_invoices", site_id: site_id, invoice_id: invoice_id)
@@ -578,7 +878,7 @@ module Recurly
578
878
 
579
879
  # Refund an invoice
580
880
  #
581
- # @param invoice_id [String] Invoice ID or number (use prefix: `number-`, e.g. `number-1000`).
881
+ # @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
582
882
  # @param body [Requests::InvoiceRefund] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceRefund}
583
883
  # @return [Resources::Invoice] Returns the new credit invoice.
584
884
  def refund_invoice(invoice_id:, body:)
@@ -588,12 +888,29 @@ module Recurly
588
888
 
589
889
  # List a site's line items
590
890
  #
591
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
891
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
892
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
893
+ #
894
+ # *Important notes:*
895
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
896
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
897
+ # * Invalid or unknown IDs will be ignored, so you should check that the
898
+ # results correspond to your request.
899
+ # * Records are returned in an arbitrary order. Since results are all
900
+ # returned at once you can sort the records yourself.
901
+ #
592
902
  # @param limit [Integer] Limit number of records 1-200.
593
903
  # @param order [String] Sort order.
594
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
595
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
596
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
904
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
905
+ # order. In descending order updated records will move behind the cursor and could
906
+ # prevent some records from being returned.
907
+ #
908
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
909
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
910
+ #
911
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
912
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
913
+ #
597
914
  # @param original [String] Filter by original field.
598
915
  # @param state [String] Filter by state field.
599
916
  # @param type [String] Filter by type field.
@@ -622,12 +939,29 @@ module Recurly
622
939
 
623
940
  # List a site's plans
624
941
  #
625
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
942
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
943
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
944
+ #
945
+ # *Important notes:*
946
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
947
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
948
+ # * Invalid or unknown IDs will be ignored, so you should check that the
949
+ # results correspond to your request.
950
+ # * Records are returned in an arbitrary order. Since results are all
951
+ # returned at once you can sort the records yourself.
952
+ #
626
953
  # @param limit [Integer] Limit number of records 1-200.
627
954
  # @param order [String] Sort order.
628
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
629
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
630
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
955
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
956
+ # order. In descending order updated records will move behind the cursor and could
957
+ # prevent some records from being returned.
958
+ #
959
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
960
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
961
+ #
962
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
963
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
964
+ #
631
965
  # @param state [String] Filter by state.
632
966
  # @return [Pager<Resources::Plan>] A list of plans.
633
967
  def list_plans(**options)
@@ -646,7 +980,7 @@ module Recurly
646
980
 
647
981
  # Fetch a plan
648
982
  #
649
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
983
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
650
984
  # @return [Resources::Plan] A plan.
651
985
  def get_plan(plan_id:)
652
986
  path = interpolate_path("/sites/{site_id}/plans/{plan_id}", site_id: site_id, plan_id: plan_id)
@@ -655,7 +989,7 @@ module Recurly
655
989
 
656
990
  # Update a plan
657
991
  #
658
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
992
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
659
993
  # @param body [Requests::PlanUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::PlanUpdate}
660
994
  # @return [Resources::Plan] A plan.
661
995
  def update_plan(plan_id:, body:)
@@ -665,7 +999,7 @@ module Recurly
665
999
 
666
1000
  # Remove a plan
667
1001
  #
668
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
1002
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
669
1003
  # @return [Resources::Plan] Plan deleted
670
1004
  def remove_plan(plan_id:)
671
1005
  path = interpolate_path("/sites/{site_id}/plans/{plan_id}", site_id: site_id, plan_id: plan_id)
@@ -674,13 +1008,30 @@ module Recurly
674
1008
 
675
1009
  # List a plan's add-ons
676
1010
  #
677
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
678
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
1011
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
1012
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
1013
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
1014
+ #
1015
+ # *Important notes:*
1016
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
1017
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
1018
+ # * Invalid or unknown IDs will be ignored, so you should check that the
1019
+ # results correspond to your request.
1020
+ # * Records are returned in an arbitrary order. Since results are all
1021
+ # returned at once you can sort the records yourself.
1022
+ #
679
1023
  # @param limit [Integer] Limit number of records 1-200.
680
1024
  # @param order [String] Sort order.
681
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
682
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
683
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1025
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
1026
+ # order. In descending order updated records will move behind the cursor and could
1027
+ # prevent some records from being returned.
1028
+ #
1029
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
1030
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1031
+ #
1032
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
1033
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1034
+ #
684
1035
  # @param state [String] Filter by state.
685
1036
  # @return [Pager<Resources::AddOn>] A list of add-ons.
686
1037
  def list_plan_add_ons(plan_id:, **options)
@@ -690,7 +1041,7 @@ module Recurly
690
1041
 
691
1042
  # Create an add-on
692
1043
  #
693
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
1044
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
694
1045
  # @param body [Requests::AddOnCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AddOnCreate}
695
1046
  # @return [Resources::AddOn] An add-on.
696
1047
  def create_plan_add_on(plan_id:, body:)
@@ -700,8 +1051,8 @@ module Recurly
700
1051
 
701
1052
  # Fetch a plan's add-on
702
1053
  #
703
- # @param add_on_id [String] Add-on ID or code (use prefix: `code-`, e.g. `code-gold`).
704
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
1054
+ # @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
1055
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
705
1056
  # @return [Resources::AddOn] An add-on.
706
1057
  def get_plan_add_on(add_on_id:, plan_id:)
707
1058
  path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id, add_on_id: add_on_id, plan_id: plan_id)
@@ -710,8 +1061,8 @@ module Recurly
710
1061
 
711
1062
  # Update an add-on
712
1063
  #
713
- # @param add_on_id [String] Add-on ID or code (use prefix: `code-`, e.g. `code-gold`).
714
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
1064
+ # @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
1065
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
715
1066
  # @param body [Requests::AddOnUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AddOnUpdate}
716
1067
  # @return [Resources::AddOn] An add-on.
717
1068
  def update_plan_add_on(add_on_id:, plan_id:, body:)
@@ -721,8 +1072,8 @@ module Recurly
721
1072
 
722
1073
  # Remove an add-on
723
1074
  #
724
- # @param add_on_id [String] Add-on ID or code (use prefix: `code-`, e.g. `code-gold`).
725
- # @param plan_id [String] Plan ID or code (use prefix: `code-`, e.g. `code-gold`).
1075
+ # @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
1076
+ # @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
726
1077
  # @return [Resources::AddOn] Add-on deleted
727
1078
  def remove_plan_add_on(add_on_id:, plan_id:)
728
1079
  path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id, add_on_id: add_on_id, plan_id: plan_id)
@@ -731,12 +1082,29 @@ module Recurly
731
1082
 
732
1083
  # List a site's add-ons
733
1084
  #
734
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
1085
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
1086
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
1087
+ #
1088
+ # *Important notes:*
1089
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
1090
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
1091
+ # * Invalid or unknown IDs will be ignored, so you should check that the
1092
+ # results correspond to your request.
1093
+ # * Records are returned in an arbitrary order. Since results are all
1094
+ # returned at once you can sort the records yourself.
1095
+ #
735
1096
  # @param limit [Integer] Limit number of records 1-200.
736
1097
  # @param order [String] Sort order.
737
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
738
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
739
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1098
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
1099
+ # order. In descending order updated records will move behind the cursor and could
1100
+ # prevent some records from being returned.
1101
+ #
1102
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
1103
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1104
+ #
1105
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
1106
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1107
+ #
740
1108
  # @param state [String] Filter by state.
741
1109
  # @return [Pager<Resources::AddOn>] A list of add-ons.
742
1110
  def list_add_ons(**options)
@@ -746,7 +1114,7 @@ module Recurly
746
1114
 
747
1115
  # Fetch an add-on
748
1116
  #
749
- # @param add_on_id [String] Add-on ID or code (use prefix: `code-`, e.g. `code-gold`).
1117
+ # @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
750
1118
  # @return [Resources::AddOn] An add-on.
751
1119
  def get_add_on(add_on_id:)
752
1120
  path = interpolate_path("/sites/{site_id}/add_ons/{add_on_id}", site_id: site_id, add_on_id: add_on_id)
@@ -755,13 +1123,34 @@ module Recurly
755
1123
 
756
1124
  # List a site's subscriptions
757
1125
  #
758
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
1126
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
1127
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
1128
+ #
1129
+ # *Important notes:*
1130
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
1131
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
1132
+ # * Invalid or unknown IDs will be ignored, so you should check that the
1133
+ # results correspond to your request.
1134
+ # * Records are returned in an arbitrary order. Since results are all
1135
+ # returned at once you can sort the records yourself.
1136
+ #
759
1137
  # @param limit [Integer] Limit number of records 1-200.
760
1138
  # @param order [String] Sort order.
761
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
762
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
763
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
764
- # @param state [String] Filter by state. - When `state=active`, `state=canceled`, `state=expired`, or `state=future`, subscriptions with states that match the query and only those subscriptions will be returned. - When `state=in_trial`, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned. - When `state=live`, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
1139
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
1140
+ # order. In descending order updated records will move behind the cursor and could
1141
+ # prevent some records from being returned.
1142
+ #
1143
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
1144
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1145
+ #
1146
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
1147
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1148
+ #
1149
+ # @param state [String] Filter by state.
1150
+ # - When +state=active+, +state=canceled+, +state=expired+, or +state=future+, subscriptions with states that match the query and only those subscriptions will be returned.
1151
+ # - When +state=in_trial+, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned.
1152
+ # - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
1153
+ #
765
1154
  # @return [Pager<Resources::Subscription>] A list of the site's subscriptions.
766
1155
  def list_subscriptions(**options)
767
1156
  path = interpolate_path("/sites/{site_id}/subscriptions", site_id: site_id)
@@ -779,7 +1168,7 @@ module Recurly
779
1168
 
780
1169
  # Fetch a subscription
781
1170
  #
782
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1171
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
783
1172
  # @return [Resources::Subscription] A subscription.
784
1173
  # @example
785
1174
  # begin
@@ -801,7 +1190,7 @@ module Recurly
801
1190
 
802
1191
  # Modify a subscription
803
1192
  #
804
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1193
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
805
1194
  # @param body [Requests::SubscriptionUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionUpdate}
806
1195
  # @return [Resources::Subscription] A subscription.
807
1196
  def modify_subscription(subscription_id:, body:)
@@ -811,8 +1200,17 @@ module Recurly
811
1200
 
812
1201
  # Terminate a subscription
813
1202
  #
814
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
815
- # @param refund [String] The type of refund to perform: * `full` - Performs a full refund of the last invoice for the current subscription term. * `partial` - Prorates a refund based on the amount of time remaining in the current bill cycle. * `none` - Terminates the subscription without a refund. In the event that the most recent invoice is a $0 invoice paid entirely by credit, Recurly will apply the credit back to the customer’s account. You may also terminate a subscription with no refund and then manually refund specific invoices.
1203
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
1204
+ # @param refund [String] The type of refund to perform:
1205
+ #
1206
+ # * +full+ - Performs a full refund of the last invoice for the current subscription term.
1207
+ # * +partial+ - Prorates a refund based on the amount of time remaining in the current bill cycle.
1208
+ # * +none+ - Terminates the subscription without a refund.
1209
+ #
1210
+ # In the event that the most recent invoice is a $0 invoice paid entirely by credit, Recurly will apply the credit back to the customer’s account.
1211
+ #
1212
+ # You may also terminate a subscription with no refund and then manually refund specific invoices.
1213
+ #
816
1214
  # @return [Resources::Subscription] An expired subscription.
817
1215
  def terminate_subscription(subscription_id:, **options)
818
1216
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}", site_id: site_id, subscription_id: subscription_id)
@@ -821,7 +1219,7 @@ module Recurly
821
1219
 
822
1220
  # Cancel a subscription
823
1221
  #
824
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1222
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
825
1223
  # @return [Resources::Subscription] A canceled or failed subscription.
826
1224
  def cancel_subscription(subscription_id:)
827
1225
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/cancel", site_id: site_id, subscription_id: subscription_id)
@@ -830,16 +1228,35 @@ module Recurly
830
1228
 
831
1229
  # Reactivate a canceled subscription
832
1230
  #
833
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1231
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
834
1232
  # @return [Resources::Subscription] An active subscription.
835
1233
  def reactivate_subscription(subscription_id:)
836
1234
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/reactivate", site_id: site_id, subscription_id: subscription_id)
837
1235
  put(path)
838
1236
  end
839
1237
 
1238
+ # Pause subscription
1239
+ #
1240
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
1241
+ # @param body [Requests::SubscriptionPause] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionPause}
1242
+ # @return [Resources::Subscription] A subscription.
1243
+ def pause_subscription(subscription_id:, body:)
1244
+ path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/pause", site_id: site_id, subscription_id: subscription_id)
1245
+ put(path, body, Requests::SubscriptionPause)
1246
+ end
1247
+
1248
+ # Resume subscription
1249
+ #
1250
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
1251
+ # @return [Resources::Subscription] A subscription.
1252
+ def resume_subscription(subscription_id:)
1253
+ path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/resume", site_id: site_id, subscription_id: subscription_id)
1254
+ put(path)
1255
+ end
1256
+
840
1257
  # Fetch a subscription's pending change
841
1258
  #
842
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1259
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
843
1260
  # @return [Resources::SubscriptionChange] A subscription's pending change.
844
1261
  def get_subscription_change(subscription_id:)
845
1262
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/change", site_id: site_id, subscription_id: subscription_id)
@@ -848,7 +1265,7 @@ module Recurly
848
1265
 
849
1266
  # Create a new subscription change
850
1267
  #
851
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1268
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
852
1269
  # @param body [Requests::SubscriptionChangeCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionChangeCreate}
853
1270
  # @return [Resources::SubscriptionChange] A subscription change.
854
1271
  def create_subscription_change(subscription_id:, body:)
@@ -858,7 +1275,7 @@ module Recurly
858
1275
 
859
1276
  # Delete the pending subscription change
860
1277
  #
861
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1278
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
862
1279
  def remove_subscription_change(subscription_id:)
863
1280
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/change", site_id: site_id, subscription_id: subscription_id)
864
1281
  delete(path)
@@ -866,14 +1283,36 @@ module Recurly
866
1283
 
867
1284
  # List a subscription's invoices
868
1285
  #
869
- # @param subscription_id [String] Subscription ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
870
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
1286
+ # @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
1287
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
1288
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
1289
+ #
1290
+ # *Important notes:*
1291
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
1292
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
1293
+ # * Invalid or unknown IDs will be ignored, so you should check that the
1294
+ # results correspond to your request.
1295
+ # * Records are returned in an arbitrary order. Since results are all
1296
+ # returned at once you can sort the records yourself.
1297
+ #
871
1298
  # @param limit [Integer] Limit number of records 1-200.
872
1299
  # @param order [String] Sort order.
873
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
874
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
875
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
876
- # @param type [String] Filter by type when: - `type=charge`, only charge invoices will be returned. - `type=credit`, only credit invoices will be returned. - `type=non-legacy`, only charge and credit invoices will be returned. - `type=legacy`, only legacy invoices will be returned.
1300
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
1301
+ # order. In descending order updated records will move behind the cursor and could
1302
+ # prevent some records from being returned.
1303
+ #
1304
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
1305
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1306
+ #
1307
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
1308
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1309
+ #
1310
+ # @param type [String] Filter by type when:
1311
+ # - +type=charge+, only charge invoices will be returned.
1312
+ # - +type=credit+, only credit invoices will be returned.
1313
+ # - +type=non-legacy+, only charge and credit invoices will be returned.
1314
+ # - +type=legacy+, only legacy invoices will be returned.
1315
+ #
877
1316
  # @return [Pager<Resources::Invoice>] A list of the subscription's invoices.
878
1317
  def list_subscription_invoices(subscription_id:, **options)
879
1318
  path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/invoices", site_id: site_id, subscription_id: subscription_id)
@@ -882,12 +1321,29 @@ module Recurly
882
1321
 
883
1322
  # List a site's transactions
884
1323
  #
885
- # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using commas as separators, e.g. `ids=h1at4d57xlmy,gyqgg0d3v9n1`. **Important notes:** * The `ids` parameter cannot be used with any other ordering or filtering parameters (`limit`, `order`, `sort`, `begin_time`, `end_time`, etc) * Invalid or unknown IDs will be ignored, so you should check that the results correspond to your request. * Records are returned in an arbitrary order. Since results are all returned at once you can sort the records yourself.
1324
+ # @param ids [String] Filter results by their IDs. Up to 200 IDs can be passed at once using
1325
+ # commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
1326
+ #
1327
+ # *Important notes:*
1328
+ # * The +ids+ parameter cannot be used with any other ordering or filtering
1329
+ # parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
1330
+ # * Invalid or unknown IDs will be ignored, so you should check that the
1331
+ # results correspond to your request.
1332
+ # * Records are returned in an arbitrary order. Since results are all
1333
+ # returned at once you can sort the records yourself.
1334
+ #
886
1335
  # @param limit [Integer] Limit number of records 1-200.
887
1336
  # @param order [String] Sort order.
888
- # @param sort [String] Sort field. You *really* only want to sort by `updated_at` in ascending order. In descending order updated records will move behind the cursor and could prevent some records from being returned.
889
- # @param begin_time [DateTime] Filter by begin_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
890
- # @param end_time [DateTime] Filter by end_time when `sort=created_at` or `sort=updated_at`. **Note:** this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1337
+ # @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
1338
+ # order. In descending order updated records will move behind the cursor and could
1339
+ # prevent some records from being returned.
1340
+ #
1341
+ # @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
1342
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1343
+ #
1344
+ # @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
1345
+ # *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
1346
+ #
891
1347
  # @param type [String] Filter by type field.
892
1348
  # @param success [String] Filter by success field.
893
1349
  # @return [Pager<Resources::Transaction>] A list of the site's transactions.
@@ -898,7 +1354,7 @@ module Recurly
898
1354
 
899
1355
  # Fetch a transaction
900
1356
  #
901
- # @param transaction_id [String] Transaction ID or UUID (use prefix: `uuid-`, e.g. `uuid-123457890`).
1357
+ # @param transaction_id [String] Transaction ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
902
1358
  # @return [Resources::Transaction] A transaction.
903
1359
  def get_transaction(transaction_id:)
904
1360
  path = interpolate_path("/sites/{site_id}/transactions/{transaction_id}", site_id: site_id, transaction_id: transaction_id)
@@ -907,7 +1363,7 @@ module Recurly
907
1363
 
908
1364
  # Fetch a unique coupon code
909
1365
  #
910
- # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: `code-`, e.g. `code-abc-8dh2-def`).
1366
+ # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
911
1367
  # @return [Resources::UniqueCouponCode] A unique coupon code.
912
1368
  def get_unique_coupon_code(unique_coupon_code_id:)
913
1369
  path = interpolate_path("/sites/{site_id}/unique_coupon_codes/{unique_coupon_code_id}", site_id: site_id, unique_coupon_code_id: unique_coupon_code_id)
@@ -916,7 +1372,7 @@ module Recurly
916
1372
 
917
1373
  # Deactivate a unique coupon code
918
1374
  #
919
- # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: `code-`, e.g. `code-abc-8dh2-def`).
1375
+ # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
920
1376
  # @return [Resources::UniqueCouponCode] A unique coupon code.
921
1377
  def deactivate_unique_coupon_code(unique_coupon_code_id:)
922
1378
  path = interpolate_path("/sites/{site_id}/unique_coupon_codes/{unique_coupon_code_id}", site_id: site_id, unique_coupon_code_id: unique_coupon_code_id)
@@ -925,7 +1381,7 @@ module Recurly
925
1381
 
926
1382
  # Restore a unique coupon code
927
1383
  #
928
- # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: `code-`, e.g. `code-abc-8dh2-def`).
1384
+ # @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
929
1385
  # @return [Resources::UniqueCouponCode] A unique coupon code.
930
1386
  def reactivate_unique_coupon_code(unique_coupon_code_id:)
931
1387
  path = interpolate_path("/sites/{site_id}/unique_coupon_codes/{unique_coupon_code_id}/restore", site_id: site_id, unique_coupon_code_id: unique_coupon_code_id)