flowcommerce 0.2.68 → 0.2.69

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: 54189722fdf3cd32c39a6b67ed0a2d9e5f5cbe74
4
- data.tar.gz: 5b433f6b50c2f076207bcc0ba5546a3467e74d1d
3
+ metadata.gz: b40c8f05ec4b3c01d2194fe74b1801e5f09d3ff4
4
+ data.tar.gz: c8f1c613517ef693ecc515d3e2e090fe6230b2d3
5
5
  SHA512:
6
- metadata.gz: e08999c8b0e544c497663b7ba985f22f90e7ecfc107bf7ac0b2e7084f1152e58ed938ca827a39af25221d96770fd834061900b3e28ebcbb1de980d170be6404a
7
- data.tar.gz: 0ec786cbc3fff70326adc4cf0483c29e6b38e1e7944b07d9285549f3201207af64716b4540ce2f1031f10c5e1157ce1fb315b70594dfb84ba500d289c1b91af5
6
+ metadata.gz: 1664c3d883587e8bfae89868b0ccabbccd466d72513131db9eec4892a26381303fcc4ac96db5450076c98ff5a7feb4119c107b7b6b63927e96756228a8837875
7
+ data.tar.gz: 10a5cc6a52504fc72681d89946166758e78e59af01820a8d1f0a57a828034fabf6f83b6c3cdde4030d6a36bb7a49b342cebedbb4a8b6cd2bbaa65849cd7284fb
@@ -1,6 +1,6 @@
1
1
  # Generated by API Builder - https://www.apibuilder.io
2
2
  # Service version: 0.6.19
3
- # apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.30/ruby_client
3
+ # apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.31/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -25,7 +25,7 @@ module Io
25
25
 
26
26
  BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
27
27
  NAMESPACE = 'io.flow.v0' unless defined?(Constants::NAMESPACE)
28
- USER_AGENT = 'apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.30/ruby_client' unless defined?(Constants::USER_AGENT)
28
+ USER_AGENT = 'apibuilder 0.14.3 app.apibuilder.io/flow/api/0.6.31/ruby_client' unless defined?(Constants::USER_AGENT)
29
29
  VERSION = '0.6.19' unless defined?(Constants::VERSION)
30
30
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
31
31
 
@@ -120,6 +120,10 @@ module Io
120
120
  @order_identifiers ||= ::Io::Flow::V0::Clients::OrderIdentifiers.new(self)
121
121
  end
122
122
 
123
+ def order_number_generators
124
+ @order_number_generators ||= ::Io::Flow::V0::Clients::OrderNumberGenerators.new(self)
125
+ end
126
+
123
127
  def order_promotions
124
128
  @order_promotions ||= ::Io::Flow::V0::Clients::OrderPromotions.new(self)
125
129
  end
@@ -140,10 +144,6 @@ module Io
140
144
  @price_book_items ||= ::Io::Flow::V0::Clients::PriceBookItems.new(self)
141
145
  end
142
146
 
143
- def queries
144
- @queries ||= ::Io::Flow::V0::Clients::Queries.new(self)
145
- end
146
-
147
147
  def subcatalogs
148
148
  @subcatalogs ||= ::Io::Flow::V0::Clients::Subcatalogs.new(self)
149
149
  end
@@ -152,6 +152,10 @@ module Io
152
152
  @subcatalog_items ||= ::Io::Flow::V0::Clients::SubcatalogItems.new(self)
153
153
  end
154
154
 
155
+ def subcatalog_queries
156
+ @subcatalog_queries ||= ::Io::Flow::V0::Clients::SubcatalogQueries.new(self)
157
+ end
158
+
155
159
  def targetings
156
160
  @targetings ||= ::Io::Flow::V0::Clients::Targetings.new(self)
157
161
  end
@@ -894,6 +898,14 @@ module Io
894
898
  ::Io::Flow::V0::Models::Item.new(r)
895
899
  end
896
900
 
901
+ # Builds a query to search experiences
902
+ def post_query_and_builders(organization, query_builder_form)
903
+ HttpClient::Preconditions.assert_class('organization', organization, String)
904
+ (x = query_builder_form; x.is_a?(::Io::Flow::V0::Models::QueryBuilderForm) ? x : ::Io::Flow::V0::Models::QueryBuilderForm.from_json(x))
905
+ r = @client.request("/#{CGI.escape(organization)}/experiences/query/builders").with_json(query_builder_form.to_json).post
906
+ ::Io::Flow::V0::Models::QueryBuilder.new(r)
907
+ end
908
+
897
909
  # Provides visibility into recent changes of each object, including deletion
898
910
  def get_versions(organization, incoming={})
899
911
  HttpClient::Preconditions.assert_class('organization', organization, String)
@@ -1737,6 +1749,33 @@ module Io
1737
1749
 
1738
1750
  end
1739
1751
 
1752
+ class OrderNumberGenerators
1753
+
1754
+ def initialize(client)
1755
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
1756
+ end
1757
+
1758
+ def get(organization)
1759
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1760
+ r = @client.request("/#{CGI.escape(organization)}/order/number/generators").get
1761
+ ::Io::Flow::V0::Models::OrderNumberGenerator.from_json(r)
1762
+ end
1763
+
1764
+ def put(organization, order_number_generator)
1765
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1766
+ (x = order_number_generator; x.is_a?(::Io::Flow::V0::Models::OrderNumberGenerator) ? x : ::Io::Flow::V0::Models::OrderNumberGenerator.from_json(x))
1767
+ r = @client.request("/#{CGI.escape(organization)}/order/number/generators").with_json(order_number_generator.to_json).put
1768
+ ::Io::Flow::V0::Models::OrderNumberGenerator.from_json(r)
1769
+ end
1770
+
1771
+ def delete(organization)
1772
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1773
+ r = @client.request("/#{CGI.escape(organization)}/order/number/generators").delete
1774
+ nil
1775
+ end
1776
+
1777
+ end
1778
+
1740
1779
  class OrderPromotions
1741
1780
 
1742
1781
  def initialize(client)
@@ -2040,21 +2079,6 @@ module Io
2040
2079
 
2041
2080
  end
2042
2081
 
2043
- class Queries
2044
-
2045
- def initialize(client)
2046
- @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
2047
- end
2048
-
2049
- def post_validations(organization, values)
2050
- HttpClient::Preconditions.assert_class('organization', organization, String)
2051
- HttpClient::Preconditions.assert_class('strings', strings, Array).map { |v| HttpClient::Preconditions.assert_class('strings', v, String) }
2052
- r = @client.request("/#{CGI.escape(organization)}/query/validations").with_json(strings.to_json).post
2053
- ::Io::Flow::V0::Models::QueryValidation.new(r)
2054
- end
2055
-
2056
- end
2057
-
2058
2082
  class Subcatalogs
2059
2083
 
2060
2084
  def initialize(client)
@@ -2296,16 +2320,16 @@ module Io
2296
2320
  :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
2297
2321
  }.delete_if { |k, v| v.nil? }
2298
2322
  r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog_id)}/queries").with_query(query).get
2299
- r.map { |x| ::Io::Flow::V0::Models::Query.new(x) }
2323
+ r.map { |x| ::Io::Flow::V0::Models::SubcatalogQuery.new(x) }
2300
2324
  end
2301
2325
 
2302
2326
  # Add query
2303
- def post_queries_by_subcatalog_id(organization, subcatalog_id, query_form)
2327
+ def post_queries_by_subcatalog_id(organization, subcatalog_id, subcatalog_query_form)
2304
2328
  HttpClient::Preconditions.assert_class('organization', organization, String)
2305
2329
  HttpClient::Preconditions.assert_class('subcatalog_id', subcatalog_id, String)
