flowcommerce 0.0.20 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88a0ee5512e740845dac43fade0d5c3c698ee244
4
- data.tar.gz: 737a1b1f72da00a597be1df2eb8d8a7256b70424
3
+ metadata.gz: 0361ff7e2b023ac1c4ce24d153d915723009e4f6
4
+ data.tar.gz: 5d7a93e417f5dd6335bc87252a233df8d7abeec7
5
5
  SHA512:
6
- metadata.gz: 70a16853a2e7645a03036b0e01d04162930b2317cd15f4e756f05d988ff1c9ce04dc5367a96f3bf6fb91f818f0080e5538164cd095e0ef3048d680e944d61b89
7
- data.tar.gz: 49c823e90d99edaa90417af5e1149db60b5a6329060e2d1667f30d296d0898801320348b94d546348e0731ea248d0391eadb6fe349926106a3f9bdae01a62532
6
+ metadata.gz: ba54bab4d9e900b0fae51c1e5931eb7b2d3c058be7d1e57b4d09df7d1581acb18eef45897b7770cdc2af41a54259f2770e82fdcf5c1ad23b60a2d109e84472ba
7
+ data.tar.gz: 482a823869e5626e277b5c8184396e900999e43baf80ee6ca763dccc20fc7a89a608269f9e684bf3ebd3b45f2e7a541a92afb8b45a58755c0d990edbc14c873f
@@ -12,22 +12,26 @@ module FlowCommerce
12
12
  # @param base_url Alternate URL for the API
13
13
  def FlowCommerce.instance(opts={})
14
14
  base_url = opts[:base_url].to_s.strip
15
- token = ENV['FLOW_TOKEN'].to_s.strip
15
+ token = opts[:token].to_s.strip
16
16
 
17
17
  if token.empty?
18
- file = ENV['FLOW_TOKEN_FILE'].to_s.strip
19
- if file.empty?
20
- file = DEFAULT_TOKEN_FILE_LOCATION
21
- end
22
- path = File.expand_path(file)
23
-
24
- if !File.exists?(path)
25
- raise "File %s does not exist. You can specify environment variable FLOW_TOKEN or FLOW_TOKEN_FILE to explicitly provide the token" % path
26
- end
18
+ token = ENV['FLOW_TOKEN'].to_s.strip
27
19
 
28
- token = IO.read(path).strip
29
20
  if token.empty?
30
- raise "File %s did not contain an API Token" % path
21
+ file = ENV['FLOW_TOKEN_FILE'].to_s.strip
22
+ if file.empty?
23
+ file = DEFAULT_TOKEN_FILE_LOCATION
24
+ end
25
+ path = File.expand_path(file)
26
+
27
+ if !File.exists?(path)
28
+ raise "File %s does not exist. You can specify environment variable FLOW_TOKEN or FLOW_TOKEN_FILE to explicitly provide the token" % path
29
+ end
30
+
31
+ token = IO.read(path).strip
32
+ if token.empty?
33
+ raise "File %s did not contain an API Token" % path
34
+ end
31
35
  end
32
36
  end
33
37
 
@@ -1,6 +1,6 @@
1
1
  # Generated by apidoc - http://www.apidoc.me
2
- # Service version: 0.0.61
3
- # apidoc:0.11.32 http://www.apidoc.me/flow/api/0.0.61/ruby_client
2
+ # Service version: 0.0.63
3
+ # apidoc:0.11.33 http://www.apidoc.me/flow/api/0.0.63/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 = 'apidoc:0.11.32 http://www.apidoc.me/flow/api/0.0.61/ruby_client' unless defined?(Constants::USER_AGENT)
29
- VERSION = '0.0.61' unless defined?(Constants::VERSION)
28
+ USER_AGENT = 'apidoc:0.11.33 http://www.apidoc.me/flow/api/0.0.63/ruby_client' unless defined?(Constants::USER_AGENT)
29
+ VERSION = '0.0.63' unless defined?(Constants::VERSION)
30
30
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
31
31
 
32
32
  end
@@ -109,6 +109,10 @@ module Io
109
109
  @harmonized_item_duties ||= ::Io::Flow::V0::Clients::HarmonizedItemDuties.new(self)
110
110
  end
111
111
 
112
+ def harmonized_landed_costs
113
+ @harmonized_landed_costs ||= ::Io::Flow::V0::Clients::HarmonizedLandedCosts.new(self)
114
+ end
115
+
112
116
  def hs10
113
117
  @hs10 ||= ::Io::Flow::V0::Clients::Hs10.new(self)
114
118
  end
@@ -205,6 +209,10 @@ module Io
205
209
  @tier_defaults ||= ::Io::Flow::V0::Clients::TierDefaults.new(self)
206
210
  end
207
211
 
212
+ def tier_rules
213
+ @tier_rules ||= ::Io::Flow::V0::Clients::TierRules.new(self)
214
+ end
215
+
208
216
  def trackings
209
217
  @trackings ||= ::Io::Flow::V0::Clients::Trackings.new(self)
210
218
  end
@@ -229,6 +237,10 @@ module Io
229
237
  @timezones ||= ::Io::Flow::V0::Clients::Timezones.new(self)
230
238
  end
231
239
 
240
+ def addresses
241
+ @addresses ||= ::Io::Flow::V0::Clients::Addresses.new(self)
242
+ end
243
+
232
244
  def documents
233
245
  @documents ||= ::Io::Flow::V0::Clients::Documents.new(self)
234
246
  end
@@ -245,10 +257,6 @@ module Io
245
257
  @invitations ||= ::Io::Flow::V0::Clients::Invitations.new(self)
246
258
  end
247
259
 
248
- def locations
249
- @locations ||= ::Io::Flow::V0::Clients::Locations.new(self)
250
- end
251
-
252
260
  def memberships
253
261
  @memberships ||= ::Io::Flow::V0::Clients::Memberships.new(self)
254
262
  end
@@ -1167,6 +1175,25 @@ module Io
1167
1175
 
1168
1176
  end
