flowcommerce 0.0.9 → 0.0.10

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.
@@ -1,6 +1,6 @@
1
1
  # Generated by apidoc - http://www.apidoc.me
2
- # Service version: 0.0.11
3
- # apidoc:0.11.21 http://www.apidoc.me/flow/common/0.0.11/ruby_client
2
+ # Service version: 0.0.19
3
+ # apidoc:0.11.27 http://www.apidoc.me/flow/common/0.0.19/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -13,6 +13,8 @@ require 'rubygems'
13
13
  require 'json'
14
14
  require 'bigdecimal'
15
15
 
16
+ # The Flow Commerce REST API provides full access to the global ecommerce
17
+ # platform.
16
18
  module Io
17
19
  module Flow
18
20
  module Common
@@ -22,9 +24,10 @@ module Io
22
24
 
23
25
  module Constants
24
26
 
27
+ BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
25
28
  NAMESPACE = 'io.flow.common.v0' unless defined?(Constants::NAMESPACE)
26
- USER_AGENT = 'apidoc:0.11.21 http://www.apidoc.me/flow/common/0.0.11/ruby_client' unless defined?(Constants::USER_AGENT)
27
- VERSION = '0.0.11' unless defined?(Constants::VERSION)
29
+ USER_AGENT = 'apidoc:0.11.27 http://www.apidoc.me/flow/common/0.0.19/ruby_client' unless defined?(Constants::USER_AGENT)
30
+ VERSION = '0.0.19' unless defined?(Constants::VERSION)
28
31
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
29
32
 
30
33
  end
@@ -39,6 +42,11 @@ module Io
39
42
  HttpClient::Preconditions.check_state(url.match(/http.+/i), "URL[%s] must start with http" % url)
40
43
  end
41
44
 
45
+ # Creates an instance of the client using the base url specified in the API spec.
46
+ def Client.at_base_url(opts={})
47
+ Client.new(Constants::BASE_URL, opts)
48
+ end
49
+
42
50
  def request(path=nil)
43
51
  HttpClient::Preconditions.assert_class_or_nil('path', path, String)
44
52
  request = HttpClient::Request.new(URI.parse(@url + path.to_s)).with_header('User-Agent', Constants::USER_AGENT).with_header('X-Apidoc-Version', Constants::VERSION).with_header('X-Apidoc-Version-Major', Constants::VERSION_MAJOR)
@@ -54,17 +62,82 @@ module Io
54
62
  request
55
63
  end
56
64
 
57
-
65
+ def healthchecks
66
+ @healthchecks ||= ::Io::Flow::Common::V0::Clients::Healthchecks.new(self)
67
+ end
58
68
  end
59
69
 
60
70
  module Clients
61
71
 
72
+ class Healthchecks
62
73
 
74
+ def initialize(client)
75
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::Common::V0::Client)
76
+ end
77
+
78
+ def get_healthcheck
79
+ r = @client.request("/_internal_/healthcheck").get
80
+ ::Io::Flow::Common::V0::Models::Healthcheck.new(r)
81
+ end
82
+
83
+ end
63
84
 
64
85
  end
65
86
 
66
87
  module Models
67
88
 