2306
- (x = query_form; x.is_a?(::Io::Flow::V0::Models::QueryForm) ? x : ::Io::Flow::V0::Models::QueryForm.new(x))
2307
- r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog_id)}/queries").with_json(query_form.to_json).post
2308
- ::Io::Flow::V0::Models::Query.new(r)
2330
+ (x = subcatalog_query_form; x.is_a?(::Io::Flow::V0::Models::SubcatalogQueryForm) ? x : ::Io::Flow::V0::Models::SubcatalogQueryForm.new(x))
2331
+ r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog_id)}/queries").with_json(subcatalog_query_form.to_json).post
2332
+ ::Io::Flow::V0::Models::SubcatalogQuery.new(r)
2309
2333
  end
2310
2334
 
2311
2335
  # Returns information about a specific query.
@@ -2314,7 +2338,7 @@ module Io
2314
2338
  HttpClient::Preconditions.assert_class('subcatalog_id', subcatalog_id, String)
2315
2339
  HttpClient::Preconditions.assert_class('id', id, String)
2316
2340
  r = @client.request("/#{CGI.escape(organization)}/catalog/subcatalogs/#{CGI.escape(subcatalog_id)}/queries/#{CGI.escape(id)}").get
2317
- ::Io::Flow::V0::Models::Query.new(r)
2341
+ ::Io::Flow::V0::Models::SubcatalogQuery.new(r)
2318
2342
  end
2319
2343
 
2320
2344
  # Delete a query with this id
@@ -2387,6 +2411,21 @@ module Io
2387
2411
 
2388
2412
  end
2389
2413
 
2414
+ class SubcatalogQueries
2415
+
2416
+ def initialize(client)
2417
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
2418
+ end
2419
+
2420
+ def post_validations(organization, values)
2421
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2422
+ HttpClient::Preconditions.assert_class('strings', strings, Array).map { |v| HttpClient::Preconditions.assert_class('strings', v, String) }
2423
+ r = @client.request("/#{CGI.escape(organization)}/query/validations").with_json(strings.to_json).post
2424
+ ::Io::Flow::V0::Models::SubcatalogQueryValidation.new(r)
2425
+ end
2426
+
2427
+ end
2428
+
2390
2429
  class Targetings
2391
2430
 
2392
2431
  def initialize(client)
@@ -6465,6 +6504,68 @@ module Io
6465
6504
 
6466
6505
  end
6467
6506
 
6507
+ class AvailableFilter
6508
+
6509
+ module Types
6510
+ AVAILABLE_FILTER_STRUCTURED = 'structured' unless defined?(AVAILABLE_FILTER_STRUCTURED)
6511
+ AVAILABLE_FILTER_UNSTRUCTURED = 'unstructured' unless defined?(AVAILABLE_FILTER_UNSTRUCTURED)
6512
+ end
6513
+
6514
+ attr_reader :discriminator
6515
+
6516
+ def initialize(incoming={})
6517
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6518
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'AvailableFilter')
6519
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
6520
+ end
6521
+
6522
+ def subtype_to_hash
6523
+ raise 'Cannot serialize an instance of available_filter directly - must use one of the specific types: available_filter_structured, available_filter_unstructured'
6524
+ end
6525
+
6526
+ def to_hash
6527
+ subtype_to_hash.merge(:discriminator => @discriminator)
6528
+ end
6529
+
6530
+ def AvailableFilter.from_json(hash)
6531
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
6532
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
6533
+ if discriminator.empty?
6534
+ raise "Union type[available_filter] requires a field named 'discriminator'"
6535
+ end
6536
+ case discriminator
6537
+ when Types::AVAILABLE_FILTER_STRUCTURED; AvailableFilterStructured.new(hash)
6538
+ when Types::AVAILABLE_FILTER_UNSTRUCTURED; AvailableFilterUnstructured.new(hash)
6539
+ else AvailableFilterUndefinedType.new(:discriminator => discriminator)
6540
+ end
6541
+ end
6542
+
6543
+ end
6544
+
6545
+ class AvailableFilterUndefinedType < AvailableFilter
6546
+
6547
+ attr_reader :name
6548
+
6549
+ def initialize(incoming={})
6550
+ super(:discriminator => 'undefined_type')
6551
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6552
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
6553
+ end
6554
+
6555
+ def subtype_to_hash
6556
+ raise 'Unable to serialize undefined type to json'
6557
+ end
6558
+
6559
+ def copy(incoming={})
6560
+ raise 'Operation not supported for undefined type'
6561
+ end
6562
+
6563
+ def to_hash
6564
+ raise 'Operation not supported for undefined type'
6565
+ end
6566
+
6567
+ end
6568
+
6468
6569
  # Represents the data needed to create a card authorization.
6469
6570
  class CardAuthorizationData
6470
6571
 
@@ -8328,6 +8429,70 @@ module Io
8328
8429
 
8329
8430
  end
8330
8431
 
8432
+ class OrderNumberGenerator
8433
+
8434
+ module Types
8435
+ ORDER_NUMBER_GENERATOR_UUID = 'uuid' unless defined?(ORDER_NUMBER_GENERATOR_UUID)
8436
+ ORDER_NUMBER_GENERATOR_HEXADECIMAL = 'hexadecimal' unless defined?(ORDER_NUMBER_GENERATOR_HEXADECIMAL)
8437
+ ORDER_NUMBER_GENERATOR_PREFIX_SUFFIX = 'prefix_suffix' unless defined?(ORDER_NUMBER_GENERATOR_PREFIX_SUFFIX)
8438
+ end
8439
+
8440
+ attr_reader :discriminator
8441
+
8442
+ def initialize(incoming={})
8443
+ opts = HttpClient::Helper.symbolize_keys(incoming)
8444
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'OrderNumberGenerator')
8445
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
8446
+ end
8447
+
8448
+ def subtype_to_hash
8449
+ raise 'Cannot serialize an instance of order_number_generator directly - must use one of the specific types: order_number_generator_uuid, order_number_generator_hexadecimal, order_number_generator_prefix_suffix'
8450
+ end
8451
+
8452
+ def to_hash
8453
+ subtype_to_hash.merge(:discriminator => @discriminator)
8454
+ end
8455
+
8456
+ def OrderNumberGenerator.from_json(hash)
8457
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
8458
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
8459
+ if discriminator.empty?
8460
+ raise "Union type[order_number_generator] requires a field named 'discriminator'"
8461
+ end
8462
+ case discriminator
8463
+ when Types::ORDER_NUMBER_GENERATOR_UUID; OrderNumberGeneratorUuid.new(hash)
8464
+ when Types::ORDER_NUMBER_GENERATOR_HEXADECIMAL; OrderNumberGeneratorHexadecimal.new(hash)
8465
+ when Types::ORDER_NUMBER_GENERATOR_PREFIX_SUFFIX; OrderNumberGeneratorPrefixSuffix.new(hash)
8466
+ else OrderNumberGeneratorUndefinedType.new(:discriminator => discriminator)
8467
+ end
8468
+ end
8469
+
8470
+ end
8471
+
8472
+ class OrderNumberGeneratorUndefinedType < OrderNumberGenerator
8473
+
8474
+ attr_reader :name
8475
+
8476
+ def initialize(incoming={})
8477
+ super(:discriminator => 'undefined_type')
8478
+ opts = HttpClient::Helper.symbolize_keys(incoming)
8479
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
8480
+ end
8481
+
8482
+ def subtype_to_hash
8483
+ raise 'Unable to serialize undefined type to json'
8484
+ end
8485
+
8486
+ def copy(incoming={})
8487
+ raise 'Operation not supported for undefined type'
8488
+ end
8489
+
8490
+ def to_hash
8491
+ raise 'Operation not supported for undefined type'
8492
+ end
8493
+
8494
+ end
8495
+
8331
8496
  class OrderPromotion
8332
8497
 
8333
8498
  module Types
@@ -8758,111 +8923,45 @@ module Io
8758
8923
 
8759
8924
  end
8760
8925
 