1169
1177
 
1178
+ class HarmonizedLandedCosts
1179
+
1180
+ def initialize(client)
1181
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
1182
+ end
1183
+
1184
+ # Single operation that provides harmonization landed costs (i.e. duties and
1185
+ # taxes) for 1 or more items. This method is designed to enable a single call
1186
+ # from applications that need it (like checkout) to get all data for a
1187
+ # collection of items
1188
+ def post(organization, harmonized_landed_cost_form)
1189
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1190
+ HttpClient::Preconditions.assert_class('harmonized_landed_cost_form', harmonized_landed_cost_form, ::Io::Flow::V0::Models::HarmonizedLandedCostForm)
1191
+ r = @client.request("/#{CGI.escape(organization)}/harmonization/landed-costs").with_json(harmonized_landed_cost_form.to_json).post
1192
+ ::Io::Flow::V0::Models::HarmonizedLandedCost.new(r)
1193
+ end
1194
+
1195
+ end
1196
+
1170
1197
  class Hs10
1171
1198
 
1172
1199
  def initialize(client)
@@ -1981,21 +2008,16 @@ module Io
1981
2008
  :label_id => (x = opts.delete(:label_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('label_id', x, Array).map { |v| HttpClient::Preconditions.assert_class('label_id', v, String) }),
1982
2009
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
1983
2010
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
1984
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String),
1985
- :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
2011
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
1986
2012
  }.delete_if { |k, v| v.nil? }
1987
2013
  r = @client.request("/#{CGI.escape(organization)}/label_events").with_query(query).get
1988
2014
  r.map { |x| ::Io::Flow::V0::Models::LabelEvent.new(x) }
1989
2015
  end
1990
2016
 
1991
- def get_by_id(organization, id, incoming={})
2017
+ def get_by_id(organization, id)
1992
2018
  HttpClient::Preconditions.assert_class('organization', organization, String)
1993
2019
  HttpClient::Preconditions.assert_class('id', id, String)
1994
- opts = HttpClient::Helper.symbolize_keys(incoming)
1995
- query = {
1996
- :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
1997
- }.delete_if { |k, v| v.nil? }
1998
- r = @client.request("/#{CGI.escape(organization)}/label_events/#{CGI.escape(id)}").with_query(query).get
2020
+ r = @client.request("/#{CGI.escape(organization)}/label_events/#{CGI.escape(id)}").get
1999
2021
  ::Io::Flow::V0::Models::LabelEvent.new(r)
2000
2022
  end
2001
2023
 
@@ -2390,6 +2412,76 @@ module Io
2390
2412
 
2391
2413
  end
2392
2414
 
2415
+ class TierRules
2416
+
2417
+ def initialize(client)
2418
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
2419
+ end
2420
+
2421
+ def get(organization, tier_id, incoming={})
2422
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2423
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2424
+ opts = HttpClient::Helper.symbolize_keys(incoming)
2425
+ query = {
2426
+ :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
2427
+ :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
2428
+ :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
2429
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
2430
+ }.delete_if { |k, v| v.nil? }
2431
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules").with_query(query).get
2432
+ r.map { |x| ::Io::Flow::V0::Models::TierRule.new(x) }
2433
+ end
2434
+
2435
+ def post(organization, tier_id, tier_rule_form)
2436
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2437
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2438
+ HttpClient::Preconditions.assert_class('tier_rule_form', tier_rule_form, ::Io::Flow::V0::Models::TierRuleForm)
2439
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules").with_json(tier_rule_form.to_json).post
2440
+ ::Io::Flow::V0::Models::TierRule.new(r)
2441
+ end
2442
+
2443
+ def get_by_id(organization, tier_id, id)
2444
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2445
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2446
+ HttpClient::Preconditions.assert_class('id', id, String)
2447
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules/#{CGI.escape(id)}").get
2448
+ ::Io::Flow::V0::Models::TierRule.new(r)
2449
+ end
2450
+
2451
+ def put_by_id(organization, tier_id, id, tier_rule_form)
2452
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2453
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2454
+ HttpClient::Preconditions.assert_class('id', id, String)
2455
+ HttpClient::Preconditions.assert_class('tier_rule_form', tier_rule_form, ::Io::Flow::V0::Models::TierRuleForm)
2456
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules/#{CGI.escape(id)}").with_json(tier_rule_form.to_json).put
2457
+ ::Io::Flow::V0::Models::TierRule.new(r)
2458
+ end
2459
+
2460
+ def delete_by_id(organization, tier_id, id)
2461
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2462
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2463
+ HttpClient::Preconditions.assert_class('id', id, String)
2464
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules/#{CGI.escape(id)}").delete
2465
+ nil
2466
+ end
2467
+
2468
+ def get_versions(organization, tier_id, incoming={})
2469
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2470
+ HttpClient::Preconditions.assert_class('tier_id', tier_id, String)
2471
+ opts = HttpClient::Helper.symbolize_keys(incoming)
2472
+ query = {
2473
+ :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
2474
+ :tier_rule => (x = opts.delete(:tier_rule); x.nil? ? nil : HttpClient::Preconditions.assert_class('tier_rule', x, Array).map { |v| HttpClient::Preconditions.assert_class('tier_rule', v, String) }),
2475
+ :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
2476
+ :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
2477
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
2478
+ }.delete_if { |k, v| v.nil? }
2479
+ r = @client.request("/#{CGI.escape(organization)}/tiers/#{CGI.escape(tier_id)}/rules/versions").with_query(query).get
2480
+ r.map { |x| ::Io::Flow::V0::Models::TierRuleVersion.new(x) }
2481
+ end
2482
+
2483
+ end
2484
+
2393
2485
  class Trackings
2394
2486
 
2395
2487
  def initialize(client)
@@ -2536,6 +2628,28 @@ module Io
2536
2628
 
2537
2629
  end
2538
2630
 