89
+ class ExpandableLocation
90
+
91
+ module Types
92
+ LOCATION = 'location' unless defined?(LOCATION)
93
+ LOCATION_REFERENCE = 'location_reference' unless defined?(LOCATION_REFERENCE)
94
+ end
95
+
96
+ def initialize(incoming={})
97
+ opts = HttpClient::Helper.symbolize_keys(incoming)
98
+ HttpClient::Preconditions.require_keys(opts, [:name], 'ExpandableLocation')
99
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
100
+ end
101
+
102
+ def to_hash
103
+ subtype_to_hash.merge(:discriminator => @name)
104
+ end
105
+
106
+ def ExpandableLocation.from_json(hash)
107
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
108
+ case HttpClient::Helper.symbolize_keys(hash)[:discriminator]
109
+ when Types::LOCATION; Location.new(hash)
110
+ when Types::LOCATION_REFERENCE; LocationReference.new(hash)
111
+ else ExpandableLocationUndefinedType.new(:name => union_type_name)
112
+ end
113
+ end
114
+
115
+ end
116
+
117
+ class ExpandableLocationUndefinedType < ExpandableLocation
118
+
119
+ attr_reader :name
120
+
121
+ def initialize(incoming={})
122
+ super(:name => 'undefined_type')
123
+ opts = HttpClient::Helper.symbolize_keys(incoming)
124
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
125
+ end
126
+
127
+ def subtype_to_hash
128
+ raise 'Unable to serialize undefined type to json'
129
+ end
130
+
131
+ def copy(incoming={})
132
+ raise 'Operation not supported for undefined type'
133
+ end
134
+
135
+ def to_hash
136
+ raise 'Operation not supported for undefined type'
137
+ end
138
+
139
+ end
140
+
68
141
  class ExpandableOrganization
69
142
 
70
143
  module Types
@@ -194,22 +267,17 @@ module Io
194
267
  end
195
268
 
196
269
  def Calendar.ALL
197
- @@all ||= [Calendar.weekdays, Calendar.everyday, Calendar.unknown]
270
+ @@all ||= [Calendar.weekdays, Calendar.everyday]
198
271
  end
199
272
 
200
273
  # Mon - Fri
201
274
  def Calendar.weekdays
202
- @@_weekdays ||= Calendar.new('Weekdays')
275
+ @@_weekdays ||= Calendar.new('weekdays')
203
276
  end
204
277
 
205
278
  # 7 days per week
206
279
  def Calendar.everyday
207
- @@_everyday ||= Calendar.new('Everyday')
208
- end
209
-
210
- # We do not yet know the calendar
211
- def Calendar.unknown
212
- @@_unknown ||= Calendar.new('Unknown')
280
+ @@_everyday ||= Calendar.new('everyday')
213
281
  end
214
282
 
215
283
  def to_hash
@@ -302,6 +370,134 @@ module Io
302
370
 
303
371
  end
304
372
 