8761
- # Types of failed inventory reservation reasons
8762
- class ReservationError
8763
-
8764
- module Types
8765
- # Inventory is not available for all or subset of item quantities requested
8766
- NO_INVENTORY_RESERVATION_ERROR = 'no_inventory' unless defined?(NO_INVENTORY_RESERVATION_ERROR)
8767
- # API call to external API (ex: PFS) timed out
8768
- EXTERNAL_API_TIMEOUT_RESERVATION_ERROR = 'external_api_timeout' unless defined?(EXTERNAL_API_TIMEOUT_RESERVATION_ERROR)
8769
- # Generic reservation error
8770
- GENERIC_RESERVATION_ERROR = 'generic_reservation_error' unless defined?(GENERIC_RESERVATION_ERROR)
8771
- end
8772
-
8773
- attr_reader :code
8774
-
8775
- def initialize(incoming={})
8776
- opts = HttpClient::Helper.symbolize_keys(incoming)
8777
- HttpClient::Preconditions.require_keys(opts, [:code], 'ReservationError')
8778
- @code = HttpClient::Preconditions.assert_class('code', opts.delete(:code), String)
8779
- end
8780
-
8781
- def subtype_to_hash
8782
- raise 'Cannot serialize an instance of reservation_error directly - must use one of the specific types: no_inventory_reservation_error, external_api_timeout_reservation_error, generic_reservation_error'
8783
- end
8784
-
8785
- def to_hash
8786
- subtype_to_hash.merge(:code => @code)
8787
- end
8788
-
8789
- def ReservationError.from_json(hash)
8790
- HttpClient::Preconditions.assert_class('hash', hash, Hash)
8791
- discriminator = HttpClient::Helper.symbolize_keys(hash)[:code].to_s.strip
8792
- if discriminator.empty?
8793
- raise "Union type[reservation_error] requires a field named 'code'"
8794
- end
8795
- case discriminator
8796
- when Types::NO_INVENTORY_RESERVATION_ERROR; NoInventoryReservationError.new(hash)
8797
- when Types::EXTERNAL_API_TIMEOUT_RESERVATION_ERROR; ExternalApiTimeoutReservationError.new(hash)
8798
- when Types::GENERIC_RESERVATION_ERROR; GenericReservationError.new(hash)
8799
- else ReservationErrorUndefinedType.new(:code => discriminator)
8800
- end
8801
- end
8802
-
8803
- end
8804
-
8805
- class ReservationErrorUndefinedType < ReservationError
8806
-
8807
- attr_reader :name
8808
-
8809
- def initialize(incoming={})
8810
- super(:code => 'undefined_type')
8811
- opts = HttpClient::Helper.symbolize_keys(incoming)
8812
- @name = HttpClient::Preconditions.assert_class('name', opts.delete(:code), String)
8813
- end
8814
-
8815
- def subtype_to_hash
8816
- raise 'Unable to serialize undefined type to json'
8817
- end
8818
-
8819
- def copy(incoming={})
8820
- raise 'Operation not supported for undefined type'
8821
- end
8822
-
8823
- def to_hash
8824
- raise 'Operation not supported for undefined type'
8825
- end
8826
-
8827
- end
8828
-
8829
- class Session
8926
+ class QueryBuilderForm
8830
8927
 
8831
8928
  module Types
8832
- ORGANIZATION_SESSION = 'organization_session' unless defined?(ORGANIZATION_SESSION)
8929
+ QUERY_BUILDER_FILTER_FORM = 'filter' unless defined?(QUERY_BUILDER_FILTER_FORM)
8930
+ QUERY_BUILDER_QUERY_FORM = 'query' unless defined?(QUERY_BUILDER_QUERY_FORM)
8833
8931
  end
8834
8932
 
8835
8933
  attr_reader :discriminator
8836
8934
 
8837
8935
  def initialize(incoming={})
8838
8936
  opts = HttpClient::Helper.symbolize_keys(incoming)
8839
- HttpClient::Preconditions.require_keys(opts, [:discriminator], 'Session')
8937
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'QueryBuilderForm')
8840
8938
  @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
8841
8939
  end
8842
8940
 
8843
8941
  def subtype_to_hash
8844
- raise 'Cannot serialize an instance of session directly - must use one of the specific types: organization_session'
8942
+ raise 'Cannot serialize an instance of query_builder_form directly - must use one of the specific types: query_builder_filter_form, query_builder_query_form'
8845
8943
  end
8846
8944
 
8847
8945
  def to_hash
8848
8946
  subtype_to_hash.merge(:discriminator => @discriminator)
8849
8947
  end
8850
8948
 
8851
- def Session.from_json(hash)
8949
+ def QueryBuilderForm.from_json(hash)
8852
8950
  HttpClient::Preconditions.assert_class('hash', hash, Hash)
8853
8951
  discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
8854
8952
  if discriminator.empty?
8855
- raise "Union type[session] requires a field named 'discriminator'"
8953
+ raise "Union type[query_builder_form] requires a field named 'discriminator'"
8856
8954
  end
8857
8955
  case discriminator
8858
- when Types::ORGANIZATION_SESSION; OrganizationSession.new(hash)
8859
- else SessionUndefinedType.new(:discriminator => discriminator)
8956
+ when Types::QUERY_BUILDER_FILTER_FORM; QueryBuilderFilterForm.new(hash)
8957
+ when Types::QUERY_BUILDER_QUERY_FORM; QueryBuilderQueryForm.new(hash)
8958
+ else QueryBuilderFormUndefinedType.new(:discriminator => discriminator)
8860
8959
  end
8861
8960
  end
8862
8961
 
8863
8962
  end
8864
8963
 
8865
- class SessionUndefinedType < Session
8964
+ class QueryBuilderFormUndefinedType < QueryBuilderForm
8866
8965
 
8867
8966
  attr_reader :name
8868
8967
 
@@ -8886,43 +8985,44 @@ module Io
8886
8985
 
8887
8986
  end
8888
8987
 
8889
- class SessionAuthorization
8988
+ class QueryFilter
8890
8989
 
8891
8990
  module Types
8892
- ORGANIZATION_SESSION_AUTHORIZATION = 'organization_session_authorization' unless defined?(ORGANIZATION_SESSION_AUTHORIZATION)
8991
+ QUERY_FILTER_STRUCTURED = 'structured' unless defined?(QUERY_FILTER_STRUCTURED)
8992
+ QUERY_FILTER_UNSTRUCTURED = 'unstructured' unless defined?(QUERY_FILTER_UNSTRUCTURED)
8893
8993
  end
8894
8994
 
8895
8995
  attr_reader :discriminator
8896
8996
 
8897
8997
  def initialize(incoming={})
8898
8998
  opts = HttpClient::Helper.symbolize_keys(incoming)
8899
- HttpClient::Preconditions.require_keys(opts, [:discriminator], 'SessionAuthorization')
8900
- @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
8999
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator) || 'query_filter_structured', String)
8901
9000
  end
8902
9001
 
8903
9002
  def subtype_to_hash
8904
- raise 'Cannot serialize an instance of session_authorization directly - must use one of the specific types: organization_session_authorization'
9003
+ raise 'Cannot serialize an instance of query_filter directly - must use one of the specific types: query_filter_structured, query_filter_unstructured'
8905
9004
  end
8906
9005
 
8907
9006
  def to_hash
8908
9007
  subtype_to_hash.merge(:discriminator => @discriminator)
8909
9008
  end
8910
9009
 
8911
- def SessionAuthorization.from_json(hash)
9010
+ def QueryFilter.from_json(hash)
8912
9011
  HttpClient::Preconditions.assert_class('hash', hash, Hash)
8913
9012
  discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
8914
9013
  if discriminator.empty?
8915
- raise "Union type[session_authorization] requires a field named 'discriminator'"
9014
+ raise "Union type[query_filter] requires a field named 'discriminator'"
8916
9015
  end
8917
9016
  case discriminator
8918
- when Types::ORGANIZATION_SESSION_AUTHORIZATION; OrganizationSessionAuthorization.new(hash)
8919
- else SessionAuthorizationUndefinedType.new(:discriminator => discriminator)
9017
+ when Types::QUERY_FILTER_STRUCTURED; QueryFilterStructured.new(hash)
9018
+ when Types::QUERY_FILTER_UNSTRUCTURED; QueryFilterUnstructured.new(hash)
9019
+ else QueryFilterUndefinedType.new(:discriminator => discriminator)
8920
9020
  end
