flowcommerce 0.2.65 → 0.2.66

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fdcb95be3b26af8394419dd0903e53694837f523
4
- data.tar.gz: cee1a53edc4753818ef8a22956e6e51d9acb9d7a
3
+ metadata.gz: 66c2446e7e0579184e66413826b20c2874e1da60
4
+ data.tar.gz: e53514cf1646bba01255a7a6ae71525b7ea60d5d
5
5
  SHA512:
6
- metadata.gz: 18b558c237da0681b3cacf56fd14fc1943c4b8cbeb4b7a7817c90003deae2800c12593f77d4f3db35e8c220ec91dd1cd80a3f01c890145d926408d4d57068ff3
7
- data.tar.gz: 07ef712e1e5f345f7bda5afde517ccc6b87d5eb44765cb64ce7ef24617c368fed03296a43aeba734e49d77291ff8213415d7369b9c2f7f9f43c05465fe8676b5
6
+ metadata.gz: abe17b71c2fb221b7c42b9999d046c17f4b8124788d81b1a591310023b9c688c9e8710bb3a9624e44982bbf9f57a2ff08caf5ecb8dc9afa3fcff9f35f02242d6
7
+ data.tar.gz: c2f63001609343dc46e72ebc396779e508f44036827dbe8ef465873bdc73f244b016e33423e7893082decd1839a4d4c6196024665caacc3c9e83531e29dbaa89
@@ -1,6 +1,6 @@
1
1
  # Generated by API Builder - https://www.apibuilder.io
2
- # Service version: 0.5.84
3
- # apibuilder 0.14.3 app.apibuilder.io/flow/api/0.5.89/ruby_client
2
+ # Service version: 0.6.19
3
+ # apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.24/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -25,8 +25,8 @@ module Io
25
25
 
26
26
  BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
27
27
  NAMESPACE = 'io.flow.v0' unless defined?(Constants::NAMESPACE)
28
- USER_AGENT = 'apibuilder 0.14.3 app.apibuilder.io/flow/api/0.5.89/ruby_client' unless defined?(Constants::USER_AGENT)
29
- VERSION = '0.5.84' unless defined?(Constants::VERSION)
28
+ USER_AGENT = 'apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.24/ruby_client' unless defined?(Constants::USER_AGENT)
29
+ VERSION = '0.6.19' unless defined?(Constants::VERSION)
30
30
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
31
31
 
32
32
  end
@@ -312,10 +312,6 @@ module Io
312
312
  @tiers ||= ::Io::Flow::V0::Clients::Tiers.new(self)
313
313
  end
314
314
 
315
- def tier_defaults
316
- @tier_defaults ||= ::Io::Flow::V0::Clients::TierDefaults.new(self)
317
- end
318
-
319
315
  def tier_rules
320
316
  @tier_rules ||= ::Io::Flow::V0::Clients::TierRules.new(self)
321
317
  end
@@ -920,10 +916,16 @@ module Io
920
916
  ::Io::Flow::V0::Models::ExperienceCurrencyFormat.new(r)
921
917
  end
922
918
 
923
- def get_logistics_and_summary_by_experience_key(organization, experience_key)
919
+ def get_logistics_and_summary_by_experience_key(organization, experience_key, incoming={})
924
920
  HttpClient::Preconditions.assert_class('organization', organization, String)
925
921
  HttpClient::Preconditions.assert_class('experience_key', experience_key, String)
926
- r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/logistics/summary").get
922
+ opts = HttpClient::Helper.symbolize_keys(incoming)
923
+ query = {
924
+ :country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)),
925
+ :currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)),
926
+ :number => (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, String))
927
+ }.delete_if { |k, v| v.nil? }
928
+ r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/logistics/summary").with_query(query).get
927
929
  ::Io::Flow::V0::Models::ExperienceLogisticsSummary.new(r)
928
930
  end
929
931
 
@@ -1248,6 +1250,15 @@ module Io
1248
1250
  nil
1249
1251
  end
1250
1252
 
1253
+ # Update item with the specified attributes.
1254
+ def patch_attributes_by_number(organization, number, item_attributes_patch_form)
1255
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1256
+ HttpClient::Preconditions.assert_class('number', number, String)
1257
+ (x = item_attributes_patch_form; x.is_a?(::Io::Flow::V0::Models::ItemAttributesPatchForm) ? x : ::Io::Flow::V0::Models::ItemAttributesPatchForm.new(x))
1258
+ r = @client.request("/#{CGI.escape(organization)}/catalog/items/#{CGI.escape(number)}/attributes").with_json(item_attributes_patch_form.to_json).patch
1259
+ ::Io::Flow::V0::Models::Item.new(r)
1260
+ end
1261
+
1251
1262
  # Update item with the specified number, creating if it does not exist.
1252
1263
  def put_price_by_number(organization, number, item_price_update_put_form)
1253
1264
  HttpClient::Preconditions.assert_class('organization', organization, String)
@@ -1460,6 +1471,14 @@ module Io
1460
1471
  ::Io::Flow::V0::Models::TaxRegistration.new(r)
1461
1472
  end
1462
1473
 
1474
+ def delete_tax_and_registration_by_number_and_key(organization, number, key)
1475
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1476
+ HttpClient::Preconditions.assert_class('number', number, String)
1477
+ HttpClient::Preconditions.assert_class('key', key, String)
1478
+ r = @client.request("/#{CGI.escape(organization)}/orders/#{CGI.escape(number)}/tax/registration/#{CGI.escape(key)}").delete
1479
+ nil
1480
+ end
1481
+
1463
1482
  # Returns the current fraud status for this order
1464
1483
  def get_status_and_fraud_by_number(organization, number)
1465
1484
  HttpClient::Preconditions.assert_class('organization', organization, String)
@@ -2590,6 +2609,7 @@ module Io
2590
2609
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
2591
2610
  :base => (x = opts.delete(:base); x.nil? ? nil : HttpClient::Preconditions.assert_class('base', x, Array).map { |v| HttpClient::Preconditions.assert_class('base', v, String) }),
2592
2611
  :target => (x = opts.delete(:target); x.nil? ? nil : HttpClient::Preconditions.assert_class('target', x, String)),
2612
+ :type => (x = (x = opts.delete(:type); x.nil? ? "organization" : x); x.is_a?(::Io::Flow::V0::Models::RateType) ? x : ::Io::Flow::V0::Models::RateType.apply(x)).value,
2593
2613
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
2594
2614
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
2595
2615
  :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
@@ -2606,6 +2626,7 @@ module Io
2606
2626
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
2607
2627
  :base => (x = opts.delete(:base); x.nil? ? nil : HttpClient::Preconditions.assert_class('base', x, String)),
2608
2628
  :target => (x = opts.delete(:target); x.nil? ? nil : HttpClient::Preconditions.assert_class('target', x, String)),
2629
+ :type => (x = (x = opts.delete(:type); x.nil? ? "organization" : x); x.is_a?(::Io::Flow::V0::Models::RateType) ? x : ::Io::Flow::V0::Models::RateType.apply(x)).value,
2609
2630
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
2610
2631
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
2611
2632
  :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
@@ -2962,6 +2983,13 @@ module Io
2962
2983
  ::Io::Flow::V0::Models::TaxRegistration.new(r)
2963
2984
  end
2964
2985
 
2986
+ def delete_by_key(organization, key)
2987
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2988
+ HttpClient::Preconditions.assert_class('key', key, String)
2989
+ r = @client.request("/#{CGI.escape(organization)}/tax/registrations/#{CGI.escape(key)}").delete
2990
+ nil
2991
+ end
2992
+
2965
2993
  end
2966
2994
 
2967
2995
  class Authorizations
@@ -3066,20 +3094,6 @@ module Io
3066
3094
  nil
3067
3095
  end
3068
3096
 
3069
- # Updates the value of the authorization, or returns the authorization as-is
3070
- # if the value is the same.
3071
- def put_value_by_key(organization, key, authorization_value_form, incoming={})
3072
- HttpClient::Preconditions.assert_class('organization', organization, String)
3073
- HttpClient::Preconditions.assert_class('key', key, String)
3074
- opts = HttpClient::Helper.symbolize_keys(incoming)
3075
- query = {
3076
- :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
3077
- }.delete_if { |k, v| v.nil? }
3078
- (x = authorization_value_form; x.is_a?(::Io::Flow::V0::Models::AuthorizationValueForm) ? x : ::Io::Flow::V0::Models::AuthorizationValueForm.new(x))
3079
- r = @client.request("/#{CGI.escape(organization)}/authorizations/#{CGI.escape(key)}/value").with_query(query).with_json(authorization_value_form.to_json).put
3080
- ::Io::Flow::V0::Models::Authorization.from_json(r)
3081
- end
3082
-
3083
3097
  end
3084
3098
 
3085
3099
  class Captures
@@ -3094,6 +3108,7 @@ module Io
3094
3108
  query = {
3095
3109
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
3096
3110
  :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }),
3111
+ :identifier => (x = opts.delete(:identifier); x.nil? ? nil : HttpClient::Preconditions.assert_class('identifier', x, String)),
3097
3112
  :authorization_id => (x = opts.delete(:authorization_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('authorization_id', x, String)),
3098
3113
  :authorization_key => (x = opts.delete(:authorization_key); x.nil? ? nil : HttpClient::Preconditions.assert_class('authorization_key', x, String)),
3099
3114
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
@@ -3362,6 +3377,7 @@ module Io
3362
3377
  query = {
3363
3378
  :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
3364
3379
  :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }),
3380
+ :identifier => (x = opts.delete(:identifier); x.nil? ? nil : HttpClient::Preconditions.assert_class('identifier', x, String)),
3365
3381
  :authorization_id => (x = opts.delete(:authorization_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('authorization_id', x, String)),
3366
3382
  :authorization_key => (x = opts.delete(:authorization_key); x.nil? ? nil : HttpClient::Preconditions.assert_class('authorization_key', x, String)),
3367
3383
  :capture_id => (x = opts.delete(:capture_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('capture_id', x, String)),
@@ -4114,20 +4130,6 @@ module Io
4114
4130
  ::Io::Flow::V0::Models::ShippingConfiguration.new(r)
4115
4131
  end
4116
4132
 
4117
- def get_versions(organization, incoming={})
4118
- HttpClient::Preconditions.assert_class('organization', organization, String)
4119
- opts = HttpClient::Helper.symbolize_keys(incoming)
4120
- query = {
4121
- :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
4122
- :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }),
4123
- :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
4124
- :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
4125
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
4126
- }.delete_if { |k, v| v.nil? }
4127
- r = @client.request("/#{CGI.escape(organization)}/shipping/configuration/versions").with_query(query).get
4128
- r.map { |x| ::Io::Flow::V0::Models::ShippingConfigurationVersion.new(x) }
4129
- end
4130
-
4131
4133
  def get_by_key(organization, key)
4132
4134
  HttpClient::Preconditions.assert_class('organization', organization, String)
4133
4135
  HttpClient::Preconditions.assert_class('key', key, String)
@@ -4173,20 +4175,6 @@ module Io
4173
4175
  ::Io::Flow::V0::Models::ShippingLane.new(r)
4174
4176
  end
4175
4177
 
4176
- def get_lanes_and_versions_by_key(organization, key, incoming={})
4177
- HttpClient::Preconditions.assert_class('organization', organization, String)
4178
- HttpClient::Preconditions.assert_class('key', key, String)
4179
- opts = HttpClient::Helper.symbolize_keys(incoming)
4180
- query = {
4181
- :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
4182
- :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
4183
- :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
4184
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
4185
- }.delete_if { |k, v| v.nil? }
4186
- r = @client.request("/#{CGI.escape(organization)}/shipping/configuration/#{CGI.escape(key)}/lanes/versions").with_query(query).get
4187
- r.map { |x| ::Io::Flow::V0::Models::ShippingLaneVersion.new(x) }
4188
- end
4189
-
4190
4178
  def get_lanes_by_key_and_id(organization, key, id)
4191
4179
  HttpClient::Preconditions.assert_class('organization', organization, String)
4192
4180
  HttpClient::Preconditions.assert_class('key', key, String)
@@ -4422,56 +4410,6 @@ module Io
4422
4410
 
4423
4411
  end
4424
4412
 
4425
- class TierDefaults
4426
-
4427
- def initialize(client)
4428
- @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
4429
- end
4430
-
4431
- def get(organization, incoming={})
4432
- HttpClient::Preconditions.assert_class('organization', organization, String)
4433
- opts = HttpClient::Helper.symbolize_keys(incoming)
4434
- query = {
4435
- :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
4436
- :experience => (x = opts.delete(:experience); x.nil? ? nil : HttpClient::Preconditions.assert_class('experience', x, Array).map { |v| HttpClient::Preconditions.assert_class('experience', v, String) }),
4437
- :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
4438
- :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
4439
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
4440
- }.delete_if { |k, v| v.nil? }
4441
- r = @client.request("/#{CGI.escape(organization)}/tier_defaults").with_query(query).get
4442
- r.map { |x| ::Io::Flow::V0::Models::TierDefault.new(x) }
4443
- end
4444
-
4445
- def post(organization, tier_default_form)
4446
- HttpClient::Preconditions.assert_class('organization', organization, String)
4447
- (x = tier_default_form; x.is_a?(::Io::Flow::V0::Models::TierDefaultForm) ? x : ::Io::Flow::V0::Models::TierDefaultForm.new(x))
4448
- r = @client.request("/#{CGI.escape(organization)}/tier_defaults").with_json(tier_default_form.to_json).post
4449
- ::Io::Flow::V0::Models::TierDefault.new(r)
4450
- end
4451
-
4452
- def get_versions(organization, incoming={})
4453
- HttpClient::Preconditions.assert_class('organization', organization, String)
4454
- opts = HttpClient::Helper.symbolize_keys(incoming)
4455
- query = {
4456
- :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
4457
- :tier_default => (x = opts.delete(:tier_default); x.nil? ? nil : HttpClient::Preconditions.assert_class('tier_default', x, Array).map { |v| HttpClient::Preconditions.assert_class('tier_default', v, String) }),
4458
- :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
4459
- :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
4460
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
4461
- }.delete_if { |k, v| v.nil? }
4462
- r = @client.request("/#{CGI.escape(organization)}/tier_defaults/versions").with_query(query).get
4463
- r.map { |x| ::Io::Flow::V0::Models::TierDefaultVersion.new(x) }
4464
- end
4465
-
4466
- def get_by_id(organization, id)
4467
- HttpClient::Preconditions.assert_class('organization', organization, String)
4468
- HttpClient::Preconditions.assert_class('id', id, String)
4469
- r = @client.request("/#{CGI.escape(organization)}/tier_defaults/#{CGI.escape(id)}").get
4470
- ::Io::Flow::V0::Models::TierDefault.new(r)
4471
- end
4472
-
4473
- end
4474
-
4475
4413
  class TierRules
4476
4414
 
4477
4415
  def initialize(client)
@@ -5042,17 +4980,45 @@ module Io
5042
4980
  r.map { |x| ::Io::Flow::V0::Models::ConsumerInvoice.new(x) }
5043
4981
  end
5044
4982
 
5045
- def post(organization, consumer_invoice_form, incoming={})
4983
+ def put_order_by_number(organization, number, consumer_invoice_form_by_order, incoming={})
5046
4984
  HttpClient::Preconditions.assert_class('organization', organization, String)
4985
+ HttpClient::Preconditions.assert_class('number', number, String)
5047
4986
  opts = HttpClient::Helper.symbolize_keys(incoming)
5048
4987
  query = {
5049
4988
  :language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String))
5050
4989
  }.delete_if { |k, v| v.nil? }
5051
- (x = consumer_invoice_form; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceForm.new(x))
5052
- r = @client.request("/#{CGI.escape(organization)}/consumer/invoices").with_query(query).with_json(consumer_invoice_form.to_json).post
4990
+ (x = consumer_invoice_form_by_order; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceFormByOrder) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceFormByOrder.new(x))
4991
+ r = @client.request("/#{CGI.escape(organization)}/consumer/invoices/order/#{CGI.escape(number)}").with_query(query).with_json(consumer_invoice_form_by_order.to_json).put
4992
+ ::Io::Flow::V0::Models::ConsumerInvoice.new(r)
4993
+ end
4994
+
4995
+ # Creates a credit memo against this invoice
4996
+ def post_credit_and_memos_by_invoice_key(organization, invoice_key, credit_memo_form)
4997
+ HttpClient::Preconditions.assert_class('organization', organization, String)
4998
+ HttpClient::Preconditions.assert_class('invoice_key', invoice_key, String)
4999
+ (x = credit_memo_form; x.is_a?(::Io::Flow::V0::Models::CreditMemoForm) ? x : ::Io::Flow::V0::Models::CreditMemoForm.new(x))
5000
+ r = @client.request("/#{CGI.escape(organization)}/consumer/invoices/#{CGI.escape(invoice_key)}/credit/memos").with_json(credit_memo_form.to_json).post
5053
5001
  ::Io::Flow::V0::Models::ConsumerInvoice.new(r)
5054
5002
  end
5055
5003
 
5004
+ # Upserts a credit memo against this invoice
5005
+ def put_credit_and_memos_by_invoice_key_and_key(organization, invoice_key, key, credit_memo_form)
5006
+ HttpClient::Preconditions.assert_class('organization', organization, String)
5007
+ HttpClient::Preconditions.assert_class('invoice_key', invoice_key, String)
5008
+ HttpClient::Preconditions.assert_class('key', key, String)
5009
+ (x = credit_memo_form; x.is_a?(::Io::Flow::V0::Models::CreditMemoForm) ? x : ::Io::Flow::V0::Models::CreditMemoForm.new(x))
5010
+ r = @client.request("/#{CGI.escape(organization)}/consumer/invoices/#{CGI.escape(invoice_key)}/credit/memos/#{CGI.escape(key)}").with_json(credit_memo_form.to_json).put
5011
+ ::Io::Flow::V0::Models::ConsumerInvoice.new(r)
5012
+ end
5013
+
5014
+ def delete_credit_and_memos_by_invoice_key_and_key(organization, invoice_key, key)
5015
+ HttpClient::Preconditions.assert_class('organization', organization, String)
5016
+ HttpClient::Preconditions.assert_class('invoice_key', invoice_key, String)
5017
+ HttpClient::Preconditions.assert_class('key', key, String)
5018
+ r = @client.request("/#{CGI.escape(organization)}/consumer/invoices/#{CGI.escape(invoice_key)}/credit/memos/#{CGI.escape(key)}").delete
5019
+ nil
5020
+ end
5021
+
5056
5022
  def get_by_key(organization, key)
5057
5023
  HttpClient::Preconditions.assert_class('organization', organization, String)
5058
5024
  HttpClient::Preconditions.assert_class('key', key, String)
@@ -5866,6 +5832,13 @@ module Io
5866
5832
  @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
5867
5833
  end
5868
5834
 
5835
+ # Retrieve representation of a Shopify cart for the given order number.
5836
+ def get_order_by_number(number)
5837
+ HttpClient::Preconditions.assert_class('number', number, String)
5838
+ r = @client.request("/shopify/carts/order/#{CGI.escape(number)}").get
5839
+ ::Io::Flow::V0::Models::ShopifyCart.new(r)
5840
+ end
5841
+
5869
5842
  # Retrieve representation of a Shopify cart given the unique cart id.
5870
5843
  def get_by_id_html(id)
5871
5844
  HttpClient::Preconditions.assert_class('id', id, String)
@@ -6490,6 +6463,130 @@ module Io
6490
6463
 
6491
6464
  end
6492
6465
 
6466
+ class ConsumerInvoiceLine
6467
+
6468
+ module Types
6469
+ CONSUMER_INVOICE_LINE_ITEM = 'item' unless defined?(CONSUMER_INVOICE_LINE_ITEM)
6470
+ CONSUMER_INVOICE_LINE_SHIPPING = 'shipping' unless defined?(CONSUMER_INVOICE_LINE_SHIPPING)
6471
+ end
6472
+
6473
+ attr_reader :discriminator
6474
+
6475
+ def initialize(incoming={})
6476
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6477
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'ConsumerInvoiceLine')
6478
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
6479
+ end
6480
+
6481
+ def subtype_to_hash
6482
+ raise 'Cannot serialize an instance of consumer_invoice_line directly - must use one of the specific types: consumer_invoice_line_item, consumer_invoice_line_shipping'
6483
+ end
6484
+
6485
+ def to_hash
6486
+ subtype_to_hash.merge(:discriminator => @discriminator)
6487
+ end
6488
+
6489
+ def ConsumerInvoiceLine.from_json(hash)
6490
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
6491
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
6492
+ if discriminator.empty?
6493
+ raise "Union type[consumer_invoice_line] requires a field named 'discriminator'"
6494
+ end
6495
+ case discriminator
6496
+ when Types::CONSUMER_INVOICE_LINE_ITEM; ConsumerInvoiceLineItem.new(hash)
6497
+ when Types::CONSUMER_INVOICE_LINE_SHIPPING; ConsumerInvoiceLineShipping.new(hash)
6498
+ else ConsumerInvoiceLineUndefinedType.new(:discriminator => discriminator)
6499
+ end
6500
+ end
6501
+
6502
+ end
6503
+
6504
+ class ConsumerInvoiceLineUndefinedType < ConsumerInvoiceLine
6505
+
6506
+ attr_reader :name
6507
+
6508
+ def initialize(incoming={})
6509
+ super(:discriminator => 'undefined_type')
6510
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6511
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
6512
+ end
6513
+
6514
+ def subtype_to_hash
6515
+ raise 'Unable to serialize undefined type to json'
6516
+ end
6517
+
6518
+ def copy(incoming={})
6519
+ raise 'Operation not supported for undefined type'
6520
+ end
6521
+
6522
+ def to_hash
6523
+ raise 'Operation not supported for undefined type'
6524
+ end
6525
+
6526
+ end
6527
+
6528
+ class ConsumerInvoiceLineForm
6529
+
6530
+ module Types
6531
+ CONSUMER_INVOICE_LINE_ITEM_FORM = 'item' unless defined?(CONSUMER_INVOICE_LINE_ITEM_FORM)
6532
+ CONSUMER_INVOICE_LINE_SHIPPING_FORM = 'shipping' unless defined?(CONSUMER_INVOICE_LINE_SHIPPING_FORM)
6533
+ end
6534
+
6535
+ attr_reader :discriminator
6536
+
6537
+ def initialize(incoming={})
6538
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6539
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'ConsumerInvoiceLineForm')
6540
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
6541
+ end
6542
+
6543
+ def subtype_to_hash
6544
+ raise 'Cannot serialize an instance of consumer_invoice_line_form directly - must use one of the specific types: consumer_invoice_line_item_form, consumer_invoice_line_shipping_form'
6545
+ end
6546
+
6547
+ def to_hash
6548
+ subtype_to_hash.merge(:discriminator => @discriminator)
6549
+ end
6550
+
6551
+ def ConsumerInvoiceLineForm.from_json(hash)
6552
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
6553
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
6554
+ if discriminator.empty?
6555
+ raise "Union type[consumer_invoice_line_form] requires a field named 'discriminator'"
6556
+ end
6557
+ case discriminator
6558
+ when Types::CONSUMER_INVOICE_LINE_ITEM_FORM; ConsumerInvoiceLineItemForm.new(hash)
6559
+ when Types::CONSUMER_INVOICE_LINE_SHIPPING_FORM; ConsumerInvoiceLineShippingForm.new(hash)
6560
+ else ConsumerInvoiceLineFormUndefinedType.new(:discriminator => discriminator)
6561
+ end
6562
+ end
6563
+
6564
+ end
6565
+
6566
+ class ConsumerInvoiceLineFormUndefinedType < ConsumerInvoiceLineForm
6567
+
6568
+ attr_reader :name
6569
+
6570
+ def initialize(incoming={})
6571
+ super(:discriminator => 'undefined_type')
6572
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6573
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
6574
+ end
6575
+
6576
+ def subtype_to_hash
6577
+ raise 'Unable to serialize undefined type to json'
6578
+ end
6579
+
6580
+ def copy(incoming={})
6581
+ raise 'Operation not supported for undefined type'
6582
+ end
6583
+
6584
+ def to_hash
6585
+ raise 'Operation not supported for undefined type'
6586
+ end
6587
+
6588
+ end
6589
+
6493
6590
  # A delivery represents a group of items that will be delivered together -
6494
6591
  # presenting a single price and delivery time frame, where applicable, to the
6495
6592
  # user. Deliveries commonly are created based on the type of item and, for
@@ -6702,11 +6799,15 @@ module Io
6702
6799
  SUBCATALOG_ITEM_DELETED = 'subcatalog_item_deleted' unless defined?(SUBCATALOG_ITEM_DELETED)
6703
6800
  CONSUMER_INVOICE_UPSERTED = 'consumer_invoice_upserted' unless defined?(CONSUMER_INVOICE_UPSERTED)