373
+ class DimensionType
374
+
375
+ attr_reader :value
376
+
377
+ def initialize(value)
378
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
379
+ end
380
+
381
+ # Returns the instance of DimensionType for this value, creating a new instance for an unknown value
382
+ def DimensionType.apply(value)
383
+ if value.instance_of?(DimensionType)
384
+ value
385
+ else
386
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
387
+ value.nil? ? nil : (from_string(value) || DimensionType.new(value))
388
+ end
389
+ end
390
+
391
+ # Returns the instance of DimensionType for this value, or nil if not found
392
+ def DimensionType.from_string(value)
393
+ HttpClient::Preconditions.assert_class('value', value, String)
394
+ DimensionType.ALL.find { |v| v.value == value }
395
+ end
396
+
397
+ def DimensionType.ALL
398
+ @@all ||= [DimensionType.product, DimensionType.package]
399
+ end
400
+
401
+ # The standalone dimensions of an item.
402
+ def DimensionType.product
403
+ @@_product ||= DimensionType.new('product')
404
+ end
405
+
406
+ # The boxed dimensions of an item.
407
+ def DimensionType.package
408
+ @@_package ||= DimensionType.new('package')
409
+ end
410
+
411
+ def to_hash
412
+ value
413
+ end
414
+
415
+ end
416
+
417
+ class ExceptionType
418
+
419
+ attr_reader :value
420
+
421
+ def initialize(value)
422
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
423
+ end
424
+
425
+ # Returns the instance of ExceptionType for this value, creating a new instance for an unknown value
426
+ def ExceptionType.apply(value)
427
+ if value.instance_of?(ExceptionType)
428
+ value
429
+ else
430
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
431
+ value.nil? ? nil : (from_string(value) || ExceptionType.new(value))
432
+ end
433
+ end
434
+
435
+ # Returns the instance of ExceptionType for this value, or nil if not found
436
+ def ExceptionType.from_string(value)
437
+ HttpClient::Preconditions.assert_class('value', value, String)
438
+ ExceptionType.ALL.find { |v| v.value == value }
439
+ end
440
+
441
+ def ExceptionType.ALL
442
+ @@all ||= [ExceptionType.open, ExceptionType.closed]
443
+ end
444
+
445
+ def ExceptionType.open
446
+ @@_open ||= ExceptionType.new('open')
447
+ end
448
+
449
+ def ExceptionType.closed
450
+ @@_closed ||= ExceptionType.new('closed')
451
+ end
452
+
453
+ def to_hash
454
+ value
455
+ end
456
+
457
+ end
458
+
459
+ class HolidayCalendar
460
+
461
+ attr_reader :value
462
+
463
+ def initialize(value)
464
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
465
+ end
466
+
467
+ # Returns the instance of HolidayCalendar for this value, creating a new instance for an unknown value
468
+ def HolidayCalendar.apply(value)
469
+ if value.instance_of?(HolidayCalendar)
470
+ value
471
+ else
472
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
473
+ value.nil? ? nil : (from_string(value) || HolidayCalendar.new(value))
474
+ end
475
+ end
476
+
477
+ # Returns the instance of HolidayCalendar for this value, or nil if not found
478
+ def HolidayCalendar.from_string(value)
479
+ HttpClient::Preconditions.assert_class('value', value, String)
480
+ HolidayCalendar.ALL.find { |v| v.value == value }
481
+ end
482
+
483
+ def HolidayCalendar.ALL
484
+ @@all ||= [HolidayCalendar.us_bank_holidays, HolidayCalendar.jewish_holidays]
485
+ end
486
+
487
+ def HolidayCalendar.us_bank_holidays
488
+ @@_us_bank_holidays ||= HolidayCalendar.new('us_bank_holidays')
489
+ end
490
+
491
+ def HolidayCalendar.jewish_holidays
492
+ @@_jewish_holidays ||= HolidayCalendar.new('jewish_holidays')
493
+ end
494
+
495
+ def to_hash
496
+ value
497
+ end
498
+
499
+ end
500
+
305
501
  class ScheduleExceptionStatus
306
502
 
307
503
  attr_reader :value
@@ -344,6 +540,48 @@ module Io
344
540
 
345
541
  end
346
542
 
543
+ class SortDirection
544
+
545
+ attr_reader :value
546
+
547
+ def initialize(value)
548
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
549
+ end
550
+
551
+ # Returns the instance of SortDirection for this value, creating a new instance for an unknown value
552
+ def SortDirection.apply(value)
553
+ if value.instance_of?(SortDirection)
554
+ value
555
+ else
556
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
557
+ value.nil? ? nil : (from_string(value) || SortDirection.new(value))
558
+ end
559
+ end
560
+
561
+ # Returns the instance of SortDirection for this value, or nil if not found
562
+ def SortDirection.from_string(value)
563
+ HttpClient::Preconditions.assert_class('value', value, String)
564
+ SortDirection.ALL.find { |v| v.value == value }
565
+ end
566
+
567
+ def SortDirection.ALL
568
+ @@all ||= [SortDirection.ascending, SortDirection.descending]
569
+ end
570
+
571
+ def SortDirection.ascending
572
+ @@_ascending ||= SortDirection.new('ascending')
573
+ end
574
+
575
+ def SortDirection.descending
576
+ @@_descending ||= SortDirection.new('descending')
577
+ end
578
+
579
+ def to_hash
580
+ value
581
+ end
582
+
583
+ end
584
+
347
585
  class UnitOfMeasurement
348
586
 
349
587
  attr_reader :value
@@ -560,43 +798,6 @@ module Io
560
798
 
561
799
  end
562
800
 