8921
9021
  end
8922
9022
 
8923
9023
  end
8924
9024
 
8925
- class SessionAuthorizationUndefinedType < SessionAuthorization
9025
+ class QueryFilterUndefinedType < QueryFilter
8926
9026
 
8927
9027
  attr_reader :name
8928
9028
 
@@ -8946,48 +9046,297 @@ module Io
8946
9046
 
8947
9047
  end
8948
9048
 
8949
- # Form for information about a client-facilitated shipment where the shipping
8950
- # label and fulfillment was not handled by Flow. For merchant-of-record and
8951
- # tracking purposes, clients doing their own shipping will need to notify Flow
8952
- # of shipped packages.
8953
- class ShippingNotificationForm
9049
+ class QueryFilterForm
8954
9050
 
8955
9051
  module Types
8956
- DETAILED_SHIPPING_NOTIFICATION_FORM = 'detailed_shipping_notification_form' unless defined?(DETAILED_SHIPPING_NOTIFICATION_FORM)
8957
- SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM = 'single_package_shipping_notification_form' unless defined?(SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM)
9052
+ QUERY_FILTER_STRUCTURED_FORM = 'structured' unless defined?(QUERY_FILTER_STRUCTURED_FORM)
9053
+ QUERY_FILTER_UNSTRUCTURED_FORM = 'unstructured' unless defined?(QUERY_FILTER_UNSTRUCTURED_FORM)
8958
9054
  end
8959
9055
 
8960
9056
  attr_reader :discriminator
8961
9057
 
8962
9058
  def initialize(incoming={})
8963
9059
  opts = HttpClient::Helper.symbolize_keys(incoming)
8964
- @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator) || 'detailed_shipping_notification_form', String)
9060
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator) || 'query_filter_structured_form', String)
8965
9061
  end
8966
9062
 
8967
9063
  def subtype_to_hash
8968
- raise 'Cannot serialize an instance of shipping_notification_form directly - must use one of the specific types: detailed_shipping_notification_form, single_package_shipping_notification_form'
9064
+ raise 'Cannot serialize an instance of query_filter_form directly - must use one of the specific types: query_filter_structured_form, query_filter_unstructured_form'
8969
9065
  end
8970
9066
 
8971
9067
  def to_hash
8972
9068
  subtype_to_hash.merge(:discriminator => @discriminator)
8973
9069
  end
8974
9070
 
8975
- def ShippingNotificationForm.from_json(hash)
9071
+ def QueryFilterForm.from_json(hash)
8976
9072
  HttpClient::Preconditions.assert_class('hash', hash, Hash)
8977
9073
  discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
8978
9074
  if discriminator.empty?
8979
- raise "Union type[shipping_notification_form] requires a field named 'discriminator'"
9075
+ raise "Union type[query_filter_form] requires a field named 'discriminator'"
8980
9076
  end
8981
9077
  case discriminator
8982
- when Types::DETAILED_SHIPPING_NOTIFICATION_FORM; DetailedShippingNotificationForm.new(hash)
8983
- when Types::SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM; SinglePackageShippingNotificationForm.new(hash)
8984
- else ShippingNotificationFormUndefinedType.new(:discriminator => discriminator)
9078
+ when Types::QUERY_FILTER_STRUCTURED_FORM; QueryFilterStructuredForm.new(hash)
9079
+ when Types::QUERY_FILTER_UNSTRUCTURED_FORM; QueryFilterUnstructuredForm.new(hash)
9080
+ else QueryFilterFormUndefinedType.new(:discriminator => discriminator)
8985
9081
  end
8986
9082
  end
8987
9083
 
8988
9084
  end
8989
9085
 