2631
+ class Addresses
2632
+
2633
+ def initialize(client)
2634
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
2635
+ end
2636
+
2637
+ # Based on the provided parameters, returns a list of potential matching
2638
+ # addresses.
2639
+ def get(incoming={})
2640
+ opts = HttpClient::Helper.symbolize_keys(incoming)
2641
+ query = {
2642
+ :address => (x = opts.delete(:address); x.nil? ? nil : HttpClient::Preconditions.assert_class('address', x, String)),
2643
+ :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)),
2644
+ :latitude => (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String)),
2645
+ :longitude => (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String))
2646
+ }.delete_if { |k, v| v.nil? }
2647
+ r = @client.request("/locations").with_query(query).get
2648
+ r.map { |x| ::Io::Flow::V0::Models::Address.new(x) }
2649
+ end
2650
+
2651
+ end
2652
+
2539
2653
  class Documents
2540
2654
 
2541
2655
  def initialize(client)
@@ -2687,28 +2801,6 @@ module Io
2687
2801
 
2688
2802
  end
2689
2803
 
2690
- class Locations
2691
-
2692
- def initialize(client)
2693
- @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
2694
- end
2695
-
2696
- # Based on the provided location parameters, returns a list of the best
2697
- # potential matching addresses.
2698
- def get(incoming={})
2699
- opts = HttpClient::Helper.symbolize_keys(incoming)
2700
- query = {
2701
- :address => (x = opts.delete(:address); x.nil? ? nil : HttpClient::Preconditions.assert_class('address', x, String)),
2702
- :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)),
2703
- :latitude => (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String)),
2704
- :longitude => (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String))
2705
- }.delete_if { |k, v| v.nil? }
2706
- r = @client.request("/locations").with_query(query).get
2707
- r.map { |x| ::Io::Flow::V0::Models::Location.new(x) }
2708
- end
2709
-
2710
- end
2711
-
2712
2804
  class Memberships
2713
2805
 
2714
2806
  def initialize(client)
@@ -3361,58 +3453,6 @@ module Io
3361
3453
 
3362
3454
  end
3363
3455
 
3364
- class ExpandableLocation
3365
-
3366
- module Types
3367
- LOCATION = 'location' unless defined?(LOCATION)
3368
- LOCATION_REFERENCE = 'location_reference' unless defined?(LOCATION_REFERENCE)
3369
- end
3370
-
3371
- def initialize(incoming={})
3372
- opts = HttpClient::Helper.symbolize_keys(incoming)
3373
- HttpClient::Preconditions.require_keys(opts, [:name], 'ExpandableLocation')
3374
- @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
3375
- end
3376
-
3377
- def to_hash
3378
- subtype_to_hash.merge(:discriminator => @name)
3379
- end
3380
-
3381
- def ExpandableLocation.from_json(hash)
3382
- HttpClient::Preconditions.assert_class('hash', hash, Hash)
3383
- case HttpClient::Helper.symbolize_keys(hash)[:discriminator]
3384
- when Types::LOCATION; Location.new(hash)
3385
- when Types::LOCATION_REFERENCE; LocationReference.new(hash)
3386
- else ExpandableLocationUndefinedType.new(:name => union_type_name)
3387
- end
3388
- end
3389
-
3390
- end
3391
-
3392
- class ExpandableLocationUndefinedType < ExpandableLocation
3393
-
3394
- attr_reader :name
3395
-
3396
- def initialize(incoming={})
3397
- super(:name => 'undefined_type')
3398
- opts = HttpClient::Helper.symbolize_keys(incoming)
3399
- @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
3400
- end
3401
-
3402
- def subtype_to_hash
3403
- raise 'Unable to serialize undefined type to json'
3404
- end
3405
-
3406
- def copy(incoming={})
3407
- raise 'Operation not supported for undefined type'
3408
- end
3409
-
3410
- def to_hash
3411
- raise 'Operation not supported for undefined type'
3412
- end
3413
-
3414
- end
3415
-
3416
3456
  class ExpandableOrganization
3417
3457
 
3418
3458
  module Types
@@ -5074,15 +5114,22 @@ module Io
5074
5114
 
5075
5115
  end
5076
5116
 
5117
+ # Defines structured fields for address to be used in user/form input. Either
5118
+ # text or the structured input needs to be present.
5077
5119
  class Address
5078
5120
 
5079
- attr_reader :contact, :location
5121
+ attr_reader :text, :streets, :city, :province, :postal, :country, :latitude, :longitude
5080
5122
 
5081
5123
  def initialize(incoming={})
5082
5124
  opts = HttpClient::Helper.symbolize_keys(incoming)
5083
- HttpClient::Preconditions.require_keys(opts, [:contact, :location], 'Address')
5084
- @contact = (x = opts.delete(:contact); x.is_a?(::Io::Flow::V0::Models::Contact) ? x : ::Io::Flow::V0::Models::Contact.new(x))
5085
- @location = (x = opts.delete(:location); x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x))
5125
+ @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
5126
+ @streets = (x = opts.delete(:streets); x.nil? ? nil : HttpClient::Preconditions.assert_class('streets', x, Array).map { |v| HttpClient::Preconditions.assert_class('streets', v, String) })
5127
+ @city = (x = opts.delete(:city); x.nil? ? nil : HttpClient::Preconditions.assert_class('city', x, String))
5128
+ @province = (x = opts.delete(:province); x.nil? ? nil : HttpClient::Preconditions.assert_class('province', x, String))
5129
+ @postal = (x = opts.delete(:postal); x.nil? ? nil : HttpClient::Preconditions.assert_class('postal', x, String))
5130
+ @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
5131
+ @latitude = (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String))
5132
+ @longitude = (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String))
5086
5133
  end
5087
5134
 
5088
5135
  def to_json
@@ -5095,8 +5142,14 @@ module Io
5095
5142
 
5096
5143
  def to_hash
5097
5144
  {
5098
- :contact => contact.to_hash,
5099
- :location => location.to_hash
5145
+ :text => text,
5146
+ :streets => streets.nil? ? nil : streets,
5147
+ :city => city,
5148
+ :province => province,
5149
+ :postal => postal,
5150
+ :country => country,
5151
+ :latitude => latitude,
5152
+ :longitude => longitude
5100
5153
  }