6704
6801
  CONSUMER_INVOICE_DELETED = 'consumer_invoice_deleted' unless defined?(CONSUMER_INVOICE_DELETED)
6802
+ CREDIT_MEMO_UPSERTED = 'credit_memo_upserted' unless defined?(CREDIT_MEMO_UPSERTED)
6803
+ CREDIT_MEMO_DELETED = 'credit_memo_deleted' unless defined?(CREDIT_MEMO_DELETED)
6705
6804
  CROSSDOCK_SHIPMENT_UPSERTED = 'crossdock_shipment_upserted' unless defined?(CROSSDOCK_SHIPMENT_UPSERTED)
6706
6805
  RATE_DELETED = 'rate_deleted' unless defined?(RATE_DELETED)
6707
6806
  RATE_UPSERTED = 'rate_upserted' unless defined?(RATE_UPSERTED)
6708
6807
  AVAILABLE_PROMOTIONS_UPSERTED = 'available_promotions_upserted' unless defined?(AVAILABLE_PROMOTIONS_UPSERTED)
6709
6808
  AVAILABLE_PROMOTIONS_DELETED = 'available_promotions_deleted' unless defined?(AVAILABLE_PROMOTIONS_DELETED)
6809
+ AVAILABLE_PROMOTIONS_UPSERTED_V2 = 'available_promotions_upserted_v2' unless defined?(AVAILABLE_PROMOTIONS_UPSERTED_V2)
6810
+ AVAILABLE_PROMOTIONS_DELETED_V2 = 'available_promotions_deleted_v2' unless defined?(AVAILABLE_PROMOTIONS_DELETED_V2)
6710
6811
  ALLOCATION_DELETED_V2 = 'allocation_deleted_v2' unless defined?(ALLOCATION_DELETED_V2)
6711
6812
  ALLOCATION_UPSERTED_V2 = 'allocation_upserted_v2' unless defined?(ALLOCATION_UPSERTED_V2)
6712
6813
  CURRENCY_FORMAT_DELETED = 'currency_format_deleted' unless defined?(CURRENCY_FORMAT_DELETED)
@@ -6744,6 +6845,8 @@ module Io
6744
6845
  SHIPPING_CONFIGURATION_DELETED = 'shipping_configuration_deleted' unless defined?(SHIPPING_CONFIGURATION_DELETED)
6745
6846
  TIER_UPSERTED_V2 = 'tier_upserted_v2' unless defined?(TIER_UPSERTED_V2)
6746
6847
  TIER_DELETED_V2 = 'tier_deleted_v2' unless defined?(TIER_DELETED_V2)
6848
+ SHIPPING_LANE_UPSERTED = 'shipping_lane_upserted' unless defined?(SHIPPING_LANE_UPSERTED)
6849
+ SHIPPING_LANE_DELETED = 'shipping_lane_deleted' unless defined?(SHIPPING_LANE_DELETED)
6747
6850
  HS6_CODE_UPSERTED = 'hs6_code_upserted' unless defined?(HS6_CODE_UPSERTED)
6748
6851
  HS6_CODE_DELETED = 'hs6_code_deleted' unless defined?(HS6_CODE_DELETED)
6749
6852
  HS10_CODE_UPSERTED = 'hs10_code_upserted' unless defined?(HS10_CODE_UPSERTED)
@@ -6769,30 +6872,31 @@ module Io
6769
6872
  LOCAL_ITEM_DELETED = 'local_item_deleted' unless defined?(LOCAL_ITEM_DELETED)
6770
6873
  MEMBERSHIP_UPSERTED = 'membership_upserted' unless defined?(MEMBERSHIP_UPSERTED)
6771
6874
  MEMBERSHIP_DELETED = 'membership_deleted' unless defined?(MEMBERSHIP_DELETED)
6875
+ MEMBERSHIP_UPSERTED_V2 = 'membership_upserted_v2' unless defined?(MEMBERSHIP_UPSERTED_V2)
6876
+ MEMBERSHIP_DELETED_V2 = 'membership_deleted_v2' unless defined?(MEMBERSHIP_DELETED_V2)
6772
6877
  ORGANIZATION_UPSERTED = 'organization_upserted' unless defined?(ORGANIZATION_UPSERTED)
6773
6878
  ORGANIZATION_DELETED = 'organization_deleted' unless defined?(ORGANIZATION_DELETED)
6774
- AUTHORIZATION_UPSERTED = 'authorization_upserted' unless defined?(AUTHORIZATION_UPSERTED)
6775
- AUTHORIZATION_DELETED = 'authorization_deleted' unless defined?(AUTHORIZATION_DELETED)
6879
+ ORGANIZATION_UPSERTED_V2 = 'organization_upserted_v2' unless defined?(ORGANIZATION_UPSERTED_V2)
6880
+ ORGANIZATION_DELETED_V2 = 'organization_deleted_v2' unless defined?(ORGANIZATION_DELETED_V2)
6881
+ ORGANIZATION_SHORT_ID_UPSERTED = 'organization_short_id_upserted' unless defined?(ORGANIZATION_SHORT_ID_UPSERTED)
6882
+ ORGANIZATION_SHORT_ID_DELETED = 'organization_short_id_deleted' unless defined?(ORGANIZATION_SHORT_ID_DELETED)
6776
6883
  AUTHORIZATION_DELETED_V2 = 'authorization_deleted_v2' unless defined?(AUTHORIZATION_DELETED_V2)
6777
6884
  # Trigger whenever an auth status changes (e.g. from pending to authorized).
6778
6885
  # Common use case is to subscribe to this event to know when an auth is cleared
6779
6886
  # from fraud review.
6780
6887
  AUTHORIZATION_STATUS_CHANGED = 'authorization_status_changed' unless defined?(AUTHORIZATION_STATUS_CHANGED)
6781
- CARD_AUTHORIZATION_UPSERTED = 'card_authorization_upserted' unless defined?(CARD_AUTHORIZATION_UPSERTED)
6782
6888
  CARD_AUTHORIZATION_UPSERTED_V2 = 'card_authorization_upserted_v2' unless defined?(CARD_AUTHORIZATION_UPSERTED_V2)
6783
- ONLINE_AUTHORIZATION_UPSERTED = 'online_authorization_upserted' unless defined?(ONLINE_AUTHORIZATION_UPSERTED)
6784
6889
  ONLINE_AUTHORIZATION_UPSERTED_V2 = 'online_authorization_upserted_v2' unless defined?(ONLINE_AUTHORIZATION_UPSERTED_V2)
6785
- CAPTURE_UPSERTED = 'capture_upserted' unless defined?(CAPTURE_UPSERTED)
6786
6890
  CAPTURE_UPSERTED_V2 = 'capture_upserted_v2' unless defined?(CAPTURE_UPSERTED_V2)
6787
- CARD_UPSERTED = 'card_upserted' unless defined?(CARD_UPSERTED)
6891
+ CAPTURE_DELETED = 'capture_deleted' unless defined?(CAPTURE_DELETED)
6788
6892
  CARD_UPSERTED_V2 = 'card_upserted_v2' unless defined?(CARD_UPSERTED_V2)
6789
6893
  CARD_DELETED = 'card_deleted' unless defined?(CARD_DELETED)
6790
6894
  PAYMENT_UPSERTED = 'payment_upserted' unless defined?(PAYMENT_UPSERTED)
6791
6895
  PAYMENT_DELETED = 'payment_deleted' unless defined?(PAYMENT_DELETED)
6792
- REFUND_UPSERTED = 'refund_upserted' unless defined?(REFUND_UPSERTED)
6793
6896
  REFUND_UPSERTED_V2 = 'refund_upserted_v2' unless defined?(REFUND_UPSERTED_V2)
6794
6897
  REFUND_CAPTURE_UPSERTED_V2 = 'refund_capture_upserted_v2' unless defined?(REFUND_CAPTURE_UPSERTED_V2)
6795
6898
  REVERSAL_UPSERTED = 'reversal_upserted' unless defined?(REVERSAL_UPSERTED)
6899
+ REVERSAL_DELETED = 'reversal_deleted' unless defined?(REVERSAL_DELETED)
6796
6900
  CAPTURE_IDENTIFIER_UPSERTED = 'capture_identifier_upserted' unless defined?(CAPTURE_IDENTIFIER_UPSERTED)
6797
6901
  CAPTURE_IDENTIFIER_DELETED = 'capture_identifier_deleted' unless defined?(CAPTURE_IDENTIFIER_DELETED)
6798
6902
  REFUND_IDENTIFIER_UPSERTED = 'refund_identifier_upserted' unless defined?(REFUND_IDENTIFIER_UPSERTED)
@@ -6825,7 +6929,7 @@ module Io
6825
6929
  end
6826
6930
 
6827
6931
  def subtype_to_hash
6828
- raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, attribute_upserted_v2, attribute_deleted_v2, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, consumer_invoice_upserted, consumer_invoice_deleted, crossdock_shipment_upserted, rate_deleted, rate_upserted, available_promotions_upserted, available_promotions_deleted, allocation_deleted_v2, allocation_upserted_v2, currency_format_deleted, currency_format_upserted, experience_deleted, experience_upserted, experience_deleted_v2, experience_upserted_v2, experience_price_book_mapping_deleted, experience_price_book_mapping_upserted, experience_logistics_settings_upserted, experience_logistics_settings_deleted, item_margin_deleted, item_margin_upserted, item_sales_margin_deleted, item_sales_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_deleted_v2, order_upserted_v2, order_identifier_deleted, order_identifier_upserted, order_identifier_deleted_v2, order_identifier_upserted_v2, pricing_deleted, pricing_upserted, fraud_status_changed, tier_upserted, tier_deleted, delivery_option_upserted, delivery_option_deleted, shipping_configuration_upserted, shipping_configuration_deleted, tier_upserted_v2, tier_deleted_v2, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, harmonized_landed_cost_upserted, fully_harmonized_item_upserted, rule_upserted, rule_deleted, serial_upserted, serial_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, manifested_label_upserted, manifested_label_deleted, local_item_upserted, local_item_deleted, membership_upserted, membership_deleted, organization_upserted, organization_deleted, authorization_upserted, authorization_deleted, authorization_deleted_v2, authorization_status_changed, card_authorization_upserted, card_authorization_upserted_v2, online_authorization_upserted, online_authorization_upserted_v2, capture_upserted, capture_upserted_v2, card_upserted, card_upserted_v2, card_deleted, payment_upserted, payment_deleted, refund_upserted, refund_upserted_v2, refund_capture_upserted_v2, reversal_upserted, capture_identifier_upserted, capture_identifier_deleted, refund_identifier_upserted, refund_identifier_deleted, virtual_card_capture_upserted, virtual_card_capture_deleted, virtual_card_refund_upserted, virtual_card_refund_deleted, price_book_upserted, price_book_deleted, price_book_item_upserted, price_book_item_deleted, organization_rates_published, organization_countries_published, organization_ratecard_transit_windows_published, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, targeting_item_deleted_v2, tracking_label_event_upserted'
6932
+ raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, attribute_upserted_v2, attribute_deleted_v2, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, consumer_invoice_upserted, consumer_invoice_deleted, credit_memo_upserted, credit_memo_deleted, crossdock_shipment_upserted, rate_deleted, rate_upserted, available_promotions_upserted, available_promotions_deleted, available_promotions_upserted_v2, available_promotions_deleted_v2, allocation_deleted_v2, allocation_upserted_v2, currency_format_deleted, currency_format_upserted, experience_deleted, experience_upserted, experience_deleted_v2, experience_upserted_v2, experience_price_book_mapping_deleted, experience_price_book_mapping_upserted, experience_logistics_settings_upserted, experience_logistics_settings_deleted, item_margin_deleted, item_margin_upserted, item_sales_margin_deleted, item_sales_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_deleted_v2, order_upserted_v2, order_identifier_deleted, order_identifier_upserted, order_identifier_deleted_v2, order_identifier_upserted_v2, pricing_deleted, pricing_upserted, fraud_status_changed, tier_upserted, tier_deleted, delivery_option_upserted, delivery_option_deleted, shipping_configuration_upserted, shipping_configuration_deleted, tier_upserted_v2, tier_deleted_v2, shipping_lane_upserted, shipping_lane_deleted, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, harmonized_landed_cost_upserted, fully_harmonized_item_upserted, rule_upserted, rule_deleted, serial_upserted, serial_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, manifested_label_upserted, manifested_label_deleted, local_item_upserted, local_item_deleted, membership_upserted, membership_deleted, membership_upserted_v2, membership_deleted_v2, organization_upserted, organization_deleted, organization_upserted_v2, organization_deleted_v2, organization_short_id_upserted, organization_short_id_deleted, authorization_deleted_v2, authorization_status_changed, card_authorization_upserted_v2, online_authorization_upserted_v2, capture_upserted_v2, capture_deleted, card_upserted_v2, card_deleted, payment_upserted, payment_deleted, refund_upserted_v2, refund_capture_upserted_v2, reversal_upserted, reversal_deleted, capture_identifier_upserted, capture_identifier_deleted, refund_identifier_upserted, refund_identifier_deleted, virtual_card_capture_upserted, virtual_card_capture_deleted, virtual_card_refund_upserted, virtual_card_refund_deleted, price_book_upserted, price_book_deleted, price_book_item_upserted, price_book_item_deleted, organization_rates_published, organization_countries_published, organization_ratecard_transit_windows_published, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, targeting_item_deleted_v2, tracking_label_event_upserted'
6829
6933
  end
6830
6934
 
6831
6935
  def to_hash
@@ -6853,11 +6957,15 @@ module Io
6853
6957
  when Types::SUBCATALOG_ITEM_DELETED; SubcatalogItemDeleted.new(hash)
6854
6958
  when Types::CONSUMER_INVOICE_UPSERTED; ConsumerInvoiceUpserted.new(hash)
6855
6959
  when Types::CONSUMER_INVOICE_DELETED; ConsumerInvoiceDeleted.new(hash)
6960
+ when Types::CREDIT_MEMO_UPSERTED; CreditMemoUpserted.new(hash)
6961
+ when Types::CREDIT_MEMO_DELETED; CreditMemoDeleted.new(hash)
6856
6962
  when Types::CROSSDOCK_SHIPMENT_UPSERTED; CrossdockShipmentUpserted.new(hash)
6857
6963
  when Types::RATE_DELETED; RateDeleted.new(hash)
6858
6964
  when Types::RATE_UPSERTED; RateUpserted.new(hash)
6859
6965
  when Types::AVAILABLE_PROMOTIONS_UPSERTED; AvailablePromotionsUpserted.new(hash)
6860
6966
  when Types::AVAILABLE_PROMOTIONS_DELETED; AvailablePromotionsDeleted.new(hash)
6967
+ when Types::AVAILABLE_PROMOTIONS_UPSERTED_V2; AvailablePromotionsUpsertedV2.new(hash)
6968
+ when Types::AVAILABLE_PROMOTIONS_DELETED_V2; AvailablePromotionsDeletedV2.new(hash)
6861
6969
  when Types::ALLOCATION_DELETED_V2; AllocationDeletedV2.new(hash)
6862
6970
  when Types::ALLOCATION_UPSERTED_V2; AllocationUpsertedV2.new(hash)
6863
6971
  when Types::CURRENCY_FORMAT_DELETED; CurrencyFormatDeleted.new(hash)
@@ -6895,6 +7003,8 @@ module Io
6895
7003
  when Types::SHIPPING_CONFIGURATION_DELETED; ShippingConfigurationDeleted.new(hash)
6896
7004
  when Types::TIER_UPSERTED_V2; TierUpsertedV2.new(hash)
6897
7005
  when Types::TIER_DELETED_V2; TierDeletedV2.new(hash)
7006
+ when Types::SHIPPING_LANE_UPSERTED; ShippingLaneUpserted.new(hash)
7007
+ when Types::SHIPPING_LANE_DELETED; ShippingLaneDeleted.new(hash)
6898
7008
  when Types::HS6_CODE_UPSERTED; Hs6CodeUpserted.new(hash)
6899
7009
  when Types::HS6_CODE_DELETED; Hs6CodeDeleted.new(hash)
6900
7010
  when Types::HS10_CODE_UPSERTED; Hs10CodeUpserted.new(hash)
@@ -6920,27 +7030,28 @@ module Io
6920
7030
  when Types::LOCAL_ITEM_DELETED; LocalItemDeleted.new(hash)
6921
7031
  when Types::MEMBERSHIP_UPSERTED; MembershipUpserted.new(hash)
6922
7032
  when Types::MEMBERSHIP_DELETED; MembershipDeleted.new(hash)
7033
+ when Types::MEMBERSHIP_UPSERTED_V2; MembershipUpsertedV2.new(hash)
7034
+ when Types::MEMBERSHIP_DELETED_V2; MembershipDeletedV2.new(hash)
6923
7035
  when Types::ORGANIZATION_UPSERTED; OrganizationUpserted.new(hash)
6924
7036
  when Types::ORGANIZATION_DELETED; OrganizationDeleted.new(hash)
6925
- when Types::AUTHORIZATION_UPSERTED; AuthorizationUpserted.new(hash)
6926
- when Types::AUTHORIZATION_DELETED; AuthorizationDeleted.new(hash)
7037
+ when Types::ORGANIZATION_UPSERTED_V2; OrganizationUpsertedV2.new(hash)
7038
+ when Types::ORGANIZATION_DELETED_V2; OrganizationDeletedV2.new(hash)
7039
+ when Types::ORGANIZATION_SHORT_ID_UPSERTED; OrganizationShortIdUpserted.new(hash)
7040
+ when Types::ORGANIZATION_SHORT_ID_DELETED; OrganizationShortIdDeleted.new(hash)
6927
7041
  when Types::AUTHORIZATION_DELETED_V2; AuthorizationDeletedV2.new(hash)
6928
7042
  when Types::AUTHORIZATION_STATUS_CHANGED; AuthorizationStatusChanged.new(hash)
6929
- when Types::CARD_AUTHORIZATION_UPSERTED; CardAuthorizationUpserted.new(hash)
6930
7043
  when Types::CARD_AUTHORIZATION_UPSERTED_V2; CardAuthorizationUpsertedV2.new(hash)
6931
- when Types::ONLINE_AUTHORIZATION_UPSERTED; OnlineAuthorizationUpserted.new(hash)
6932
7044
  when Types::ONLINE_AUTHORIZATION_UPSERTED_V2; OnlineAuthorizationUpsertedV2.new(hash)
6933
- when Types::CAPTURE_UPSERTED; CaptureUpserted.new(hash)
6934
7045
  when Types::CAPTURE_UPSERTED_V2; CaptureUpsertedV2.new(hash)
6935
- when Types::CARD_UPSERTED; CardUpserted.new(hash)
7046
+ when Types::CAPTURE_DELETED; CaptureDeleted.new(hash)
6936
7047
  when Types::CARD_UPSERTED_V2; CardUpsertedV2.new(hash)
6937
7048
  when Types::CARD_DELETED; CardDeleted.new(hash)
6938
7049
  when Types::PAYMENT_UPSERTED; PaymentUpserted.new(hash)
6939
7050
  when Types::PAYMENT_DELETED; PaymentDeleted.new(hash)
6940
- when Types::REFUND_UPSERTED; RefundUpserted.new(hash)
6941
7051
  when Types::REFUND_UPSERTED_V2; RefundUpsertedV2.new(hash)
6942
7052
  when Types::REFUND_CAPTURE_UPSERTED_V2; RefundCaptureUpsertedV2.new(hash)
6943
7053
  when Types::REVERSAL_UPSERTED; ReversalUpserted.new(hash)
7054
+ when Types::REVERSAL_DELETED; ReversalDeleted.new(hash)
6944
7055
  when Types::CAPTURE_IDENTIFIER_UPSERTED; CaptureIdentifierUpserted.new(hash)
6945
7056
  when Types::CAPTURE_IDENTIFIER_DELETED; CaptureIdentifierDeleted.new(hash)
6946
7057
  when Types::REFUND_IDENTIFIER_UPSERTED; RefundIdentifierUpserted.new(hash)
@@ -7821,6 +7932,66 @@ module Io
7821
7932
 
7822
7933
  end
7823
7934
 
7935
+ class InputSpecificationLimitation
7936
+
7937
+ module Types
7938
+ INPUT_SPECIFICATION_LIMITATION_MAX = 'input_specification_limitation_max' unless defined?(INPUT_SPECIFICATION_LIMITATION_MAX)
7939
+ end
7940
+
7941
+ attr_reader :discriminator
7942
+
7943
+ def initialize(incoming={})
7944
+ opts = HttpClient::Helper.symbolize_keys(incoming)
7945
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'InputSpecificationLimitation')
7946
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
7947
+ end
7948
+
7949
+ def subtype_to_hash
7950
+ raise 'Cannot serialize an instance of input_specification_limitation directly - must use one of the specific types: input_specification_limitation_max'
7951
+ end
7952
+
7953
+ def to_hash
7954
+ subtype_to_hash.merge(:discriminator => @discriminator)
7955
+ end
7956
+
7957
+ def InputSpecificationLimitation.from_json(hash)
7958
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
7959
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
7960
+ if discriminator.empty?
7961
+ raise "Union type[input_specification_limitation] requires a field named 'discriminator'"
7962
+ end
7963
+ case discriminator
7964
+ when Types::INPUT_SPECIFICATION_LIMITATION_MAX; InputSpecificationLimitationMax.new(hash)
7965
+ else InputSpecificationLimitationUndefinedType.new(:discriminator => discriminator)
7966
+ end
7967
+ end
7968
+
7969
+ end
7970
+
7971
+ class InputSpecificationLimitationUndefinedType < InputSpecificationLimitation
7972
+
7973
+ attr_reader :name
7974
+
7975
+ def initialize(incoming={})
7976
+ super(:discriminator => 'undefined_type')
7977
+ opts = HttpClient::Helper.symbolize_keys(incoming)
7978
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
7979
+ end
7980
+
7981
+ def subtype_to_hash
7982
+ raise 'Unable to serialize undefined type to json'
7983
+ end
7984
+
7985
+ def copy(incoming={})
7986
+ raise 'Operation not supported for undefined type'
7987
+ end
7988
+
7989
+ def to_hash
7990
+ raise 'Operation not supported for undefined type'
7991
+ end
7992
+
7993
+ end
7994
+
7824
7995
  # Types of rules used to apply on inventory to calculate available quantity
7825
7996
  class InventoryStrategy
7826
7997
 
@@ -8398,6 +8569,7 @@ module Io
8398
8569
 
8399
8570
  module Types
8400
8571
  FREE_SHIPPING = 'free_shipping' unless defined?(FREE_SHIPPING)
8572
+ DISCOUNT = 'discount' unless defined?(DISCOUNT)
8401
8573
  end
8402
8574
 
8403
8575
  attr_reader :discriminator
@@ -8409,7 +8581,7 @@ module Io
8409
8581
  end
8410
8582
 
8411
8583
  def subtype_to_hash
8412
- raise 'Cannot serialize an instance of promotion directly - must use one of the specific types: free_shipping'
8584
+ raise 'Cannot serialize an instance of promotion directly - must use one of the specific types: free_shipping, discount'
8413
8585
  end
8414
8586
 
8415
8587
  def to_hash
@@ -8424,6 +8596,7 @@ module Io
8424
8596
  end
8425
8597
  case discriminator
8426
8598
  when Types::FREE_SHIPPING; FreeShipping.new(hash)
8599
+ when Types::DISCOUNT; Discount.new(hash)
8427
8600
  else PromotionUndefinedType.new(:discriminator => discriminator)
8428
8601
  end
8429
8602
  end
@@ -9190,7 +9363,7 @@ module Io
9190
9363
  end
9191
9364
 
9192
9365
  def AttributeIntent.ALL
9193
- @@all ||= [AttributeIntent.brand, AttributeIntent.product_id, AttributeIntent.fulfillment_method, AttributeIntent.hazardous, AttributeIntent.price, AttributeIntent.size, AttributeIntent.sku, AttributeIntent.taxability, AttributeIntent.consumer_url, AttributeIntent.gtin, AttributeIntent.mpn]
9366
+ @@all ||= [AttributeIntent.brand, AttributeIntent.color, AttributeIntent.countries_of_origin, AttributeIntent.product_id, AttributeIntent.fulfillment_method, AttributeIntent.hazardous, AttributeIntent.price, AttributeIntent.size, AttributeIntent.sku, AttributeIntent.taxability, AttributeIntent.consumer_url, AttributeIntent.gtin, AttributeIntent.mpn]
9194
9367
  end
9195
9368
 
9196
9369
  # A brand name of the item (for retailers that sell multiple brands)
@@ -9198,6 +9371,16 @@ module Io
9198
9371
  @@_brand ||= AttributeIntent.new('brand')
9199
9372
  end
9200
9373
 