8990
- class ShippingNotificationFormUndefinedType < ShippingNotificationForm
9086
+ class QueryFilterFormUndefinedType < QueryFilterForm
9087
+
9088
+ attr_reader :name
9089
+
9090
+ def initialize(incoming={})
9091
+ super(:discriminator => 'undefined_type')
9092
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9093
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
9094
+ end
9095
+
9096
+ def subtype_to_hash
9097
+ raise 'Unable to serialize undefined type to json'
9098
+ end
9099
+
9100
+ def copy(incoming={})
9101
+ raise 'Operation not supported for undefined type'
9102
+ end
9103
+
9104
+ def to_hash
9105
+ raise 'Operation not supported for undefined type'
9106
+ end
9107
+
9108
+ end
9109
+
9110
+ # Types of failed inventory reservation reasons
9111
+ class ReservationError
9112
+
9113
+ module Types
9114
+ # Inventory is not available for all or subset of item quantities requested
9115
+ NO_INVENTORY_RESERVATION_ERROR = 'no_inventory' unless defined?(NO_INVENTORY_RESERVATION_ERROR)
9116
+ # API call to external API (ex: PFS) timed out
9117
+ EXTERNAL_API_TIMEOUT_RESERVATION_ERROR = 'external_api_timeout' unless defined?(EXTERNAL_API_TIMEOUT_RESERVATION_ERROR)
9118
+ # Generic reservation error
9119
+ GENERIC_RESERVATION_ERROR = 'generic_reservation_error' unless defined?(GENERIC_RESERVATION_ERROR)
9120
+ end
9121
+
9122
+ attr_reader :code
9123
+
9124
+ def initialize(incoming={})
9125
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9126
+ HttpClient::Preconditions.require_keys(opts, [:code], 'ReservationError')
9127
+ @code = HttpClient::Preconditions.assert_class('code', opts.delete(:code), String)
9128
+ end
9129
+
9130
+ def subtype_to_hash
9131
+ raise 'Cannot serialize an instance of reservation_error directly - must use one of the specific types: no_inventory_reservation_error, external_api_timeout_reservation_error, generic_reservation_error'
9132
+ end
9133
+
9134
+ def to_hash
9135
+ subtype_to_hash.merge(:code => @code)
9136
+ end
9137
+
9138
+ def ReservationError.from_json(hash)
9139
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
9140
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:code].to_s.strip
9141
+ if discriminator.empty?
9142
+ raise "Union type[reservation_error] requires a field named 'code'"
9143
+ end
9144
+ case discriminator
9145
+ when Types::NO_INVENTORY_RESERVATION_ERROR; NoInventoryReservationError.new(hash)
9146
+ when Types::EXTERNAL_API_TIMEOUT_RESERVATION_ERROR; ExternalApiTimeoutReservationError.new(hash)
9147
+ when Types::GENERIC_RESERVATION_ERROR; GenericReservationError.new(hash)
9148
+ else ReservationErrorUndefinedType.new(:code => discriminator)
9149
+ end
9150
+ end
9151
+
9152
+ end
9153
+
9154
+ class ReservationErrorUndefinedType < ReservationError
9155
+
9156
+ attr_reader :name
9157
+
9158
+ def initialize(incoming={})
9159
+ super(:code => 'undefined_type')
9160
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9161
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:code), String)
9162
+ end
9163
+
9164
+ def subtype_to_hash
9165
+ raise 'Unable to serialize undefined type to json'
9166
+ end
9167
+
9168
+ def copy(incoming={})
9169
+ raise 'Operation not supported for undefined type'
9170
+ end
9171
+
9172
+ def to_hash
9173
+ raise 'Operation not supported for undefined type'
9174
+ end
9175
+
9176
+ end
9177
+
9178
+ class Session
9179
+
9180
+ module Types
9181
+ ORGANIZATION_SESSION = 'organization_session' unless defined?(ORGANIZATION_SESSION)
9182
+ end
9183
+
9184
+ attr_reader :discriminator
9185
+
9186
+ def initialize(incoming={})
9187
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9188
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'Session')
9189
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
9190
+ end
9191
+
9192
+ def subtype_to_hash
9193
+ raise 'Cannot serialize an instance of session directly - must use one of the specific types: organization_session'
9194
+ end
9195
+
9196
+ def to_hash
9197
+ subtype_to_hash.merge(:discriminator => @discriminator)
9198
+ end
9199
+
9200
+ def Session.from_json(hash)
9201
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
9202
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
9203
+ if discriminator.empty?
9204
+ raise "Union type[session] requires a field named 'discriminator'"
9205
+ end
9206
+ case discriminator
9207
+ when Types::ORGANIZATION_SESSION; OrganizationSession.new(hash)
9208
+ else SessionUndefinedType.new(:discriminator => discriminator)
9209
+ end
9210
+ end
9211
+
9212
+ end
9213
+
9214
+ class SessionUndefinedType < Session
9215
+
9216
+ attr_reader :name
9217
+
9218
+ def initialize(incoming={})
9219
+ super(:discriminator => 'undefined_type')
9220
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9221
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
9222
+ end
9223
+
9224
+ def subtype_to_hash
9225
+ raise 'Unable to serialize undefined type to json'
9226
+ end
9227
+
9228
+ def copy(incoming={})
9229
+ raise 'Operation not supported for undefined type'
9230
+ end
9231
+
9232
+ def to_hash
9233
+ raise 'Operation not supported for undefined type'
9234
+ end
9235
+
9236
+ end
9237
+
9238
+ class SessionAuthorization
9239
+
9240
+ module Types
9241
+ ORGANIZATION_SESSION_AUTHORIZATION = 'organization_session_authorization' unless defined?(ORGANIZATION_SESSION_AUTHORIZATION)
9242
+ end
9243
+
9244
+ attr_reader :discriminator
9245
+
9246
+ def initialize(incoming={})
9247
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9248
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'SessionAuthorization')
9249
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
9250
+ end
9251
+
9252
+ def subtype_to_hash
9253
+ raise 'Cannot serialize an instance of session_authorization directly - must use one of the specific types: organization_session_authorization'
9254
+ end
9255
+
9256
+ def to_hash
9257
+ subtype_to_hash.merge(:discriminator => @discriminator)
9258
+ end
9259
+
9260
+ def SessionAuthorization.from_json(hash)
9261
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
9262
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
9263
+ if discriminator.empty?
9264
+ raise "Union type[session_authorization] requires a field named 'discriminator'"
9265
+ end
9266
+ case discriminator
9267
+ when Types::ORGANIZATION_SESSION_AUTHORIZATION; OrganizationSessionAuthorization.new(hash)
9268
+ else SessionAuthorizationUndefinedType.new(:discriminator => discriminator)
9269
+ end
9270
+ end
9271
+
9272
+ end
9273
+
9274
+ class SessionAuthorizationUndefinedType < SessionAuthorization
9275
+
9276
+ attr_reader :name
9277
+
9278
+ def initialize(incoming={})
9279
+ super(:discriminator => 'undefined_type')
9280
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9281
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
9282
+ end
9283
+
9284
+ def subtype_to_hash
9285
+ raise 'Unable to serialize undefined type to json'
9286
+ end
9287
+
9288
+ def copy(incoming={})
9289
+ raise 'Operation not supported for undefined type'
9290
+ end
9291
+
9292
+ def to_hash
9293
+ raise 'Operation not supported for undefined type'
9294
+ end
9295
+
9296
+ end
9297
+
9298
+ # Form for information about a client-facilitated shipment where the shipping
9299
+ # label and fulfillment was not handled by Flow. For merchant-of-record and
9300
+ # tracking purposes, clients doing their own shipping will need to notify Flow
9301
+ # of shipped packages.
9302
+ class ShippingNotificationForm
9303
+
9304
+ module Types
9305
+ DETAILED_SHIPPING_NOTIFICATION_FORM = 'detailed_shipping_notification_form' unless defined?(DETAILED_SHIPPING_NOTIFICATION_FORM)
9306
+ SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM = 'single_package_shipping_notification_form' unless defined?(SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM)
9307
+ end
9308
+
9309
+ attr_reader :discriminator
9310
+
9311
+ def initialize(incoming={})
9312
+ opts = HttpClient::Helper.symbolize_keys(incoming)
9313
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator) || 'detailed_shipping_notification_form', String)
9314
+ end
9315
+
9316
+ def subtype_to_hash
9317
+ raise 'Cannot serialize an instance of shipping_notification_form directly - must use one of the specific types: detailed_shipping_notification_form, single_package_shipping_notification_form'
9318
+ end
9319
+
9320
+ def to_hash
9321
+ subtype_to_hash.merge(:discriminator => @discriminator)
9322
+ end
9323
+
9324
+ def ShippingNotificationForm.from_json(hash)
9325
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
9326
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
9327
+ if discriminator.empty?
9328
+ raise "Union type[shipping_notification_form] requires a field named 'discriminator'"
9329
+ end
9330
+ case discriminator
9331
+ when Types::DETAILED_SHIPPING_NOTIFICATION_FORM; DetailedShippingNotificationForm.new(hash)
9332
+ when Types::SINGLE_PACKAGE_SHIPPING_NOTIFICATION_FORM; SinglePackageShippingNotificationForm.new(hash)
9333
+ else ShippingNotificationFormUndefinedType.new(:discriminator => discriminator)
9334
+ end
9335
+ end
9336
+
9337
+ end
9338
+
9339
+ class ShippingNotificationFormUndefinedType < ShippingNotificationForm
8991
9340
 
8992
9341
  attr_reader :name
8993
9342
 
@@ -9876,6 +10225,69 @@ module Io
9876
10225
 
9877
10226
  end
9878
10227
 
10228
+ class AvailableFilterFormat
10229
+
10230
+ attr_reader :value
10231
+
10232
+ def initialize(value)
10233
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
10234
+ end
10235
+
10236
+ # Returns the instance of AvailableFilterFormat for this value, creating a new instance for an unknown value
10237
+ def AvailableFilterFormat.apply(value)
10238
+ if value.instance_of?(AvailableFilterFormat)
10239
+ value
10240
+ else
10241
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
10242
+ value.nil? ? nil : (from_string(value) || AvailableFilterFormat.new(value))
10243
+ end
10244
+ end
10245
+
10246
+ # Returns the instance of AvailableFilterFormat for this value, or nil if not found
10247
+ def AvailableFilterFormat.from_string(value)
10248
+ HttpClient::Preconditions.assert_class('value', value, String)
10249
+ AvailableFilterFormat.ALL.find { |v| v.value == value }
10250
+ end
10251
+
10252
+ def AvailableFilterFormat.ALL
10253
+ @@all ||= [AvailableFilterFormat.boolean, AvailableFilterFormat.date, AvailableFilterFormat.money, AvailableFilterFormat.decimal, AvailableFilterFormat.string, AvailableFilterFormat.unit_of_length, AvailableFilterFormat.unit_of_mass]
10254
+ end
10255
+
10256
+ def AvailableFilterFormat.boolean
10257
+ @@_boolean ||= AvailableFilterFormat.new('boolean')
10258
+ end
10259
+
10260
+ # Expects date in format YYYY-MM-DD
10261
+ def AvailableFilterFormat.date
10262
+ @@_date ||= AvailableFilterFormat.new('date')
10263
+ end
10264
+
10265
+ def AvailableFilterFormat.money
10266
+ @@_money ||= AvailableFilterFormat.new('money')
10267
+ end
10268
+
10269
+ def AvailableFilterFormat.decimal
10270
+ @@_decimal ||= AvailableFilterFormat.new('decimal')
10271
+ end
10272
+
10273
+ def AvailableFilterFormat.string
10274
+ @@_string ||= AvailableFilterFormat.new('string')
10275
+ end
10276
+
10277
+ def AvailableFilterFormat.unit_of_length
10278
+ @@_unit_of_length ||= AvailableFilterFormat.new('unit_of_length')
10279
+ end
10280
+
10281
+ def AvailableFilterFormat.unit_of_mass
10282
+ @@_unit_of_mass ||= AvailableFilterFormat.new('unit_of_mass')
10283
+ end
10284
+
10285
+ def to_hash
10286
+ value
10287
+ end
10288
+
10289
+ end
10290
+
9879
10291
  class AvsCode
