chargebee 2.56.0 → 2.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +37 -0
  3. data/Gemfile +5 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.md +52 -0
  6. data/chargebee.gemspec +5 -2
  7. data/lib/chargebee/environment.rb +14 -8
  8. data/lib/chargebee/models/addon.rb +24 -7
  9. data/lib/chargebee/models/address.rb +6 -2
  10. data/lib/chargebee/models/attached_item.rb +16 -5
  11. data/lib/chargebee/models/billing_configuration.rb +14 -0
  12. data/lib/chargebee/models/brand.rb +10 -0
  13. data/lib/chargebee/models/business_entity.rb +6 -2
  14. data/lib/chargebee/models/card.rb +18 -5
  15. data/lib/chargebee/models/comment.rb +12 -4
  16. data/lib/chargebee/models/configuration.rb +2 -1
  17. data/lib/chargebee/models/coupon.rb +32 -9
  18. data/lib/chargebee/models/coupon_code.rb +12 -4
  19. data/lib/chargebee/models/coupon_set.rb +24 -7
  20. data/lib/chargebee/models/credit_note.rb +63 -29
  21. data/lib/chargebee/models/currency.rb +20 -6
  22. data/lib/chargebee/models/customer.rb +99 -25
  23. data/lib/chargebee/models/customer_entitlement.rb +2 -1
  24. data/lib/chargebee/models/differential_price.rb +16 -5
  25. data/lib/chargebee/models/entitlement.rb +6 -2
  26. data/lib/chargebee/models/entitlement_override.rb +6 -2
  27. data/lib/chargebee/models/estimate.rb +42 -20
  28. data/lib/chargebee/models/event.rb +7 -5
  29. data/lib/chargebee/models/export.rb +70 -18
  30. data/lib/chargebee/models/feature.rb +28 -8
  31. data/lib/chargebee/models/gift.rb +24 -7
  32. data/lib/chargebee/models/hierarchy.rb +2 -1
  33. data/lib/chargebee/models/hosted_page.rb +107 -45
  34. data/lib/chargebee/models/in_app_subscription.rb +16 -4
  35. data/lib/chargebee/models/invoice.rb +187 -81
  36. data/lib/chargebee/models/item.rb +16 -5
  37. data/lib/chargebee/models/item_entitlement.rb +12 -4
  38. data/lib/chargebee/models/item_family.rb +16 -5
  39. data/lib/chargebee/models/item_price.rb +20 -7
  40. data/lib/chargebee/models/non_subscription.rb +4 -1
  41. data/lib/chargebee/models/omnichannel_subscription.rb +6 -3
  42. data/lib/chargebee/models/omnichannel_subscription_item.rb +2 -1
  43. data/lib/chargebee/models/order.rb +42 -12
  44. data/lib/chargebee/models/payment_intent.rb +10 -3
  45. data/lib/chargebee/models/payment_schedule_scheme.rb +10 -3
  46. data/lib/chargebee/models/payment_source.rb +60 -16
  47. data/lib/chargebee/models/payment_voucher.rb +10 -4
  48. data/lib/chargebee/models/plan.rb +24 -7
  49. data/lib/chargebee/models/portal_session.rb +14 -4
  50. data/lib/chargebee/models/price_variant.rb +16 -5
  51. data/lib/chargebee/models/pricing_page_session.rb +8 -2
  52. data/lib/chargebee/models/promotional_credit.rb +16 -5
  53. data/lib/chargebee/models/purchase.rb +6 -2
  54. data/lib/chargebee/models/quote.rb +74 -20
  55. data/lib/chargebee/models/quoted_ramp.rb +7 -3
  56. data/lib/chargebee/models/ramp.rb +16 -5
  57. data/lib/chargebee/models/recorded_purchase.rb +6 -2
  58. data/lib/chargebee/models/resource_migration.rb +2 -1
  59. data/lib/chargebee/models/rule.rb +2 -1
  60. data/lib/chargebee/models/site_migration_detail.rb +2 -1
  61. data/lib/chargebee/models/subscription.rb +134 -37
  62. data/lib/chargebee/models/subscription_entitlement.rb +6 -2
  63. data/lib/chargebee/models/time_machine.rb +10 -3
  64. data/lib/chargebee/models/transaction.rb +34 -11
  65. data/lib/chargebee/models/unbilled_charge.rb +20 -6
  66. data/lib/chargebee/models/usage.rb +16 -5
  67. data/lib/chargebee/models/usage_event.rb +4 -2
  68. data/lib/chargebee/models/usage_file.rb +4 -2
  69. data/lib/chargebee/models/virtual_bank_account.rb +20 -6
  70. data/lib/chargebee/nativeRequest.rb +118 -63
  71. data/lib/chargebee/request.rb +4 -4
  72. data/lib/chargebee/result.rb +12 -1
  73. data/lib/chargebee.rb +1 -1
  74. data/spec/chargebee/list_result_spec.rb +1 -1
  75. data/spec/chargebee/native_request_spec.rb +199 -0
  76. data/spec/spec_helper.rb +3 -0
  77. metadata +19 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 001c016fe4fc0205f06fb61eb647d42281538059