5101
5154
  end
5102
5155
 
@@ -5301,7 +5354,7 @@ module Io
5301
5354
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
5302
5355
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
5303
5356
  @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 }
5304
- @shipping = (x = opts.delete(:shipping); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x)))
5357
+ @shipping = (x = opts.delete(:shipping); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
5305
5358
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
5306
5359
  @cvv = (x = opts.delete(:cvv); x.nil? ? nil : HttpClient::Preconditions.assert_class('cvv', x, String))
5307
5360
  @details = (x = opts.delete(:details); x.is_a?(::Io::Flow::V0::Models::AuthorizationDetails) ? x : ::Io::Flow::V0::Models::AuthorizationDetails.from_json(x))
@@ -5411,7 +5464,7 @@ module Io
5411
5464
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
5412
5465
  @cvv = (x = opts.delete(:cvv); x.nil? ? nil : HttpClient::Preconditions.assert_class('cvv', x, String))
5413
5466
  @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 })
5414
- @shipping = (x = opts.delete(:shipping); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x)))
5467
+ @shipping = (x = opts.delete(:shipping); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
5415
5468
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
5416
5469
  end
5417
5470
 
@@ -5795,7 +5848,7 @@ module Io
5795
5848
  @expiration = (x = opts.delete(:expiration); x.is_a?(::Io::Flow::V0::Models::Expiration) ? x : ::Io::Flow::V0::Models::Expiration.new(x))
5796
5849
  @last4 = HttpClient::Preconditions.assert_class('last4', opts.delete(:last4), String)
5797
5850
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
5798
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x)))
5851
+ @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)))
5799
5852
  end
5800
5853
 
5801
5854
  def to_json
@@ -5830,7 +5883,7 @@ module Io
5830
5883
  @expiration_month = HttpClient::Preconditions.assert_class('expiration_month', opts.delete(:expiration_month), Integer)
5831
5884
  @expiration_year = HttpClient::Preconditions.assert_class('expiration_year', opts.delete(:expiration_year), Integer)
5832
5885
  @name = (x = opts.delete(:name); x.nil? ? nil : HttpClient::Preconditions.assert_class('name', x, String))
5833
- @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x)))
5886
+ @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)))
5834
5887
  end
5835
5888
 
5836
5889
  def to_json
@@ -5922,7 +5975,7 @@ module Io
5922
5975
  HttpClient::Preconditions.require_keys(opts, [:id, :name, :facilities, :visibility], 'Carrier')
5923
5976
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
5924
5977
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
5925
- @facilities = HttpClient::Preconditions.assert_class('facilities', opts.delete(:facilities), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)) }
5978
+ @facilities = HttpClient::Preconditions.assert_class('facilities', opts.delete(:facilities), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x)) }
5926
5979
  @visibility = (x = opts.delete(:visibility); x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x))
5927
5980
  end
5928
5981
 
@@ -6104,7 +6157,7 @@ module Io
6104
6157
  opts = HttpClient::Helper.symbolize_keys(incoming)
6105
6158
  HttpClient::Preconditions.require_keys(opts, [:name], 'CarrierForm')
6106
6159
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
6107
- @facilities = (x = opts.delete(:facilities); x.nil? ? nil : HttpClient::Preconditions.assert_class('facilities', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)) })
6160
+ @facilities = (x = opts.delete(:facilities); x.nil? ? nil : HttpClient::Preconditions.assert_class('facilities', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x)) })
6108
6161
  @visibility = (x = opts.delete(:visibility); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x)))
6109
6162
  end
6110
6163
 
@@ -6314,7 +6367,7 @@ module Io
6314
6367
  opts = HttpClient::Helper.symbolize_keys(incoming)
6315
6368
  HttpClient::Preconditions.require_keys(opts, [:id, :address, :packaging, :name, :services, :schedule, :timezone], 'Center')
6316
6369
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
6317
- @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
6370
+ @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
6318
6371
  @packaging = HttpClient::Preconditions.assert_class('packaging', opts.delete(:packaging), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Packaging) ? x : ::Io::Flow::V0::Models::Packaging.new(x)) }
6319
6372
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
6320
6373
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AvailableService) ? x : ::Io::Flow::V0::Models::AvailableService.new(x)) }
@@ -6351,7 +6404,7 @@ module Io
6351
6404
  def initialize(incoming={})
6352
6405
  opts = HttpClient::Helper.symbolize_keys(incoming)
6353
6406
  HttpClient::Preconditions.require_keys(opts, [:address, :packaging, :name, :services, :schedule, :timezone], 'CenterForm')
6354
- @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
6407
+ @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
6355
6408
  @packaging = HttpClient::Preconditions.assert_class('packaging', opts.delete(:packaging), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Packaging) ? x : ::Io::Flow::V0::Models::Packaging.new(x)) }
6356
6409
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
6357
6410
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AvailableService) ? x : ::Io::Flow::V0::Models::AvailableService.new(x)) }
@@ -6763,7 +6816,7 @@ module Io
6763
6816
  HttpClient::Preconditions.require_keys(opts, [:quote, :items, :destination], 'DeliveryForm')
6764
6817
  @quote = HttpClient::Preconditions.assert_class('quote', opts.delete(:quote), String)
6765
6818
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
6766
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
6819
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
6767
6820
  end
6768
6821
 
6769
6822
  def to_json
@@ -6833,7 +6886,7 @@ module Io
6833
6886
  HttpClient::Preconditions.require_keys(opts, [:delivery, :items, :destination], 'DeliveryOptionForm')
6834
6887
  @delivery = HttpClient::Preconditions.assert_class('delivery', opts.delete(:delivery), String)
6835
6888
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
6836
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
6889
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
6837
6890
  end
6838
6891
 
6839
6892
  def to_json
@@ -7279,7 +7332,7 @@ module Io
7279
7332
 
7280
7333
  end
7281
7334
 