9880
10292
 
9881
10293
  attr_reader :value
@@ -17530,6 +17942,67 @@ module Io
17530
17942
 
17531
17943
  end
17532
17944
 
17945
+ class AvailableFilterStructured < AvailableFilter
17946
+
17947
+ attr_reader :field, :operators, :format, :valid_values, :placeholder
17948
+
17949
+ def initialize(incoming={})
17950
+ super(:discriminator => AvailableFilter::Types::AVAILABLE_FILTER_STRUCTURED)
17951
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17952
+ HttpClient::Preconditions.require_keys(opts, [:field, :operators, :format], 'AvailableFilterStructured')
17953
+ @field = HttpClient::Preconditions.assert_class('field', opts.delete(:field), String)
17954
+ @operators = HttpClient::Preconditions.assert_class('operators', opts.delete(:operators), Array).map { |v| HttpClient::Preconditions.assert_class('operators', v, String) }
17955
+ @format = (x = opts.delete(:format); x.is_a?(::Io::Flow::V0::Models::AvailableFilterFormat) ? x : ::Io::Flow::V0::Models::AvailableFilterFormat.apply(x))
17956
+ @valid_values = (x = opts.delete(:valid_values); x.nil? ? nil : HttpClient::Preconditions.assert_class('valid_values', x, Array).map { |v| HttpClient::Preconditions.assert_class('valid_values', v, String) })
17957
+ @placeholder = (x = opts.delete(:placeholder); x.nil? ? nil : HttpClient::Preconditions.assert_class('placeholder', x, String))
17958
+ end
17959
+
17960
+ def to_json
17961
+ JSON.dump(to_hash)
17962
+ end
17963
+
17964
+ def copy(incoming={})
17965
+ AvailableFilterStructured.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17966
+ end
17967
+
17968
+ def subtype_to_hash
17969
+ {
17970
+ :field => field,
17971
+ :operators => operators,
17972
+ :format => format.value,
17973
+ :valid_values => valid_values.nil? ? nil : valid_values,
17974
+ :placeholder => placeholder
17975
+ }
17976
+ end
17977
+
17978
+ end
17979
+
17980
+ class AvailableFilterUnstructured < AvailableFilter
17981
+
17982
+ attr_reader :placeholder
17983
+
17984
+ def initialize(incoming={})
17985
+ super(:discriminator => AvailableFilter::Types::AVAILABLE_FILTER_UNSTRUCTURED)
17986
+ opts = HttpClient::Helper.symbolize_keys(incoming)
17987
+ @placeholder = (x = opts.delete(:placeholder); x.nil? ? nil : HttpClient::Preconditions.assert_class('placeholder', x, String))
17988
+ end
17989
+
17990
+ def to_json
17991
+ JSON.dump(to_hash)
17992
+ end
17993
+
17994
+ def copy(incoming={})
17995
+ AvailableFilterUnstructured.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
17996
+ end
17997
+
17998
+ def subtype_to_hash
17999
+ {
18000
+ :placeholder => placeholder
18001
+ }
18002
+ end
18003
+
18004
+ end
18005
+
17533
18006
  class AvailablePromotion
17534
18007
 
17535
18008
  attr_reader :id, :shipping_configuration, :region, :promotions
@@ -30369,6 +30842,154 @@ module Io
30369
30842
 
30370
30843
  end
30371
30844
 
30845
+ class OrderNumberGeneratorDefaults
30846
+
30847
+ attr_reader :starts_with, :min_hex_length, :min_starts_with
30848
+
30849
+ def initialize(incoming={})
30850
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30851
+ @starts_with = HttpClient::Preconditions.assert_class('starts_with', (x = opts.delete(:starts_with); x.nil? ? 1001 : x), Integer)
30852
+ @min_hex_length = HttpClient::Preconditions.assert_class('min_hex_length', (x = opts.delete(:min_hex_length); x.nil? ? 6 : x), Integer)
30853
+ @min_starts_with = HttpClient::Preconditions.assert_class('min_starts_with', (x = opts.delete(:min_starts_with); x.nil? ? 1 : x), Integer)
30854
+ end
30855
+
30856
+ def to_json
30857
+ JSON.dump(to_hash)
30858
+ end
30859
+
30860
+ def copy(incoming={})
30861
+ OrderNumberGeneratorDefaults.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30862
+ end
30863
+
30864
+ def to_hash
30865
+ {
30866
+ :starts_with => starts_with,
30867
+ :min_hex_length => min_hex_length,
30868
+ :min_starts_with => min_starts_with
30869
+ }
30870
+ end
30871
+
30872
+ end
30873
+
30874
+ class OrderNumberGeneratorFixedLength
30875
+
30876
+ attr_reader :length, :padding
30877
+
30878
+ def initialize(incoming={})
30879
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30880
+ HttpClient::Preconditions.require_keys(opts, [:length, :padding], 'OrderNumberGeneratorFixedLength')
30881
+ @length = HttpClient::Preconditions.assert_class('length', opts.delete(:length), Integer)
30882
+ @padding = HttpClient::Preconditions.assert_class('padding', opts.delete(:padding), String)
30883
+ end
30884
+
30885
+ def to_json
30886
+ JSON.dump(to_hash)
30887
+ end
30888
+
30889
+ def copy(incoming={})
30890
+ OrderNumberGeneratorFixedLength.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30891
+ end
30892
+
30893
+ def to_hash
30894
+ {
30895
+ :length => length,
30896
+ :padding => padding
30897
+ }
30898
+ end
30899
+
30900
+ end
30901
+
30902
+ # Hexadecimal generator generates a random string, starting with a letter, of a
30903
+ # given length
30904
+ class OrderNumberGeneratorHexadecimal < OrderNumberGenerator
30905
+
30906
+ attr_reader :length
30907
+
30908
+ def initialize(incoming={})
30909
+ super(:discriminator => OrderNumberGenerator::Types::ORDER_NUMBER_GENERATOR_HEXADECIMAL)
30910
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30911
+ HttpClient::Preconditions.require_keys(opts, [:length], 'OrderNumberGeneratorHexadecimal')
30912
+ @length = HttpClient::Preconditions.assert_class('length', opts.delete(:length), Integer)
30913
+ end
30914
+
30915
+ def to_json
30916
+ JSON.dump(to_hash)
30917
+ end
30918
+
30919
+ def copy(incoming={})
30920
+ OrderNumberGeneratorHexadecimal.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30921
+ end
30922
+
30923
+ def subtype_to_hash
30924
+ {
30925
+ :length => length
30926
+ }
30927
+ end
30928
+
30929
+ end
30930
+
30931
+ # Generator with an optional prefix, followed by an integer and an optional
30932
+ # suffix
30933
+ class OrderNumberGeneratorPrefixSuffix < OrderNumberGenerator
30934
+
30935
+ attr_reader :prefix, :starts_with, :suffix, :fixed_length
30936
+
30937
+ def initialize(incoming={})
30938
+ super(:discriminator => OrderNumberGenerator::Types::ORDER_NUMBER_GENERATOR_PREFIX_SUFFIX)
30939
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30940
+ @prefix = (x = opts.delete(:prefix); x.nil? ? nil : HttpClient::Preconditions.assert_class('prefix', x, String))
30941
+ @starts_with = (x = opts.delete(:starts_with); x.nil? ? nil : HttpClient::Preconditions.assert_class('starts_with', x, Integer))
30942
+ @suffix = (x = opts.delete(:suffix); x.nil? ? nil : HttpClient::Preconditions.assert_class('suffix', x, String))
30943
+ @fixed_length = (x = opts.delete(:fixed_length); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderNumberGeneratorFixedLength) ? x : ::Io::Flow::V0::Models::OrderNumberGeneratorFixedLength.new(x)))
30944
+ end
30945
+
30946
+ def to_json
30947
+ JSON.dump(to_hash)
30948
+ end
30949
+
30950
+ def copy(incoming={})
30951
+ OrderNumberGeneratorPrefixSuffix.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30952
+ end
30953
+
30954
+ def subtype_to_hash
30955
+ {
30956
+ :prefix => prefix,
30957
+ :starts_with => starts_with,
30958
+ :suffix => suffix,
30959
+ :fixed_length => fixed_length.nil? ? nil : fixed_length.to_hash
30960
+ }
30961
+ end
30962
+
30963
+ end
30964
+
30965
+ # Generates an order number based on a UUID (no dashes or other formatting).
30966
+ # This is the default for Flow orders (with order number prefixed by ord-)
30967
+ class OrderNumberGeneratorUuid < OrderNumberGenerator
30968
+
30969
+ attr_reader :prefix
30970
+
30971
+ def initialize(incoming={})
30972
+ super(:discriminator => OrderNumberGenerator::Types::ORDER_NUMBER_GENERATOR_UUID)
30973
+ opts = HttpClient::Helper.symbolize_keys(incoming)
30974
+ @prefix = HttpClient::Preconditions.assert_class('prefix', (x = opts.delete(:prefix); x.nil? ? "ord-" : x), String)
30975
+ end
30976
+
30977
+ def to_json
30978
+ JSON.dump(to_hash)
30979
+ end
30980
+
30981
+ def copy(incoming={})
30982
+ OrderNumberGeneratorUuid.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
30983
+ end
30984
+
30985
+ def subtype_to_hash
30986
+ {
30987
+ :prefix => prefix
30988
+ }
30989
+ end
30990
+
30991
+ end
30992
+
30372
30993
  class OrderNumberReference