563
- # Defines structured fields for address to be used in user/form input. Either
564
- # text or the structured input needs to be present.
565
- class Address
566
-
567
- attr_reader :text, :streets, :city, :province, :postal_code, :country
568
-
569
- def initialize(incoming={})
570
- opts = HttpClient::Helper.symbolize_keys(incoming)
571
- @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
572
- @streets = (x = opts.delete(:streets); x.nil? ? nil : HttpClient::Preconditions.assert_class('streets', x, Array).map { |v| HttpClient::Preconditions.assert_class('streets', v, String) })
573
- @city = (x = opts.delete(:city); x.nil? ? nil : HttpClient::Preconditions.assert_class('city', x, String))
574
- @province = (x = opts.delete(:province); x.nil? ? nil : HttpClient::Preconditions.assert_class('province', x, String))
575
- @postal_code = (x = opts.delete(:postal_code); x.nil? ? nil : HttpClient::Preconditions.assert_class('postal_code', x, String))
576
- @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
577
- end
578
-
579
- def to_json
580
- JSON.dump(to_hash)
581
- end
582
-
583
- def copy(incoming={})
584
- Address.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
585
- end
586
-
587
- def to_hash
588
- {
589
- :text => text,
590
- :streets => streets.nil? ? nil : streets,
591
- :city => city,
592
- :province => province,
593
- :postal_code => postal_code,
594
- :country => country
595
- }
596
- end
597
-
598
- end
599
-
600
801
  # Defines structured fields for a contact person. Typically used for specifying
601
802
  # contact person for an account, shipment, or organization representative
602
803
  class Contact
@@ -659,13 +860,16 @@ module Io
659
860
 
660
861
  class Dimension
661
862
 
662
- attr_reader :value, :units
863
+ attr_reader :type, :depth, :length, :weight, :width
663
864
 
664
865
  def initialize(incoming={})
665
866
  opts = HttpClient::Helper.symbolize_keys(incoming)
666
- HttpClient::Preconditions.require_keys(opts, [:value, :units], 'Dimension')
667
- @value = HttpClient::Preconditions.assert_class('value', opts.delete(:value), Numeric)
668
- @units = (x = opts.delete(:units); x.is_a?(::Io::Flow::Common::V0::Models::UnitOfMeasurement) ? x : ::Io::Flow::Common::V0::Models::UnitOfMeasurement.apply(x))
867
+ HttpClient::Preconditions.require_keys(opts, [:type], 'Dimension')
868
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::Common::V0::Models::DimensionType) ? x : ::Io::Flow::Common::V0::Models::DimensionType.apply(x))
869
+ @depth = (x = opts.delete(:depth); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Common::V0::Models::Measurement) ? x : ::Io::Flow::Common::V0::Models::Measurement.new(x)))
870
+ @length = (x = opts.delete(:length); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Common::V0::Models::Measurement) ? x : ::Io::Flow::Common::V0::Models::Measurement.new(x)))
871
+ @weight = (x = opts.delete(:weight); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Common::V0::Models::Measurement) ? x : ::Io::Flow::Common::V0::Models::Measurement.new(x)))
872
+ @width = (x = opts.delete(:width); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Common::V0::Models::Measurement) ? x : ::Io::Flow::Common::V0::Models::Measurement.new(x)))
669
873
  end
670
874
 
671
875
  def to_json
@@ -678,8 +882,11 @@ module Io
678
882
 
679
883
  def to_hash
680
884
  {
681
- :value => value,
682
- :units => units.value
885
+ :type => type.value,
886
+ :depth => depth.nil? ? nil : depth.to_hash,
887
+ :length => length.nil? ? nil : length.to_hash,
888
+ :weight => weight.nil? ? nil : weight.to_hash,
889
+ :width => width.nil? ? nil : width.to_hash
683
890
  }
684
891
  end
685
892
 
@@ -713,6 +920,70 @@ module Io
713
920
 