7282
- # Represents an exception to the schedule of a location.
7335
+ # Represents an exception to the schedule of a center.
7283
7336
  class Exception
7284
7337
 
7285
7338
  attr_reader :type, :datetime_range
@@ -8117,6 +8170,99 @@ module Io
8117
8170
 
8118
8171
  end
8119
8172
 
8173
+ # Summary of landed cost data (taxes and duties) for 1 or more items going to a
8174
+ # single destination country. Records are unique based on (item.number, country
8175
+ # of origin).
8176
+ class HarmonizedLandedCost
8177
+
8178
+ attr_reader :address, :items
8179
+
8180
+ def initialize(incoming={})
8181
+ opts = HttpClient::Helper.symbolize_keys(incoming)
8182
+ HttpClient::Preconditions.require_keys(opts, [:address, :items], 'HarmonizedLandedCost')
8183
+ @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
8184
+ @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::HarmonizedLandedCostItem) ? x : ::Io::Flow::V0::Models::HarmonizedLandedCostItem.new(x)) }
8185
+ end
8186
+
8187
+ def to_json
8188
+ JSON.dump(to_hash)
8189
+ end
8190
+
8191
+ def copy(incoming={})
8192
+ HarmonizedLandedCost.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
8193
+ end
8194
+
8195
+ def to_hash
8196
+ {
8197
+ :address => address.to_hash,
8198
+ :items => items.map { |o| o.to_hash }
8199
+ }
8200
+ end
8201
+
8202
+ end
8203
+
8204
+ # Allows calculation of duty and tax for multiple items in one API call for
8205
+ # items going to a specific destination country
8206
+ class HarmonizedLandedCostForm
8207
+
8208
+ attr_reader :address, :item_numbers
8209
+
8210
+ def initialize(incoming={})
8211
+ opts = HttpClient::Helper.symbolize_keys(incoming)
8212
+ HttpClient::Preconditions.require_keys(opts, [:address, :item_numbers], 'HarmonizedLandedCostForm')
8213
+ @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
8214
+ @item_numbers = HttpClient::Preconditions.assert_class('item_numbers', opts.delete(:item_numbers), Array).map { |v| HttpClient::Preconditions.assert_class('item_numbers', v, String) }
8215
+ end
8216
+
8217
+ def to_json
8218
+ JSON.dump(to_hash)
8219
+ end
8220
+
8221
+ def copy(incoming={})
8222
+ HarmonizedLandedCostForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
8223
+ end
8224
+
8225
+ def to_hash
8226
+ {
8227
+ :address => address.to_hash,
8228
+ :item_numbers => item_numbers
8229
+ }
8230
+ end
8231
+
8232
+ end
8233
+
8234
+ # Duty and tax information for a given item. Note that the internal
8235
+ # implementation supports multiple countries of origin.
8236
+ class HarmonizedLandedCostItem
8237
+
8238
+ attr_reader :item, :duty, :tax
8239
+
8240
+ def initialize(incoming={})
8241
+ opts = HttpClient::Helper.symbolize_keys(incoming)
8242
+ HttpClient::Preconditions.require_keys(opts, [:item, :duty, :tax], 'HarmonizedLandedCostItem')
8243
+ @item = (x = opts.delete(:item); x.is_a?(::Io::Flow::V0::Models::HarmonizedItemReference) ? x : ::Io::Flow::V0::Models::HarmonizedItemReference.new(x))
8244
+ @duty = (x = opts.delete(:duty); x.is_a?(::Io::Flow::V0::Models::Duty) ? x : ::Io::Flow::V0::Models::Duty.new(x))
8245
+ @tax = (x = opts.delete(:tax); x.is_a?(::Io::Flow::V0::Models::Tax) ? x : ::Io::Flow::V0::Models::Tax.new(x))
8246
+ end
8247
+
8248
+ def to_json
8249
+ JSON.dump(to_hash)
8250
+ end
8251
+
8252
+ def copy(incoming={})
8253
+ HarmonizedLandedCostItem.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
8254
+ end
8255
+
8256
+ def to_hash
8257
+ {
8258
+ :item => item.to_hash,
8259
+ :duty => duty.to_hash,
8260
+ :tax => tax.to_hash
8261
+ }
8262
+ end
8263
+
8264
+ end
8265
+
8120
8266
  class Healthcheck
8121
8267
 
8122
8268
  attr_reader :status
@@ -9072,14 +9218,14 @@ module Io
9072
9218
 
9073
9219
  class LabelEvent
9074
9220
 
9075
- attr_reader :id, :label, :location, :status, :timestamp, :description
9221
+ attr_reader :id, :label, :address, :status, :timestamp, :description
9076
9222
 
9077
9223
  def initialize(incoming={})
9078
9224
  opts = HttpClient::Helper.symbolize_keys(incoming)
9079
- HttpClient::Preconditions.require_keys(opts, [:id, :label, :location, :status, :timestamp], 'LabelEvent')
9225
+ HttpClient::Preconditions.require_keys(opts, [:id, :label, :address, :status, :timestamp], 'LabelEvent')
9080
9226
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
9081
9227
  @label = (x = opts.delete(:label); x.is_a?(::Io::Flow::V0::Models::LabelSummary) ? x : ::Io::Flow::V0::Models::LabelSummary.new(x))
9082
- @location = (x = opts.delete(:location); x.is_a?(::Io::Flow::V0::Models::ExpandableLocation) ? x : ::Io::Flow::V0::Models::ExpandableLocation.from_json(x))
9228
+ @address = (x = opts.delete(:address); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
9083
9229
  @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::TrackingStatus) ? x : ::Io::Flow::V0::Models::TrackingStatus.apply(x))
9084
9230
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
9085
9231
  @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