4
- data.tar.gz: f833505b1779675814ddc724904de2cb9f12cb8d
2
+ SHA256:
3
+ metadata.gz: b1cc3386050b2ab1aa940939ce4cdec99d99ae1a78be90f459fbb482ee1fb195
4
+ data.tar.gz: cd3b659db1ea6cd510ae3ca186c6e35dfe567b370ce12b747d8a1caed608d75b
5
5
  SHA512:
6
- metadata.gz: 37f8ec23a423df351454d67c8d1a74eb4cd595b2364ac4b31033afa7fe318b815d0f07676c380e6916a1470182347d2d3c3c45cf1aa9fabecb695dcef9a2ed86
7
- data.tar.gz: 3b3c3d6dbfe8556c2d1b4679aaf7316c966180b5b596295873edb219967adc51ced19e0ac7dd5c99a97160a4a3b96d88b63cef3d9fb60821a784fe5b24b5d732
6
+ metadata.gz: 4b6a6f971e017279014fcfeebf66ad88c1e897ae7d4e243ba5bf6014796f9635c224a3a584498b4f3611718651d9feb7eeae0d6ea891c5e2115c9a8f8c78def9
7
+ data.tar.gz: 849b22407cce88891250aa6e623462a0adcf827c47f17d75017d7465e30196806d9144250a6da32c3816dcb7e1c715f96c2b1c469deade720beeb4aef738df6b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,40 @@
1
+ ### v2.58.0 (2025-07-18)
2
+ * * *
3
+
4
+ ### New Resources:
5
+ * BillingConfiguration has been added.
6
+ * Brand has been added.
7
+
8
+ ### New Attributes:
9
+ * has_children has been added to Hierarchy
10
+ * coupon_applicability_mappings has been added to QuotedRamp.
11
+
12
+ ### New Endpoint:
13
+ * listHierarchyDetail has been added to Customer.
14
+
15
+ ### New Input parameters:
16
+ * change_reason children has been added to Entitlement#CreateRequest.
17
+ * entitlements[apply_grandfathering] has been added to Entitlement#CreateRequest.
18
+ * replace_primary_payment_source has been added to Purchase#CreateRequest.
19
+ * omnichannel_subscription has been added to RecordedPurchase#CreateRequest.
20
+ * contract_term has been added to Subscription#RemoveScheduledCancellationRequest.
21
+ * contract_term_billing_cycle_on_renewal has been added to Subscription#RemoveScheduledCancellationRequest.
22
+
23
+ ### New Enums:
24
+ * payconiq_by_bancontact has been added to PaymentMethodType.
25
+ * solidgate has been added to Gateway.
26
+ * solidgate has been added to PaymentMethod.
27
+
28
+
29
+ ### v2.57.0 (2025-06-23)
30
+ * * *
31
+
32
+ ### New Features
33
+ * Added built-in retry support for handling transient errors and rate-limiting.
34
+ * Retries are now supported for HTTP status codes 500, 502, 503, 504, and 429.
35
+ * Includes exponential backoff for server errors and Retry-After respect for rate limits (429).
36
+ * Configurable via retryConfig during SDK initialization.
37
+
1
38
  ### v2.56.0 (2025-06-19)
2
39
  * * *