714
921
  end
715
922
 
923
+ # Represents an exception to the schedule of a location.
924
+ class Exception
925
+
926
+ attr_reader :type, :datetime_range
927
+
928
+ def initialize(incoming={})
929
+ opts = HttpClient::Helper.symbolize_keys(incoming)
930
+ HttpClient::Preconditions.require_keys(opts, [:type, :datetime_range], 'Exception')
931
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::Common::V0::Models::ExceptionType) ? x : ::Io::Flow::Common::V0::Models::ExceptionType.apply(x))
932
+ @datetime_range = (x = opts.delete(:datetime_range); x.is_a?(::Io::Flow::Common::V0::Models::DatetimeRange) ? x : ::Io::Flow::Common::V0::Models::DatetimeRange.new(x))
933
+ end
934
+
935
+ def to_json
936
+ JSON.dump(to_hash)
937
+ end
938
+
939
+ def copy(incoming={})
940
+ Exception.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
941
+ end
942
+
943
+ def to_hash
944
+ {
945
+ :type => type.value,
946
+ :datetime_range => datetime_range.to_hash
947
+ }
948
+ end
949
+
950
+ end
951
+
952
+ # Some important fields related to experiences used in various APIs
953
+ class ExperienceSummary
954
+
955
+ attr_reader :id, :key, :name, :currency, :country
956
+
957
+ def initialize(incoming={})
958
+ opts = HttpClient::Helper.symbolize_keys(incoming)
959
+ HttpClient::Preconditions.require_keys(opts, [:id, :key, :name], 'ExperienceSummary')
960
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
961
+ @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
962
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
963
+ @currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
964
+ @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
965
+ end
966
+
967
+ def to_json
968
+ JSON.dump(to_hash)
969
+ end
970
+
971
+ def copy(incoming={})
972
+ ExperienceSummary.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
973
+ end
974
+
975
+ def to_hash
976
+ {
977
+ :id => id,
978
+ :key => key,
979
+ :name => name,
980
+ :currency => currency,
981
+ :country => country
982
+ }
983
+ end
984
+
985
+ end
986
+
716
987
  class Healthcheck
717
988
 
718
989
  attr_reader :status
@@ -739,17 +1010,56 @@ module Io
739
1010
 
740
1011
  end
741
1012
 
742
- # We capture the location as a string; over time we anticipate storing structued
743
- # data by parsing the location (e.g. the country) to enable things like
744
- # reporting, filtering in bulk
745
- class Location
1013
+ # Defines structured fields for address to be used in user/form input. Either
1014
+ # text or the structured input needs to be present.
1015
+ class Location < ExpandableLocation
1016
+
1017
+ attr_reader :text, :streets, :city, :province, :postal, :country, :latitude, :longitude
1018
+
1019
+ def initialize(incoming={})
1020
+ super(:name => ExpandableLocation::Types::LOCATION)
1021
+ opts = HttpClient::Helper.symbolize_keys(incoming)
1022
+ @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
1023
+ @streets = (x = opts.delete(:streets); x.nil? ? nil : HttpClient::Preconditions.assert_class('streets', x, Array).map { |v| HttpClient::Preconditions.assert_class('streets', v, String) })
1024
+ @city = (x = opts.delete(:city); x.nil? ? nil : HttpClient::Preconditions.assert_class('city', x, String))
1025
+ @province = (x = opts.delete(:province); x.nil? ? nil : HttpClient::Preconditions.assert_class('province', x, String))
1026
+ @postal = (x = opts.delete(:postal); x.nil? ? nil : HttpClient::Preconditions.assert_class('postal', x, String))
1027
+ @country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
1028
+ @latitude = (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String))
1029
+ @longitude = (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String))
1030
+ end
1031
+
1032
+ def to_json
1033
+ JSON.dump(to_hash)
1034
+ end
1035
+
1036
+ def copy(incoming={})
1037
+ Location.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
1038
+ end
1039
+
1040
+ def subtype_to_hash
1041
+ {
1042
+ :text => text,
1043
+ :streets => streets.nil? ? nil : streets,
1044
+ :city => city,
1045
+ :province => province,
1046
+ :postal => postal,
1047
+ :country => country,
1048
+ :latitude => latitude,
1049
+ :longitude => longitude
1050
+ }
1051
+ end
1052
+
1053
+ end
1054
+
1055
+ class LocationReference < ExpandableLocation
746
1056
 