@@ -9097,7 +9243,7 @@ module Io
9097
9243
  {
9098
9244
  :id => id,
9099
9245
  :label => label.to_hash,
9100
- :location => location.to_hash,
9246
+ :address => address.to_hash,
9101
9247
  :status => status.value,
9102
9248
  :timestamp => timestamp,
9103
9249
  :description => description
@@ -9108,7 +9254,7 @@ module Io
9108
9254
 
9109
9255
  class LabelEventForm
9110
9256
 
9111
- attr_reader :label_id, :timestamp, :status, :description, :location
9257
+ attr_reader :label_id, :timestamp, :status, :description, :address
9112
9258
 
9113
9259
  def initialize(incoming={})
9114
9260
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -9117,7 +9263,7 @@ module Io
9117
9263
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
9118
9264
  @status = (x = opts.delete(:status); x.is_a?(::Io::Flow::V0::Models::TrackingStatus) ? x : ::Io::Flow::V0::Models::TrackingStatus.apply(x))
9119
9265
  @description = (x = opts.delete(:description); x.nil? ? nil : HttpClient::Preconditions.assert_class('description', x, String))
9120
- @location = (x = opts.delete(:location); x.nil? ? nil : HttpClient::Preconditions.assert_class('location', x, String))
9266
+ @address = (x = opts.delete(:address); x.nil? ? nil : HttpClient::Preconditions.assert_class('address', x, String))
9121
9267
  end
9122
9268
 
9123
9269
  def to_json
@@ -9134,7 +9280,7 @@ module Io
9134
9280
  :timestamp => timestamp,
9135
9281
  :status => status.value,
9136
9282
  :description => description,
9137
- :location => location
9283
+ :address => address
9138
9284
  }
9139
9285
  end
9140
9286
 
@@ -9528,74 +9674,6 @@ module Io
9528
9674
 
9529
9675
  end
9530
9676
 
9531
- # Defines structured fields for address to be used in user/form input. Either
9532
- # text or the structured input needs to be present.
9533
- class Location < ExpandableLocation
9534
-
9535
- attr_reader :text, :streets, :city, :province, :postal, :country, :latitude, :longitude
9536
-
9537
- def initialize(incoming={})
9538
- super(:name => ExpandableLocation::Types::LOCATION)
9539
- opts = HttpClient::Helper.symbolize_keys(incoming)
9540
- @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
9541
- @streets = (x = opts.delete(:streets); x.nil? ? nil : HttpClient::Preconditions.assert_class('streets', x, Array).map { |v| HttpClient::Preconditions.assert_class('streets', v, String) })
9542
- @city = (x = opts.delete(:city); x.nil? ? nil : HttpClient::Preconditions.assert_class('city', x, String))
9543
- @province = (x = opts.delete(:province); x.nil? ? nil : HttpClient::Preconditions.assert_class('province', x, String))
9544
- @postal = (x = opts.delete(:postal); x.nil? ? nil : HttpClient::Preconditions.assert_class('postal', x, String))
9545
- @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
9546
- @latitude = (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String))
9547
- @longitude = (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String))
9548
- end
9549
-
9550
- def to_json
9551
- JSON.dump(to_hash)
9552
- end
9553
-
9554
- def copy(incoming={})
9555
- Location.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
9556
- end
9557
-
9558
- def subtype_to_hash
9559
- {
9560
- :text => text,
9561
- :streets => streets.nil? ? nil : streets,
9562
- :city => city,
9563
- :province => province,
9564
- :postal => postal,
9565
- :country => country,
9566
- :latitude => latitude,
9567
- :longitude => longitude
9568
- }
9569
- end
9570
-
9571
- end
9572
-
9573
- class LocationReference < ExpandableLocation
9574
-
9575
- attr_reader :text
9576
-
9577
- def initialize(incoming={})
9578
- super(:name => ExpandableLocation::Types::LOCATION_REFERENCE)
9579
- opts = HttpClient::Helper.symbolize_keys(incoming)
9580
- @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
9581
- end
9582
-
9583
- def to_json
9584
- JSON.dump(to_hash)
9585
- end
9586
-
9587
- def copy(incoming={})
9588
- LocationReference.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
9589
- end
9590
-
9591
- def subtype_to_hash
9592
- {
9593
- :text => text
9594
- }
9595
- end
9596
-
9597
- end
9598
-
9599
9677
  class Margin < Adjustment
9600
9678
 
9601
9679
  attr_reader :name, :value
@@ -9880,7 +9958,7 @@ module Io
9880
9958
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
9881
9959
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
9882
9960
  @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime)
9883
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x))
9961
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
9884
9962
  @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Delivery) ? x : ::Io::Flow::V0::Models::Delivery.new(x)) }
9885
9963
  @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| HttpClient::Preconditions.assert_class('selections', v, String) }
9886
9964
  @prices = HttpClient::Preconditions.assert_class('prices', opts.delete(:prices), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LocalizedPrice) ? x : ::Io::Flow::V0::Models::LocalizedPrice.new(x)) }
@@ -9954,7 +10032,7 @@ module Io
9954
10032
  HttpClient::Preconditions.require_keys(opts, [:number, :customer, :destination, :items], 'OrderForm')
9955
10033
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
9956
10034
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
9957
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Location) ? x : ::Io::Flow::V0::Models::Location.new(x))
10035
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
9958
10036
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
9959
10037
  end
9960
10038
 
@@ -10649,7 +10727,7 @@ module Io
10649
10727
  opts = HttpClient::Helper.symbolize_keys(incoming)
10650
10728
  HttpClient::Preconditions.require_keys(opts, [:id, :destination, :deliveries, :selections], 'Quote')
10651
10729
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
10652
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
10730
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
10653
10731
  @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Delivery) ? x : ::Io::Flow::V0::Models::Delivery.new(x)) }
10654
10732
  @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveryOptionReference) ? x : ::Io::Flow::V0::Models::DeliveryOptionReference.new(x)) }
10655
10733
  end
@@ -10680,7 +10758,7 @@ module Io
10680
10758
  def initialize(incoming={})
10681
10759
  opts = HttpClient::Helper.symbolize_keys(incoming)
10682
10760
  HttpClient::Preconditions.require_keys(opts, [:destination, :experience, :items], 'QuoteForm')