3
40
 
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
+
5
+ group :development, :test do
6
+ gem 'rspec', '~> 3.12'
7
+ gem 'webmock'
8
+ end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chargebee (2.56.0)
4
+ chargebee (2.58.0)
5
5
  cgi (>= 0.1.0, < 1.0.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -73,6 +73,58 @@ puts(idempotencyReplayedValue)
73
73
  ```
74
74
  `is_idempotency_replayed` method can be accessed to differentiate between original and replayed requests.
75
75
 
76
+
77
+ ### Retry Handling
78
+
79
+ Chargebee's SDK includes built-in retry logic to handle temporary network issues and server-side errors. This feature is **disabled by default** but can be **enabled when needed**.
80
+
81
+ #### Key features include:
82
+
83
+ - **Automatic retries for specific HTTP status codes**: Retries are automatically triggered for status codes `500`, `502`, `503`, and `504`.
84
+ - **Exponential backoff**: Retry delays increase exponentially to prevent overwhelming the server.
85
+ - **Rate limit management**: If a `429 Too Many Requests` response is received with a `Retry-After` header, the SDK waits for the specified duration before retrying.
86
+ > *Note: Exponential backoff and max retries do not apply in this case.*
87
+ - **Customizable retry behavior**: Retry logic can be configured using the `retryConfig` parameter in the environment configuration.
88
+
89
+ #### Example: Customizing Retry Logic
90
+
91
+ You can enable and configure the retry logic by passing a `retryConfig` object when initializing the Chargebee environment:
92
+
93
+ ```ruby
94
+ require 'chargebee'
95
+ ChargeBee.configure({:api_key => "your_api_key" , :site => "your_site"})
96
+
97
+ # Set comprehensive retry configuration
98
+ ChargeBee::default_env.retry_config = {
99
+ enabled: true,
100
+ max_retries: 1,
101
+ delay_ms: 2000,
102
+ retry_on: [500]
103
+ }
104
+
105
+ # ... your Chargebee API operations ...
106
+
107
+ ```
108
+
109
+ #### Example: Rate Limit retry logic
110
+
111
+ You can enable and configure the retry logic for rate-limit by passing a `retryConfig` object when initializing the Chargebee environment:
112
+
113
+ ```ruby
114
+ require 'chargebee'
115
+ ChargeBee.configure({:api_key => "your_api_key" , :site => "your_site"})
116
+
117
+ # Set comprehensive retry configuration
118
+ ChargeBee::default_env.retry_config = {
119
+ enabled: true,
120
+ max_retries: 1,
121
+ delay_ms: 1000,
122
+ retry_on: [429]
123
+ }
124
+
125
+ # ... your Chargebee API operations ...
126
+ ```
127
+
76
128
  ## License
77
129
 
78
130
  See the LICENSE file.
data/chargebee.gemspec CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
4
4
  s.rubygems_version = '1.3.5'
5
5
  s.required_ruby_version = '>= 1.9.3'
6
6
  s.name = 'chargebee'
7
- s.version = '2.56.0'
8
- s.date = '2025-06-19'
7
+ s.version = '2.58.0'
8
+ s.date = '2025-07-21'
9
9
  s.summary = "Ruby client for Chargebee API."
10
10
  s.description = "Subscription Billing - Simple. Secure. Affordable. More details at www.chargebee.com."
11
11
  s.metadata = {
@@ -45,6 +45,8 @@ Gem::Specification.new do |s|
45
45
  lib/chargebee/models/advance_invoice_schedule.rb
46
46
  lib/chargebee/models/attached_item.rb
47
47
  lib/chargebee/models/attribute.rb
48
+ lib/chargebee/models/billing_configuration.rb
49
+ lib/chargebee/models/brand.rb
48
50
  lib/chargebee/models/business_entity.rb
49
51
  lib/chargebee/models/business_entity_transfer.rb
50
52
  lib/chargebee/models/card.rb
@@ -135,6 +137,7 @@ Gem::Specification.new do |s|
135
137
  lib/chargebee/util.rb
136
138
  lib/ssl/ca-certs.crt
137
139
  spec/chargebee/list_result_spec.rb
140
+ spec/chargebee/native_request_spec.rb
138
141
  spec/chargebee_spec.rb
139
142
  spec/errors_spec.rb
140
143
  spec/sample_response.rb
@@ -10,6 +10,9 @@ module ChargeBee
10
10
  attr_accessor :api_key, :site, :time_machine_sleeptime, :export_sleeptime, :connect_timeout, :read_timeout
11
11
  attr_reader :api_endpoint
12
12
 
13
+ # Add retry_config and enable_debug_logs
14
+ attr_accessor :retry_config, :enable_debug_logs
15
+
13
16
  def initialize(options)
14
17
  options[:time_machine_sleeptime] ||= TIME_MACHINE_TIMEOUT
15
18
  options[:export_sleeptime] ||= EXPORT_TIMEOUT
@@ -18,6 +21,8 @@ module ChargeBee
18
21
  [:api_key, :site, :time_machine_sleeptime, :export_sleeptime, :connect_timeout, :read_timeout].each do |attr|
19
22
  instance_variable_set "@#{attr}", options[attr]
20
23
  end
24
+ @retry_config = options[:retry_config]
25
+ @enable_debug_logs = options[:enable_debug_logs] || false
21
26
  if($CHARGEBEE_DOMAIN == nil)
22
27
  @api_endpoint = "https://#{@site}.chargebee.com/api/#{API_VERSION}"
23
28
  else
@@ -25,15 +30,16 @@ module ChargeBee
25
30
  end
26
31
  end
27
32
 
28
- def api_url(url, sub_domain=nil)
29
- if(sub_domain != nil)
30
- if($CHARGEBEE_DOMAIN == nil)
31
- @api_endpoint = "https://#{@site}.#{sub_domain}.chargebee.com/api/#{API_VERSION}"
32
- else
33
- @api_endpoint = "#{$ENV_PROTOCOL == nil ? "http": "https"}://#{@site}.#{sub_domain}.#{$CHARGEBEE_DOMAIN}/api/#{API_VERSION}"
34
- end
33
+ def api_url(url, sub_domain = nil)
34
+ protocol = $ENV_PROTOCOL || "https"
35
+ domain = $CHARGEBEE_DOMAIN || "chargebee.com"
36
+
37
+ if sub_domain
38
+ @api_endpoint = "#{protocol}://#{@site}.#{sub_domain}.#{domain}/api/#{API_VERSION}"
39
+ else
40
+ @api_endpoint = "#{protocol}://#{@site}.#{domain}/api/#{API_VERSION}"
35
41
  end
36
- url = @api_endpoint + url
42
+ @api_endpoint + url
37
43
  end
38
44
  end
39
45
  end
@@ -25,44 +25,61 @@ module ChargeBee
25
25
  jsonKeys = {
26
26
  :meta_data => 0,
27
27
  }
28
- Request.send('post', uri_path("addons"), params, env, headers,nil, false, jsonKeys)
28
+ options = {
29
+ :isIdempotent => true
30
+ }
31
+ Request.send('post', uri_path("addons"), params, env, headers,nil, false, jsonKeys, options)
29
32
  end
30
33
 
31
34
  def self.update(id, params, env=nil, headers={})
32
35
  jsonKeys = {
33
36
  :meta_data => 0,
34
37
  }
35
- Request.send('post', uri_path("addons",id.to_s), params, env, headers,nil, false, jsonKeys)
38
+ options = {
39
+ :isIdempotent => true
40
+ }
41
+ Request.send('post', uri_path("addons",id.to_s), params, env, headers,nil, false, jsonKeys, options)
36
42
  end
37
43
 
38
44
  def self.list(params={}, env=nil, headers={})
39
45
  jsonKeys = {
40
46
  }
41
- Request.send_list_request('get', uri_path("addons"), params, env, headers,nil, false, jsonKeys)
47
+ options = {}
48
+ Request.send_list_request('get', uri_path("addons"), params, env, headers,nil, false, jsonKeys, options)
42
49
  end
43
50
 
44
51
  def self.retrieve(id, env=nil, headers={})
45
52
  jsonKeys = {
46
53
  }
47
- Request.send('get', uri_path("addons",id.to_s), {}, env, headers,nil, false, jsonKeys)
54
+ options = {}
55
+ Request.send('get', uri_path("addons",id.to_s), {}, env, headers,nil, false, jsonKeys, options)
48
56
  end
49
57
 
50
58
  def self.delete(id, env=nil, headers={})
51
59
  jsonKeys = {
52
60
  }
53
- Request.send('post', uri_path("addons",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys)
61
+ options = {
62
+ :isIdempotent => true
63
+ }
64
+ Request.send('post', uri_path("addons",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys, options)
54
65
  end
55
66
 
56
67
  def self.copy(params, env=nil, headers={})
57
68
  jsonKeys = {
58
69
  }
59
- Request.send('post', uri_path("addons","copy"), params, env, headers,nil, false, jsonKeys)
70
+ options = {
71
+ :isIdempotent => true
72
+ }
73
+ Request.send('post', uri_path("addons","copy"), params, env, headers,nil, false, jsonKeys, options)
60
74
  end
61
75
 
62
76
  def self.unarchive(id, env=nil, headers={})
63
77
  jsonKeys = {
64
78
  }
65
- Request.send('post', uri_path("addons",id.to_s,"unarchive"), {}, env, headers,nil, false, jsonKeys)
79
+ options = {
80
+ :isIdempotent => true
81
+ }
82
+ Request.send('post', uri_path("addons",id.to_s,"unarchive"), {}, env, headers,nil, false, jsonKeys, options)
66
83
  end
67
84
 
68
85
  end # ~Addon
@@ -10,13 +10,17 @@ module ChargeBee
10
10
  def self.retrieve(params, env=nil, headers={})
11
11
  jsonKeys = {
12
12
  }
13
- Request.send('get', uri_path("addresses"), params, env, headers,nil, false, jsonKeys)
13
+ options = {}
14
+ Request.send('get', uri_path("addresses"), params, env, headers,nil, false, jsonKeys, options)
14
15
  end
15
16
 
16
17
  def self.update(params, env=nil, headers={})
17
18
  jsonKeys = {
18
19
  }
19
- Request.send('post', uri_path("addresses"), params, env, headers,nil, false, jsonKeys)
20
+ options = {
21
+ :isIdempotent => true
22
+ }
23
+ Request.send('post', uri_path("addresses"), params, env, headers,nil, false, jsonKeys, options)
20
24
  end
21
25
 
22
26
  end # ~Address
@@ -11,31 +11,42 @@ module ChargeBee
11
11
  def self.create(id, params, env=nil, headers={})
12
12
  jsonKeys = {
13
13
  }
14
- Request.send('post', uri_path("items",id.to_s,"attached_items"), params, env, headers,nil, false, jsonKeys)
14
+ options = {
15
+ :isIdempotent => true
16
+ }
17
+ Request.send('post', uri_path("items",id.to_s,"attached_items"), params, env, headers,nil, false, jsonKeys, options)
15
18
  end
16
19
 
17
20
  def self.update(id, params, env=nil, headers={})
18
21
  jsonKeys = {
19
22
  }
20
- Request.send('post', uri_path("attached_items",id.to_s), params, env, headers,nil, false, jsonKeys)
23
+ options = {
24
+ :isIdempotent => true
25
+ }
26
+ Request.send('post', uri_path("attached_items",id.to_s), params, env, headers,nil, false, jsonKeys, options)
21
27
  end
22
28
 
23
29
  def self.retrieve(id, params, env=nil, headers={})
24
30
  jsonKeys = {
25
31
  }
26
- Request.send('get', uri_path("attached_items",id.to_s), params, env, headers,nil, false, jsonKeys)
32
+ options = {}
33
+ Request.send('get', uri_path("attached_items",id.to_s), params, env, headers,nil, false, jsonKeys, options)
27
34
  end
28
35
 
29
36
  def self.delete(id, params, env=nil, headers={})
30
37
  jsonKeys = {
31
38
  }
32
- Request.send('post', uri_path("attached_items",id.to_s,"delete"), params, env, headers,nil, false, jsonKeys)
39
+ options = {
40
+ :isIdempotent => true
41
+ }
42
+ Request.send('post', uri_path("attached_items",id.to_s,"delete"), params, env, headers,nil, false, jsonKeys, options)
33
43
  end
34
44
 
35
45
  def self.list(id, params={}, env=nil, headers={})
36
46
  jsonKeys = {
37
47
  }
38
- Request.send_list_request('get', uri_path("items",id.to_s,"attached_items"), params, env, headers,nil, false, jsonKeys)
48
+ options = {}
49
+ Request.send_list_request('get', uri_path("items",id.to_s,"attached_items"), params, env, headers,nil, false, jsonKeys, options)
39
50
  end
40
51
 
41
52
  end # ~AttachedItem
@@ -0,0 +1,14 @@
1
+ module ChargeBee
2
+ class BillingConfiguration < Model
3
+
4
+ class BillingDate < Model
5
+ attr_accessor :start_date, :end_date
6
+ end
7
+
8
+ attr_accessor :is_calendar_billing_enabled, :billing_dates
9
+
10
+ # OPERATIONS
11
+ #-----------
12
+
13
+ end # ~BillingConfiguration
14
+ end # ~ChargeBee
@@ -0,0 +1,10 @@
1
+ module ChargeBee
2
+ class Brand < Model
3
+
4
+ attr_accessor :id, :name
5
+
6
+ # OPERATIONS
7
+ #-----------
8
+
9
+ end # ~Brand
10
+ end # ~ChargeBee
@@ -9,13 +9,17 @@ module ChargeBee
9
9
  def self.create_transfers(params, env=nil, headers={})
10
10
  jsonKeys = {
11
11
  }
12
- Request.send('post', uri_path("business_entities","transfers"), params, env, headers,nil, false, jsonKeys)
12
+ options = {
13
+ :isIdempotent => true
14
+ }
15
+ Request.send('post', uri_path("business_entities","transfers"), params, env, headers,nil, false, jsonKeys, options)
13
16
  end
14
17
 
15
18
  def self.get_transfers(params={}, env=nil, headers={})
16
19
  jsonKeys = {
17
20
  }
18
- Request.send('get', uri_path("business_entities","transfers"), params, env, headers,nil, false, jsonKeys)
21
+ options = {}
22
+ Request.send('get', uri_path("business_entities","transfers"), params, env, headers,nil, false, jsonKeys, options)
19
23
  end
20
24
 
21
25
  end # ~BusinessEntity
@@ -13,31 +13,44 @@ module ChargeBee
13
13
  def self.retrieve(id, env=nil, headers={})
14
14
  jsonKeys = {
15
15
  }
16
- Request.send('get', uri_path("cards",id.to_s), {}, env, headers,nil, false, jsonKeys)
16
+ options = {}
17
+ Request.send('get', uri_path("cards",id.to_s), {}, env, headers,nil, false, jsonKeys, options)
17
18
  end
18
19
 
19
20
  def self.update_card_for_customer(id, params, env=nil, headers={})
20
21
  jsonKeys = {
21
22
  }
22
- Request.send('post', uri_path("customers",id.to_s,"credit_card"), params, env, headers,nil, false, jsonKeys)
23
+ options = {
24
+ :isIdempotent => true
25
+ }
26
+ Request.send('post', uri_path("customers",id.to_s,"credit_card"), params, env, headers,nil, false, jsonKeys, options)
23
27
  end
24
28
 
25
29
  def self.switch_gateway_for_customer(id, params, env=nil, headers={})
26
30
  jsonKeys = {
27
31
  }
28
- Request.send('post', uri_path("customers",id.to_s,"switch_gateway"), params, env, headers,nil, false, jsonKeys)
32
+ options = {
33
+ :isIdempotent => true
34
+ }
35
+ Request.send('post', uri_path("customers",id.to_s,"switch_gateway"), params, env, headers,nil, false, jsonKeys, options)
29
36
  end
30
37
 
31
38
  def self.copy_card_for_customer(id, params, env=nil, headers={})
32
39
  jsonKeys = {
33
40
  }
34
- Request.send('post', uri_path("customers",id.to_s,"copy_card"), params, env, headers,nil, false, jsonKeys)
41
+ options = {
42
+ :isIdempotent => true
43
+ }
44
+ Request.send('post', uri_path("customers",id.to_s,"copy_card"), params, env, headers,nil, false, jsonKeys, options)
35
45
  end
36
46
 
37
47
  def self.delete_card_for_customer(id, env=nil, headers={})
38
48
  jsonKeys = {
39
49
  }
40
- Request.send('post', uri_path("customers",id.to_s,"delete_card"), {}, env, headers,nil, false, jsonKeys)
50
+ options = {
51
+ :isIdempotent => true
52
+ }
53
+ Request.send('post', uri_path("customers",id.to_s,"delete_card"), {}, env, headers,nil, false, jsonKeys, options)
41
54
  end
42
55
 
43
56
  end # ~Card
@@ -9,25 +9,33 @@ module ChargeBee
9
9
  def self.create(params, env=nil, headers={})
10
10
  jsonKeys = {
11
11
  }
12
- Request.send('post', uri_path("comments"), params, env, headers,nil, false, jsonKeys)
12
+ options = {
13
+ :isIdempotent => true
14
+ }
15
+ Request.send('post', uri_path("comments"), params, env, headers,nil, false, jsonKeys, options)
13
16
  end
14
17
 
15
18
  def self.retrieve(id, env=nil, headers={})
16
19
  jsonKeys = {
17
20
  }
18
- Request.send('get', uri_path("comments",id.to_s), {}, env, headers,nil, false, jsonKeys)
21
+ options = {}
22
+ Request.send('get', uri_path("comments",id.to_s), {}, env, headers,nil, false, jsonKeys, options)
19
23
  end
20
24
 
21
25
  def self.list(params={}, env=nil, headers={})
22
26
  jsonKeys = {
23
27
  }
24
- Request.send_list_request('get', uri_path("comments"), params, env, headers,nil, false, jsonKeys)
28
+ options = {}
29
+ Request.send_list_request('get', uri_path("comments"), params, env, headers,nil, false, jsonKeys, options)
25
30
  end
26
31
 
27
32
  def self.delete(id, env=nil, headers={})
28
33
  jsonKeys = {
29
34
  }
30
- Request.send('post', uri_path("comments",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys)
35
+ options = {
36
+ :isIdempotent => true
37
+ }
38
+ Request.send('post', uri_path("comments",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys, options)
31
39
  end
32
40
 
33
41
  end # ~Comment
@@ -9,7 +9,8 @@ module ChargeBee
9
9
  def self.list(env=nil, headers={})
10
10
  jsonKeys = {
11
11
  }
12
- Request.send_list_request('get', uri_path("configurations"), {}, env, headers,nil, false, jsonKeys)
12
+ options = {}
13
+ Request.send_list_request('get', uri_path("configurations"), {}, env, headers,nil, false, jsonKeys, options)
13
14
  end
14
15
 
15
16
  end # ~Configuration
@@ -27,7 +27,10 @@ module ChargeBee
27
27
  jsonKeys = {
28
28
  :meta_data => 0,
29
29
  }
30
- Request.send('post', uri_path("coupons"), params, env, headers,nil, false, jsonKeys)
30
+ options = {
31
+ :isIdempotent => true
32
+ }
33
+ Request.send('post', uri_path("coupons"), params, env, headers,nil, false, jsonKeys, options)
31
34
  end
32
35
 
33
36
  def self.create_for_items(params, env=nil, headers={})
@@ -38,7 +41,10 @@ module ChargeBee
38
41
  :currencies => 1,
39
42
  :item_price_periods => 1,
40
43
  }
41
- Request.send('post', uri_path("coupons","create_for_items"), params, env, headers,nil, false, jsonKeys)
44
+ options = {
45
+ :isIdempotent => true
46
+ }
47
+ Request.send('post', uri_path("coupons","create_for_items"), params, env, headers,nil, false, jsonKeys, options)
42
48
  end
43
49
 
44
50
  def self.update_for_items(id, params, env=nil, headers={})
@@ -49,44 +55,61 @@ module ChargeBee
49
55
  :currencies => 1,
50
56
  :item_price_periods => 1,
51
57
  }
52
- Request.send('post', uri_path("coupons",id.to_s,"update_for_items"), params, env, headers,nil, false, jsonKeys)
58
+ options = {
59
+ :isIdempotent => true
60
+ }
61
+ Request.send('post', uri_path("coupons",id.to_s,"update_for_items"), params, env, headers,nil, false, jsonKeys, options)
53
62
  end
54
63
 
55
64
  def self.list(params={}, env=nil, headers={})
56
65
  jsonKeys = {
57
66
  }
58
- Request.send_list_request('get', uri_path("coupons"), params, env, headers,nil, false, jsonKeys)
67
+ options = {}
68
+ Request.send_list_request('get', uri_path("coupons"), params, env, headers,nil, false, jsonKeys, options)
59
69
  end
60
70
 
61
71
  def self.retrieve(id, env=nil, headers={})
62
72
  jsonKeys = {
63
73
  }
64
- Request.send('get', uri_path("coupons",id.to_s), {}, env, headers,nil, false, jsonKeys)
74
+ options = {}
75
+ Request.send('get', uri_path("coupons",id.to_s), {}, env, headers,nil, false, jsonKeys, options)
65
76
  end
66
77
 
67
78
  def self.update(id, params={}, env=nil, headers={})
68
79
  jsonKeys = {
69
80
  :meta_data => 0,
70
81
  }
71
- Request.send('post', uri_path("coupons",id.to_s), params, env, headers,nil, false, jsonKeys)
82
+ options = {
83
+ :isIdempotent => true
84
+ }
85
+ Request.send('post', uri_path("coupons",id.to_s), params, env, headers,nil, false, jsonKeys, options)
72
86
  end
73
87
 
74
88
  def self.delete(id, env=nil, headers={})
75
89
  jsonKeys = {
76
90
  }
77
- Request.send('post', uri_path("coupons",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys)
91
+ options = {
92
+ :isIdempotent => true
93
+ }
94
+ Request.send('post', uri_path("coupons",id.to_s,"delete"), {}, env, headers,nil, false, jsonKeys, options)
78
95
  end
79
96
 
80
97
  def self.copy(params, env=nil, headers={})
81
98
  jsonKeys = {
82
99
  }
83
- Request.send('post', uri_path("coupons","copy"), params, env, headers,nil, false, jsonKeys)
100
+ options = {
101
+ :isIdempotent => true
102
+ }
103
+ Request.send('post', uri_path("coupons","copy"), params, env, headers,nil, false, jsonKeys, options)
84
104
  end
85
105
 
86
106
  def self.unarchive(id, env=nil, headers={})
87
107
  jsonKeys = {
88
108
  }
89
- Request.send('post', uri_path("coupons",id.to_s,"unarchive"), {}, env, headers,nil, false, jsonKeys)
109
+ options = {
110
+ :isIdempotent => true
111
+ }
112
+ Request.send('post', uri_path("coupons",id.to_s,"unarchive"), {}, env, headers,nil, false, jsonKeys, options)
90
113
  end
91
114
 
92
115
  end # ~Coupon
@@ -9,25 +9,33 @@ module ChargeBee
9
9
  def self.create(params, env=nil, headers={})
10
10
  jsonKeys = {
11
11
  }
12
- Request.send('post', uri_path("coupon_codes"), params, env, headers,nil, false, jsonKeys)
12
+ options = {
13
+ :isIdempotent => true
14
+ }
15
+ Request.send('post', uri_path("coupon_codes"), params, env, headers,nil, false, jsonKeys, options)
13
16
  end
14
17
 
15
18
  def self.retrieve(id, env=nil, headers={})
16
19
  jsonKeys = {
17
20
  }
18
- Request.send('get', uri_path("coupon_codes",id.to_s), {}, env, headers,nil, false, jsonKeys)
21
+ options = {}
22
+ Request.send('get', uri_path("coupon_codes",id.to_s), {}, env, headers,nil, false, jsonKeys, options)
19
23
  end
20
24
 
21
25
  def self.list(params={}, env=nil, headers={})
22
26
  jsonKeys = {
23
27
  }
24
- Request.send_list_request('get', uri_path("coupon_codes"), params, env, headers,nil, false, jsonKeys)
28
+ options = {}
29
+ Request.send_list_request('get', uri_path("coupon_codes"), params, env, headers,nil, false, jsonKeys, options)
25
30
  end
26
31
 
27
32
  def self.archive(id, env=nil, headers={})
28
33
  jsonKeys = {
29
34
  }
30
- Request.send('post', uri_path("coupon_codes",id.to_s,"archive"), {}, env, headers,nil, false, jsonKeys)
35
+ options = {
36
+ :isIdempotent => true
37
+ }
38
+ Request.send('post', uri_path("coupon_codes",id.to_s,"archive"), {}, env, headers,nil, false, jsonKeys, options)
31
39
  end
32
40
 
33
41
  end # ~CouponCode