9374
+ # The color of the item
9375
+ def AttributeIntent.color
9376
+ @@_color ||= AttributeIntent.new('color')
9377
+ end
9378
+
9379
+ # A space separate list of the countries of origin for this item
9380
+ def AttributeIntent.countries_of_origin
9381
+ @@_countries_of_origin ||= AttributeIntent.new('countries_of_origin')
9382
+ end
9383
+
9201
9384
  # An identifier used to group items that are variations of the same product,
9202
9385
  # such as different sizes or colors of the same shirt
9203
9386
  def AttributeIntent.product_id
@@ -9402,6 +9585,52 @@ module Io
9402
9585
 
9403
9586
  end
9404
9587
 
9588
+ class AuthorizationResultActionType
9589
+
9590
+ attr_reader :value
9591
+
9592
+ def initialize(value)
9593
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
9594
+ end
9595
+
9596
+ # Returns the instance of AuthorizationResultActionType for this value, creating a new instance for an unknown value
9597
+ def AuthorizationResultActionType.apply(value)
9598
+ if value.instance_of?(AuthorizationResultActionType)
9599
+ value
9600
+ else
9601
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
9602
+ value.nil? ? nil : (from_string(value) || AuthorizationResultActionType.new(value))
9603
+ end
9604
+ end
9605
+
9606
+ # Returns the instance of AuthorizationResultActionType for this value, or nil if not found
9607
+ def AuthorizationResultActionType.from_string(value)
9608
+ HttpClient::Preconditions.assert_class('value', value, String)
9609
+ AuthorizationResultActionType.ALL.find { |v| v.value == value }
9610
+ end
9611
+
9612
+ def AuthorizationResultActionType.ALL
9613
+ @@all ||= [AuthorizationResultActionType.redirect, AuthorizationResultActionType.wait]
9614
+ end
9615
+
9616
+ # Indicates that the user should be redirected to the provided URL.
9617
+ def AuthorizationResultActionType.redirect
9618
+ @@_redirect ||= AuthorizationResultActionType.new('redirect')
9619
+ end
9620
+
9621
+ # Indicates that more time is needed before the authorization result is known.
9622
+ # In the case of 3D Secure, this means the authorization status should be polled
9623
+ # until it is no longer pending.
9624
+ def AuthorizationResultActionType.wait
9625
+ @@_wait ||= AuthorizationResultActionType.new('wait')
9626
+ end
9627
+
9628
+ def to_hash
9629
+ value
9630
+ end
9631
+
9632
+ end
9633
+
9405
9634
  class AuthorizationStatus
9406
9635
 
9407
9636
  attr_reader :value
@@ -10098,6 +10327,58 @@ module Io
10098
10327
 
10099
10328
  end
10100
10329
 
10330
+ class ConsumerInvoiceStatus
10331
+
10332
+ attr_reader :value
10333
+
10334
+ def initialize(value)
10335
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
10336
+ end
10337
+
10338
+ # Returns the instance of ConsumerInvoiceStatus for this value, creating a new instance for an unknown value
10339
+ def ConsumerInvoiceStatus.apply(value)
10340
+ if value.instance_of?(ConsumerInvoiceStatus)
10341
+ value
10342
+ else
10343
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
10344
+ value.nil? ? nil : (from_string(value) || ConsumerInvoiceStatus.new(value))
10345
+ end
10346
+ end
10347
+
10348
+ # Returns the instance of ConsumerInvoiceStatus for this value, or nil if not found
10349
+ def ConsumerInvoiceStatus.from_string(value)
10350
+ HttpClient::Preconditions.assert_class('value', value, String)
10351
+ ConsumerInvoiceStatus.ALL.find { |v| v.value == value }
10352
+ end
10353
+
10354
+ def ConsumerInvoiceStatus.ALL
10355
+ @@all ||= [ConsumerInvoiceStatus.pending, ConsumerInvoiceStatus.available, ConsumerInvoiceStatus.invalid]
10356
+ end
10357
+
10358
+ # Indicates that the credit memo has been created but validation is pending
10359
+ # (e.g. waiting for the associated refund to be confirmed)
10360
+ def ConsumerInvoiceStatus.pending
10361
+ @@_pending ||= ConsumerInvoiceStatus.new('pending')
10362
+ end
10363
+
10364
+ # Indicates that the credit memo is fully validated and available for the end
10365
+ # consumer
10366
+ def ConsumerInvoiceStatus.available
10367
+ @@_available ||= ConsumerInvoiceStatus.new('available')
10368
+ end
10369
+
10370
+ # Indicates that the credit memo failed to validate after multiple attempts and
10371
+ # time
10372
+ def ConsumerInvoiceStatus.invalid
10373
+ @@_invalid ||= ConsumerInvoiceStatus.new('invalid')
10374
+ end
10375
+
10376
+ def to_hash
10377
+ value
10378
+ end
10379
+
10380
+ end
10381
+
10101
10382
  class CreditPaymentErrorCode
10102
10383
 
10103
10384
  attr_reader :value
@@ -10790,7 +11071,7 @@ module Io
10790
11071
  end
10791
11072
 
10792
11073
  def EventType.ALL
10793
- @@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.attribute_upserted_v2, EventType.attribute_deleted_v2, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.consumer_invoice_upserted, EventType.consumer_invoice_deleted, EventType.crossdock_shipment_upserted, EventType.rate_deleted, EventType.rate_upserted, EventType.available_promotions_upserted, EventType.available_promotions_deleted, EventType.allocation_deleted_v2, EventType.allocation_upserted_v2, EventType.currency_format_deleted, EventType.currency_format_upserted, EventType.experience_deleted, EventType.experience_upserted, EventType.experience_deleted_v2, EventType.experience_upserted_v2, EventType.experience_price_book_mapping_deleted, EventType.experience_price_book_mapping_upserted, EventType.experience_logistics_settings_upserted, EventType.experience_logistics_settings_deleted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.item_sales_margin_deleted, EventType.item_sales_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_deleted_v2, EventType.order_upserted_v2, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.order_identifier_deleted_v2, EventType.order_identifier_upserted_v2, EventType.pricing_deleted, EventType.pricing_upserted, EventType.fraud_status_changed, EventType.tier_upserted, EventType.tier_deleted, EventType.delivery_option_upserted, EventType.delivery_option_deleted, EventType.shipping_configuration_upserted, EventType.shipping_configuration_deleted, EventType.tier_upserted_v2, EventType.tier_deleted_v2, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.harmonized_landed_cost_upserted, EventType.fully_harmonized_item_upserted, EventType.rule_upserted, EventType.rule_deleted, EventType.serial_upserted, EventType.serial_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.manifested_label_upserted, EventType.manifested_label_deleted, EventType.local_item_upserted, EventType.local_item_deleted, EventType.membership_upserted, EventType.membership_deleted, EventType.organization_upserted, EventType.organization_deleted, EventType.authorization_upserted, EventType.authorization_deleted, EventType.authorization_deleted_v2, EventType.authorization_status_changed, EventType.card_authorization_upserted, EventType.card_authorization_upserted_v2, EventType.online_authorization_upserted, EventType.online_authorization_upserted_v2, EventType.capture_upserted, EventType.capture_upserted_v2, EventType.card_upserted, EventType.card_upserted_v2, EventType.card_deleted, EventType.payment_upserted, EventType.payment_deleted, EventType.refund_upserted, EventType.refund_upserted_v2, EventType.refund_capture_upserted_v2, EventType.reversal_upserted, EventType.capture_identifier_upserted, EventType.capture_identifier_deleted, EventType.refund_identifier_upserted, EventType.refund_identifier_deleted, EventType.virtual_card_capture_upserted, EventType.virtual_card_capture_deleted, EventType.virtual_card_refund_upserted, EventType.virtual_card_refund_deleted, EventType.price_book_upserted, EventType.price_book_deleted, EventType.price_book_item_upserted, EventType.price_book_item_deleted, EventType.organization_rates_published, EventType.organization_countries_published, EventType.organization_ratecard_transit_windows_published, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.targeting_item_deleted_v2, EventType.tracking_label_event_upserted]
11074
+ @@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.attribute_upserted_v2, EventType.attribute_deleted_v2, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.consumer_invoice_upserted, EventType.consumer_invoice_deleted, EventType.credit_memo_upserted, EventType.credit_memo_deleted, EventType.crossdock_shipment_upserted, EventType.rate_deleted, EventType.rate_upserted, EventType.available_promotions_upserted, EventType.available_promotions_deleted, EventType.available_promotions_upserted_v2, EventType.available_promotions_deleted_v2, EventType.allocation_deleted_v2, EventType.allocation_upserted_v2, EventType.currency_format_deleted, EventType.currency_format_upserted, EventType.experience_deleted, EventType.experience_upserted, EventType.experience_deleted_v2, EventType.experience_upserted_v2, EventType.experience_price_book_mapping_deleted, EventType.experience_price_book_mapping_upserted, EventType.experience_logistics_settings_upserted, EventType.experience_logistics_settings_deleted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.item_sales_margin_deleted, EventType.item_sales_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_deleted_v2, EventType.order_upserted_v2, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.order_identifier_deleted_v2, EventType.order_identifier_upserted_v2, EventType.pricing_deleted, EventType.pricing_upserted, EventType.fraud_status_changed, EventType.tier_upserted, EventType.tier_deleted, EventType.delivery_option_upserted, EventType.delivery_option_deleted, EventType.shipping_configuration_upserted, EventType.shipping_configuration_deleted, EventType.tier_upserted_v2, EventType.tier_deleted_v2, EventType.shipping_lane_upserted, EventType.shipping_lane_deleted, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.harmonized_landed_cost_upserted, EventType.fully_harmonized_item_upserted, EventType.rule_upserted, EventType.rule_deleted, EventType.serial_upserted, EventType.serial_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.manifested_label_upserted, EventType.manifested_label_deleted, EventType.local_item_upserted, EventType.local_item_deleted, EventType.membership_upserted, EventType.membership_deleted, EventType.membership_upserted_v2, EventType.membership_deleted_v2, EventType.organization_upserted, EventType.organization_deleted, EventType.organization_upserted_v2, EventType.organization_deleted_v2, EventType.organization_short_id_upserted, EventType.organization_short_id_deleted, EventType.authorization_deleted_v2, EventType.authorization_status_changed, EventType.card_authorization_upserted_v2, EventType.online_authorization_upserted_v2, EventType.capture_upserted_v2, EventType.capture_deleted, EventType.card_upserted_v2, EventType.card_deleted, EventType.payment_upserted, EventType.payment_deleted, EventType.refund_upserted_v2, EventType.refund_capture_upserted_v2, EventType.reversal_upserted, EventType.reversal_deleted, EventType.capture_identifier_upserted, EventType.capture_identifier_deleted, EventType.refund_identifier_upserted, EventType.refund_identifier_deleted, EventType.virtual_card_capture_upserted, EventType.virtual_card_capture_deleted, EventType.virtual_card_refund_upserted, EventType.virtual_card_refund_deleted, EventType.price_book_upserted, EventType.price_book_deleted, EventType.price_book_item_upserted, EventType.price_book_item_deleted, EventType.organization_rates_published, EventType.organization_countries_published, EventType.organization_ratecard_transit_windows_published, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.targeting_item_deleted_v2, EventType.tracking_label_event_upserted]
10794
11075
  end
10795
11076
 
10796
11077
  def EventType.attribute_upserted
@@ -10849,6 +11130,14 @@ module Io
10849
11130
  @@_consumer_invoice_deleted ||= EventType.new('consumer_invoice_deleted')
10850
11131
  end
10851
11132
 
11133
+ def EventType.credit_memo_upserted
11134
+ @@_credit_memo_upserted ||= EventType.new('credit_memo_upserted')
11135
+ end
11136
+
11137
+ def EventType.credit_memo_deleted
11138
+ @@_credit_memo_deleted ||= EventType.new('credit_memo_deleted')
11139
+ end
11140
+
10852
11141
  def EventType.crossdock_shipment_upserted
10853
11142
  @@_crossdock_shipment_upserted ||= EventType.new('crossdock_shipment_upserted')
10854
11143
  end
@@ -10869,6 +11158,14 @@ module Io
10869
11158
  @@_available_promotions_deleted ||= EventType.new('available_promotions_deleted')
10870
11159
  end
10871
11160
 
11161
+ def EventType.available_promotions_upserted_v2
11162
+ @@_available_promotions_upserted_v2 ||= EventType.new('available_promotions_upserted_v2')
11163
+ end
11164
+
11165
+ def EventType.available_promotions_deleted_v2
11166
+ @@_available_promotions_deleted_v2 ||= EventType.new('available_promotions_deleted_v2')
11167
+ end
11168
+
10872
11169
  def EventType.allocation_deleted_v2
10873
11170
  @@_allocation_deleted_v2 ||= EventType.new('allocation_deleted_v2')
10874
11171
  end
@@ -11017,6 +11314,14 @@ module Io
11017
11314
  @@_tier_deleted_v2 ||= EventType.new('tier_deleted_v2')
11018
11315
  end
11019
11316
 
11317
+ def EventType.shipping_lane_upserted
11318
+ @@_shipping_lane_upserted ||= EventType.new('shipping_lane_upserted')
11319
+ end
11320
+
11321
+ def EventType.shipping_lane_deleted
11322
+ @@_shipping_lane_deleted ||= EventType.new('shipping_lane_deleted')
11323
+ end
11324
+
11020
11325
  def EventType.hs6_code_upserted
11021
11326
  @@_hs6_code_upserted ||= EventType.new('hs6_code_upserted')
11022
11327
  end
@@ -11117,6 +11422,14 @@ module Io
11117
11422
  @@_membership_deleted ||= EventType.new('membership_deleted')
11118
11423
  end
11119
11424
 
11425
+ def EventType.membership_upserted_v2
11426
+ @@_membership_upserted_v2 ||= EventType.new('membership_upserted_v2')
11427
+ end
11428
+
11429
+ def EventType.membership_deleted_v2
11430
+ @@_membership_deleted_v2 ||= EventType.new('membership_deleted_v2')
11431
+ end
11432
+
11120
11433
  def EventType.organization_upserted
11121
11434
  @@_organization_upserted ||= EventType.new('organization_upserted')
11122
11435
  end
@@ -11125,12 +11438,20 @@ module Io
11125
11438
  @@_organization_deleted ||= EventType.new('organization_deleted')
11126
11439
  end
11127
11440
 
11128
- def EventType.authorization_upserted
11129
- @@_authorization_upserted ||= EventType.new('authorization_upserted')
11441
+ def EventType.organization_upserted_v2
11442
+ @@_organization_upserted_v2 ||= EventType.new('organization_upserted_v2')
11443
+ end
11444
+
11445
+ def EventType.organization_deleted_v2
11446
+ @@_organization_deleted_v2 ||= EventType.new('organization_deleted_v2')
11130
11447
  end
11131
11448
 
11132
- def EventType.authorization_deleted
11133
- @@_authorization_deleted ||= EventType.new('authorization_deleted')
11449
+ def EventType.organization_short_id_upserted
11450
+ @@_organization_short_id_upserted ||= EventType.new('organization_short_id_upserted')
11451
+ end
11452
+
11453
+ def EventType.organization_short_id_deleted
11454
+ @@_organization_short_id_deleted ||= EventType.new('organization_short_id_deleted')
11134
11455
  end
11135
11456
 
11136
11457
  def EventType.authorization_deleted_v2
@@ -11141,32 +11462,20 @@ module Io
11141
11462
  @@_authorization_status_changed ||= EventType.new('authorization_status_changed')
11142
11463
  end
11143
11464
 
11144
- def EventType.card_authorization_upserted
11145
- @@_card_authorization_upserted ||= EventType.new('card_authorization_upserted')
11146
- end
11147
-
11148
11465
  def EventType.card_authorization_upserted_v2
11149
11466
  @@_card_authorization_upserted_v2 ||= EventType.new('card_authorization_upserted_v2')
11150
11467
  end
11151
11468
 
11152
- def EventType.online_authorization_upserted
11153
- @@_online_authorization_upserted ||= EventType.new('online_authorization_upserted')
11154
- end
11155
-
11156
11469
  def EventType.online_authorization_upserted_v2
11157
11470
  @@_online_authorization_upserted_v2 ||= EventType.new('online_authorization_upserted_v2')
11158
11471
  end
11159
11472
 
11160
- def EventType.capture_upserted
11161
- @@_capture_upserted ||= EventType.new('capture_upserted')
11162
- end
11163
-
11164
11473
  def EventType.capture_upserted_v2
11165
11474
  @@_capture_upserted_v2 ||= EventType.new('capture_upserted_v2')
11166
11475
  end
11167
11476
 
11168
- def EventType.card_upserted
11169
- @@_card_upserted ||= EventType.new('card_upserted')
11477
+ def EventType.capture_deleted
11478
+ @@_capture_deleted ||= EventType.new('capture_deleted')
11170
11479
  end
11171
11480
 
11172
11481
  def EventType.card_upserted_v2
@@ -11185,10 +11494,6 @@ module Io
11185
11494
  @@_payment_deleted ||= EventType.new('payment_deleted')
11186
11495
  end
11187
11496
 
11188
- def EventType.refund_upserted
11189
- @@_refund_upserted ||= EventType.new('refund_upserted')
11190
- end
11191
-
11192
11497
  def EventType.refund_upserted_v2
11193
11498
  @@_refund_upserted_v2 ||= EventType.new('refund_upserted_v2')
11194
11499
  end
@@ -11201,6 +11506,10 @@ module Io
11201
11506
  @@_reversal_upserted ||= EventType.new('reversal_upserted')
11202
11507
  end
11203
11508
 
11509
+ def EventType.reversal_deleted
11510
+ @@_reversal_deleted ||= EventType.new('reversal_deleted')
11511
+ end
11512
+
11204
11513
  def EventType.capture_identifier_upserted
11205
11514
  @@_capture_identifier_upserted ||= EventType.new('capture_identifier_upserted')
11206
11515
  end
@@ -12202,6 +12511,48 @@ module Io
12202
12511
 
12203
12512
  end
12204
12513
 
12514
+ class InputSpecificationType
12515
+
12516
+ attr_reader :value
12517
+
12518
+ def initialize(value)
12519
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
12520
+ end
12521
+
12522
+ # Returns the instance of InputSpecificationType for this value, creating a new instance for an unknown value
12523
+ def InputSpecificationType.apply(value)
12524
+ if value.instance_of?(InputSpecificationType)
12525
+ value
12526
+ else
12527
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
12528
+ value.nil? ? nil : (from_string(value) || InputSpecificationType.new(value))
12529
+ end
12530
+ end
12531
+
12532
+ # Returns the instance of InputSpecificationType for this value, or nil if not found
12533
+ def InputSpecificationType.from_string(value)
12534
+ HttpClient::Preconditions.assert_class('value', value, String)
12535
+ InputSpecificationType.ALL.find { |v| v.value == value }
12536
+ end
12537
+
12538
+ def InputSpecificationType.ALL
12539
+ @@all ||= [InputSpecificationType.text, InputSpecificationType.number]
12540
+ end
12541
+
12542
+ def InputSpecificationType.text
12543
+ @@_text ||= InputSpecificationType.new('text')
12544
+ end
12545
+
12546
+ def InputSpecificationType.number
12547
+ @@_number ||= InputSpecificationType.new('number')
12548
+ end
12549
+
12550
+ def to_hash
12551
+ value
12552
+ end
12553
+
12554
+ end
12555
+
12205
12556
  class InstallmentPlanPaymentErrorCode
12206
12557
 
12207
12558
  attr_reader :value
@@ -13926,6 +14277,50 @@ module Io
13926
14277
 
13927
14278
  end
13928
14279
 
14280
+ class RateType
14281
+
14282
+ attr_reader :value
14283
+
14284
+ def initialize(value)
14285
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
14286
+ end
14287
+
14288
+ # Returns the instance of RateType for this value, creating a new instance for an unknown value
14289
+ def RateType.apply(value)
14290
+ if value.instance_of?(RateType)
14291
+ value
14292
+ else
14293
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
14294
+ value.nil? ? nil : (from_string(value) || RateType.new(value))
14295
+ end
14296
+ end
14297
+
14298
+ # Returns the instance of RateType for this value, or nil if not found
14299
+ def RateType.from_string(value)
14300
+ HttpClient::Preconditions.assert_class('value', value, String)
14301
+ RateType.ALL.find { |v| v.value == value }
14302
+ end
14303
+
14304
+ def RateType.ALL
14305
+ @@all ||= [RateType.flow, RateType.organization]
14306
+ end
14307
+
14308
+ # Represents a Flow rate type (which excludes currency margins)
14309
+ def RateType.flow
14310
+ @@_flow ||= RateType.new('flow')
14311
+ end
14312
+
14313
+ # Represents an organization rate type (which includes currency margins)
14314
+ def RateType.organization
14315
+ @@_organization ||= RateType.new('organization')
14316
+ end
14317
+
14318
+ def to_hash
14319
+ value
14320
+ end
14321
+
14322
+ end
14323
+
13929
14324
  class RefundDeclineCode
13930
14325
 
13931
14326
  attr_reader :value
@@ -14632,6 +15027,52 @@ module Io
14632
15027
 
14633
15028
  end
14634
15029
 
15030
+ class ShopifyVariantInventoryMetafieldStatus
15031
+
15032
+ attr_reader :value
15033
+
15034
+ def initialize(value)
15035
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
15036
+ end
15037
+
15038
+ # Returns the instance of ShopifyVariantInventoryMetafieldStatus for this value, creating a new instance for an unknown value
15039
+ def ShopifyVariantInventoryMetafieldStatus.apply(value)
15040
+ if value.instance_of?(ShopifyVariantInventoryMetafieldStatus)
15041
+ value
15042
+ else
15043
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
15044
+ value.nil? ? nil : (from_string(value) || ShopifyVariantInventoryMetafieldStatus.new(value))
15045
+ end
15046
+ end
15047
+
15048
+ # Returns the instance of ShopifyVariantInventoryMetafieldStatus for this value, or nil if not found
15049
+ def ShopifyVariantInventoryMetafieldStatus.from_string(value)
15050
+ HttpClient::Preconditions.assert_class('value', value, String)
15051
+ ShopifyVariantInventoryMetafieldStatus.ALL.find { |v| v.value == value }
15052
+ end
15053
+
15054
+ def ShopifyVariantInventoryMetafieldStatus.ALL
15055
+ @@all ||= [ShopifyVariantInventoryMetafieldStatus.available, ShopifyVariantInventoryMetafieldStatus.low, ShopifyVariantInventoryMetafieldStatus.out_of_stock]
15056
+ end
15057
+
15058
+ def ShopifyVariantInventoryMetafieldStatus.available
15059
+ @@_available ||= ShopifyVariantInventoryMetafieldStatus.new('available')
15060
+ end
15061
+
15062
+ def ShopifyVariantInventoryMetafieldStatus.low
15063
+ @@_low ||= ShopifyVariantInventoryMetafieldStatus.new('low')
15064
+ end
15065
+
15066
+ def ShopifyVariantInventoryMetafieldStatus.out_of_stock
15067
+ @@_out_of_stock ||= ShopifyVariantInventoryMetafieldStatus.new('out_of_stock')
15068
+ end
15069
+
15070
+ def to_hash
15071
+ value
15072
+ end
15073
+
15074
+ end
15075
+
14635
15076
  class SortDirection
14636
15077
 
14637
15078
  attr_reader :value
@@ -14773,6 +15214,50 @@ module Io
14773
15214
 
14774
15215
  end
14775
15216
 
15217
+ class TaxApplicability
15218
+
15219
+ attr_reader :value
15220
+
15221
+ def initialize(value)
15222
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
15223
+ end
15224
+
15225
+ # Returns the instance of TaxApplicability for this value, creating a new instance for an unknown value
15226
+ def TaxApplicability.apply(value)
15227
+ if value.instance_of?(TaxApplicability)
15228
+ value
15229
+ else
15230
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
15231
+ value.nil? ? nil : (from_string(value) || TaxApplicability.new(value))
15232
+ end
15233
+ end
15234
+
15235
+ # Returns the instance of TaxApplicability for this value, or nil if not found
15236
+ def TaxApplicability.from_string(value)
15237
+ HttpClient::Preconditions.assert_class('value', value, String)
15238
+ TaxApplicability.ALL.find { |v| v.value == value }
15239
+ end
15240
+
15241
+ def TaxApplicability.ALL
15242
+ @@all ||= [TaxApplicability.none, TaxApplicability.all]
15243
+ end
15244
+
15245
+ # In no scenario should a customer pay tax within the Flow system.
15246
+ def TaxApplicability.none
15247
+ @@_none ||= TaxApplicability.new('none')
15248
+ end
15249
+
15250
+ # In all scenarios a customer should pay tax within the Flow system.
15251
+ def TaxApplicability.all
15252
+ @@_all ||= TaxApplicability.new('all')
15253
+ end
15254
+
15255
+ def to_hash
15256
+ value
15257
+ end
15258
+
15259
+ end
15260
+
14776
15261
  class TaxVerificationResult
14777
15262
 
14778
15263
  attr_reader :value