10683
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
10761
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
10684
10762
  @experience = HttpClient::Preconditions.assert_class('experience', opts.delete(:experience), String)
10685
10763
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
10686
10764
  end
@@ -10711,7 +10789,7 @@ module Io
10711
10789
  opts = HttpClient::Helper.symbolize_keys(incoming)
10712
10790
  HttpClient::Preconditions.require_keys(opts, [:id, :destination], 'QuoteSummary')
10713
10791
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
10714
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
10792
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
10715
10793
  end
10716
10794
 
10717
10795
  def to_json
@@ -10959,7 +11037,7 @@ module Io
10959
11037
 
10960
11038
  end
10961
11039
 
10962
- # Represents operating calendar and holidays of a location
11040
+ # Represents operating calendar and holidays of a center
10963
11041
  class Schedule
10964
11042
 
10965
11043
  attr_reader :calendar, :holiday, :exception, :cutoff
@@ -11154,7 +11232,7 @@ module Io
11154
11232
  HttpClient::Preconditions.require_keys(opts, [:id, :commercial_invoice, :destination, :items, :shipment_labels, :tracking_number], 'Shipment')
11155
11233
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
11156
11234
  @commercial_invoice = HttpClient::Preconditions.assert_class('commercial_invoice', opts.delete(:commercial_invoice), String)
11157
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
11235
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
11158
11236
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
11159
11237
  @shipment_labels = HttpClient::Preconditions.assert_class('shipment_labels', opts.delete(:shipment_labels), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ShipmentLabel) ? x : ::Io::Flow::V0::Models::ShipmentLabel.new(x)) }
11160
11238
  @tracking_number = HttpClient::Preconditions.assert_class('tracking_number', opts.delete(:tracking_number), String)
@@ -11190,7 +11268,7 @@ module Io
11190
11268
  def initialize(incoming={})
11191
11269
  opts = HttpClient::Helper.symbolize_keys(incoming)
11192
11270
  HttpClient::Preconditions.require_keys(opts, [:destination, :items], 'ShipmentForm')
11193
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
11271
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
11194
11272
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
11195
11273
  @shipment_labels = (x = opts.delete(:shipment_labels); x.nil? ? nil : HttpClient::Preconditions.assert_class('shipment_labels', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ShipmentLabelForm) ? x : ::Io::Flow::V0::Models::ShipmentLabelForm.new(x)) })
11196
11274
  end
@@ -11414,7 +11492,7 @@ module Io
11414
11492
  HttpClient::Preconditions.require_keys(opts, [:id, :commercial_invoice, :destination, :items, :tracking_number], 'ShipmentSummary')
11415
11493
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
11416
11494
  @commercial_invoice = HttpClient::Preconditions.assert_class('commercial_invoice', opts.delete(:commercial_invoice), String)
11417
- @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
11495
+ @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
11418
11496
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ItemSummary) ? x : ::Io::Flow::V0::Models::ItemSummary.new(x)) }
11419
11497
  @tracking_number = HttpClient::Preconditions.assert_class('tracking_number', opts.delete(:tracking_number), String)
11420
11498
  end
@@ -11471,6 +11549,34 @@ module Io
11471
11549
 
11472
11550
  end
11473
11551
 
11552
+ class ShippingAddress
11553
+
11554
+ attr_reader :contact, :location
11555
+
11556
+ def initialize(incoming={})
11557
+ opts = HttpClient::Helper.symbolize_keys(incoming)
11558
+ HttpClient::Preconditions.require_keys(opts, [:contact, :location], 'ShippingAddress')
11559
+ @contact = (x = opts.delete(:contact); x.is_a?(::Io::Flow::V0::Models::Contact) ? x : ::Io::Flow::V0::Models::Contact.new(x))
11560
+ @location = (x = opts.delete(:location); x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x))
11561
+ end
11562
+
11563
+ def to_json
11564
+ JSON.dump(to_hash)
11565
+ end
11566
+
11567
+ def copy(incoming={})
11568
+ ShippingAddress.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
11569
+ end
11570
+
11571
+ def to_hash
11572
+ {
11573
+ :contact => contact.to_hash,
11574
+ :location => location.to_hash
11575
+ }
11576
+ end
11577
+
11578
+ end
11579
+
11474
11580
  # A configuration with custom query to select a subset of master catalog items
11475
11581
  # for a localized experience
11476
11582
  class Subcatalog < ExpandableSubcatalog
@@ -11880,7 +11986,7 @@ module Io
11880
11986
  @experience = HttpClient::Preconditions.assert_class('experience', opts.delete(:experience), String)
11881
11987
  @integration = (x = opts.delete(:integration); x.is_a?(::Io::Flow::V0::Models::ShipmentIntegrationType) ? x : ::Io::Flow::V0::Models::ShipmentIntegrationType.apply(x))
11882
11988
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
11883
- @rules = HttpClient::Preconditions.assert_class('rules', opts.delete(:rules), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::TierRule) ? x : ::Io::Flow::V0::Models::TierRule.new(x)) }
11989
+ @rules = HttpClient::Preconditions.assert_class('rules', opts.delete(:rules), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::TierRuleForm) ? x : ::Io::Flow::V0::Models::TierRuleForm.new(x)) }
11884
11990
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| HttpClient::Preconditions.assert_class('services', v, String) }
11885
11991
  @strategy = (x = opts.delete(:strategy); x.is_a?(::Io::Flow::V0::Models::TierStrategy) ? x : ::Io::Flow::V0::Models::TierStrategy.apply(x))
11886
11992
  @visibility = (x = opts.delete(:visibility); x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x))
@@ -11939,11 +12045,13 @@ module Io
11939
12045
  # output corresponding outcomes.
11940
12046
  class TierRule
11941
12047
 
11942
- attr_reader :query, :outcome
12048
+ attr_reader :id, :position, :query, :outcome
11943
12049
 
11944
12050
  def initialize(incoming={})
11945
12051
  opts = HttpClient::Helper.symbolize_keys(incoming)
