flowcommerce 0.2.65 → 0.2.66

Sign up to get free protection for your applications and to get access to all the features.
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,