@@ -14898,6 +15383,52 @@ module Io
14898
15383
 
14899
15384
  end
14900
15385
 
15386
+ class ThreeDSecureCode
15387
+
15388
+ attr_reader :value
15389
+
15390
+ def initialize(value)
15391
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
15392
+ end
15393
+
15394
+ # Returns the instance of ThreeDSecureCode for this value, creating a new instance for an unknown value
15395
+ def ThreeDSecureCode.apply(value)
15396
+ if value.instance_of?(ThreeDSecureCode)
15397
+ value
15398
+ else
15399
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
15400
+ value.nil? ? nil : (from_string(value) || ThreeDSecureCode.new(value))
15401
+ end
15402
+ end
15403
+
15404
+ # Returns the instance of ThreeDSecureCode for this value, or nil if not found
15405
+ def ThreeDSecureCode.from_string(value)
15406
+ HttpClient::Preconditions.assert_class('value', value, String)
15407
+ ThreeDSecureCode.ALL.find { |v| v.value == value }
15408
+ end
15409
+
15410
+ def ThreeDSecureCode.ALL
15411
+ @@all ||= [ThreeDSecureCode.verified, ThreeDSecureCode.not_verified, ThreeDSecureCode.failed]
15412
+ end
15413
+
15414
+ def ThreeDSecureCode.verified
15415
+ @@_verified ||= ThreeDSecureCode.new('verified')
15416
+ end
15417
+
15418
+ def ThreeDSecureCode.not_verified
15419
+ @@_not_verified ||= ThreeDSecureCode.new('not_verified')
15420
+ end
15421
+
15422
+ def ThreeDSecureCode.failed
15423
+ @@_failed ||= ThreeDSecureCode.new('failed')
15424
+ end
15425
+
15426
+ def to_hash
15427
+ value
15428
+ end
15429
+
15430
+ end
15431
+
14901
15432
  class TierDirection
14902
15433
 
14903
15434
  attr_reader :value
@@ -15234,7 +15765,7 @@ module Io
15234
15765
  @@_centimeter ||= UnitOfMeasurement.new('centimeter')
15235
15766
  end
15236
15767
 
15237
- # A unit of length equal to 0.01004 m (standard name in).
15768
+ # A unit of length equal to 0.0254 m (standard name in).
15238
15769
  def UnitOfMeasurement.inch
15239
15770
  @@_inch ||= UnitOfMeasurement.new('inch')
15240
15771
  end
@@ -15728,7 +16259,7 @@ module Io
15728
16259
  @account_owner_name = HttpClient::Preconditions.assert_class('account_owner_name', opts.delete(:account_owner_name), String)
15729
16260
  @account_number = HttpClient::Preconditions.assert_class('account_number', opts.delete(:account_number), String)
15730
16261
  @routing_number = HttpClient::Preconditions.assert_class('routing_number', opts.delete(:routing_number), String)
15731
- @billing_address = (x = opts.delete(:billing_address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
16262
+ @billing_address = (x = opts.delete(:billing_address); x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x))
15732
16263
  @order_number = (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String))
15733
16264
  @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
15734
16265
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
@@ -16600,39 +17131,6 @@ module Io
16600
17131
 
16601
17132
  end
16602
17133
 
16603
- class AuthorizationDeleted < Event
16604
-
16605
- attr_reader :event_id, :timestamp, :organization, :key
16606
-
16607
- def initialize(incoming={})
16608
- super(:discriminator => Event::Types::AUTHORIZATION_DELETED)
16609
- opts = HttpClient::Helper.symbolize_keys(incoming)
16610
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :key], 'AuthorizationDeleted')
16611
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
16612
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
16613
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
16614
- @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
16615
- end
16616
-
16617
- def to_json
16618
- JSON.dump(to_hash)
16619
- end
16620
-
16621
- def copy(incoming={})
16622
- AuthorizationDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16623
- end
16624
-
16625
- def subtype_to_hash
16626
- {
16627
- :event_id => event_id,
16628
- :timestamp => timestamp,
16629
- :organization => organization,
16630
- :key => key
16631
- }
16632
- end
16633
-
16634
- end
16635
-
16636
17134
  class AuthorizationDeletedV2 < Event
16637
17135
 
16638
17136
  attr_reader :event_id, :timestamp, :organization, :id
@@ -16761,15 +17259,17 @@ module Io
16761
17259
  # issuing bank).
16762
17260
  class AuthorizationResult
16763
17261
 
16764
- attr_reader :status, :decline_code, :avs, :cvv
17262
+ attr_reader :status, :action, :decline_code, :avs, :cvv, :three_d_secure
16765
17263
 
16766
17264
  def initialize(incoming={})
16767
17265
  opts = HttpClient::Helper.symbolize_keys(incoming)
16768
17266
  HttpClient::Preconditions.require_keys(opts, [:status], 'AuthorizationResult')
16769
17267
  @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::AuthorizationStatus) ? x : ::Io::Flow::V0::Models::AuthorizationStatus.apply(x))
17268
+ @action = (x = opts.delete(:action); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationResultAction) ? x : ::Io::Flow::V0::Models::AuthorizationResultAction.new(x)))
16770
17269
  @decline_code = (x = opts.delete(:decline_code); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationDeclineCode) ? x : ::Io::Flow::V0::Models::AuthorizationDeclineCode.apply(x)))
16771
17270
  @avs = (x = opts.delete(:avs); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Avs) ? x : ::Io::Flow::V0::Models::Avs.new(x)))
16772
17271
  @cvv = (x = opts.delete(:cvv); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Cvv) ? x : ::Io::Flow::V0::Models::Cvv.new(x)))
17272
+ @three_d_secure = (x = opts.delete(:three_d_secure); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ThreeDSecure) ? x : ::Io::Flow::V0::Models::ThreeDSecure.new(x)))
16773
17273
  end
16774
17274
 
16775
17275
  def to_json
@@ -16783,9 +17283,42 @@ module Io
16783
17283
  def to_hash
16784
17284
  {
16785
17285
  :status => status.value,
17286
+ :action => action.nil? ? nil : action.to_hash,
16786
17287
  :decline_code => decline_code.nil? ? nil : decline_code.value,
16787
17288
  :avs => avs.nil? ? nil : avs.to_hash,
16788
- :cvv => cvv.nil? ? nil : cvv.to_hash
17289
+ :cvv => cvv.nil? ? nil : cvv.to_hash,
17290
+ :three_d_secure => three_d_secure.nil? ? nil : three_d_secure.to_hash
17291
+ }
17292
+ end
17293
+
17294
+ end
17295
+
17296
+ # Provides details for how to acquire additional information from the customer
17297
+ # when needed (e.g. redirecting to the issuer for online payment method or 3D
17298
+ # Secure).
17299
+ class AuthorizationResultAction
17300
+
17301
+ attr_reader :type, :url
17302
+
17303
+ def initialize(incoming={})
17304
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17305
+ HttpClient::Preconditions.require_keys(opts, [:type], 'AuthorizationResultAction')
17306
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::AuthorizationResultActionType) ? x : ::Io::Flow::V0::Models::AuthorizationResultActionType.apply(x))
17307
+ @url = (x = opts.delete(:url); x.nil? ? nil : HttpClient::Preconditions.assert_class('url', x, String))
17308
+ end
17309
+
17310
+ def to_json
17311
+ JSON.dump(to_hash)
17312
+ end
17313
+
17314
+ def copy(incoming={})
17315
+ AuthorizationResultAction.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17316
+ end
17317
+
17318
+ def to_hash
17319
+ {
17320
+ :type => type.value,
17321
+ :url => url
16789
17322
  }
16790
17323
  end
16791
17324
 
@@ -16826,28 +17359,17 @@ module Io
16826
17359
 
16827
17360
  end
16828
17361
 
16829
- class AuthorizationUpserted < Event
17362
+ class AuthorizationVersion
16830
17363
 
16831
- attr_reader :event_id, :timestamp, :organization, :key, :order_number, :card, :amount, :currency, :customer, :attributes, :destination, :result, :ip, :created_at
17364
+ attr_reader :id, :timestamp, :type, :authorization
16832
17365
 
16833
17366
  def initialize(incoming={})
16834
- super(:discriminator => Event::Types::AUTHORIZATION_UPSERTED)
16835
17367
  opts = HttpClient::Helper.symbolize_keys(incoming)
16836
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :key, :card, :amount, :currency, :customer, :attributes, :result, :created_at], 'AuthorizationUpserted')
16837
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17368
+ HttpClient::Preconditions.require_keys(opts, [:id, :timestamp, :type, :authorization], 'AuthorizationVersion')
17369
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
16838
17370
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
16839
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
16840
- @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
16841
- @order_number = (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String))
16842
- @card = (x = opts.delete(:card); x.is_a?(::Io::Flow::V0::Models::ExpandableCard) ? x : ::Io::Flow::V0::Models::ExpandableCard.from_json(x))
16843
- @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
16844
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
16845
- @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
16846
- @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
16847
- @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
16848
- @result = (x = opts.delete(:result); x.is_a?(::Io::Flow::V0::Models::AuthorizationResult) ? x : ::Io::Flow::V0::Models::AuthorizationResult.new(x))
16849
- @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
16850
- @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
17371
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::ChangeType) ? x : ::Io::Flow::V0::Models::ChangeType.apply(x))
17372
+ @authorization = (x = opts.delete(:authorization); x.is_a?(::Io::Flow::V0::Models::Authorization) ? x : ::Io::Flow::V0::Models::Authorization.from_json(x))
16851
17373
  end
16852
17374
 
16853
17375
  def to_json
@@ -16855,40 +17377,31 @@ module Io
16855
17377
  end
16856
17378
 
16857
17379
  def copy(incoming={})
16858
- AuthorizationUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17380
+ AuthorizationVersion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16859
17381
  end
16860
17382
 
16861
- def subtype_to_hash
17383
+ def to_hash
16862
17384
  {
16863
- :event_id => event_id,
17385
+ :id => id,
16864
17386
  :timestamp => timestamp,
16865
- :organization => organization,
16866
- :key => key,
16867
- :order_number => order_number,
16868
- :card => card.to_hash,
16869
- :amount => amount,
16870
- :currency => currency,
16871
- :customer => customer.to_hash,
16872
- :attributes => attributes,
16873
- :destination => destination.nil? ? nil : destination.to_hash,
16874
- :result => result.to_hash,
16875
- :ip => ip,
16876
- :created_at => created_at
17387
+ :type => type.value,
17388
+ :authorization => authorization.to_hash
16877
17389
  }
16878
17390
  end
16879
17391
 
16880
17392
  end
16881
17393
 
16882
- # Used to authorize funds for a pending card authorization.
16883
- class AuthorizationValueForm
17394
+ class AvailablePromotion
16884
17395
 
16885
- attr_reader :amount, :currency
17396
+ attr_reader :id, :shipping_configuration, :region, :promotions
16886
17397
 
16887
17398
  def initialize(incoming={})
16888
17399
  opts = HttpClient::Helper.symbolize_keys(incoming)
16889
- HttpClient::Preconditions.require_keys(opts, [:amount, :currency], 'AuthorizationValueForm')
16890
- @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
16891
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
17400
+ HttpClient::Preconditions.require_keys(opts, [:id, :shipping_configuration, :region, :promotions], 'AvailablePromotion')
17401
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
17402
+ @shipping_configuration = (x = opts.delete(:shipping_configuration); x.is_a?(::Io::Flow::V0::Models::ShippingConfigurationReference) ? x : ::Io::Flow::V0::Models::ShippingConfigurationReference.new(x))
17403
+ @region = (x = opts.delete(:region); x.is_a?(::Io::Flow::V0::Models::RegionReference) ? x : ::Io::Flow::V0::Models::RegionReference.new(x))
17404
+ @promotions = HttpClient::Preconditions.assert_class('promotions', opts.delete(:promotions), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Promotion) ? x : ::Io::Flow::V0::Models::Promotion.from_json(x)) }
16892
17405
  end
16893
17406
 
16894
17407
  def to_json
@@ -16896,29 +17409,32 @@ module Io
16896
17409
  end
16897
17410
 
16898
17411
  def copy(incoming={})
16899
- AuthorizationValueForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17412
+ AvailablePromotion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16900
17413
  end
16901
17414
 
16902
17415
  def to_hash
16903
17416
  {
16904
- :amount => amount,
16905
- :currency => currency
17417
+ :id => id,
17418
+ :shipping_configuration => shipping_configuration.to_hash,
17419
+ :region => region.to_hash,
17420
+ :promotions => promotions.map { |o| o.to_hash }
16906
17421
  }
16907
17422
  end
16908
17423
 
16909
17424
  end
16910
17425
 
16911
- class AuthorizationVersion
17426
+ class AvailablePromotionsDeleted < Event
16912
17427
 
16913
- attr_reader :id, :timestamp, :type, :authorization
17428
+ attr_reader :event_id, :timestamp, :organization, :experience_key
16914
17429
 
16915
17430
  def initialize(incoming={})
17431
+ super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_DELETED)
16916
17432
  opts = HttpClient::Helper.symbolize_keys(incoming)
16917
- HttpClient::Preconditions.require_keys(opts, [:id, :timestamp, :type, :authorization], 'AuthorizationVersion')
16918
- @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
17433
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :experience_key], 'AvailablePromotionsDeleted')
17434
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
16919
17435
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
16920
- @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::ChangeType) ? x : ::Io::Flow::V0::Models::ChangeType.apply(x))
16921
- @authorization = (x = opts.delete(:authorization); x.is_a?(::Io::Flow::V0::Models::Authorization) ? x : ::Io::Flow::V0::Models::Authorization.from_json(x))
17436
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17437
+ @experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
16922
17438
  end
16923
17439
 
16924
17440
  def to_json
@@ -16926,32 +17442,32 @@ module Io
16926
17442
  end
16927
17443
 
16928
17444
  def copy(incoming={})
16929
- AuthorizationVersion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17445
+ AvailablePromotionsDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16930
17446
  end
16931
17447
 
16932
- def to_hash
17448
+ def subtype_to_hash
16933
17449
  {
16934
- :id => id,
17450
+ :event_id => event_id,
16935
17451
  :timestamp => timestamp,
16936
- :type => type.value,
16937
- :authorization => authorization.to_hash
17452
+ :organization => organization,
17453
+ :experience_key => experience_key
16938
17454
  }
16939
17455
  end
16940
17456
 
16941
17457
  end
16942
17458
 
16943
- class AvailablePromotionsDeleted < Event
17459
+ class AvailablePromotionsDeletedV2 < Event
16944
17460
 
16945
- attr_reader :event_id, :timestamp, :organization, :experience_key
17461
+ attr_reader :event_id, :timestamp, :organization, :available_promotion
16946
17462
 
16947
17463
  def initialize(incoming={})
16948
- super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_DELETED)
17464
+ super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_DELETED_V2)
16949
17465
  opts = HttpClient::Helper.symbolize_keys(incoming)
16950
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :experience_key], 'AvailablePromotionsDeleted')
17466
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :available_promotion], 'AvailablePromotionsDeletedV2')
16951
17467
  @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
16952
17468
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
16953
17469
  @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
16954
- @experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
17470
+ @available_promotion = (x = opts.delete(:available_promotion); x.is_a?(::Io::Flow::V0::Models::AvailablePromotion) ? x : ::Io::Flow::V0::Models::AvailablePromotion.new(x))
16955
17471
  end
16956
17472
 
16957
17473
  def to_json
@@ -16959,7 +17475,7 @@ module Io
16959
17475
  end
16960
17476
 
16961
17477
  def copy(incoming={})
16962
- AvailablePromotionsDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17478
+ AvailablePromotionsDeletedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16963
17479
  end
16964
17480
 
16965
17481
  def subtype_to_hash
@@ -16967,7 +17483,7 @@ module Io
16967
17483
  :event_id => event_id,
16968
17484
  :timestamp => timestamp,
16969
17485
  :organization => organization,
16970
- :experience_key => experience_key
17486
+ :available_promotion => available_promotion.to_hash
16971
17487
  }
16972
17488
  end
16973
17489
 
@@ -17008,6 +17524,39 @@ module Io
17008
17524
 
17009
17525
  end
17010
17526
 
17527
+ class AvailablePromotionsUpsertedV2 < Event
17528
+
17529
+ attr_reader :event_id, :timestamp, :organization, :available_promotion
17530
+
17531
+ def initialize(incoming={})
17532
+ super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_UPSERTED_V2)
17533
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17534
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :available_promotion], 'AvailablePromotionsUpsertedV2')
17535
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17536
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
17537
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17538
+ @available_promotion = (x = opts.delete(:available_promotion); x.is_a?(::Io::Flow::V0::Models::AvailablePromotion) ? x : ::Io::Flow::V0::Models::AvailablePromotion.new(x))
17539
+ end
17540
+
17541
+ def to_json
17542
+ JSON.dump(to_hash)
17543
+ end
17544
+
17545
+ def copy(incoming={})
17546
+ AvailablePromotionsUpsertedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17547
+ end
17548
+
17549
+ def subtype_to_hash
17550
+ {
17551
+ :event_id => event_id,
17552
+ :timestamp => timestamp,
17553
+ :organization => organization,
17554
+ :available_promotion => available_promotion.to_hash
17555
+ }
17556
+ end
17557
+
17558
+ end
17559
+
17011
17560
  # Representation of a service level available at a center and the special pickup
17012
17561
  # times during the week. If pickup schedules are not provided, assumption is
17013
17562
  # once a day during the weekdays.
@@ -17076,12 +17625,49 @@ module Io
17076
17625
 
17077
17626
  end
17078
17627
 
17628
+ class BillingAddress
17629
+
17630
+ attr_reader :name, :streets, :city, :province, :postal, :country, :company
17631
+
17632
+ def initialize(incoming={})
17633
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17634
+ @name = (x = opts.delete(:name); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Name) ? x : ::Io::Flow::V0::Models::Name.new(x)))
17635
+ @streets = (x = opts.delete(:streets); x.nil? ? nil : HttpClient::Preconditions.assert_class('streets', x, Array).map { |v| HttpClient::Preconditions.assert_class('streets', v, String) })
17636
+ @city = (x = opts.delete(:city); x.nil? ? nil : HttpClient::Preconditions.assert_class('city', x, String))
17637
+ @province = (x = opts.delete(:province); x.nil? ? nil : HttpClient::Preconditions.assert_class('province', x, String))
17638
+ @postal = (x = opts.delete(:postal); x.nil? ? nil : HttpClient::Preconditions.assert_class('postal', x, String))
17639
+ @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
17640
+ @company = (x = opts.delete(:company); x.nil? ? nil : HttpClient::Preconditions.assert_class('company', x, String))
17641
+ end
17642
+
17643
+ def to_json
17644
+ JSON.dump(to_hash)
17645
+ end
17646
+
17647
+ def copy(incoming={})
17648
+ BillingAddress.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17649
+ end
17650
+
17651
+ def to_hash
17652
+ {
17653
+ :name => name.nil? ? nil : name.to_hash,
17654
+ :streets => streets.nil? ? nil : streets,
17655
+ :city => city,
17656
+ :province => province,
17657
+ :postal => postal,
17658
+ :country => country,
17659
+ :company => company
17660
+ }
17661
+ end
17662
+
17663
+ end
17664
+
17079
17665
  # Capture actually transfers funds. You can capture as many times as you'd like
17080
17666
  # up until the total amount of the authorization has been captured or the
17081
17667
  # authorization otherwise becomes unavailable (e.g. expires).
17082
17668
  class Capture
17083
17669
 
17084
- attr_reader :id, :key, :authorization, :amount, :currency, :requested, :created_at, :attributes, :status
17670
+ attr_reader :id, :key, :authorization, :amount, :currency, :requested, :created_at, :attributes, :status, :base
17085
17671
 
17086
17672
  def initialize(incoming={})
17087
17673
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -17095,6 +17681,7 @@ module Io
17095
17681
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
17096
17682
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
17097
17683
  @status = (x = (x = opts.delete(:status); x.nil? ? "succeeded" : x); x.is_a?(::Io::Flow::V0::Models::CaptureStatus) ? x : ::Io::Flow::V0::Models::CaptureStatus.apply(x))
17684
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
17098
17685
  end
17099
17686
 
17100
17687
  def to_json
@@ -17115,7 +17702,41 @@ module Io
17115
17702
  :requested => requested.nil? ? nil : requested.to_hash,
17116
17703
  :created_at => created_at,
17117
17704
  :attributes => attributes.nil? ? nil : attributes,
17118
- :status => status.value
17705
+ :status => status.value,
17706
+ :base => base.nil? ? nil : base.to_hash
17707
+ }
17708
+ end
17709
+
17710
+ end
17711
+
17712
+ class CaptureDeleted < Event
17713
+
17714
+ attr_reader :event_id, :timestamp, :organization, :capture
17715
+
17716
+ def initialize(incoming={})
17717
+ super(:discriminator => Event::Types::CAPTURE_DELETED)
17718
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17719
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :capture], 'CaptureDeleted')
17720
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17721
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
17722
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17723
+ @capture = (x = opts.delete(:capture); x.is_a?(::Io::Flow::V0::Models::Capture) ? x : ::Io::Flow::V0::Models::Capture.new(x))
17724
+ end
17725
+
17726
+ def to_json
17727
+ JSON.dump(to_hash)
17728
+ end
17729
+
17730
+ def copy(incoming={})
17731
+ CaptureDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17732
+ end
17733
+
17734
+ def subtype_to_hash
17735
+ {
17736
+ :event_id => event_id,
17737
+ :timestamp => timestamp,
17738
+ :organization => organization,
17739
+ :capture => capture.to_hash
17119
17740
  }
17120
17741
  end
17121
17742
 
@@ -17314,47 +17935,6 @@ module Io
17314
17935
 
17315
17936
  end
17316
17937
 
17317
- class CaptureUpserted < Event
17318
-
17319
- attr_reader :event_id, :timestamp, :organization, :key, :authorization_key, :amount, :currency, :created_at
17320
-
17321
- def initialize(incoming={})
17322
- super(:discriminator => Event::Types::CAPTURE_UPSERTED)
17323
- opts = HttpClient::Helper.symbolize_keys(incoming)
17324
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :key, :authorization_key, :amount, :currency, :created_at], 'CaptureUpserted')
17325
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17326
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
17327
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17328
- @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
17329
- @authorization_key = HttpClient::Preconditions.assert_class('authorization_key', opts.delete(:authorization_key), String)
17330
- @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
17331
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
17332
- @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
17333
- end
17334
-
17335
- def to_json
17336
- JSON.dump(to_hash)
17337
- end
17338
-
17339
- def copy(incoming={})
17340
- CaptureUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17341
- end
17342
-
17343
- def subtype_to_hash
17344
- {
17345
- :event_id => event_id,
17346
- :timestamp => timestamp,
17347
- :organization => organization,
17348
- :key => key,
17349
- :authorization_key => authorization_key,
17350
- :amount => amount,
17351
- :currency => currency,
17352
- :created_at => created_at
17353
- }
17354
- end
17355
-
17356
- end
17357
-
17358
17938
  class CaptureUpsertedV2 < Event
17359
17939
 
17360
17940
  attr_reader :event_id, :timestamp, :organization, :id, :capture
@@ -17445,7 +18025,7 @@ module Io
17445
18025
  @iin = HttpClient::Preconditions.assert_class('iin', opts.delete(:iin), String)
17446
18026
  @last4 = HttpClient::Preconditions.assert_class('last4', opts.delete(:last4), String)
17447
18027
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
17448
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
18028
+ @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
17449
18029
  end
17450
18030
 
17451
18031
  def to_json
@@ -17476,7 +18056,7 @@ module Io
17476
18056
  # capture up to the amount of the authorization.
17477
18057
  class CardAuthorization < Authorization
17478
18058
 
17479
- attr_reader :id, :key, :merchant_of_record, :method, :card, :amount, :currency, :requested, :customer, :attributes, :destination, :order, :ip, :result, :created_at, :expires_at
18059
+ attr_reader :id, :key, :merchant_of_record, :method, :card, :amount, :currency, :requested, :customer, :attributes, :destination, :billing_address, :order, :ip, :result, :created_at, :expires_at, :base
17480
18060
 
17481
18061
  def initialize(incoming={})
17482
18062
  super(:discriminator => Authorization::Types::CARD_AUTHORIZATION)
@@ -17493,11 +18073,13 @@ module Io
17493
18073
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
17494
18074
  @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
17495
18075
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
18076
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
17496
18077
  @order = (x = opts.delete(:order); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationOrderReference) ? x : ::Io::Flow::V0::Models::AuthorizationOrderReference.new(x)))
17497
18078
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
17498
18079
  @result = (x = opts.delete(:result); x.is_a?(::Io::Flow::V0::Models::AuthorizationResult) ? x : ::Io::Flow::V0::Models::AuthorizationResult.new(x))