11946
- HttpClient::Preconditions.require_keys(opts, [:query, :outcome], 'TierRule')
12052
+ HttpClient::Preconditions.require_keys(opts, [:id, :position, :query, :outcome], 'TierRule')
12053
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
12054
+ @position = HttpClient::Preconditions.assert_class('position', opts.delete(:position), Integer)
11947
12055
  @query = HttpClient::Preconditions.assert_class('query', opts.delete(:query), String)
11948
12056
  @outcome = (x = opts.delete(:outcome); x.is_a?(::Io::Flow::V0::Models::TierRuleOutcome) ? x : ::Io::Flow::V0::Models::TierRuleOutcome.from_json(x))
11949
12057
  end
@@ -11958,6 +12066,8 @@ module Io
11958
12066
 
11959
12067
  def to_hash
11960
12068
  {
12069
+ :id => id,
12070
+ :position => position,
11961
12071
  :query => query,
11962
12072
  :outcome => outcome.to_hash
11963
12073
  }
@@ -11965,18 +12075,79 @@ module Io
11965
12075
 
11966
12076
  end
11967
12077
 
12078
+ class TierRuleForm
12079
+
12080
+ attr_reader :position, :query, :outcome
12081
+
12082
+ def initialize(incoming={})
12083
+ opts = HttpClient::Helper.symbolize_keys(incoming)
12084
+ HttpClient::Preconditions.require_keys(opts, [:position, :query, :outcome], 'TierRuleForm')
12085
+ @position = HttpClient::Preconditions.assert_class('position', opts.delete(:position), Integer)
12086
+ @query = HttpClient::Preconditions.assert_class('query', opts.delete(:query), String)
12087
+ @outcome = (x = opts.delete(:outcome); x.is_a?(::Io::Flow::V0::Models::TierRuleOutcome) ? x : ::Io::Flow::V0::Models::TierRuleOutcome.from_json(x))
12088
+ end
12089
+
12090
+ def to_json
12091
+ JSON.dump(to_hash)
12092
+ end
12093
+
12094
+ def copy(incoming={})
12095
+ TierRuleForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
12096
+ end
12097
+
12098
+ def to_hash
12099
+ {
12100
+ :position => position,
12101
+ :query => query,
12102
+ :outcome => outcome.to_hash
12103
+ }
12104
+ end
12105
+
12106
+ end
12107
+
12108
+ class TierRuleVersion
12109
+
12110
+ attr_reader :id, :timestamp, :type, :tier_rule
12111
+
12112
+ def initialize(incoming={})
12113
+ opts = HttpClient::Helper.symbolize_keys(incoming)
12114
+ HttpClient::Preconditions.require_keys(opts, [:id, :timestamp, :type, :tier_rule], 'TierRuleVersion')
12115
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
12116
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
12117
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::ChangeType) ? x : ::Io::Flow::V0::Models::ChangeType.apply(x))
12118
+ @tier_rule = (x = opts.delete(:tier_rule); x.is_a?(::Io::Flow::V0::Models::TierRule) ? x : ::Io::Flow::V0::Models::TierRule.new(x))
12119
+ end
12120
+
12121
+ def to_json
12122
+ JSON.dump(to_hash)
12123
+ end
12124
+
12125
+ def copy(incoming={})
12126
+ TierRuleVersion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
12127
+ end
12128
+
12129
+ def to_hash
12130
+ {
12131
+ :id => id,
12132
+ :timestamp => timestamp,
12133
+ :type => type.value,
12134
+ :tier_rule => tier_rule.to_hash
12135
+ }
12136
+ end
12137
+
12138
+ end
12139
+
11968
12140
  class TierSummary
11969
12141
 
11970
- attr_reader :id, :experience, :integration, :name, :rules, :services, :strategy, :visibility
12142
+ attr_reader :id, :experience, :integration, :name, :services, :strategy, :visibility
11971
12143
 
11972
12144
  def initialize(incoming={})
11973
12145
  opts = HttpClient::Helper.symbolize_keys(incoming)
11974
- HttpClient::Preconditions.require_keys(opts, [:id, :experience, :integration, :name, :rules, :services, :strategy, :visibility], 'TierSummary')
12146
+ HttpClient::Preconditions.require_keys(opts, [:id, :experience, :integration, :name, :services, :strategy, :visibility], 'TierSummary')
11975
12147
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
11976
12148
  @experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::FulfillmentExperienceReference) ? x : ::Io::Flow::V0::Models::FulfillmentExperienceReference.new(x))
11977
12149
  @integration = (x = opts.delete(:integration); x.is_a?(::Io::Flow::V0::Models::ShipmentIntegrationType) ? x : ::Io::Flow::V0::Models::ShipmentIntegrationType.apply(x))
11978
12150
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
11979
- @rules = HttpClient::Preconditions.assert_class('rules', opts.delete(:rules), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::TierRule) ? x : ::Io::Flow::V0::Models::TierRule.new(x)) }
11980
12151
  @services = HttpClient::Preconditions.assert_class('services', opts.delete(:services), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ServiceReference) ? x : ::Io::Flow::V0::Models::ServiceReference.new(x)) }
11981
12152
  @strategy = (x = opts.delete(:strategy); x.is_a?(::Io::Flow::V0::Models::TierStrategy) ? x : ::Io::Flow::V0::Models::TierStrategy.apply(x))
11982
12153
  @visibility = (x = opts.delete(:visibility); x.is_a?(::Io::Flow::V0::Models::Visibility) ? x : ::Io::Flow::V0::Models::Visibility.apply(x))
@@ -11996,7 +12167,6 @@ module Io
11996
12167
  :experience => experience.to_hash,
11997
12168
  :integration => integration.value,
11998
12169
  :name => name,
11999
- :rules => rules.map { |o| o.to_hash },
12000
12170
  :services => services.map { |o| o.to_hash },
12001
12171
  :strategy => strategy.value,
12002
12172
  :visibility => visibility.value
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowcommerce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flow Commerce, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-30 00:00:00.000000000 Z
11
+ date: 2016-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json