flowcommerce 0.2.68 → 0.2.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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