17499
18080
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
17500
18081
  @expires_at = (x = opts.delete(:expires_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
18082
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
17501
18083
  end
17502
18084
 
17503
18085
  def to_json
@@ -17521,11 +18103,13 @@ module Io
17521
18103
  :customer => customer.to_hash,
17522
18104
  :attributes => attributes,
17523
18105
  :destination => destination.nil? ? nil : destination.to_hash,
18106
+ :billing_address => billing_address.nil? ? nil : billing_address.to_hash,
17524
18107
  :order => order.nil? ? nil : order.to_hash,
17525
18108
  :ip => ip,
17526
18109
  :result => result.to_hash,
17527
18110
  :created_at => created_at,
17528
- :expires_at => expires_at
18111
+ :expires_at => expires_at,
18112
+ :base => base.nil? ? nil : base.to_hash
17529
18113
  }
17530
18114
  end
17531
18115
 
@@ -17577,40 +18161,6 @@ module Io
17577
18161
 
17578
18162
  end
17579
18163
 
17580
- # Represents an authorization for a card payment method
17581
- class CardAuthorizationUpserted < Event
17582
-
17583
- attr_reader :event_id, :timestamp, :organization, :authorization
17584
-
17585
- def initialize(incoming={})
17586
- super(:discriminator => Event::Types::CARD_AUTHORIZATION_UPSERTED)
17587
- opts = HttpClient::Helper.symbolize_keys(incoming)
17588
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :authorization], 'CardAuthorizationUpserted')
17589
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17590
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
17591
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17592
- @authorization = (x = opts.delete(:authorization); x.is_a?(::Io::Flow::V0::Models::CardAuthorization) ? x : ::Io::Flow::V0::Models::CardAuthorization.new(x))
17593
- end
17594
-
17595
- def to_json
17596
- JSON.dump(to_hash)
17597
- end
17598
-
17599
- def copy(incoming={})
17600
- CardAuthorizationUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17601
- end
17602
-
17603
- def subtype_to_hash
17604
- {
17605
- :event_id => event_id,
17606
- :timestamp => timestamp,
17607
- :organization => organization,
17608
- :authorization => authorization.to_hash
17609
- }
17610
- end
17611
-
17612
- end
17613
-
17614
18164
  # Represents an authorization for a card payment method
17615
18165
  class CardAuthorizationUpsertedV2 < Event
17616
18166
 
@@ -17680,6 +18230,38 @@ module Io
17680
18230
 
17681
18231
  end
17682
18232
 
18233
+ class CardDeletedV2
18234
+
18235
+ attr_reader :event_id, :timestamp, :organization, :card
18236
+
18237
+ def initialize(incoming={})
18238
+ opts = HttpClient::Helper.symbolize_keys(incoming)
18239
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :card], 'CardDeletedV2')
18240
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
18241
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
18242
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
18243
+ @card = (x = opts.delete(:card); x.is_a?(::Io::Flow::V0::Models::Card) ? x : ::Io::Flow::V0::Models::Card.new(x))
18244
+ end
18245
+
18246
+ def to_json
18247
+ JSON.dump(to_hash)
18248
+ end
18249
+
18250
+ def copy(incoming={})
18251
+ CardDeletedV2.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
18252
+ end
18253
+
18254
+ def to_hash
18255
+ {
18256
+ :event_id => event_id,
18257
+ :timestamp => timestamp,
18258
+ :organization => organization,
18259
+ :card => card.to_hash
18260
+ }
18261
+ end
18262
+
18263
+ end
18264
+
17683
18265
  # Details for why a card was not created
17684
18266
  class CardError
17685
18267
 
@@ -17727,7 +18309,7 @@ module Io
17727
18309
  @expiration_year = HttpClient::Preconditions.assert_class('expiration_year', opts.delete(:expiration_year), Integer)
17728
18310
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
17729
18311
  @cvv = HttpClient::Preconditions.assert_class('cvv', opts.delete(:cvv), String)
17730
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
18312
+ @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
17731
18313
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
17732
18314
  @challenge_text = (x = opts.delete(:challenge_text); x.nil? ? nil : HttpClient::Preconditions.assert_class('challenge_text', x, String))
17733
18315
  @challenge_cipher = (x = opts.delete(:challenge_cipher); x.nil? ? nil : HttpClient::Preconditions.assert_class('challenge_cipher', x, String))
@@ -17844,51 +18426,6 @@ module Io
17844
18426
 
17845
18427
  end
17846
18428
 
17847
- class CardUpserted < Event
17848
-
17849
- attr_reader :event_id, :timestamp, :organization, :id, :type, :expiration, :iin, :last4, :name, :address
17850
-
17851
- def initialize(incoming={})
17852
- super(:discriminator => Event::Types::CARD_UPSERTED)
17853
- opts = HttpClient::Helper.symbolize_keys(incoming)
17854
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :id, :type, :expiration, :iin, :last4, :name], 'CardUpserted')
17855
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
17856
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
17857
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
17858
- @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
17859
- @type = HttpClient::Preconditions.assert_class('type', opts.delete(:type), String)
17860
- @expiration = (x = opts.delete(:expiration); x.is_a?(::Io::Flow::V0::Models::Expiration) ? x : ::Io::Flow::V0::Models::Expiration.new(x))
17861
- @iin = HttpClient::Preconditions.assert_class('iin', opts.delete(:iin), String)
17862
- @last4 = HttpClient::Preconditions.assert_class('last4', opts.delete(:last4), String)
17863
- @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
17864
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
17865
- end
17866
-
17867
- def to_json
17868
- JSON.dump(to_hash)
17869
- end
17870
-
17871
- def copy(incoming={})
17872
- CardUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17873
- end
17874
-
17875
- def subtype_to_hash
17876
- {
17877
- :event_id => event_id,
17878
- :timestamp => timestamp,
17879
- :organization => organization,
17880
- :id => id,
17881
- :type => type,
17882
- :expiration => expiration.to_hash,
17883
- :iin => iin,
17884
- :last4 => last4,
17885
- :name => name,
17886
- :address => address.nil? ? nil : address.to_hash
17887
- }
17888
- end
17889
-
17890
- end
17891
-
17892
18429
  class CardUpsertedV2 < Event
17893
18430
 
17894
18431
  attr_reader :event_id, :timestamp, :organization, :id, :card
@@ -19013,18 +19550,25 @@ module Io
19013
19550
  # order. This may represent either the full order or a partial fulfillment.
19014
19551
  class ConsumerInvoice
19015
19552
 
19016
- attr_reader :id, :date, :key, :order, :items, :documents, :attributes
19553
+ attr_reader :id, :status, :date, :key, :order, :entity, :payments, :center, :destination, :billing_address, :lines, :documents, :attributes, :tax_registration
19017
19554
 
19018
19555
  def initialize(incoming={})
19019
19556
  opts = HttpClient::Helper.symbolize_keys(incoming)
19020
- HttpClient::Preconditions.require_keys(opts, [:id, :date, :key, :order, :items, :documents, :attributes], 'ConsumerInvoice')
19557
+ HttpClient::Preconditions.require_keys(opts, [:id, :status, :date, :key, :order, :entity, :payments, :destination, :lines, :documents, :attributes], 'ConsumerInvoice')
19021
19558
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
19559
+ @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceStatus) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceStatus.apply(x))
19022
19560
  @date = HttpClient::Preconditions.assert_class('date', HttpClient::Helper.to_date_time_iso8601(opts.delete(:date)), DateTime)
19023
19561
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
19024
- @order = (x = opts.delete(:order); x.is_a?(::Io::Flow::V0::Models::OrderReference) ? x : ::Io::Flow::V0::Models::OrderReference.new(x))
19025
- @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceItem) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceItem.new(x)) }
19562
+ @order = (x = opts.delete(:order); x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceOrderSummary) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceOrderSummary.new(x))
19563
+ @entity = (x = opts.delete(:entity); x.is_a?(::Io::Flow::V0::Models::MerchantOfRecordEntity) ? x : ::Io::Flow::V0::Models::MerchantOfRecordEntity.new(x))
19564
+ @payments = HttpClient::Preconditions.assert_class('payments', opts.delete(:payments), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoicePayment) ? x : ::Io::Flow::V0::Models::ConsumerInvoicePayment.new(x)) }
19565
+ @center = (x = opts.delete(:center); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceCenterReference) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceCenterReference.new(x)))
19566
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x))
19567
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
19568
+ @lines = HttpClient::Preconditions.assert_class('lines', opts.delete(:lines), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLine) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLine.from_json(x)) }
19026
19569
  @documents = HttpClient::Preconditions.assert_class('documents', opts.delete(:documents), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceDocument) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceDocument.new(x)) }
19027
19570
  @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
19571
+ @tax_registration = (x = opts.delete(:tax_registration); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxRegistration) ? x : ::Io::Flow::V0::Models::TaxRegistration.new(x)))
19028
19572
  end
19029
19573
 
19030
19574
  def to_json
@@ -19038,12 +19582,45 @@ module Io
19038
19582
  def to_hash
19039
19583
  {
19040
19584
  :id => id,
19585
+ :status => status.value,
19041
19586
  :date => date,
19042
19587
  :key => key,
19043
19588
  :order => order.to_hash,
19044
- :items => items.map { |o| o.to_hash },
19589
+ :entity => entity.to_hash,
19590
+ :payments => payments.map { |o| o.to_hash },
19591
+ :center => center.nil? ? nil : center.to_hash,
19592
+ :destination => destination.to_hash,
19593
+ :billing_address => billing_address.nil? ? nil : billing_address.to_hash,
19594
+ :lines => lines.map { |o| o.to_hash },
19045
19595
  :documents => documents.map { |o| o.to_hash },
19046
- :attributes => attributes
19596
+ :attributes => attributes,
19597
+ :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash
19598
+ }
19599
+ end
19600
+
19601
+ end
19602
+
19603
+ class ConsumerInvoiceCenterReference
19604
+
19605
+ attr_reader :key
19606
+
19607
+ def initialize(incoming={})
19608
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19609
+ HttpClient::Preconditions.require_keys(opts, [:key], 'ConsumerInvoiceCenterReference')
19610
+ @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
19611
+ end
19612
+
19613
+ def to_json
19614
+ JSON.dump(to_hash)
19615
+ end
19616
+
19617
+ def copy(incoming={})
19618
+ ConsumerInvoiceCenterReference.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19619
+ end
19620
+
19621
+ def to_hash
19622
+ {
19623
+ :key => key
19047
19624
  }
19048
19625
  end
19049
19626
 
@@ -19114,13 +19691,12 @@ module Io
19114
19691
 
19115
19692
  class ConsumerInvoiceForm
19116
19693
 
19117
- attr_reader :order_number, :items, :attributes
19694
+ attr_reader :order_number, :attributes
19118
19695
 
19119
19696
  def initialize(incoming={})
19120
19697
  opts = HttpClient::Helper.symbolize_keys(incoming)
19121
- HttpClient::Preconditions.require_keys(opts, [:order_number, :items], 'ConsumerInvoiceForm')
19698
+ HttpClient::Preconditions.require_keys(opts, [:order_number], 'ConsumerInvoiceForm')
19122
19699
  @order_number = HttpClient::Preconditions.assert_class('order_number', opts.delete(:order_number), String)
19123
- @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceItemForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceItemForm.new(x)) }
19124
19700
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
19125
19701
  end
19126
19702
 
@@ -19135,22 +19711,107 @@ module Io
19135
19711
  def to_hash
19136
19712
  {
19137
19713
  :order_number => order_number,
19138
- :items => items.map { |o| o.to_hash },
19139
19714
  :attributes => attributes.nil? ? nil : attributes
19140
19715
  }
19141
19716
  end
19142
19717
 
19143
19718
  end
19144
19719
 
19145
- class ConsumerInvoiceItem
19720
+ class ConsumerInvoiceFormByOrder
19146
19721
 
19147
- attr_reader :item, :quantity
19722
+ attr_reader :attributes
19723
+
19724
+ def initialize(incoming={})
19725
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19726
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
19727
+ end
19728
+
19729
+ def to_json
19730
+ JSON.dump(to_hash)
19731
+ end
19732
+
19733
+ def copy(incoming={})
19734
+ ConsumerInvoiceFormByOrder.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19735
+ end
19736
+
19737
+ def to_hash
19738
+ {
19739
+ :attributes => attributes.nil? ? nil : attributes
19740
+ }
19741
+ end
19742
+
19743
+ end
19744
+
19745
+ class ConsumerInvoiceLevy
19746
+
19747
+ attr_reader :rate, :value
19748
+
19749
+ def initialize(incoming={})
19750
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19751
+ HttpClient::Preconditions.require_keys(opts, [:rate, :value], 'ConsumerInvoiceLevy')
19752
+ @rate = HttpClient::Preconditions.assert_class('rate', HttpClient::Helper.to_big_decimal(opts.delete(:rate)), BigDecimal)
19753
+ @value = (x = opts.delete(:value); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
19754
+ end
19755
+
19756
+ def to_json
19757
+ JSON.dump(to_hash)
19758
+ end
19759
+
19760
+ def copy(incoming={})
19761
+ ConsumerInvoiceLevy.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19762
+ end
19763
+
19764
+ def to_hash
19765
+ {
19766
+ :rate => rate,
19767
+ :value => value.to_hash
19768
+ }
19769
+ end
19770
+
19771
+ end
19772
+
19773
+ class ConsumerInvoiceLevyForm
19774
+
19775
+ attr_reader :rate, :amount
19776
+
19777
+ def initialize(incoming={})
19778
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19779
+ HttpClient::Preconditions.require_keys(opts, [:rate, :amount], 'ConsumerInvoiceLevyForm')
19780
+ @rate = HttpClient::Preconditions.assert_class('rate', HttpClient::Helper.to_big_decimal(opts.delete(:rate)), BigDecimal)
19781
+ @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
19782
+ end
19783
+
19784
+ def to_json
19785
+ JSON.dump(to_hash)
19786
+ end
19787
+
19788
+ def copy(incoming={})
19789
+ ConsumerInvoiceLevyForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19790
+ end
19791
+
19792
+ def to_hash
19793
+ {
19794
+ :rate => rate,
19795
+ :amount => amount
19796
+ }
19797
+ end
19798
+
19799
+ end
19800
+
19801
+ class ConsumerInvoiceLineItem < ConsumerInvoiceLine
19802
+
19803
+ attr_reader :item, :description, :quantity, :unit_price, :unit_tax, :unit_duty
19148
19804
 
19149
19805
  def initialize(incoming={})
19806
+ super(:discriminator => ConsumerInvoiceLine::Types::CONSUMER_INVOICE_LINE_ITEM)
19150
19807
  opts = HttpClient::Helper.symbolize_keys(incoming)
19151
- HttpClient::Preconditions.require_keys(opts, [:item, :quantity], 'ConsumerInvoiceItem')
19808
+ HttpClient::Preconditions.require_keys(opts, [:item, :description, :quantity, :unit_price], 'ConsumerInvoiceLineItem')
19152
19809
  @item = (x = opts.delete(:item); x.is_a?(::Io::Flow::V0::Models::ItemReference) ? x : ::Io::Flow::V0::Models::ItemReference.new(x))
19810
+ @description = HttpClient::Preconditions.assert_class('description', opts.delete(:description), String)
19153
19811
  @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
19812
+ @unit_price = (x = opts.delete(:unit_price); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
19813
+ @unit_tax = (x = opts.delete(:unit_tax); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevy) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevy.new(x)))
19814
+ @unit_duty = (x = opts.delete(:unit_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevy) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevy.new(x)))
19154
19815
  end
19155
19816
 
19156
19817
  def to_json
@@ -19158,27 +19819,35 @@ module Io
19158
19819
  end
19159
19820
 
19160
19821
  def copy(incoming={})
19161
- ConsumerInvoiceItem.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19822
+ ConsumerInvoiceLineItem.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19162
19823
  end
19163
19824
 
19164
- def to_hash
19825
+ def subtype_to_hash
19165
19826
  {
19166
19827
  :item => item.to_hash,
19167
- :quantity => quantity
19828
+ :description => description,
19829
+ :quantity => quantity,
19830
+ :unit_price => unit_price.to_hash,
19831
+ :unit_tax => unit_tax.nil? ? nil : unit_tax.to_hash,
19832
+ :unit_duty => unit_duty.nil? ? nil : unit_duty.to_hash
19168
19833
  }
19169
19834
  end
19170
19835
 
19171
19836
  end
19172
19837
 
19173
- class ConsumerInvoiceItemForm
19838
+ class ConsumerInvoiceLineItemForm < ConsumerInvoiceLineForm
19174
19839
 
19175
- attr_reader :item_number, :quantity
19840
+ attr_reader :item_number, :quantity, :unit_price, :unit_tax, :unit_duty
19176
19841
 
19177
19842
  def initialize(incoming={})
19843
+ super(:discriminator => ConsumerInvoiceLineForm::Types::CONSUMER_INVOICE_LINE_ITEM_FORM)
19178
19844
  opts = HttpClient::Helper.symbolize_keys(incoming)
19179
- HttpClient::Preconditions.require_keys(opts, [:item_number, :quantity], 'ConsumerInvoiceItemForm')
19845
+ HttpClient::Preconditions.require_keys(opts, [:item_number, :quantity, :unit_price], 'ConsumerInvoiceLineItemForm')
19180
19846
  @item_number = HttpClient::Preconditions.assert_class('item_number', opts.delete(:item_number), String)
19181
19847
  @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
19848
+ @unit_price = HttpClient::Preconditions.assert_class('unit_price', HttpClient::Helper.to_big_decimal(opts.delete(:unit_price)), BigDecimal)
19849
+ @unit_tax = (x = opts.delete(:unit_tax); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevyForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevyForm.new(x)))
19850
+ @unit_duty = (x = opts.delete(:unit_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevyForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevyForm.new(x)))
19182
19851
  end
19183
19852
 
19184
19853
  def to_json
@@ -19186,13 +19855,166 @@ module Io
19186
19855
  end
19187
19856
 
19188
19857
  def copy(incoming={})
19189
- ConsumerInvoiceItemForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19858
+ ConsumerInvoiceLineItemForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19190
19859
  end
19191
19860
 
19192
- def to_hash
19861
+ def subtype_to_hash
19193
19862
  {
19194
19863
  :item_number => item_number,
19195
- :quantity => quantity
19864
+ :quantity => quantity,
19865
+ :unit_price => unit_price,
19866
+ :unit_tax => unit_tax.nil? ? nil : unit_tax.to_hash,
19867
+ :unit_duty => unit_duty.nil? ? nil : unit_duty.to_hash
19868
+ }
19869
+ end
19870
+
19871
+ end
19872
+
19873
+ class ConsumerInvoiceLineShipping < ConsumerInvoiceLine
19874
+
19875
+ attr_reader :price, :tax, :duty
19876
+
19877
+ def initialize(incoming={})
19878
+ super(:discriminator => ConsumerInvoiceLine::Types::CONSUMER_INVOICE_LINE_SHIPPING)
19879
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19880
+ HttpClient::Preconditions.require_keys(opts, [:price], 'ConsumerInvoiceLineShipping')
19881
+ @price = (x = opts.delete(:price); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
19882
+ @tax = (x = opts.delete(:tax); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevy) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevy.new(x)))
19883
+ @duty = (x = opts.delete(:duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevy) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevy.new(x)))
19884
+ end
19885
+
19886
+ def to_json
19887
+ JSON.dump(to_hash)
19888
+ end
19889
+
19890
+ def copy(incoming={})
19891
+ ConsumerInvoiceLineShipping.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19892
+ end
19893
+
19894
+ def subtype_to_hash
19895
+ {
19896
+ :price => price.to_hash,
19897
+ :tax => tax.nil? ? nil : tax.to_hash,
19898
+ :duty => duty.nil? ? nil : duty.to_hash
19899
+ }
19900
+ end
19901
+
19902
+ end
19903
+
19904
+ class ConsumerInvoiceLineShippingForm < ConsumerInvoiceLineForm
19905
+
19906
+ attr_reader :price, :tax, :duty
19907
+
19908
+ def initialize(incoming={})
19909
+ super(:discriminator => ConsumerInvoiceLineForm::Types::CONSUMER_INVOICE_LINE_SHIPPING_FORM)
19910
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19911
+ HttpClient::Preconditions.require_keys(opts, [:price], 'ConsumerInvoiceLineShippingForm')
19912
+ @price = HttpClient::Preconditions.assert_class('price', HttpClient::Helper.to_big_decimal(opts.delete(:price)), BigDecimal)
19913
+ @tax = (x = opts.delete(:tax); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevyForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevyForm.new(x)))
19914
+ @duty = (x = opts.delete(:duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLevyForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLevyForm.new(x)))
19915
+ end
19916
+
19917
+ def to_json
19918
+ JSON.dump(to_hash)
19919
+ end
19920
+
19921
+ def copy(incoming={})
19922
+ ConsumerInvoiceLineShippingForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19923
+ end
19924
+
19925
+ def subtype_to_hash
19926
+ {
19927
+ :price => price,
19928
+ :tax => tax.nil? ? nil : tax.to_hash,
19929
+ :duty => duty.nil? ? nil : duty.to_hash
19930
+ }
19931
+ end
19932
+
19933
+ end
19934
+
19935
+ class ConsumerInvoiceOrderSummary
19936
+
19937
+ attr_reader :id, :number, :submitted_at
19938
+
19939
+ def initialize(incoming={})
19940
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19941
+ HttpClient::Preconditions.require_keys(opts, [:id, :number, :submitted_at], 'ConsumerInvoiceOrderSummary')
19942
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
19943
+ @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
19944
+ @submitted_at = HttpClient::Preconditions.assert_class('submitted_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:submitted_at)), DateTime)
19945
+ end
19946
+
19947
+ def to_json
19948
+ JSON.dump(to_hash)
19949
+ end
19950
+
19951
+ def copy(incoming={})
19952
+ ConsumerInvoiceOrderSummary.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19953
+ end
19954
+
19955
+ def to_hash
19956
+ {
19957
+ :id => id,
19958
+ :number => number,
19959
+ :submitted_at => submitted_at
19960
+ }
19961
+ end
19962
+
19963
+ end
19964
+
19965
+ class ConsumerInvoicePayment
19966
+
19967
+ attr_reader :date, :description, :value, :billing_address
19968
+
19969
+ def initialize(incoming={})
19970
+ opts = HttpClient::Helper.symbolize_keys(incoming)
19971
+ HttpClient::Preconditions.require_keys(opts, [:date, :description, :value], 'ConsumerInvoicePayment')
19972
+ @date = HttpClient::Preconditions.assert_class('date', HttpClient::Helper.to_date_time_iso8601(opts.delete(:date)), DateTime)
19973
+ @description = HttpClient::Preconditions.assert_class('description', opts.delete(:description), String)
19974
+ @value = (x = opts.delete(:value); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
19975
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
19976
+ end
19977
+
19978
+ def to_json
19979
+ JSON.dump(to_hash)
19980
+ end
19981
+
19982
+ def copy(incoming={})
19983
+ ConsumerInvoicePayment.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
19984
+ end
19985
+
19986
+ def to_hash
19987
+ {
19988
+ :date => date,
19989
+ :description => description,
19990
+ :value => value.to_hash,
19991
+ :billing_address => billing_address.nil? ? nil : billing_address.to_hash
19992
+ }
19993
+ end
19994
+
19995
+ end
19996
+
19997
+ class ConsumerInvoiceReference
19998
+
19999
+ attr_reader :id
20000
+
20001
+ def initialize(incoming={})
20002
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20003
+ HttpClient::Preconditions.require_keys(opts, [:id], 'ConsumerInvoiceReference')
20004
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
20005
+ end
20006
+
20007
+ def to_json
20008
+ JSON.dump(to_hash)
20009
+ end
20010
+
20011
+ def copy(incoming={})
20012
+ ConsumerInvoiceReference.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20013
+ end
20014
+
20015
+ def to_hash
20016
+ {
20017
+ :id => id
19196
20018
  }
19197
20019
  end
19198
20020
 
@@ -19339,6 +20161,157 @@ module Io
19339
20161
 
19340
20162
  end
19341
20163
 
20164
+ # The credit memo represents the details of a refund and the reasons for the
20165
+ # issuance of the refund.
20166
+ class CreditMemo
20167
+
20168
+ attr_reader :id, :status, :date, :key, :invoice, :entity, :payments, :lines, :documents, :attributes, :tax_registration
20169
+
20170
+ def initialize(incoming={})
20171
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20172
+ HttpClient::Preconditions.require_keys(opts, [:id, :status, :date, :key, :invoice, :entity, :payments, :lines, :documents, :attributes], 'CreditMemo')
20173
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
20174
+ @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceStatus) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceStatus.apply(x))
20175
+ @date = HttpClient::Preconditions.assert_class('date', HttpClient::Helper.to_date_time_iso8601(opts.delete(:date)), DateTime)
20176
+ @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
20177
+ @invoice = (x = opts.delete(:invoice); x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceReference) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceReference.new(x))
20178
+ @entity = (x = opts.delete(:entity); x.is_a?(::Io::Flow::V0::Models::MerchantOfRecordEntity) ? x : ::Io::Flow::V0::Models::MerchantOfRecordEntity.new(x))
20179
+ @payments = HttpClient::Preconditions.assert_class('payments', opts.delete(:payments), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoicePayment) ? x : ::Io::Flow::V0::Models::ConsumerInvoicePayment.new(x)) }
20180
+ @lines = HttpClient::Preconditions.assert_class('lines', opts.delete(:lines), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLine) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLine.from_json(x)) }
20181
+ @documents = HttpClient::Preconditions.assert_class('documents', opts.delete(:documents), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceDocument) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceDocument.new(x)) }
20182
+ @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
20183
+ @tax_registration = (x = opts.delete(:tax_registration); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxRegistration) ? x : ::Io::Flow::V0::Models::TaxRegistration.new(x)))
20184
+ end
20185
+
20186
+ def to_json
20187
+ JSON.dump(to_hash)
20188
+ end
20189
+
20190
+ def copy(incoming={})
20191
+ CreditMemo.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20192
+ end
20193
+
20194
+ def to_hash
20195
+ {
20196
+ :id => id,
20197
+ :status => status.value,
20198
+ :date => date,
20199
+ :key => key,
20200
+ :invoice => invoice.to_hash,
20201
+ :entity => entity.to_hash,
20202
+ :payments => payments.map { |o| o.to_hash },
20203
+ :lines => lines.map { |o| o.to_hash },
20204
+ :documents => documents.map { |o| o.to_hash },
20205
+ :attributes => attributes,
20206
+ :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash
20207
+ }
20208
+ end
20209
+
20210
+ end
20211
+
20212
+ class CreditMemoDeleted < Event
20213
+
20214
+ attr_reader :event_id, :timestamp, :organization, :credit_memo
20215
+
20216
+ def initialize(incoming={})
20217
+ super(:discriminator => Event::Types::CREDIT_MEMO_DELETED)
20218
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20219
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :credit_memo], 'CreditMemoDeleted')
20220
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
20221
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
20222
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
20223
+ @credit_memo = (x = opts.delete(:credit_memo); x.is_a?(::Io::Flow::V0::Models::CreditMemo) ? x : ::Io::Flow::V0::Models::CreditMemo.new(x))
20224
+ end
20225
+
20226
+ def to_json
20227
+ JSON.dump(to_hash)
20228
+ end
20229
+
20230
+ def copy(incoming={})
20231
+ CreditMemoDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20232
+ end
20233
+
20234
+ def subtype_to_hash
20235
+ {
20236
+ :event_id => event_id,
20237
+ :timestamp => timestamp,
20238
+ :organization => organization,
20239
+ :credit_memo => credit_memo.to_hash
20240
+ }
20241
+ end
20242
+
20243
+ end
20244
+
20245
+ # A credit memo form defines the information needed to create a credit memo. You
20246
+ # must provide a way to identify the refund issued - either by id, key or
20247
+ # identifier.
20248
+ class CreditMemoForm
20249
+
20250
+ attr_reader :refund_id, :refund_key, :refund_identifier, :lines, :attributes
20251
+
20252
+ def initialize(incoming={})
20253
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20254
+ HttpClient::Preconditions.require_keys(opts, [:lines], 'CreditMemoForm')
20255
+ @refund_id = (x = opts.delete(:refund_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('refund_id', x, String))
20256
+ @refund_key = (x = opts.delete(:refund_key); x.nil? ? nil : HttpClient::Preconditions.assert_class('refund_key', x, String))
20257
+ @refund_identifier = (x = opts.delete(:refund_identifier); x.nil? ? nil : HttpClient::Preconditions.assert_class('refund_identifier', x, String))
20258
+ @lines = HttpClient::Preconditions.assert_class('lines', opts.delete(:lines), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ConsumerInvoiceLineForm) ? x : ::Io::Flow::V0::Models::ConsumerInvoiceLineForm.from_json(x)) }
20259
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
20260
+ end
20261
+
20262
+ def to_json
20263
+ JSON.dump(to_hash)
20264
+ end
20265
+
20266
+ def copy(incoming={})
20267
+ CreditMemoForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20268
+ end
20269
+
20270
+ def to_hash
20271
+ {
20272
+ :refund_id => refund_id,
20273
+ :refund_key => refund_key,
20274
+ :refund_identifier => refund_identifier,
20275
+ :lines => lines.map { |o| o.to_hash },
20276
+ :attributes => attributes.nil? ? nil : attributes
20277
+ }
20278
+ end
20279
+
20280
+ end
20281
+
20282
+ class CreditMemoUpserted < Event
20283
+
20284
+ attr_reader :event_id, :timestamp, :organization, :credit_memo
20285
+
20286
+ def initialize(incoming={})
20287
+ super(:discriminator => Event::Types::CREDIT_MEMO_UPSERTED)
20288
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20289
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :credit_memo], 'CreditMemoUpserted')
20290
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
20291
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
20292
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
20293
+ @credit_memo = (x = opts.delete(:credit_memo); x.is_a?(::Io::Flow::V0::Models::CreditMemo) ? x : ::Io::Flow::V0::Models::CreditMemo.new(x))
20294
+ end
20295
+
20296
+ def to_json
20297
+ JSON.dump(to_hash)
20298
+ end
20299
+
20300
+ def copy(incoming={})
20301
+ CreditMemoUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20302
+ end
20303
+
20304
+ def subtype_to_hash
20305
+ {
20306
+ :event_id => event_id,
20307
+ :timestamp => timestamp,
20308
+ :organization => organization,
20309
+ :credit_memo => credit_memo.to_hash
20310
+ }
20311
+ end
20312
+
20313
+ end
20314
+
19342
20315
  # A Credit Payment records a 'non cash' payment against an order (e.g. a store