30373
30994
 
30374
30995
  attr_reader :number
@@ -33789,18 +34410,17 @@ module Io
33789
34410
 
33790
34411
  end
33791
34412
 
33792
- # Represents a typed query to indicate which items to include or exclude in a
33793
- # subcatalog
34413
+ # The query model is used to present a query to a user, containing both the raw
34414
+ # query as well as the filter representation of the query.
33794
34415
  class Query
33795
34416
 
33796
- attr_reader :id, :q, :type
34417
+ attr_reader :q, :filters
33797
34418
 
33798
34419
  def initialize(incoming={})
33799
34420
  opts = HttpClient::Helper.symbolize_keys(incoming)
33800
- HttpClient::Preconditions.require_keys(opts, [:id, :q, :type], 'Query')
33801
- @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
34421
+ HttpClient::Preconditions.require_keys(opts, [:q, :filters], 'Query')
33802
34422
  @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
33803
- @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::QueryType) ? x : ::Io::Flow::V0::Models::QueryType.apply(x))
34423
+ @filters = HttpClient::Preconditions.assert_class('filters', opts.delete(:filters), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::QueryFilter) ? x : ::Io::Flow::V0::Models::QueryFilter.from_json(x)) }
33804
34424
  end
33805
34425
 
33806
34426
  def to_json
@@ -33813,24 +34433,25 @@ module Io
33813
34433
 
33814
34434
  def to_hash
33815
34435
  {
33816
- :id => id,
33817
34436
  :q => q,
33818
- :type => type.value
34437
+ :filters => filters.map { |o| o.to_hash }
33819
34438
  }
33820
34439
  end
33821
34440
 
33822
34441
  end
33823
34442
 
33824
- # Defines a query specifying items to be included or excluded in a subcatalog
33825
- class QueryForm
34443
+ # The query builder model is used to build a query using structured filters. The
34444
+ # end result is a single 'q' string - e.g. 'category:jewelry and brand:Flow'
34445
+ class QueryBuilder
33826
34446
 
33827
- attr_reader :q, :type
34447
+ attr_reader :q, :filters, :available
33828
34448
 
33829
34449
  def initialize(incoming={})
33830
34450
  opts = HttpClient::Helper.symbolize_keys(incoming)
33831
- HttpClient::Preconditions.require_keys(opts, [:q, :type], 'QueryForm')
34451
+ HttpClient::Preconditions.require_keys(opts, [:q, :filters, :available], 'QueryBuilder')
33832
34452
  @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
33833
- @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::QueryType) ? x : ::Io::Flow::V0::Models::QueryType.apply(x))
34453
+ @filters = HttpClient::Preconditions.assert_class('filters', opts.delete(:filters), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::QueryFilter) ? x : ::Io::Flow::V0::Models::QueryFilter.from_json(x)) }
34454
+ @available = HttpClient::Preconditions.assert_class('available', opts.delete(:available), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AvailableFilter) ? x : ::Io::Flow::V0::Models::AvailableFilter.from_json(x)) }
33834
34455
  end
33835
34456
 
33836
34457
  def to_json
@@ -33838,28 +34459,28 @@ module Io
33838
34459
  end
33839
34460
 
33840
34461
  def copy(incoming={})
33841
- QueryForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34462
+ QueryBuilder.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
33842
34463
  end
33843
34464
 
33844
34465
  def to_hash
33845
34466
  {
33846
34467
  :q => q,
33847
- :type => type.value
34468
+ :filters => filters.map { |o| o.to_hash },
34469
+ :available => available.map { |o| o.to_hash }
33848
34470
  }
33849
34471
  end
33850
34472
 
33851
34473
  end
33852
34474
 
33853
- # Indicates valid and invalid queries
33854
- class QueryValidation
34475
+ class QueryBuilderFilterForm < QueryBuilderForm
33855
34476
 
33856
- attr_reader :valid, :invalid
34477
+ attr_reader :filters
33857
34478
 
33858
34479
  def initialize(incoming={})
34480
+ super(:discriminator => QueryBuilderForm::Types::QUERY_BUILDER_FILTER_FORM)
33859
34481
  opts = HttpClient::Helper.symbolize_keys(incoming)
33860
- HttpClient::Preconditions.require_keys(opts, [:valid, :invalid], 'QueryValidation')
33861
- @valid = HttpClient::Preconditions.assert_class('valid', opts.delete(:valid), Array).map { |v| HttpClient::Preconditions.assert_class('valid', v, String) }
33862
- @invalid = HttpClient::Preconditions.assert_class('invalid', opts.delete(:invalid), Array).map { |v| HttpClient::Preconditions.assert_class('invalid', v, String) }
34482
+ HttpClient::Preconditions.require_keys(opts, [:filters], 'QueryBuilderFilterForm')
34483
+ @filters = HttpClient::Preconditions.assert_class('filters', opts.delete(:filters), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::QueryFilterForm) ? x : ::Io::Flow::V0::Models::QueryFilterForm.from_json(x)) }
33863
34484
  end
33864
34485
 
33865
34486
  def to_json
@@ -33867,13 +34488,157 @@ module Io
33867
34488
  end
33868
34489
 
33869
34490
  def copy(incoming={})
33870
- QueryValidation.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34491
+ QueryBuilderFilterForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
33871
34492
  end
33872
34493
 
