flowcommerce 0.0.20 → 0.0.21

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: 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