19343
20316
  # credit, gift card, etc.), recording the amount of that credit and additional
19344
20317
  # details to reconcile payments. The primary purpose of the credit payment is to
@@ -19720,7 +20693,7 @@ module Io
19720
20693
  # easier.
19721
20694
  class Customer
19722
20695
 
19723
- attr_reader :name, :number, :phone, :email
20696
+ attr_reader :name, :number, :phone, :email, :address
19724
20697
 
19725
20698
  def initialize(incoming={})
19726
20699
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -19729,6 +20702,7 @@ module Io
19729
20702
  @number = (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, String))
19730
20703
  @phone = (x = opts.delete(:phone); x.nil? ? nil : HttpClient::Preconditions.assert_class('phone', x, String))
19731
20704
  @email = (x = opts.delete(:email); x.nil? ? nil : HttpClient::Preconditions.assert_class('email', x, String))
20705
+ @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
19732
20706
  end
19733
20707
 
19734
20708
  def to_json
@@ -19744,7 +20718,8 @@ module Io
19744
20718
  :name => name.to_hash,
19745
20719
  :number => number,
19746
20720
  :phone => phone,
19747
- :email => email
20721
+ :email => email,
20722
+ :address => address.nil? ? nil : address.to_hash
19748
20723
  }
19749
20724
  end
19750
20725
 
@@ -19837,6 +20812,44 @@ module Io
19837
20812
 
19838
20813
  end
19839
20814
 
20815
+ class DeliveryItem
20816
+
20817
+ attr_reader :number, :quantity, :shipment_estimate, :price, :attributes, :center, :discount
20818
+
20819
+ def initialize(incoming={})
20820
+ opts = HttpClient::Helper.symbolize_keys(incoming)
20821
+ HttpClient::Preconditions.require_keys(opts, [:number, :quantity], 'DeliveryItem')
20822
+ @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
20823
+ @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
20824
+ @shipment_estimate = (x = opts.delete(:shipment_estimate); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::DatetimeRange) ? x : ::Io::Flow::V0::Models::DatetimeRange.new(x)))
20825
+ @price = (x = opts.delete(:price); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::MoneyWithOptionalBase) ? x : ::Io::Flow::V0::Models::MoneyWithOptionalBase.new(x)))
20826
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
20827
+ @center = (x = opts.delete(:center); x.nil? ? nil : HttpClient::Preconditions.assert_class('center', x, String))
20828
+ @discount = (x = opts.delete(:discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::MoneyWithOptionalBase) ? x : ::Io::Flow::V0::Models::MoneyWithOptionalBase.new(x)))
20829
+ end
20830
+
20831
+ def to_json
20832
+ JSON.dump(to_hash)
20833
+ end
20834
+
20835
+ def copy(incoming={})
20836
+ DeliveryItem.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
20837
+ end
20838
+
20839
+ def to_hash
20840
+ {
20841
+ :number => number,
20842
+ :quantity => quantity,
20843
+ :shipment_estimate => shipment_estimate.nil? ? nil : shipment_estimate.to_hash,
20844
+ :price => price.nil? ? nil : price.to_hash,
20845
+ :attributes => attributes.nil? ? nil : attributes,
20846
+ :center => center,
20847
+ :discount => discount.nil? ? nil : discount.to_hash
20848
+ }
20849
+ end
20850
+
20851
+ end
20852
+
19840
20853
  # Represents a way to fulfill a delivery, including an estimates for the date
19841
20854
  # range and cost
19842
20855
  class DeliveryOption
@@ -20476,7 +21489,7 @@ module Io
20476
21489
  opts = HttpClient::Helper.symbolize_keys(incoming)
20477
21490
  HttpClient::Preconditions.require_keys(opts, [:id, :items], 'DigitalDelivery')
20478
21491
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
20479
- @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItemForm) ? x : ::Io::Flow::V0::Models::LineItemForm.new(x)) }
21492
+ @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveryItem) ? x : ::Io::Flow::V0::Models::DeliveryItem.new(x)) }
20480
21493
  end
20481
21494
 
20482
21495
  def to_json
@@ -20562,7 +21575,7 @@ module Io
20562
21575
  # you can capture up to the amount of the authorization.
20563
21576
  class DirectAuthorizationForm < AuthorizationForm
20564
21577
 
20565
- attr_reader :token, :amount, :currency, :customer, :key, :cvv, :attributes, :destination, :ip, :options
21578
+ attr_reader :token, :amount, :currency, :customer, :key, :cvv, :attributes, :destination, :billing_address, :ip, :options, :redirect_urls
20566
21579
 
20567
21580
  def initialize(incoming={})
20568
21581
  super(:discriminator => AuthorizationForm::Types::DIRECT_AUTHORIZATION_FORM)
@@ -20576,8 +21589,10 @@ module Io
20576
21589
  @cvv = (x = opts.delete(:cvv); x.nil? ? nil : HttpClient::Preconditions.assert_class('cvv', x, String))
20577
21590
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
20578
21591
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
21592
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
20579
21593
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
20580
21594
  @options = (x = opts.delete(:options); x.nil? ? nil : HttpClient::Preconditions.assert_class('options', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AuthorizationOption) ? x : ::Io::Flow::V0::Models::AuthorizationOption.apply(x)) })
21595
+ @redirect_urls = (x = opts.delete(:redirect_urls); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PostPaymentRedirectUrls) ? x : ::Io::Flow::V0::Models::PostPaymentRedirectUrls.new(x)))
20581
21596
  end
20582
21597
 
20583
21598
  def to_json
@@ -20598,8 +21613,45 @@ module Io
20598
21613
  :cvv => cvv,
20599
21614
  :attributes => attributes.nil? ? nil : attributes,
20600
21615
  :destination => destination.nil? ? nil : destination.to_hash,
21616
+ :billing_address => billing_address.nil? ? nil : billing_address.to_hash,
20601
21617
  :ip => ip,
20602
- :options => options.nil? ? nil : options.map { |o| o.value }
21618
+ :options => options.nil? ? nil : options.map { |o| o.value },
21619
+ :redirect_urls => redirect_urls.nil? ? nil : redirect_urls.to_hash
21620
+ }
21621
+ end
21622
+
21623
+ end
21624
+
21625
+ class Discount < Promotion
21626
+
21627
+ attr_reader :id, :code, :label, :price, :attributes
21628
+
21629
+ def initialize(incoming={})
21630
+ super(:discriminator => Promotion::Types::DISCOUNT)
21631
+ opts = HttpClient::Helper.symbolize_keys(incoming)
21632
+ HttpClient::Preconditions.require_keys(opts, [:id, :label, :price], 'Discount')
21633
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
21634
+ @code = (x = opts.delete(:code); x.nil? ? nil : HttpClient::Preconditions.assert_class('code', x, String))
21635
+ @label = HttpClient::Preconditions.assert_class('label', opts.delete(:label), String)
21636
+ @price = (x = opts.delete(:price); x.is_a?(::Io::Flow::V0::Models::PriceWithBase) ? x : ::Io::Flow::V0::Models::PriceWithBase.new(x))
21637
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
21638
+ end
21639
+
21640
+ def to_json
21641
+ JSON.dump(to_hash)
21642
+ end
21643
+
21644
+ def copy(incoming={})
21645
+ Discount.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
21646
+ end
21647
+
21648
+ def subtype_to_hash
21649
+ {
21650
+ :id => id,
21651
+ :code => code,
21652
+ :label => label,
21653
+ :price => price.to_hash,
21654
+ :attributes => attributes.nil? ? nil : attributes
20603
21655
  }
20604
21656
  end
20605
21657
 
@@ -23173,7 +24225,7 @@ module Io
23173
24225
  # items going to a specific destination country
23174
24226
  class HarmonizedLandedCostForm
23175
24227
 
23176
- attr_reader :address, :item_numbers, :source_address, :order_number, :line_items, :tax_registration_id
24228
+ attr_reader :address, :item_numbers, :source_address, :order_number, :line_items, :tax_registration_id, :billing_address
23177
24229
 
23178
24230
  def initialize(incoming={})
23179
24231
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -23184,6 +24236,7 @@ module Io
23184
24236
  @order_number = (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String))
23185
24237
  @line_items = (x = opts.delete(:line_items); x.nil? ? nil : HttpClient::Preconditions.assert_class('line_items', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItem) ? x : ::Io::Flow::V0::Models::LineItem.new(x)) })
23186
24238
  @tax_registration_id = (x = opts.delete(:tax_registration_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('tax_registration_id', x, String))
24239
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
23187
24240
  end
23188
24241
 
23189
24242
  def to_json
@@ -23201,7 +24254,8 @@ module Io
23201
24254
  :source_address => source_address.nil? ? nil : source_address.to_hash,
23202
24255
  :order_number => order_number,
23203
24256
  :line_items => line_items.nil? ? nil : line_items.map { |o| o.to_hash },
23204
- :tax_registration_id => tax_registration_id
24257
+ :tax_registration_id => tax_registration_id,
24258
+ :billing_address => billing_address.nil? ? nil : billing_address.to_hash
23205
24259
  }
23206
24260
  end
23207
24261
 
@@ -23211,7 +24265,7 @@ module Io
23211
24265
  # implementation supports multiple countries of origin.
23212
24266
  class HarmonizedLandedCostItem
23213
24267
 
23214
- attr_reader :item, :duty, :tax
24268
+ attr_reader :item, :duty, :tax, :tax_applicability
23215
24269
 
23216
24270
  def initialize(incoming={})
23217
24271
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -23219,6 +24273,7 @@ module Io
23219
24273
  @item = (x = opts.delete(:item); x.is_a?(::Io::Flow::V0::Models::HarmonizedItemReference) ? x : ::Io::Flow::V0::Models::HarmonizedItemReference.new(x))
23220
24274
  @duty = (x = opts.delete(:duty); x.is_a?(::Io::Flow::V0::Models::Duty) ? x : ::Io::Flow::V0::Models::Duty.new(x))
23221
24275
  @tax = (x = opts.delete(:tax); x.is_a?(::Io::Flow::V0::Models::Tax) ? x : ::Io::Flow::V0::Models::Tax.new(x))
24276
+ @tax_applicability = (x = opts.delete(:tax_applicability); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxApplicability) ? x : ::Io::Flow::V0::Models::TaxApplicability.apply(x)))
23222
24277
  end
23223
24278
 
23224
24279
  def to_json
@@ -23233,7 +24288,8 @@ module Io
23233
24288
  {
23234
24289
  :item => item.to_hash,
23235
24290
  :duty => duty.to_hash,
23236
- :tax => tax.to_hash
24291
+ :tax => tax.to_hash,
24292
+ :tax_applicability => tax_applicability.nil? ? nil : tax_applicability.value
23237
24293
  }
23238
24294
  end
23239
24295
 
@@ -24114,7 +25170,7 @@ module Io
24114
25170
  @order_number = HttpClient::Preconditions.assert_class('order_number', opts.delete(:order_number), String)
24115
25171
  @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
24116
25172
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
24117
- @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
25173
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
24118
25174
  @key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
24119
25175
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
24120
25176
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
@@ -24144,6 +25200,141 @@ module Io
24144
25200
 
24145
25201
  end
24146
25202
 
25203
+ class InputForm
25204
+
25205
+ attr_reader :values
25206
+
25207
+ def initialize(incoming={})
25208
+ opts = HttpClient::Helper.symbolize_keys(incoming)
25209
+ @values = (x = opts.delete(:values); x.nil? ? nil : HttpClient::Preconditions.assert_class('values', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('values', d[1], String); h })
25210
+ end
25211
+
25212
+ def to_json
25213
+ JSON.dump(to_hash)
25214
+ end
25215
+
25216
+ def copy(incoming={})
25217
+ InputForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
25218
+ end
25219
+
25220
+ def to_hash
25221
+ {
25222
+ :values => values.nil? ? nil : values
25223
+ }
25224
+ end
25225
+
25226
+ end
25227
+
25228
+ class InputFormSpecification
25229
+
25230
+ attr_reader :inputs, :limitations
25231
+
25232
+ def initialize(incoming={})
25233
+ opts = HttpClient::Helper.symbolize_keys(incoming)
25234
+ @inputs = (x = opts.delete(:inputs); x.nil? ? nil : HttpClient::Preconditions.assert_class('inputs', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::InputSpecification) ? x : ::Io::Flow::V0::Models::InputSpecification.new(x)) })
25235
+ @limitations = (x = opts.delete(:limitations); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::InputSpecificationLimitations) ? x : ::Io::Flow::V0::Models::InputSpecificationLimitations.new(x)))
25236
+ end
25237
+
25238
+ def to_json
25239
+ JSON.dump(to_hash)
25240
+ end
25241
+
25242
+ def copy(incoming={})
25243
+ InputFormSpecification.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
25244
+ end
25245
+
25246
+ def to_hash
25247
+ {
25248
+ :inputs => inputs.nil? ? nil : inputs.map { |o| o.to_hash },
25249
+ :limitations => limitations.nil? ? nil : limitations.to_hash
25250
+ }
25251
+ end
25252
+
25253
+ end
25254
+
25255
+ class InputSpecification
25256
+
25257
+ attr_reader :type, :name, :display_text
25258
+
25259
+ def initialize(incoming={})
25260
+ opts = HttpClient::Helper.symbolize_keys(incoming)
25261
+ HttpClient::Preconditions.require_keys(opts, [:type, :name], 'InputSpecification')
25262
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::InputSpecificationType) ? x : ::Io::Flow::V0::Models::InputSpecificationType.apply(x))
25263
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
25264
+ @display_text = (x = opts.delete(:display_text); x.nil? ? nil : HttpClient::Preconditions.assert_class('display_text', x, String))
25265
+ end
25266
+
25267
+ def to_json
25268
+ JSON.dump(to_hash)
25269
+ end
25270
+
25271
+ def copy(incoming={})
25272
+ InputSpecification.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
25273
+ end
25274
+
25275
+ def to_hash
25276
+ {
25277
+ :type => type.value,
25278
+ :name => name,
25279
+ :display_text => display_text
25280
+ }
25281
+ end
25282
+
25283
+ end
25284
+
25285
+ # Represents the maximum number of accepted inputs
25286
+ class InputSpecificationLimitationMax < InputSpecificationLimitation
25287
+
25288
+ attr_reader :max
25289
+
25290
+ def initialize(incoming={})
25291
+ super(:discriminator => InputSpecificationLimitation::Types::INPUT_SPECIFICATION_LIMITATION_MAX)
25292
+ opts = HttpClient::Helper.symbolize_keys(incoming)
25293
+ HttpClient::Preconditions.require_keys(opts, [:max], 'InputSpecificationLimitationMax')
25294
+ @max = HttpClient::Preconditions.assert_class('max', opts.delete(:max), Integer)
25295
+ end
25296
+
25297
+ def to_json
25298
+ JSON.dump(to_hash)
25299
+ end
25300
+
25301
+ def copy(incoming={})
25302
+ InputSpecificationLimitationMax.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
25303
+ end
25304
+
25305
+ def subtype_to_hash
25306
+ {
25307
+ :max => max
25308
+ }
25309
+ end
25310
+
25311
+ end
25312
+
25313
+ class InputSpecificationLimitations
25314
+
25315
+ attr_reader :limitations
25316
+
25317
+ def initialize(incoming={})
25318
+ opts = HttpClient::Helper.symbolize_keys(incoming)
25319
+ @limitations = (x = opts.delete(:limitations); x.nil? ? nil : HttpClient::Preconditions.assert_class('limitations', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::InputSpecificationLimitation) ? x : ::Io::Flow::V0::Models::InputSpecificationLimitation.from_json(x)) })
25320
+ end
25321
+
25322
+ def to_json
25323
+ JSON.dump(to_hash)
25324
+ end
25325
+
25326
+ def copy(incoming={})
25327
+ InputSpecificationLimitations.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
25328
+ end
25329
+
25330
+ def to_hash
25331
+ {
25332
+ :limitations => limitations.nil? ? nil : limitations.map { |o| o.to_hash }
25333
+ }
25334
+ end
25335
+
25336
+ end
25337
+
24147
25338
  class InstallmentPlanPaymentError
24148
25339
 
24149
25340
  attr_reader :code, :messages, :codes
@@ -24995,6 +26186,31 @@ module Io
24995
26186
 
24996
26187
  end
24997
26188
 
26189
+ class ItemAttributesPatchForm
26190
+
26191
+ attr_reader :attributes
26192
+
26193
+ def initialize(incoming={})
26194
+ opts = HttpClient::Helper.symbolize_keys(incoming)
26195
+ @attributes = HttpClient::Preconditions.assert_class('attributes', (x = opts.delete(:attributes); x.nil? ? {} : x), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
26196
+ end
26197
+
26198
+ def to_json
26199
+ JSON.dump(to_hash)
26200
+ end
26201
+
26202
+ def copy(incoming={})
26203
+ ItemAttributesPatchForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
26204
+ end
26205
+
26206
+ def to_hash
26207
+ {
26208
+ :attributes => attributes
26209
+ }
26210
+ end
26211
+
26212
+ end
26213
+
24998
26214
  # The item form defines the data required to create an item.
24999
26215
  class ItemForm
25000
26216
 
@@ -27123,6 +28339,37 @@ module Io
27123
28339
 
27124
28340
  end
27125
28341
 
28342
+ class MembershipDeletedV2 < Event
28343
+
28344
+ attr_reader :event_id, :timestamp, :membership
28345
+
28346
+ def initialize(incoming={})
28347
+ super(:discriminator => Event::Types::MEMBERSHIP_DELETED_V2)
28348
+ opts = HttpClient::Helper.symbolize_keys(incoming)
28349
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :membership], 'MembershipDeletedV2')
28350
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
28351
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
28352
+ @membership = (x = opts.delete(:membership); x.is_a?(::Io::Flow::V0::Models::Membership) ? x : ::Io::Flow::V0::Models::Membership.new(x))
28353
+ end
28354
+
28355
+ def to_json
28356
+ JSON.dump(to_hash)
28357
+ end
28358
+
28359
+ def copy(incoming={})
28360
+ MembershipDeletedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
28361
+ end
28362
+
28363
+ def subtype_to_hash
28364
+ {
28365
+ :event_id => event_id,
28366
+ :timestamp => timestamp,
28367
+ :membership => membership.to_hash
28368
+ }
28369
+ end
28370
+
28371
+ end
28372
+
27126
28373
  # Top level resource to create a membership.
27127
28374
  class MembershipForm
27128
28375
 
@@ -27217,6 +28464,37 @@ module Io
27217
28464
 
27218
28465
  end
27219
28466
 
28467
+ class MembershipUpsertedV2 < Event
28468
+
28469
+ attr_reader :event_id, :timestamp, :membership
28470
+
28471
+ def initialize(incoming={})
28472
+ super(:discriminator => Event::Types::MEMBERSHIP_UPSERTED_V2)
28473
+ opts = HttpClient::Helper.symbolize_keys(incoming)
28474
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :membership], 'MembershipUpsertedV2')
28475
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
28476
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
28477
+ @membership = (x = opts.delete(:membership); x.is_a?(::Io::Flow::V0::Models::Membership) ? x : ::Io::Flow::V0::Models::Membership.new(x))
28478
+ end
28479
+
28480
+ def to_json
28481
+ JSON.dump(to_hash)
28482
+ end
28483
+
28484
+ def copy(incoming={})
28485
+ MembershipUpsertedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
28486
+ end
28487
+
28488
+ def subtype_to_hash
28489
+ {
28490
+ :event_id => event_id,
28491
+ :timestamp => timestamp,
28492
+ :membership => membership.to_hash
28493
+ }
28494
+ end
28495
+
28496
+ end
28497
+
27220
28498
  class MembershipVersion