33873
- def to_hash
34494
+ def subtype_to_hash
33874
34495
  {
33875
- :valid => valid,
33876
- :invalid => invalid
34496
+ :filters => filters.map { |o| o.to_hash }
34497
+ }
34498
+ end
34499
+
34500
+ end
34501
+
34502
+ class QueryBuilderQueryForm < QueryBuilderForm
34503
+
34504
+ attr_reader :q
34505
+
34506
+ def initialize(incoming={})
34507
+ super(:discriminator => QueryBuilderForm::Types::QUERY_BUILDER_QUERY_FORM)
34508
+ opts = HttpClient::Helper.symbolize_keys(incoming)
34509
+ HttpClient::Preconditions.require_keys(opts, [:q], 'QueryBuilderQueryForm')
34510
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
34511
+ end
34512
+
34513
+ def to_json
34514
+ JSON.dump(to_hash)
34515
+ end
34516
+
34517
+ def copy(incoming={})
34518
+ QueryBuilderQueryForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34519
+ end
34520
+
34521
+ def subtype_to_hash
34522
+ {
34523
+ :q => q
34524
+ }
34525
+ end
34526
+
34527
+ end
34528
+
34529
+ class QueryFilterStructured < QueryFilter
34530
+
34531
+ attr_reader :q, :field, :operator, :values
34532
+
34533
+ def initialize(incoming={})
34534
+ super(:discriminator => QueryFilter::Types::QUERY_FILTER_STRUCTURED)
34535
+ opts = HttpClient::Helper.symbolize_keys(incoming)
34536
+ HttpClient::Preconditions.require_keys(opts, [:q, :field, :operator, :values], 'QueryFilterStructured')
34537
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
34538
+ @field = HttpClient::Preconditions.assert_class('field', opts.delete(:field), String)
34539
+ @operator = HttpClient::Preconditions.assert_class('operator', opts.delete(:operator), String)
34540
+ @values = HttpClient::Preconditions.assert_class('values', opts.delete(:values), Array).map { |v| HttpClient::Preconditions.assert_class('values', v, String) }
34541
+ end
34542
+
34543
+ def to_json
34544
+ JSON.dump(to_hash)
34545
+ end
34546
+
34547
+ def copy(incoming={})
34548
+ QueryFilterStructured.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34549
+ end
34550
+
34551
+ def subtype_to_hash
34552
+ {
34553
+ :q => q,
34554
+ :field => field,
34555
+ :operator => operator,
34556
+ :values => values
34557
+ }
34558
+ end
34559
+
34560
+ end
34561
+
34562
+ class QueryFilterStructuredForm < QueryFilterForm
34563
+
34564
+ attr_reader :field, :operator, :values
34565
+
34566
+ def initialize(incoming={})
34567
+ super(:discriminator => QueryFilterForm::Types::QUERY_FILTER_STRUCTURED_FORM)
34568
+ opts = HttpClient::Helper.symbolize_keys(incoming)
34569
+ HttpClient::Preconditions.require_keys(opts, [:field, :operator, :values], 'QueryFilterStructuredForm')
34570
+ @field = HttpClient::Preconditions.assert_class('field', opts.delete(:field), String)
34571
+ @operator = HttpClient::Preconditions.assert_class('operator', opts.delete(:operator), String)
34572
+ @values = HttpClient::Preconditions.assert_class('values', opts.delete(:values), Array).map { |v| HttpClient::Preconditions.assert_class('values', v, String) }
34573
+ end
34574
+
34575
+ def to_json
34576
+ JSON.dump(to_hash)
34577
+ end
34578
+
34579
+ def copy(incoming={})
34580
+ QueryFilterStructuredForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34581
+ end
34582
+
34583
+ def subtype_to_hash
34584
+ {
34585
+ :field => field,
34586
+ :operator => operator,
34587
+ :values => values
34588
+ }
34589
+ end
34590
+
34591
+ end
34592
+
34593
+ class QueryFilterUnstructured < QueryFilter
34594
+
34595
+ attr_reader :q
34596
+
34597
+ def initialize(incoming={})
34598
+ super(:discriminator => QueryFilter::Types::QUERY_FILTER_UNSTRUCTURED)
34599
+ opts = HttpClient::Helper.symbolize_keys(incoming)
34600
+ HttpClient::Preconditions.require_keys(opts, [:q], 'QueryFilterUnstructured')
34601
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
34602
+ end
34603
+
34604
+ def to_json
34605
+ JSON.dump(to_hash)
34606
+ end
34607
+
34608
+ def copy(incoming={})
34609
+ QueryFilterUnstructured.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34610
+ end
34611
+
34612
+ def subtype_to_hash
34613
+ {
34614
+ :q => q
34615
+ }
34616
+ end
34617
+
34618
+ end
34619
+
34620
+ class QueryFilterUnstructuredForm < QueryFilterForm
34621
+
34622
+ attr_reader :q
34623
+
34624
+ def initialize(incoming={})
34625
+ super(:discriminator => QueryFilterForm::Types::QUERY_FILTER_UNSTRUCTURED_FORM)
34626
+ opts = HttpClient::Helper.symbolize_keys(incoming)
34627
+ HttpClient::Preconditions.require_keys(opts, [:q], 'QueryFilterUnstructuredForm')
34628
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
34629
+ end
34630
+
34631
+ def to_json
34632
+ JSON.dump(to_hash)
34633
+ end
34634
+
34635
+ def copy(incoming={})
34636
+ QueryFilterUnstructuredForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
34637
+ end
34638
+
34639
+ def subtype_to_hash
34640
+ {
34641
+ :q => q
33877
34642
  }
33878
34643
  end
33879
34644
 
@@ -38506,6 +39271,96 @@ module Io
38506
39271
 
38507
39272
  end
38508
39273
 
39274
+ # Represents a typed query to indicate which items to include or exclude in a
39275
+ # subcatalog
39276
+ class SubcatalogQuery
39277
+
39278
+ attr_reader :id, :q, :type
39279
+
39280
+ def initialize(incoming={})
39281
+ opts = HttpClient::Helper.symbolize_keys(incoming)
39282
+ HttpClient::Preconditions.require_keys(opts, [:id, :q, :type], 'SubcatalogQuery')
39283
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
39284
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
39285
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::QueryType) ? x : ::Io::Flow::V0::Models::QueryType.apply(x))
39286
+ end
39287
+
39288
+ def to_json
39289
+ JSON.dump(to_hash)
39290
+ end
39291
+
39292
+ def copy(incoming={})
39293
+ SubcatalogQuery.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
39294
+ end
39295
+
39296
+ def to_hash
39297
+ {
39298
+ :id => id,
39299
+ :q => q,
39300
+ :type => type.value
39301
+ }
39302
+ end
39303
+
39304
+ end
39305
+
39306
+ # Defines a query specifying items to be included or excluded in a subcatalog
39307
+ class SubcatalogQueryForm
39308
+
39309
+ attr_reader :q, :type
39310
+
39311
+ def initialize(incoming={})
39312
+ opts = HttpClient::Helper.symbolize_keys(incoming)
39313
+ HttpClient::Preconditions.require_keys(opts, [:q, :type], 'SubcatalogQueryForm')
39314
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
39315
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::QueryType) ? x : ::Io::Flow::V0::Models::QueryType.apply(x))
39316
+ end
39317
+
39318
+ def to_json
39319
+ JSON.dump(to_hash)
39320
+ end
39321
+
39322
+ def copy(incoming={})
39323
+ SubcatalogQueryForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
39324
+ end
39325
+
39326
+ def to_hash
39327
+ {
39328
+ :q => q,
39329
+ :type => type.value
39330
+ }
39331
+ end
39332
+
39333
+ end
39334
+
39335
+ # Indicates valid and invalid queries
39336
+ class SubcatalogQueryValidation
39337
+
39338
+ attr_reader :valid, :invalid
39339
+
39340
+ def initialize(incoming={})
39341
+ opts = HttpClient::Helper.symbolize_keys(incoming)
39342
+ HttpClient::Preconditions.require_keys(opts, [:valid, :invalid], 'SubcatalogQueryValidation')
39343
+ @valid = HttpClient::Preconditions.assert_class('valid', opts.delete(:valid), Array).map { |v| HttpClient::Preconditions.assert_class('valid', v, String) }
39344
+ @invalid = HttpClient::Preconditions.assert_class('invalid', opts.delete(:invalid), Array).map { |v| HttpClient::Preconditions.assert_class('invalid', v, String) }
39345
+ end
39346
+
39347
+ def to_json
39348
+ JSON.dump(to_hash)
39349
+ end
39350
+
39351
+ def copy(incoming={})
39352
+ SubcatalogQueryValidation.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
39353
+ end
39354
+
39355
+ def to_hash
39356
+ {
39357
+ :valid => valid,
39358
+ :invalid => invalid
39359
+ }
39360
+ end
39361
+
39362
+ end
39363
+
38509
39364
  class SubcatalogReference < ExpandableSubcatalog
38510
39365
 
38511
39366
  attr_reader :id