747
- attr_reader :value
1057
+ attr_reader :text
748
1058
 
749
1059
  def initialize(incoming={})
1060
+ super(:name => ExpandableLocation::Types::LOCATION_REFERENCE)
750
1061
  opts = HttpClient::Helper.symbolize_keys(incoming)
751
- HttpClient::Preconditions.require_keys(opts, [:value], 'Location')
752
- @value = HttpClient::Preconditions.assert_class('value', opts.delete(:value), String)
1062
+ @text = (x = opts.delete(:text); x.nil? ? nil : HttpClient::Preconditions.assert_class('text', x, String))
753
1063
  end
754
1064
 
755
1065
  def to_json
@@ -757,12 +1067,12 @@ module Io
757
1067
  end
758
1068
 
759
1069
  def copy(incoming={})
760
- Location.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
1070
+ LocationReference.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
761
1071
  end
762
1072
 
763
- def to_hash
1073
+ def subtype_to_hash
764
1074
  {
765
- :value => value
1075
+ :text => text
766
1076
  }
767
1077
  end
768
1078
 
@@ -908,15 +1218,18 @@ module Io
908
1218
 
909
1219
  end
910
1220
 
911
- class Price
1221
+ # Represents operating calendar and holidays of a location
1222
+ class Schedule
912
1223
 
913
- attr_reader :amount, :currency
1224
+ attr_reader :calendar, :holiday, :exception, :cutoff
914
1225
 
915
1226
  def initialize(incoming={})
916
1227
  opts = HttpClient::Helper.symbolize_keys(incoming)
917
- HttpClient::Preconditions.require_keys(opts, [:amount, :currency], 'Price')
918
- @amount = HttpClient::Preconditions.assert_class('amount', opts.delete(:amount), Numeric)
919
- @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
1228
+ HttpClient::Preconditions.require_keys(opts, [:holiday, :exception], 'Schedule')
1229
+ @calendar = (x = opts.delete(:calendar); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::Common::V0::Models::Calendar) ? x : ::Io::Flow::Common::V0::Models::Calendar.apply(x)))
1230
+ @holiday = (x = opts.delete(:holiday); x.is_a?(::Io::Flow::Common::V0::Models::HolidayCalendar) ? x : ::Io::Flow::Common::V0::Models::HolidayCalendar.apply(x))
1231
+ @exception = HttpClient::Preconditions.assert_class('exception', opts.delete(:exception), Array).map { |v| (x = v; x.is_a?(::Io::Flow::Common::V0::Models::Exception) ? x : ::Io::Flow::Common::V0::Models::Exception.new(x)) }
1232
+ @cutoff = (x = opts.delete(:cutoff); x.nil? ? nil : HttpClient::Preconditions.assert_class('cutoff', x, String))
920
1233
  end
921
1234
 
922
1235
  def to_json
@@ -924,13 +1237,15 @@ module Io
924
1237
  end
925
1238
 
926
1239
  def copy(incoming={})
927
- Price.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
1240
+ Schedule.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
928
1241
  end
929
1242
 
930
1243
  def to_hash
931
1244
  {
932
- :amount => amount,
933
- :currency => currency
1245
+ :calendar => calendar.nil? ? nil : calendar.value,
1246
+ :holiday => holiday.value,
1247
+ :exception => exception.map { |o| o.to_hash },
1248
+ :cutoff => cutoff
934
1249
  }
935
1250
  end
936
1251