27221
28499
 
27222
28500
  attr_reader :id, :timestamp, :type, :membership
@@ -27256,7 +28534,7 @@ module Io
27256
28534
  # you can capture up to the amount of the authorization
27257
28535
  class MerchantOfRecordAuthorizationForm < AuthorizationForm
27258
28536
 
27259
- attr_reader :token, :order_number, :amount, :currency, :key, :cvv, :attributes, :ip, :options
28537
+ attr_reader :token, :order_number, :amount, :currency, :key, :cvv, :attributes, :ip, :options, :redirect_urls
27260
28538
 
27261
28539
  def initialize(incoming={})
27262
28540
  super(:discriminator => AuthorizationForm::Types::MERCHANT_OF_RECORD_AUTHORIZATION_FORM)
@@ -27271,6 +28549,7 @@ module Io
27271
28549
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
27272
28550
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
27273
28551
  @options = (x = opts.delete(:options); x.nil? ? nil : HttpClient::Preconditions.assert_class('options', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AuthorizationOption) ? x : ::Io::Flow::V0::Models::AuthorizationOption.apply(x)) })
28552
+ @redirect_urls = (x = opts.delete(:redirect_urls); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PostPaymentRedirectUrls) ? x : ::Io::Flow::V0::Models::PostPaymentRedirectUrls.new(x)))
27274
28553
  end
27275
28554
 
27276
28555
  def to_json
@@ -27291,7 +28570,8 @@ module Io
27291
28570
  :cvv => cvv,
27292
28571
  :attributes => attributes.nil? ? nil : attributes,
27293
28572
  :ip => ip,
27294
- :options => options.nil? ? nil : options.map { |o| o.value }
28573
+ :options => options.nil? ? nil : options.map { |o| o.value },
28574
+ :redirect_urls => redirect_urls.nil? ? nil : redirect_urls.to_hash
27295
28575
  }
27296
28576
  end
27297
28577
 
@@ -27432,6 +28712,68 @@ module Io
27432
28712
 
27433
28713
  end
27434
28714
 
28715
+ class MoneyWithBase
28716
+
28717
+ attr_reader :currency, :amount, :base
28718
+
28719
+ def initialize(incoming={})
28720
+ opts = HttpClient::Helper.symbolize_keys(incoming)
28721
+ HttpClient::Preconditions.require_keys(opts, [:currency, :amount, :base], 'MoneyWithBase')
28722
+ @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
28723
+ @amount = HttpClient::Preconditions.assert_class('amount', opts.delete(:amount), Numeric)
28724
+ @base = (x = opts.delete(:base); x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x))
28725
+ end
28726
+
28727
+ def to_json
28728
+ JSON.dump(to_hash)
28729
+ end
28730
+
28731
+ def copy(incoming={})
28732
+ MoneyWithBase.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
28733
+ end
28734
+
28735
+ def to_hash
28736
+ {
28737
+ :currency => currency,
28738
+ :amount => amount,
28739
+ :base => base.to_hash
28740
+ }
28741
+ end
28742
+
28743
+ end
28744
+
28745
+ # Used to migrate older models to have a base value, without breaking
28746
+ # compatibility
28747
+ class MoneyWithOptionalBase
28748
+
28749
+ attr_reader :currency, :amount, :base
28750
+
28751
+ def initialize(incoming={})
28752
+ opts = HttpClient::Helper.symbolize_keys(incoming)
28753
+ HttpClient::Preconditions.require_keys(opts, [:currency, :amount], 'MoneyWithOptionalBase')
28754
+ @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
28755
+ @amount = HttpClient::Preconditions.assert_class('amount', opts.delete(:amount), Numeric)
28756
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
28757
+ end
28758
+
28759
+ def to_json
28760
+ JSON.dump(to_hash)
28761
+ end
28762
+
28763
+ def copy(incoming={})
28764
+ MoneyWithOptionalBase.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
28765
+ end
28766
+
28767
+ def to_hash
28768
+ {
28769
+ :currency => currency,
28770
+ :amount => amount,
28771
+ :base => base.nil? ? nil : base.to_hash
28772
+ }
28773
+ end
28774
+
28775
+ end
28776
+
27435
28777
  class Name
27436
28778
 
27437
28779
  attr_reader :first, :last
@@ -27677,7 +29019,7 @@ module Io
27677
29019
 
27678
29020
  class OnlineAuthorization < Authorization
27679
29021
 
27680
- attr_reader :id, :key, :method, :merchant_of_record, :details, :payment, :amount, :currency, :requested, :customer, :attributes, :destination, :billing_address, :order, :ip, :result, :created_at, :expires_at
29022
+ attr_reader :id, :key, :method, :merchant_of_record, :details, :payment, :amount, :currency, :requested, :customer, :attributes, :destination, :billing_address, :order, :ip, :result, :created_at, :expires_at, :base
27681
29023
 
27682
29024
  def initialize(incoming={})
27683
29025
  super(:discriminator => Authorization::Types::ONLINE_AUTHORIZATION)
@@ -27695,12 +29037,13 @@ module Io
27695
29037
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
27696
29038
  @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
27697
29039
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
27698
- @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
29040
+ @billing_address = (x = opts.delete(:billing_address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
27699
29041
  @order = (x = opts.delete(:order); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationOrderReference) ? x : ::Io::Flow::V0::Models::AuthorizationOrderReference.new(x)))
27700
29042
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
27701
29043
  @result = (x = opts.delete(:result); x.is_a?(::Io::Flow::V0::Models::AuthorizationResult) ? x : ::Io::Flow::V0::Models::AuthorizationResult.new(x))
27702
29044
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
27703
29045
  @expires_at = (x = opts.delete(:expires_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
29046
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
27704
29047
  end
27705
29048
 
27706
29049
  def to_json
@@ -27730,41 +29073,8 @@ module Io
27730
29073
  :ip => ip,
27731
29074
  :result => result.to_hash,
27732
29075
  :created_at => created_at,
27733
- :expires_at => expires_at
27734
- }
27735
- end
27736
-
27737
- end
27738
-
27739
- # Represents an authorization for a card payment method
27740
- class OnlineAuthorizationUpserted < Event
27741
-
27742
- attr_reader :event_id, :timestamp, :organization, :authorization
27743
-
27744
- def initialize(incoming={})
27745
- super(:discriminator => Event::Types::ONLINE_AUTHORIZATION_UPSERTED)
27746
- opts = HttpClient::Helper.symbolize_keys(incoming)
27747
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :authorization], 'OnlineAuthorizationUpserted')
27748
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
27749
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
27750
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
27751
- @authorization = (x = opts.delete(:authorization); x.is_a?(::Io::Flow::V0::Models::OnlineAuthorization) ? x : ::Io::Flow::V0::Models::OnlineAuthorization.new(x))
27752
- end
27753
-
27754
- def to_json
27755
- JSON.dump(to_hash)
27756
- end
27757
-
27758
- def copy(incoming={})
27759
- OnlineAuthorizationUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
27760
- end
27761
-
27762
- def subtype_to_hash
27763
- {
27764
- :event_id => event_id,
27765
- :timestamp => timestamp,
27766
- :organization => organization,
27767
- :authorization => authorization.to_hash
29076
+ :expires_at => expires_at,
29077
+ :base => base.nil? ? nil : base.to_hash
27768
29078
  }
27769
29079
  end
27770
29080
 
@@ -27884,7 +29194,7 @@ module Io
27884
29194
  HttpClient::Preconditions.require_keys(opts, [:id, :number, :customer, :delivered_duty, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes], 'Order')
27885
29195
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
27886
29196
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
27887
- @merchant_of_record = (x = (x = opts.delete(:merchant_of_record); x.nil? ? "flow" : x); x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x))
29197
+ @merchant_of_record = (x = opts.delete(:merchant_of_record); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x)))
27888
29198
  @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ExpandableExperience) ? x : ::Io::Flow::V0::Models::ExpandableExperience.from_json(x)))
27889
29199
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
27890
29200
  @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x))
@@ -27918,7 +29228,7 @@ module Io
27918
29228
  {
27919
29229
  :id => id,
27920
29230
  :number => number,
27921
- :merchant_of_record => merchant_of_record.value,
29231
+ :merchant_of_record => merchant_of_record.nil? ? nil : merchant_of_record.value,
27922
29232
  :experience => experience.nil? ? nil : experience.to_hash,
27923
29233
  :customer => customer.to_hash,
27924
29234
  :delivered_duty => delivered_duty.value,
@@ -28711,7 +30021,7 @@ module Io
28711
30021
  # type of the payment can be used to further lookup transaction level detail
28712
30022
  class OrderPayment
28713
30023
 
28714
- attr_reader :id, :type, :merchant_of_record, :reference, :description, :total, :address
30024
+ attr_reader :id, :type, :merchant_of_record, :reference, :description, :total, :address, :date, :attributes
28715
30025
 
28716
30026
  def initialize(incoming={})
28717
30027
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -28722,7 +30032,9 @@ module Io
28722
30032
  @reference = HttpClient::Preconditions.assert_class('reference', opts.delete(:reference), String)
28723
30033
  @description = HttpClient::Preconditions.assert_class('description', opts.delete(:description), String)
28724
30034
  @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::PriceWithBase) ? x : ::Io::Flow::V0::Models::PriceWithBase.new(x))
28725
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
30035
+ @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
30036
+ @date = (x = opts.delete(:date); x.nil? ? nil : HttpClient::Preconditions.assert_class('date', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
30037
+ @attributes = HttpClient::Preconditions.assert_class('attributes', (x = opts.delete(:attributes); x.nil? ? {} : x), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
28726
30038
  end
28727
30039
 
28728
30040
  def to_json
@@ -28741,7 +30053,9 @@ module Io
28741
30053
  :reference => reference,
28742
30054
  :description => description,
28743
30055
  :total => total.to_hash,
28744
- :address => address.nil? ? nil : address.to_hash
30056
+ :address => address.nil? ? nil : address.to_hash,
30057
+ :date => date,
30058
+ :attributes => attributes
28745
30059
  }
28746
30060
  end
28747
30061
 
@@ -29009,7 +30323,7 @@ module Io
29009
30323
  @lines = (x = opts.delete(:lines); x.nil? ? nil : HttpClient::Preconditions.assert_class('lines', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Line) ? x : ::Io::Flow::V0::Models::Line.new(x)) })
29010
30324
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
29011
30325
  @geo = (x = opts.delete(:geo); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderGeo) ? x : ::Io::Flow::V0::Models::OrderGeo.new(x)))
29012
- @merchant_of_record = (x = (x = opts.delete(:merchant_of_record); x.nil? ? "flow" : x); x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x))
30326
+ @merchant_of_record = (x = opts.delete(:merchant_of_record); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x)))
29013
30327
  @tax_registration = (x = opts.delete(:tax_registration); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxRegistration) ? x : ::Io::Flow::V0::Models::TaxRegistration.new(x)))
29014
30328
  end
29015
30329
 
@@ -29047,7 +30361,7 @@ module Io
29047
30361
  :lines => lines.nil? ? nil : lines.map { |o| o.to_hash },
29048
30362
  :attributes => attributes.nil? ? nil : attributes,
29049
30363
  :geo => geo.nil? ? nil : geo.to_hash,
29050
- :merchant_of_record => merchant_of_record.value,
30364
+ :merchant_of_record => merchant_of_record.nil? ? nil : merchant_of_record.value,
29051
30365
  :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash
29052
30366
  }
29053
30367
  end
@@ -29401,6 +30715,37 @@ module Io
29401
30715
 
29402
30716
  end
29403
30717
 
30718
+ class OrganizationDeletedV2 < Event
30719
+
30720
+ attr_reader :event_id, :timestamp, :organization
30721
+
30722
+ def initialize(incoming={})
30723
+ super(:discriminator => Event::Types::ORGANIZATION_DELETED_V2)
30724
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30725
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization], 'OrganizationDeletedV2')
30726
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
30727
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
30728
+ @organization = (x = opts.delete(:organization); x.is_a?(::Io::Flow::V0::Models::Organization) ? x : ::Io::Flow::V0::Models::Organization.new(x))
30729
+ end
30730
+
30731
+ def to_json
30732
+ JSON.dump(to_hash)
30733
+ end
30734
+
30735
+ def copy(incoming={})
30736
+ OrganizationDeletedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30737
+ end
30738
+
30739
+ def subtype_to_hash
30740
+ {
30741
+ :event_id => event_id,
30742
+ :timestamp => timestamp,
30743
+ :organization => organization.to_hash
30744
+ }
30745
+ end
30746
+
30747
+ end
30748
+
29404
30749
  # Either id or name is required.
29405
30750
  class OrganizationForm
29406
30751
 
@@ -29700,6 +31045,100 @@ module Io
29700
31045
 
29701
31046
  end
29702
31047
 
31048
+ # A short identifier for an organization that is used to setup account IDs,
31049
+ # invoice Prefixes, etc.
31050
+ class OrganizationShortId
31051
+
31052
+ attr_reader :id, :organization, :short_id
31053
+
31054
+ def initialize(incoming={})
31055
+ opts = HttpClient::Helper.symbolize_keys(incoming)
31056
+ HttpClient::Preconditions.require_keys(opts, [:id, :organization, :short_id], 'OrganizationShortId')
31057
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
31058
+ @organization = (x = opts.delete(:organization); x.is_a?(::Io::Flow::V0::Models::OrganizationReference) ? x : ::Io::Flow::V0::Models::OrganizationReference.new(x))
31059
+ @short_id = HttpClient::Preconditions.assert_class('short_id', opts.delete(:short_id), String)
31060
+ end
31061
+
31062
+ def to_json
31063
+ JSON.dump(to_hash)
31064
+ end
31065
+
31066
+ def copy(incoming={})
31067
+ OrganizationShortId.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
31068
+ end
31069
+
31070
+ def to_hash
31071
+ {
31072
+ :id => id,
31073
+ :organization => organization.to_hash,
31074
+ :short_id => short_id
31075
+ }
31076
+ end
31077
+
31078
+ end
31079
+
31080
+ class OrganizationShortIdDeleted < Event
31081
+
31082
+ attr_reader :event_id, :timestamp, :organization_short_id
31083
+
31084
+ def initialize(incoming={})
31085
+ super(:discriminator => Event::Types::ORGANIZATION_SHORT_ID_DELETED)
31086
+ opts = HttpClient::Helper.symbolize_keys(incoming)
31087
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization_short_id], 'OrganizationShortIdDeleted')
31088
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
31089
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
31090
+ @organization_short_id = (x = opts.delete(:organization_short_id); x.is_a?(::Io::Flow::V0::Models::OrganizationShortId) ? x : ::Io::Flow::V0::Models::OrganizationShortId.new(x))
31091
+ end
31092
+
31093
+ def to_json
31094
+ JSON.dump(to_hash)
31095
+ end
31096
+
31097
+ def copy(incoming={})
31098
+ OrganizationShortIdDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
31099
+ end
31100
+
31101
+ def subtype_to_hash
31102
+ {
31103
+ :event_id => event_id,
31104
+ :timestamp => timestamp,
31105
+ :organization_short_id => organization_short_id.to_hash
31106
+ }
31107
+ end
31108
+
31109
+ end
31110
+
31111
+ class OrganizationShortIdUpserted < Event
31112
+
31113
+ attr_reader :event_id, :timestamp, :organization_short_id
31114
+
31115
+ def initialize(incoming={})
31116
+ super(:discriminator => Event::Types::ORGANIZATION_SHORT_ID_UPSERTED)
31117
+ opts = HttpClient::Helper.symbolize_keys(incoming)
31118
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization_short_id], 'OrganizationShortIdUpserted')
31119
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
31120
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
31121
+ @organization_short_id = (x = opts.delete(:organization_short_id); x.is_a?(::Io::Flow::V0::Models::OrganizationShortId) ? x : ::Io::Flow::V0::Models::OrganizationShortId.new(x))
31122
+ end
31123
+
31124
+ def to_json
31125
+ JSON.dump(to_hash)
31126
+ end
31127
+
31128
+ def copy(incoming={})
31129
+ OrganizationShortIdUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
31130
+ end
31131
+
31132
+ def subtype_to_hash
31133
+ {
31134
+ :event_id => event_id,
31135
+ :timestamp => timestamp,
31136
+ :organization_short_id => organization_short_id.to_hash
31137
+ }
31138
+ end
31139
+
31140
+ end
31141
+
29703
31142
  class OrganizationSummary
29704
31143
 
29705
31144
  attr_reader :id, :name
@@ -29881,6 +31320,37 @@ module Io
29881
31320
 
29882
31321
  end
29883
31322
 
31323
+ class OrganizationUpsertedV2 < Event
31324
+
31325
+ attr_reader :event_id, :timestamp, :organization
31326
+
31327
+ def initialize(incoming={})
31328
+ super(:discriminator => Event::Types::ORGANIZATION_UPSERTED_V2)
31329
+ opts = HttpClient::Helper.symbolize_keys(incoming)
31330
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization], 'OrganizationUpsertedV2')
31331
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
31332
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
31333
+ @organization = (x = opts.delete(:organization); x.is_a?(::Io::Flow::V0::Models::Organization) ? x : ::Io::Flow::V0::Models::Organization.new(x))
31334
+ end
31335
+
31336
+ def to_json
31337
+ JSON.dump(to_hash)
31338
+ end
31339
+
31340
+ def copy(incoming={})
31341
+ OrganizationUpsertedV2.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
31342
+ end
31343
+
31344
+ def subtype_to_hash
31345
+ {
31346
+ :event_id => event_id,
31347
+ :timestamp => timestamp,
31348
+ :organization => organization.to_hash
31349
+ }
31350
+ end
31351
+
31352
+ end
31353
+
29884
31354
  class OrganizationVersion
29885
31355
 
29886
31356
  attr_reader :id, :timestamp, :type, :organization
@@ -30984,7 +32454,7 @@ module Io
30984
32454
  HttpClient::Preconditions.require_keys(opts, [:id, :items, :options], 'PhysicalDelivery')
30985
32455
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
30986
32456
  @center = (x = opts.delete(:center); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::CenterSummary) ? x : ::Io::Flow::V0::Models::CenterSummary.new(x)))
30987
- @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItemForm) ? x : ::Io::Flow::V0::Models::LineItemForm.new(x)) }
32457
+ @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveryItem) ? x : ::Io::Flow::V0::Models::DeliveryItem.new(x)) }
30988
32458
  @options = HttpClient::Preconditions.assert_class('options', opts.delete(:options), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveryOption) ? x : ::Io::Flow::V0::Models::DeliveryOption.new(x)) }
30989
32459
  end
30990
32460
 
@@ -32446,7 +33916,7 @@ module Io
32446
33916
  # execute the refund).
32447
33917
  class Refund
32448
33918
 
32449
- attr_reader :id, :key, :authorization, :amount, :currency, :requested, :captures, :created_at, :attributes, :status
33919
+ attr_reader :id, :key, :authorization, :amount, :currency, :requested, :captures, :created_at, :attributes, :status, :base
32450
33920
 
32451
33921
  def initialize(incoming={})
32452
33922
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -32461,6 +33931,7 @@ module Io
32461
33931
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
32462
33932
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
32463
33933
  @status = (x = (x = opts.delete(:status); x.nil? ? "succeeded" : x); x.is_a?(::Io::Flow::V0::Models::RefundStatus) ? x : ::Io::Flow::V0::Models::RefundStatus.apply(x))
33934
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
32464
33935
  end
32465
33936
 
32466
33937
  def to_json
@@ -32482,7 +33953,8 @@ module Io
32482
33953
  :captures => captures.map { |o| o.to_hash },
32483
33954
  :created_at => created_at,
32484
33955
  :attributes => attributes.nil? ? nil : attributes,
32485
- :status => status.value
33956
+ :status => status.value,
33957
+ :base => base.nil? ? nil : base.to_hash
32486
33958
  }
32487
33959
  end
32488
33960
 
@@ -32859,53 +34331,6 @@ module Io
32859
34331
 
32860
34332
  end
32861
34333
 
32862
- class RefundUpserted < Event
32863
-
32864
- attr_reader :event_id, :timestamp, :organization, :key, :authorization_key, :amount, :currency, :captures, :created_at, :order_number, :rma_key
32865
-
32866
- def initialize(incoming={})
32867
- super(:discriminator => Event::Types::REFUND_UPSERTED)
32868
- opts = HttpClient::Helper.symbolize_keys(incoming)
32869
- HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :key, :authorization_key, :amount, :currency, :captures, :created_at], 'RefundUpserted')
32870
- @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
32871
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
32872
- @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
32873
- @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
32874
- @authorization_key = HttpClient::Preconditions.assert_class('authorization_key', opts.delete(:authorization_key), String)
32875
- @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
32876
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
32877
- @captures = HttpClient::Preconditions.assert_class('captures', opts.delete(:captures), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::RefundCaptureSummary) ? x : ::Io::Flow::V0::Models::RefundCaptureSummary.new(x)) }
32878
- @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
32879
- @order_number = (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String))
32880
- @rma_key = (x = opts.delete(:rma_key); x.nil? ? nil : HttpClient::Preconditions.assert_class('rma_key', x, String))
32881
- end
32882
-
32883
- def to_json
32884
- JSON.dump(to_hash)
32885
- end
32886
-
32887
- def copy(incoming={})
32888
- RefundUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
32889
- end
32890
-
32891
- def subtype_to_hash
32892
- {
32893
- :event_id => event_id,
32894
- :timestamp => timestamp,
32895
- :organization => organization,
32896
- :key => key,
32897
- :authorization_key => authorization_key,
32898
- :amount => amount,
32899
- :currency => currency,
32900
- :captures => captures.map { |o| o.to_hash },
32901
- :created_at => created_at,
32902
- :order_number => order_number,
32903
- :rma_key => rma_key
32904
- }
32905
- end
32906
-
32907
- end
32908
-
32909
34334
  class RefundUpsertedV2 < Event
32910
34335
 
32911
34336
  attr_reader :event_id, :timestamp, :organization, :id, :refund
@@ -33613,7 +35038,7 @@ module Io
33613
35038
  # A reversal is used to clear an authorization (full or partial).
33614
35039
  class Reversal
33615
35040
 
33616
- attr_reader :id, :key, :authorization, :status, :amount, :currency, :requested, :created_at, :attributes
35041
+ attr_reader :id, :key, :authorization, :status, :amount, :currency, :requested, :created_at, :attributes, :base
33617
35042
 
33618
35043
  def initialize(incoming={})
33619
35044
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -33627,6 +35052,7 @@ module Io
33627
35052
  @requested = (x = opts.delete(:requested); x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x))
33628
35053
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
33629
35054
  @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
35055
+ @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
33630
35056
  end
33631
35057
 
33632
35058
  def to_json
@@ -33647,7 +35073,41 @@ module Io
33647
35073
  :currency => currency,
33648
35074
  :requested => requested.to_hash,
33649
35075
  :created_at => created_at,
33650
- :attributes => attributes
35076
+ :attributes => attributes,
35077
+ :base => base.nil? ? nil : base.to_hash
35078
+ }
35079
+ end
35080
+
35081
+ end
35082
+
35083
+ class ReversalDeleted < Event
35084
+
35085
+ attr_reader :event_id, :timestamp, :organization, :reversal
35086
+
35087
+ def initialize(incoming={})
35088
+ super(:discriminator => Event::Types::REVERSAL_DELETED)
35089
+ opts = HttpClient::Helper.symbolize_keys(incoming)
35090
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :reversal], 'ReversalDeleted')
35091
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
35092
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
35093
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
35094
+ @reversal = (x = opts.delete(:reversal); x.is_a?(::Io::Flow::V0::Models::Reversal) ? x : ::Io::Flow::V0::Models::Reversal.new(x))
35095
+ end
35096
+
35097
+ def to_json
35098
+ JSON.dump(to_hash)
35099
+ end
35100
+
35101
+ def copy(incoming={})
35102
+ ReversalDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
35103
+ end
35104
+
35105
+ def subtype_to_hash
35106
+ {
35107
+ :event_id => event_id,
35108
+ :timestamp => timestamp,
35109
+ :organization => organization,
35110
+ :reversal => reversal.to_hash
33651
35111
  }
33652
35112
  end
33653
35113
 
@@ -35130,16 +36590,17 @@ module Io
35130
36590
 
35131
36591
  class ShippingLane
35132
36592
 
35133
- attr_reader :id, :shipping_configuration, :region, :centers, :tiers
36593
+ attr_reader :id, :shipping_configuration, :region, :centers, :tiers, :query
35134
36594
 
35135
36595
  def initialize(incoming={})
35136
36596
  opts = HttpClient::Helper.symbolize_keys(incoming)
35137
- HttpClient::Preconditions.require_keys(opts, [:id, :shipping_configuration, :region, :centers, :tiers], 'ShippingLane')
36597
+ HttpClient::Preconditions.require_keys(opts, [:id, :shipping_configuration, :region, :centers, :tiers, :query], 'ShippingLane')
35138
36598
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
35139
36599
  @shipping_configuration = (x = opts.delete(:shipping_configuration); x.is_a?(::Io::Flow::V0::Models::ShippingConfigurationReference) ? x : ::Io::Flow::V0::Models::ShippingConfigurationReference.new(x))
35140
36600
  @region = HttpClient::Preconditions.assert_class('region', opts.delete(:region), String)
35141
36601
  @centers = HttpClient::Preconditions.assert_class('centers', opts.delete(:centers), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::CenterReference) ? x : ::Io::Flow::V0::Models::CenterReference.new(x)) }
35142
36602
  @tiers = HttpClient::Preconditions.assert_class('tiers', opts.delete(:tiers), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Tier) ? x : ::Io::Flow::V0::Models::Tier.new(x)) }
36603
+ @query = (x = opts.delete(:query); x.is_a?(::Io::Flow::V0::Models::Query) ? x : ::Io::Flow::V0::Models::Query.new(x))
35143
36604
  end
35144
36605
 
35145
36606
  def to_json
@@ -35156,7 +36617,39 @@ module Io
35156
36617
  :shipping_configuration => shipping_configuration.to_hash,
35157
36618
  :region => region,
35158
36619
  :centers => centers.map { |o| o.to_hash },
35159
- :tiers => tiers.map { |o| o.to_hash }
36620
+ :tiers => tiers.map { |o| o.to_hash },
36621
+ :query => query.to_hash
36622
+ }
36623
+ end
36624
+
36625
+ end
36626
+
36627
+ class ShippingLaneDeleted < Event
36628
+
36629
+ attr_reader :event_id, :timestamp, :shipping_lane
36630
+
36631
+ def initialize(incoming={})
36632
+ super(:discriminator => Event::Types::SHIPPING_LANE_DELETED)
36633
+ opts = HttpClient::Helper.symbolize_keys(incoming)
36634
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :shipping_lane], 'ShippingLaneDeleted')
36635
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
36636
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
36637
+ @shipping_lane = (x = opts.delete(:shipping_lane); x.is_a?(::Io::Flow::V0::Models::ShippingLane) ? x : ::Io::Flow::V0::Models::ShippingLane.new(x))
36638
+ end
36639
+
36640
+ def to_json
36641
+ JSON.dump(to_hash)
36642
+ end
36643
+
36644
+ def copy(incoming={})
36645
+ ShippingLaneDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
36646
+ end
36647
+
36648
+ def subtype_to_hash
36649
+ {
36650
+ :event_id => event_id,
36651
+ :timestamp => timestamp,
36652
+ :shipping_lane => shipping_lane.to_hash
35160
36653
  }
35161
36654
  end
35162
36655
 
@@ -35190,6 +36683,39 @@ module Io
35190
36683
 
35191
36684
  end
35192
36685
 
36686
+ class ShippingLaneUpserted < Event
36687
+
36688
+ attr_reader :event_id, :timestamp, :organization, :shipping_lane
36689
+
36690
+ def initialize(incoming={})
36691
+ super(:discriminator => Event::Types::SHIPPING_LANE_UPSERTED)
36692
+ opts = HttpClient::Helper.symbolize_keys(incoming)
36693
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :shipping_lane], 'ShippingLaneUpserted')
36694
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
36695
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
36696
+ @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
36697
+ @shipping_lane = (x = opts.delete(:shipping_lane); x.is_a?(::Io::Flow::V0::Models::ShippingLane) ? x : ::Io::Flow::V0::Models::ShippingLane.new(x))
36698
+ end
36699
+
36700
+ def to_json
36701
+ JSON.dump(to_hash)
36702
+ end
36703
+
36704
+ def copy(incoming={})
36705
+ ShippingLaneUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
36706
+ end
36707
+
36708
+ def subtype_to_hash
36709
+ {
36710
+ :event_id => event_id,
36711
+ :timestamp => timestamp,
36712
+ :organization => organization,
36713
+ :shipping_lane => shipping_lane.to_hash
36714
+ }
36715
+ end
36716
+
36717
+ end
36718
+
35193
36719
  class ShippingLaneVersion
35194
36720
 
35195
36721
  attr_reader :id, :timestamp, :type, :shipping_lane
@@ -35722,13 +37248,12 @@ module Io
35722
37248
  # Model to represent a delivery metafield
35723
37249
  class ShopifyOrderDeliveryMetafield
35724
37250
 
35725
- attr_reader :item_number, :quantity, :service, :window
37251
+ attr_reader :items, :service, :window
35726
37252
 
35727
37253
  def initialize(incoming={})
35728
37254
  opts = HttpClient::Helper.symbolize_keys(incoming)
35729
- HttpClient::Preconditions.require_keys(opts, [:item_number, :quantity, :service, :window], 'ShopifyOrderDeliveryMetafield')
35730
- @item_number = HttpClient::Preconditions.assert_class('item_number', opts.delete(:item_number), String)
35731
- @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
37255
+ HttpClient::Preconditions.require_keys(opts, [:items, :service, :window], 'ShopifyOrderDeliveryMetafield')
37256
+ @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ShopifyOrderDeliveryMetafieldItem) ? x : ::Io::Flow::V0::Models::ShopifyOrderDeliveryMetafieldItem.new(x)) }
35732
37257
  @service = (x = opts.delete(:service); x.is_a?(::Io::Flow::V0::Models::ServiceSummary) ? x : ::Io::Flow::V0::Models::ServiceSummary.new(x))
35733
37258
  @window = (x = opts.delete(:window); x.is_a?(::Io::Flow::V0::Models::DeliveryWindow) ? x : ::Io::Flow::V0::Models::DeliveryWindow.new(x))
35734
37259
  end
@@ -35743,8 +37268,7 @@ module Io
35743
37268
 
35744
37269
  def to_hash
35745
37270
  {
35746
- :item_number => item_number,
35747
- :quantity => quantity,
37271
+ :items => items.map { |o| o.to_hash },
35748
37272
  :service => service.to_hash,
35749
37273
  :window => window.to_hash
35750
37274
  }
@@ -35752,6 +37276,35 @@ module Io
35752
37276
 
35753
37277
  end
35754
37278
 
37279
+ # Model to represent a delivery metafield
37280
+ class ShopifyOrderDeliveryMetafieldItem
37281
+
37282
+ attr_reader :number, :quantity
37283
+
37284
+ def initialize(incoming={})
37285
+ opts = HttpClient::Helper.symbolize_keys(incoming)
37286
+ HttpClient::Preconditions.require_keys(opts, [:number, :quantity], 'ShopifyOrderDeliveryMetafieldItem')
37287
+ @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
37288
+ @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
37289
+ end
37290
+
37291
+ def to_json
37292
+ JSON.dump(to_hash)
37293
+ end
37294
+
37295
+ def copy(incoming={})
37296
+ ShopifyOrderDeliveryMetafieldItem.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37297
+ end
37298
+
37299
+ def to_hash
37300
+ {
37301
+ :number => number,
37302
+ :quantity => quantity
37303
+ }
37304
+ end
37305
+
37306
+ end
37307
+
35755
37308
  # Model to represent details available in an order metafield.
35756
37309
  class ShopifyOrderMetafieldValue
35757
37310
 
@@ -35793,6 +37346,33 @@ module Io
35793
37346
 
35794
37347
  end
35795
37348
 
37349
+ # Model to represent romanized order detail metafield
37350
+ class ShopifyOrderRomanizationMetafield
37351
+
37352
+ attr_reader :destination
37353
+
37354
+ def initialize(incoming={})
37355
+ opts = HttpClient::Helper.symbolize_keys(incoming)
37356
+ HttpClient::Preconditions.require_keys(opts, [:destination], 'ShopifyOrderRomanizationMetafield')
37357
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x))
37358
+ end
37359
+
37360
+ def to_json
37361
+ JSON.dump(to_hash)
37362
+ end
37363
+
37364
+ def copy(incoming={})
37365
+ ShopifyOrderRomanizationMetafield.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37366
+ end
37367
+
37368
+ def to_hash
37369
+ {
37370
+ :destination => destination.to_hash
37371
+ }
37372
+ end
37373
+
37374
+ end
37375
+
35796
37376
  class ShopifyPrice
35797
37377
 
35798
37378
  attr_reader :name, :amount, :cents, :currency, :label, :includes, :local
@@ -35890,6 +37470,36 @@ module Io
35890
37470
 
35891
37471
  end
35892
37472
 
37473
+ # For enabled organizations, this indicates the total number of available units
37474
+ # of inventory for customers in this experience.
37475
+ class ShopifyVariantInventoryMetafield
37476
+
37477
+ attr_reader :experience, :status
37478
+
37479
+ def initialize(incoming={})
37480
+ opts = HttpClient::Helper.symbolize_keys(incoming)
37481
+ HttpClient::Preconditions.require_keys(opts, [:experience, :status], 'ShopifyVariantInventoryMetafield')
37482
+ @experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::ExperienceReference) ? x : ::Io::Flow::V0::Models::ExperienceReference.new(x))
37483
+ @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::ShopifyVariantInventoryMetafieldStatus) ? x : ::Io::Flow::V0::Models::ShopifyVariantInventoryMetafieldStatus.apply(x))
37484
+ end
37485
+
37486
+ def to_json
37487
+ JSON.dump(to_hash)
37488
+ end
37489
+
37490
+ def copy(incoming={})
37491
+ ShopifyVariantInventoryMetafield.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37492
+ end
37493
+
37494
+ def to_hash
37495
+ {
37496
+ :experience => experience.to_hash,
37497
+ :status => status.value
37498
+ }
37499
+ end
37500
+
37501
+ end
37502
+
35893
37503
  # The shopify variant metafield defines the individual metafield values we write
35894
37504
  # into Shopify for each variant. This model was introduced to enable server side
35895
37505
  # rendering of content (e.g. the price on the product detail page). Each field
@@ -35897,17 +37507,19 @@ module Io
35897
37507
  # 'price_abc' where abc is a unique, short identifier for an experience.
35898
37508
  class ShopifyVariantPriceMetafield
35899
37509
 
35900
- attr_reader :item, :includes, :vat, :vat_name, :duty, :compare_at
37510
+ attr_reader :item, :currency, :includes, :vat, :vat_name, :duty, :compare_at, :status
35901
37511
 
35902
37512
  def initialize(incoming={})
35903
37513
  opts = HttpClient::Helper.symbolize_keys(incoming)
35904
- HttpClient::Preconditions.require_keys(opts, [:item], 'ShopifyVariantPriceMetafield')
37514
+ HttpClient::Preconditions.require_keys(opts, [:item, :currency, :status], 'ShopifyVariantPriceMetafield')
35905
37515
  @item = HttpClient::Preconditions.assert_class('item', opts.delete(:item), String)
37516
+ @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
35906
37517
  @includes = (x = opts.delete(:includes); x.nil? ? nil : HttpClient::Preconditions.assert_class('includes', x, String))
35907
37518
  @vat = (x = opts.delete(:vat); x.nil? ? nil : HttpClient::Preconditions.assert_class('vat', x, String))
35908
37519
  @vat_name = (x = opts.delete(:vat_name); x.nil? ? nil : HttpClient::Preconditions.assert_class('vat_name', x, String))
35909
37520
  @duty = (x = opts.delete(:duty); x.nil? ? nil : HttpClient::Preconditions.assert_class('duty', x, String))
35910
37521
  @compare_at = (x = opts.delete(:compare_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('compare_at', x, String))
37522
+ @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::SubcatalogItemStatus) ? x : ::Io::Flow::V0::Models::SubcatalogItemStatus.apply(x))
35911
37523
  end
35912
37524
 
35913
37525
  def to_json
@@ -35921,11 +37533,13 @@ module Io
35921
37533
  def to_hash
35922
37534
  {
35923
37535
  :item => item,
37536
+ :currency => currency,
35924
37537
  :includes => includes,
35925
37538
  :vat => vat,
35926
37539
  :vat_name => vat_name,
35927
37540
  :duty => duty,
35928
- :compare_at => compare_at
37541
+ :compare_at => compare_at,
37542
+ :status => status.value
35929
37543
  }
35930
37544
  end
35931
37545
 
@@ -37098,7 +38712,7 @@ module Io
37098
38712
  # a number for a specific country and (if valid) the associated person/company.
37099
38713
  class TaxRegistration
37100
38714
 
37101
- attr_reader :id, :key, :number, :timestamp, :result, :name, :address
38715
+ attr_reader :id, :key, :number, :timestamp, :result, :result_reason, :name, :address, :company_name
37102
38716
 
37103
38717
  def initialize(incoming={})
37104
38718
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -37108,8 +38722,10 @@ module Io
37108
38722
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
37109
38723
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
37110
38724
  @result = (x = opts.delete(:result); x.is_a?(::Io::Flow::V0::Models::TaxVerificationResult) ? x : ::Io::Flow::V0::Models::TaxVerificationResult.apply(x))
38725
+ @result_reason = (x = opts.delete(:result_reason); x.nil? ? nil : HttpClient::Preconditions.assert_class('result_reason', x, String))
37111
38726
  @name = (x = opts.delete(:name); x.nil? ? nil : HttpClient::Preconditions.assert_class('name', x, String))
37112
38727
  @address = (x = opts.delete(:address); x.nil? ? nil : HttpClient::Preconditions.assert_class('address', x, String))
38728
+ @company_name = (x = opts.delete(:company_name); x.nil? ? nil : HttpClient::Preconditions.assert_class('company_name', x, String))
37113
38729
  end
37114
38730
 
37115
38731
  def to_json
@@ -37127,8 +38743,10 @@ module Io
37127
38743
  :number => number,
37128
38744
  :timestamp => timestamp,
37129
38745
  :result => result.value,
38746
+ :result_reason => result_reason,
37130
38747
  :name => name,
37131
- :address => address
38748
+ :address => address,
38749
+ :company_name => company_name
37132
38750
  }
37133
38751
  end
37134
38752
 
@@ -37162,6 +38780,35 @@ module Io
37162
38780
 
37163
38781
  end
37164
38782
 
38783
+ # Represents the results from 3D Secure, if applied to an authorization
38784
+ class ThreeDSecure
38785
+
38786
+ attr_reader :code, :description
38787
+
38788
+ def initialize(incoming={})
38789
+ opts = HttpClient::Helper.symbolize_keys(incoming)
38790
+ HttpClient::Preconditions.require_keys(opts, [:code], 'ThreeDSecure')
38791
+ @code = (x = opts.delete(:code); x.is_a?(::Io::Flow::V0::Models::ThreeDSecureCode) ? x : ::Io::Flow::V0::Models::ThreeDSecureCode.apply(x))
38792
+ @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
38793
+ end
38794
+
38795
+ def to_json
38796
+ JSON.dump(to_hash)
38797
+ end
38798
+
38799
+ def copy(incoming={})
38800
+ ThreeDSecure.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
38801
+ end
38802
+
38803
+ def to_hash
38804
+ {
38805
+ :code => code.value,
38806
+ :description => description
38807
+ }
38808
+ end
38809
+
38810
+ end
38811
+
37165
38812
  # Service shipping tier available in this tier group. e.g. Standard tier,
37166
38813
  # Express tier, Economy tier
37167
38814
  class Tier
@@ -37170,7 +38817,7 @@ module Io
37170
38817
 
37171
38818
  def initialize(incoming={})
37172
38819
  opts = HttpClient::Helper.symbolize_keys(incoming)
37173
- HttpClient::Preconditions.require_keys(opts, [:id, :integration, :name, :rules, :services, :strategy, :visibility, :experience], 'Tier')
38820
+ HttpClient::Preconditions.require_keys(opts, [:id, :integration, :name, :rules, :services, :strategy, :visibility, :currency], 'Tier')
37174
38821
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
37175
38822
  @direction = (x = (x = opts.delete(:direction); x.nil? ? "outbound" : x); x.is_a?(::Io::Flow::V0::Models::TierDirection) ? x : ::Io::Flow::V0::Models::TierDirection.apply(x))
37176
38823
  @integration = (x = opts.delete(:integration); x.is_a?(::Io::Flow::V0::Models::ShipmentIntegrationType) ? x : ::Io::Flow::V0::Models::ShipmentIntegrationType.apply(x))
@@ -37179,10 +38826,10 @@ module Io
37179
38826
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::CarrierService) ? x : ::Io::Flow::V0::Models::CarrierService.new(x)) }
37180
38827
  @strategy = (x = opts.delete(:strategy); x.is_a?(::Io::Flow::V0::Models::TierStrategy) ? x : ::Io::Flow::V0::Models::TierStrategy.apply(x))
37181
38828
  @visibility = (x = opts.delete(:visibility); x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x))
37182
- @currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
38829
+ @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
37183
38830
  @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
37184
38831
  @display = (x = opts.delete(:display); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TierDisplay) ? x : ::Io::Flow::V0::Models::TierDisplay.new(x)))
37185
- @experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x))
38832
+ @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x)))
37186
38833
  @shipping_lane = (x = opts.delete(:shipping_lane); x.nil? ? nil : HttpClient::Preconditions.assert_class('shipping_lane', x, String))
37187
38834
  end
37188
38835
 
@@ -37207,108 +38854,13 @@ module Io
37207
38854
  :currency => currency,
37208
38855
  :description => description,
37209
38856
  :display => display.nil? ? nil : display.to_hash,
37210
- :experience => experience.to_hash,
38857
+ :experience => experience.nil? ? nil : experience.to_hash,
37211
38858
  :shipping_lane => shipping_lane
37212
38859
  }
37213
38860
  end
37214
38861
 
37215
38862
  end
37216
38863
 
37217
- # Grouping of shipping tiers by experience to provide logical default
37218
- # functionality.
37219
- class TierDefault
37220
-
37221
- attr_reader :id, :default_tier, :experience
37222
-
37223
- def initialize(incoming={})
37224
- opts = HttpClient::Helper.symbolize_keys(incoming)
37225
- HttpClient::Preconditions.require_keys(opts, [:id, :default_tier, :experience], 'TierDefault')
37226
- @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
37227
- @default_tier = (x = opts.delete(:default_tier); x.is_a?(::Io::Flow::V0::Models::TierReference) ? x : ::Io::Flow::V0::Models::TierReference.new(x))
37228
- @experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x))
37229
- end
37230
-
37231
- def to_json
37232
- JSON.dump(to_hash)
37233
- end
37234
-
37235
- def copy(incoming={})
37236
- TierDefault.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37237
- end
37238
-
37239
- def to_hash
37240
- {
37241
- :id => id,
37242
- :default_tier => default_tier.to_hash,
37243
- :experience => experience.to_hash
37244
- }
37245
- end
37246
-
37247
- end
37248
-
37249
- # Form to set the default tier for a given experience
37250
- class TierDefaultForm
37251
-
37252
- attr_reader :default_tier, :currency, :experience
37253
-
37254
- def initialize(incoming={})
37255
- opts = HttpClient::Helper.symbolize_keys(incoming)
37256
- HttpClient::Preconditions.require_keys(opts, [:default_tier, :currency, :experience], 'TierDefaultForm')
37257
- @default_tier = HttpClient::Preconditions.assert_class('default_tier', opts.delete(:default_tier), String)
37258
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
37259
- @experience = HttpClient::Preconditions.assert_class('experience', opts.delete(:experience), String)
37260
- end
37261
-
37262
- def to_json
37263
- JSON.dump(to_hash)
37264
- end
37265
-
37266
- def copy(incoming={})
37267
- TierDefaultForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37268
- end
37269
-
37270
- def to_hash
37271
- {
37272
- :default_tier => default_tier,
37273
- :currency => currency,
37274
- :experience => experience
37275
- }
37276
- end
37277
-
37278
- end
37279
-
37280
- class TierDefaultVersion
37281
-
37282
- attr_reader :id, :timestamp, :type, :tier_default
37283
-
37284
- def initialize(incoming={})
37285
- opts = HttpClient::Helper.symbolize_keys(incoming)
37286
- HttpClient::Preconditions.require_keys(opts, [:id, :timestamp, :type, :tier_default], 'TierDefaultVersion')
37287
- @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
37288
- @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
37289
- @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::ChangeType) ? x : ::Io::Flow::V0::Models::ChangeType.apply(x))
37290
- @tier_default = (x = opts.delete(:tier_default); x.is_a?(::Io::Flow::V0::Models::TierDefault) ? x : ::Io::Flow::V0::Models::TierDefault.new(x))
37291
- end
37292
-
37293
- def to_json
37294
- JSON.dump(to_hash)
37295
- end
37296
-
37297
- def copy(incoming={})
37298
- TierDefaultVersion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
37299
- end
37300
-
37301
- def to_hash
37302
- {
37303
- :id => id,
37304
- :timestamp => timestamp,
37305
- :type => type.value,
37306
- :tier_default => tier_default.to_hash
37307
- }
37308
- end
37309
-
37310
- end
37311
-
37312
38864
  class TierDeleted < Event
37313
38865
 
37314
38866
  attr_reader :event_id, :timestamp, :id
@@ -37460,7 +39012,7 @@ module Io
37460
39012
 
37461
39013
  def initialize(incoming={})
37462
39014
  opts = HttpClient::Helper.symbolize_keys(incoming)
37463
- HttpClient::Preconditions.require_keys(opts, [:currency, :integration, :name, :rules, :services, :strategy, :visibility, :experience], 'TierForm')
39015
+ HttpClient::Preconditions.require_keys(opts, [:currency, :integration, :name, :rules, :services, :strategy, :visibility], 'TierForm')
37464
39016
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
37465
39017
  @integration = (x = opts.delete(:integration); x.is_a?(::Io::Flow::V0::Models::ShipmentIntegrationType) ? x : ::Io::Flow::V0::Models::ShipmentIntegrationType.apply(x))
37466
39018
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
@@ -37471,7 +39023,7 @@ module Io
37471
39023
  @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
37472
39024
  @direction = (x = opts.delete(:direction); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TierDirection) ? x : ::Io::Flow::V0::Models::TierDirection.apply(x)))
37473
39025
  @display = (x = opts.delete(:display); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TierDisplayForm) ? x : ::Io::Flow::V0::Models::TierDisplayForm.new(x)))
37474
- @experience = HttpClient::Preconditions.assert_class('experience', opts.delete(:experience), String)
39026
+ @experience = (x = opts.delete(:experience); x.nil? ? nil : HttpClient::Preconditions.assert_class('experience', x, String))
37475
39027
  @shipping_lane = (x = opts.delete(:shipping_lane); x.nil? ? nil : HttpClient::Preconditions.assert_class('shipping_lane', x, String))
37476
39028
  end
37477
39029
 
@@ -37630,15 +39182,15 @@ module Io
37630
39182
 
37631
39183
  def initialize(incoming={})
37632
39184
  opts = HttpClient::Helper.symbolize_keys(incoming)
37633
- HttpClient::Preconditions.require_keys(opts, [:id, :experience, :integration, :name, :services, :strategy, :visibility], 'TierSummary')
39185
+ HttpClient::Preconditions.require_keys(opts, [:id, :integration, :name, :services, :strategy, :visibility, :currency], 'TierSummary')
37634
39186
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
37635
- @experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x))
39187
+ @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x)))
37636
39188
  @integration = (x = opts.delete(:integration); x.is_a?(::Io::Flow::V0::Models::ShipmentIntegrationType) ? x : ::Io::Flow::V0::Models::ShipmentIntegrationType.apply(x))
37637
39189
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
37638
39190
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| HttpClient::Preconditions.assert_class('services', v, String) }
37639
39191
  @strategy = (x = opts.delete(:strategy); x.is_a?(::Io::Flow::V0::Models::TierStrategy) ? x : ::Io::Flow::V0::Models::TierStrategy.apply(x))
37640
39192
  @visibility = (x = opts.delete(:visibility); x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x))
37641
- @currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
39193
+ @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
37642
39194
  @display = (x = opts.delete(:display); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TierDisplay) ? x : ::Io::Flow::V0::Models::TierDisplay.new(x)))
37643
39195
  end
37644
39196
 
@@ -37653,7 +39205,7 @@ module Io
37653
39205
  def to_hash
37654
39206
  {
37655
39207
  :id => id,
37656
- :experience => experience.to_hash,
39208
+ :experience => experience.nil? ? nil : experience.to_hash,
37657
39209
  :integration => integration.value,
37658
39210
  :name => name,
37659
39211
  :services => services,