flowcommerce 0.2.1 → 0.2.2

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: 4b7bc4c483585d96f422328ead6507f6dafa0ac3
4
- data.tar.gz: c4d637b12053e3bd6ed1eb897db4a8b1672fe948
3
+ metadata.gz: cb09e284a9abf6304be123c3ab7c499ab5c1e760
4
+ data.tar.gz: 98daddee35444116ec7db554025e2a5b13d5b7e9
5
5
  SHA512:
6
- metadata.gz: 0e676ade655fea50e288c34b68db43ce519fe617074221d43ca1f0d38abb4a727a1b83370c0f5be5a931a4f612e729ea644c4cd3be323fe7240fda7b094f62f1
7
- data.tar.gz: a7faf116aa799ddc718a0fd7847669065aced7696d480607010c070c6541352a26c9553d87f2d1cca7f9de7d81a86623c8ea11ff352db7a4288b9f8a9adaf20b
6
+ metadata.gz: b710ea50341b2fd529ec1b3e183f51a888c2a2878fa5fec97ff89063a94bfac80061f8775de236003338415f81237e853c275d50e385acb7cc28807c4bdacc16
7
+ data.tar.gz: aef43b36b05640cf204b5562c0950c93a2791a3a39946ff9165a12549badc7f8ba1acbacf560f5eea12c2c51999ae6e50254e243227cf3ccfedd72983c74485e
@@ -1,6 +1,6 @@
1
1
  # Generated by apidoc - http://www.apidoc.me
2
- # Service version: 0.2.82
3
- # apidoc:0.11.75 http://www.apidoc.me/flow/api/0.2.83/ruby_client
2
+ # Service version: 0.2.87
3
+ # apidoc:0.11.75 http://www.apidoc.me/flow/api/0.2.87/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -25,8 +25,8 @@ module Io
25
25
 
26
26
  BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
27
27
  NAMESPACE = 'io.flow.v0' unless defined?(Constants::NAMESPACE)
28
- USER_AGENT = 'apidoc:0.11.75 http://www.apidoc.me/flow/api/0.2.83/ruby_client' unless defined?(Constants::USER_AGENT)
29
- VERSION = '0.2.82' unless defined?(Constants::VERSION)
28
+ USER_AGENT = 'apidoc:0.11.75 http://www.apidoc.me/flow/api/0.2.87/ruby_client' unless defined?(Constants::USER_AGENT)
29
+ VERSION = '0.2.87' unless defined?(Constants::VERSION)
30
30
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
31
31
 
32
32
  end
@@ -2067,7 +2067,8 @@ module Io
2067
2067
  :order_number => (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String)),
2068
2068
  :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
2069
2069
  :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
2070
- :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
2070
+ :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String),
2071
+ :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
2071
2072
  }.delete_if { |k, v| v.nil? }
2072
2073
  r = @client.request("/#{CGI.escape(organization)}/authorizations").with_query(query).get
2073
2074
  r.map { |x| ::Io::Flow::V0::Models::Authorization.new(x) }
@@ -2082,10 +2083,14 @@ module Io
2082
2083
  end
2083
2084
 
2084
2085
  # Returns information about a specific authorization.
2085
- def get_by_key(organization, key)
2086
+ def get_by_key(organization, key, incoming={})
2086
2087
  HttpClient::Preconditions.assert_class('organization', organization, String)
2087
2088
  HttpClient::Preconditions.assert_class('key', key, String)
2088
- r = @client.request("/#{CGI.escape(organization)}/authorizations/#{CGI.escape(key)}").get
2089
+ opts = HttpClient::Helper.symbolize_keys(incoming)
2090
+ query = {
2091
+ :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
2092
+ }.delete_if { |k, v| v.nil? }
2093
+ r = @client.request("/#{CGI.escape(organization)}/authorizations/#{CGI.escape(key)}").with_query(query).get
2089
2094
  ::Io::Flow::V0::Models::Authorization.new(r)
2090
2095
  end
2091
2096
 
@@ -4192,7 +4197,9 @@ module Io
4192
4197
  class AuthorizationForm
4193
4198
 
4194
4199
  module Types
4200
+ # Enables card payments
4195
4201
  DIRECT_AUTHORIZATION_FORM = 'direct_authorization_form' unless defined?(DIRECT_AUTHORIZATION_FORM)
4202
+ # Enables card payments with Flow as Merchant of Record
4196
4203
  MERCHANT_OF_RECORD_AUTHORIZATION_FORM = 'merchant_of_record_authorization_form' unless defined?(MERCHANT_OF_RECORD_AUTHORIZATION_FORM)
4197
4204
  end
4198
4205
 
@@ -4457,6 +4464,8 @@ module Io
4457
4464
  EXPERIENCE_UPSERTED = 'experience_upserted' unless defined?(EXPERIENCE_UPSERTED)
4458
4465
  ITEM_MARGIN_DELETED = 'item_margin_deleted' unless defined?(ITEM_MARGIN_DELETED)
4459
4466
  ITEM_MARGIN_UPSERTED = 'item_margin_upserted' unless defined?(ITEM_MARGIN_UPSERTED)
4467
+ ITEM_SALES_MARGIN_DELETED = 'item_sales_margin_deleted' unless defined?(ITEM_SALES_MARGIN_DELETED)
4468
+ ITEM_SALES_MARGIN_UPSERTED = 'item_sales_margin_upserted' unless defined?(ITEM_SALES_MARGIN_UPSERTED)
4460
4469
  LABEL_FORMAT_DELETED = 'label_format_deleted' unless defined?(LABEL_FORMAT_DELETED)
4461
4470
  LABEL_FORMAT_UPSERTED = 'label_format_upserted' unless defined?(LABEL_FORMAT_UPSERTED)
4462
4471
  ORDER_DELETED = 'order_deleted' unless defined?(ORDER_DELETED)
@@ -4509,7 +4518,7 @@ module Io
4509
4518
  end
4510
4519
 
4511
4520
  def subtype_to_hash
4512
- raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, rate_deleted, rate_upserted, experience_deleted, experience_upserted, item_margin_deleted, item_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_identifier_deleted, order_identifier_upserted, pricing_deleted, pricing_upserted, tier_upserted, tier_deleted, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, localized_item_upserted, localized_item_deleted, localized_item_snapshot, membership_upserted, membership_deleted, organization_upserted, organization_deleted, authorization_upserted, authorization_deleted, capture_upserted, card_upserted, card_deleted, refund_upserted, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, tracking_label_event_upserted'
4521
+ raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, rate_deleted, rate_upserted, experience_deleted, experience_upserted, item_margin_deleted, item_margin_upserted, item_sales_margin_deleted, item_sales_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_identifier_deleted, order_identifier_upserted, pricing_deleted, pricing_upserted, tier_upserted, tier_deleted, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, localized_item_upserted, localized_item_deleted, localized_item_snapshot, membership_upserted, membership_deleted, organization_upserted, organization_deleted, authorization_upserted, authorization_deleted, capture_upserted, card_upserted, card_deleted, refund_upserted, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, tracking_label_event_upserted'
4513
4522
  end
4514
4523
 
4515
4524
  def to_hash
@@ -4539,6 +4548,8 @@ module Io
4539
4548
  when Types::EXPERIENCE_UPSERTED; ExperienceUpserted.new(hash)
4540
4549
  when Types::ITEM_MARGIN_DELETED; ItemMarginDeleted.new(hash)
4541
4550
  when Types::ITEM_MARGIN_UPSERTED; ItemMarginUpserted.new(hash)
4551
+ when Types::ITEM_SALES_MARGIN_DELETED; ItemSalesMarginDeleted.new(hash)
4552
+ when Types::ITEM_SALES_MARGIN_UPSERTED; ItemSalesMarginUpserted.new(hash)
4542
4553
  when Types::LABEL_FORMAT_DELETED; LabelFormatDeleted.new(hash)
4543
4554
  when Types::LABEL_FORMAT_UPSERTED; LabelFormatUpserted.new(hash)
4544
4555
  when Types::ORDER_DELETED; OrderDeleted.new(hash)
@@ -4610,6 +4621,68 @@ module Io
4610
4621
 
4611
4622
  end
4612
4623
 
4624
+ class ExpandableCard
4625
+
4626
+ module Types
4627
+ CARD = 'card' unless defined?(CARD)
4628
+ CARD_REFERENCE = 'card_reference' unless defined?(CARD_REFERENCE)
4629
+ end
4630
+
4631
+ attr_reader :discriminator
4632
+
4633
+ def initialize(incoming={})
4634
+ opts = HttpClient::Helper.symbolize_keys(incoming)
4635
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'ExpandableCard')
4636
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
4637
+ end
4638
+
4639
+ def subtype_to_hash
4640
+ raise 'Cannot serialize an instance of expandable_card directly - must use one of the specific types: card, card_reference'
4641
+ end
4642
+
4643
+ def to_hash
4644
+ subtype_to_hash.merge(:discriminator => @discriminator)
4645
+ end
4646
+
4647
+ def ExpandableCard.from_json(hash)
4648
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
4649
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
4650
+ if discriminator.empty?
4651
+ raise "Union type[expandable_card] requires a field named 'discriminator'"
4652
+ end
4653
+ case discriminator
4654
+ when Types::CARD; Card.new(hash)
4655
+ when Types::CARD_REFERENCE; CardReference.new(hash)
4656
+ else ExpandableCardUndefinedType.new(:discriminator => discriminator)
4657
+ end
4658
+ end
4659
+
4660
+ end
4661
+
4662
+ class ExpandableCardUndefinedType < ExpandableCard
4663
+
4664
+ attr_reader :name
4665
+
4666
+ def initialize(incoming={})
4667
+ super(:discriminator => 'undefined_type')
4668
+ opts = HttpClient::Helper.symbolize_keys(incoming)
4669
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
4670
+ end
4671
+
4672
+ def subtype_to_hash
4673
+ raise 'Unable to serialize undefined type to json'
4674
+ end
4675
+
4676
+ def copy(incoming={})
4677
+ raise 'Operation not supported for undefined type'
4678
+ end
4679
+
4680
+ def to_hash
4681
+ raise 'Operation not supported for undefined type'
4682
+ end
4683
+
4684
+ end
4685
+
4613
4686
  # An item function can be represented with just its Id, or the entire model
4614
4687
  class ExpandableItemFunction
4615
4688
 
@@ -5894,6 +5967,47 @@ module Io
5894
5967
 
5895
5968
  end
5896
5969
 
5970
+ class AuthorizationOption
5971
+
5972
+ attr_reader :value
5973
+
5974
+ def initialize(value)
5975
+ @value = HttpClient::Preconditions.assert_class('value', value, String)
5976
+ end
5977
+
5978
+ # Returns the instance of AuthorizationOption for this value, creating a new instance for an unknown value
5979
+ def AuthorizationOption.apply(value)
5980
+ if value.instance_of?(AuthorizationOption)
5981
+ value
5982
+ else
5983
+ HttpClient::Preconditions.assert_class_or_nil('value', value, String)
5984
+ value.nil? ? nil : (from_string(value) || AuthorizationOption.new(value))
5985
+ end
5986
+ end
5987
+
5988
+ # Returns the instance of AuthorizationOption for this value, or nil if not found
5989
+ def AuthorizationOption.from_string(value)
5990
+ HttpClient::Preconditions.assert_class('value', value, String)
5991
+ AuthorizationOption.ALL.find { |v| v.value == value }
5992
+ end
5993
+
5994
+ def AuthorizationOption.ALL
5995
+ @@all ||= [AuthorizationOption.store_card]
5996
+ end
5997
+
5998
+ # If set, and the authorization is created using a one time nonce, we
5999
+ # automatically tokenize and store the card. In these cases you will want to
6000
+ # store the new card token in the authorization response (card object)
6001
+ def AuthorizationOption.store_card
6002
+ @@_store_card ||= AuthorizationOption.new('store_card')
6003
+ end
6004
+
6005
+ def to_hash
6006
+ value
6007
+ end
6008
+
6009
+ end
6010
+
5897
6011
  class AuthorizationStatus
5898
6012
 
5899
6013
  attr_reader :value
@@ -6615,7 +6729,7 @@ module Io
6615
6729
  end
6616
6730
 
6617
6731
  def EventType.ALL
6618
- @@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.rate_deleted, EventType.rate_upserted, EventType.experience_deleted, EventType.experience_upserted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.pricing_deleted, EventType.pricing_upserted, EventType.tier_upserted, EventType.tier_deleted, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.localized_item_upserted, EventType.localized_item_deleted, EventType.localized_item_snapshot, EventType.membership_upserted, EventType.membership_deleted, EventType.organization_upserted, EventType.organization_deleted, EventType.authorization_upserted, EventType.authorization_deleted, EventType.capture_upserted, EventType.card_upserted, EventType.card_deleted, EventType.refund_upserted, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.tracking_label_event_upserted]
6732
+ @@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.rate_deleted, EventType.rate_upserted, EventType.experience_deleted, EventType.experience_upserted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.item_sales_margin_deleted, EventType.item_sales_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.pricing_deleted, EventType.pricing_upserted, EventType.tier_upserted, EventType.tier_deleted, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.localized_item_upserted, EventType.localized_item_deleted, EventType.localized_item_snapshot, EventType.membership_upserted, EventType.membership_deleted, EventType.organization_upserted, EventType.organization_deleted, EventType.authorization_upserted, EventType.authorization_deleted, EventType.capture_upserted, EventType.card_upserted, EventType.card_deleted, EventType.refund_upserted, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.tracking_label_event_upserted]
6619
6733
  end
6620
6734
 
6621
6735
  def EventType.attribute_upserted
@@ -6682,6 +6796,14 @@ module Io
6682
6796
  @@_item_margin_upserted ||= EventType.new('item_margin_upserted')
6683
6797
  end
6684
6798
 
6799
+ def EventType.item_sales_margin_deleted
6800
+ @@_item_sales_margin_deleted ||= EventType.new('item_sales_margin_deleted')
6801
+ end
6802
+
6803
+ def EventType.item_sales_margin_upserted
6804
+ @@_item_sales_margin_upserted ||= EventType.new('item_sales_margin_upserted')
6805
+ end
6806
+
6685
6807
  def EventType.label_format_deleted
6686
6808
  @@_label_format_deleted ||= EventType.new('label_format_deleted')
6687
6809
  end
@@ -7466,7 +7588,7 @@ module Io
7466
7588
  end
7467
7589
 
7468
7590
  def OrderPriceDetailComponentKey.ALL
7469
- @@all ||= [OrderPriceDetailComponentKey.adjustment, OrderPriceDetailComponentKey.vat_deminimis, OrderPriceDetailComponentKey.duty_deminimis, OrderPriceDetailComponentKey.duties_item_price, OrderPriceDetailComponentKey.duties_freight, OrderPriceDetailComponentKey.duties_insurance, OrderPriceDetailComponentKey.vat_item_price, OrderPriceDetailComponentKey.vat_freight, OrderPriceDetailComponentKey.vat_insurance, OrderPriceDetailComponentKey.vat_duties_item_price, OrderPriceDetailComponentKey.vat_duties_freight, OrderPriceDetailComponentKey.vat_duties_insurance, OrderPriceDetailComponentKey.item_price, OrderPriceDetailComponentKey.rounding, OrderPriceDetailComponentKey.insurance, OrderPriceDetailComponentKey.shipping, OrderPriceDetailComponentKey.order_discount]
7591
+ @@all ||= [OrderPriceDetailComponentKey.adjustment, OrderPriceDetailComponentKey.vat_deminimis, OrderPriceDetailComponentKey.duty_deminimis, OrderPriceDetailComponentKey.duties_item_price, OrderPriceDetailComponentKey.duties_freight, OrderPriceDetailComponentKey.duties_insurance, OrderPriceDetailComponentKey.vat_item_price, OrderPriceDetailComponentKey.vat_freight, OrderPriceDetailComponentKey.vat_insurance, OrderPriceDetailComponentKey.vat_duties_item_price, OrderPriceDetailComponentKey.vat_duties_freight, OrderPriceDetailComponentKey.vat_duties_insurance, OrderPriceDetailComponentKey.item_price, OrderPriceDetailComponentKey.rounding, OrderPriceDetailComponentKey.insurance, OrderPriceDetailComponentKey.shipping, OrderPriceDetailComponentKey.order_discount, OrderPriceDetailComponentKey.subtotal_percent_sales_margin, OrderPriceDetailComponentKey.subtotal_vat_percent_sales_margin, OrderPriceDetailComponentKey.subtotal_duty_percent_sales_margin]
7470
7592
  end
7471
7593
 
7472
7594
  # A general purpose adjustment applied to the order.
@@ -7558,6 +7680,22 @@ module Io
7558
7680
  @@_order_discount ||= OrderPriceDetailComponentKey.new('order_discount')
7559
7681
  end
7560
7682
 
7683
+ # The sum of adjustments to item price, margin and rounding made due to
7684
+ # percentage sales margins.
7685
+ def OrderPriceDetailComponentKey.subtotal_percent_sales_margin
7686
+ @@_subtotal_percent_sales_margin ||= OrderPriceDetailComponentKey.new('subtotal_percent_sales_margin')
7687
+ end
7688
+
7689
+ # The sum of adjustments to VAT owed made due to percentage sales margins.
7690
+ def OrderPriceDetailComponentKey.subtotal_vat_percent_sales_margin
7691
+ @@_subtotal_vat_percent_sales_margin ||= OrderPriceDetailComponentKey.new('subtotal_vat_percent_sales_margin')
7692
+ end
7693
+
7694
+ # The sum of adjustments to duty owed made due to percentage sales margins.
7695
+ def OrderPriceDetailComponentKey.subtotal_duty_percent_sales_margin
7696
+ @@_subtotal_duty_percent_sales_margin ||= OrderPriceDetailComponentKey.new('subtotal_duty_percent_sales_margin')
7697
+ end
7698
+
7561
7699
  def to_hash
7562
7700
  value
7563
7701
  end
@@ -7752,7 +7890,7 @@ module Io
7752
7890
  end
7753
7891
 
7754
7892
  def PriceDetailComponentKey.ALL
7755
- @@all ||= [PriceDetailComponentKey.base_price, PriceDetailComponentKey.discount, PriceDetailComponentKey.currency_margin, PriceDetailComponentKey.percent_item_margin, PriceDetailComponentKey.fixed_item_margin, PriceDetailComponentKey.duties_item_price, PriceDetailComponentKey.duties_added_margin, PriceDetailComponentKey.duties_rounding, PriceDetailComponentKey.duties_deminimis, PriceDetailComponentKey.vat_item_price, PriceDetailComponentKey.vat_added_margin, PriceDetailComponentKey.vat_rounding, PriceDetailComponentKey.vat_duties_item_price, PriceDetailComponentKey.vat_duties_added_margin, PriceDetailComponentKey.vat_duties_rounding, PriceDetailComponentKey.vat_deminimis]
7893
+ @@all ||= [PriceDetailComponentKey.base_price, PriceDetailComponentKey.discount, PriceDetailComponentKey.currency_margin, PriceDetailComponentKey.percent_item_margin, PriceDetailComponentKey.fixed_item_margin, PriceDetailComponentKey.duties_item_price, PriceDetailComponentKey.duties_added_margin, PriceDetailComponentKey.duties_rounding, PriceDetailComponentKey.duties_deminimis, PriceDetailComponentKey.vat_item_price, PriceDetailComponentKey.vat_added_margin, PriceDetailComponentKey.vat_rounding, PriceDetailComponentKey.vat_duties_item_price, PriceDetailComponentKey.vat_duties_added_margin, PriceDetailComponentKey.vat_duties_rounding, PriceDetailComponentKey.vat_deminimis, PriceDetailComponentKey.item_price_percent_sales_margin, PriceDetailComponentKey.margins_percent_sales_margin, PriceDetailComponentKey.rounding_percent_sales_margin, PriceDetailComponentKey.vat_percent_sales_margin, PriceDetailComponentKey.duty_percent_sales_margin]
7756
7894
  end
7757
7895
 
7758
7896
  # The base price of the item.
@@ -7760,24 +7898,25 @@ module Io
7760
7898
  @@_base_price ||= PriceDetailComponentKey.new('base_price')
7761
7899
  end
7762
7900
 
7763
- # A discount applied to the item.
7901
+ # A discount applied to the base price of the item.
7764
7902
  def PriceDetailComponentKey.discount
7765
7903
  @@_discount ||= PriceDetailComponentKey.new('discount')
7766
7904
  end
7767
7905
 
7768
- # The amount added to the post-discount base item price due to FX markup, as
7906
+ # The amount added to the post-discount item price due to FX markup, as
7769
7907
  # configured in the organization's currency settings.
7770
7908
  def PriceDetailComponentKey.currency_margin
7771
7909
  @@_currency_margin ||= PriceDetailComponentKey.new('currency_margin')
7772
7910
  end
7773
7911
 
7774
- # The amount added to the total item price from the percent margin, if
7775
- # applicable.
7912
+ # The amount added to the post-discount item price from a percent item margin.
7913
+ # Negative amounts represent discounts.
7776
7914
  def PriceDetailComponentKey.percent_item_margin
7777
7915
  @@_percent_item_margin ||= PriceDetailComponentKey.new('percent_item_margin')
7778
7916
  end
7779
7917
 
7780
- # The amount added to the total item price from the fixed margin, if applicable.
7918
+ # The amount added to the post-discount item price from a fixed item margin.
7919
+ # Negative amounts represent discounts.
7781
7920
  def PriceDetailComponentKey.fixed_item_margin
7782
7921
  @@_fixed_item_margin ||= PriceDetailComponentKey.new('fixed_item_margin')
7783
7922
  end
@@ -7840,6 +7979,31 @@ module Io
7840
7979
  @@_vat_deminimis ||= PriceDetailComponentKey.new('vat_deminimis')
7841
7980
  end
7842
7981
 
7982
+ # An adjustment made to the item price as a result of a percent sales margin.
7983
+ def PriceDetailComponentKey.item_price_percent_sales_margin
7984
+ @@_item_price_percent_sales_margin ||= PriceDetailComponentKey.new('item_price_percent_sales_margin')
7985
+ end
7986
+
7987
+ # An adjustment made to the item margins as a result of a percent sales margin.
7988
+ def PriceDetailComponentKey.margins_percent_sales_margin
7989
+ @@_margins_percent_sales_margin ||= PriceDetailComponentKey.new('margins_percent_sales_margin')
7990
+ end
7991
+
7992
+ # An adjustment made to rounding as a result of a percent sales margin.
7993
+ def PriceDetailComponentKey.rounding_percent_sales_margin
7994
+ @@_rounding_percent_sales_margin ||= PriceDetailComponentKey.new('rounding_percent_sales_margin')
7995
+ end
7996
+
7997
+ # An adjustment made to VAT owed as a result of a percent sales margin.
7998
+ def PriceDetailComponentKey.vat_percent_sales_margin
7999
+ @@_vat_percent_sales_margin ||= PriceDetailComponentKey.new('vat_percent_sales_margin')
8000
+ end
8001
+
8002
+ # An adjustment made to duty owed as a result of a percent sales margin.
8003
+ def PriceDetailComponentKey.duty_percent_sales_margin
8004
+ @@_duty_percent_sales_margin ||= PriceDetailComponentKey.new('duty_percent_sales_margin')
8005
+ end
8006
+
7843
8007
  def to_hash
7844
8008
  value
7845
8009
  end
@@ -7871,7 +8035,7 @@ module Io
7871
8035
  end
7872
8036
 
7873
8037
  def PriceDetailKey.ALL
7874
- @@all ||= [PriceDetailKey.item_price, PriceDetailKey.margins, PriceDetailKey.vat, PriceDetailKey.duty, PriceDetailKey.rounding]
8038
+ @@all ||= [PriceDetailKey.item_price, PriceDetailKey.margins, PriceDetailKey.vat, PriceDetailKey.duty, PriceDetailKey.rounding, PriceDetailKey.adjustment]
7875
8039
  end
7876
8040
 
7877
8041
  # The details of the item price.
@@ -7899,6 +8063,12 @@ module Io
7899
8063
  @@_rounding ||= PriceDetailKey.new('rounding')
7900
8064
  end
7901
8065
 
8066
+ # The details of any price adjustments due to sales margins. A negative value
8067
+ # indicates a discount.
8068
+ def PriceDetailKey.adjustment
8069
+ @@_adjustment ||= PriceDetailKey.new('adjustment')
8070
+ end
8071
+
7902
8072
  def to_hash
7903
8073
  value
7904
8074
  end
@@ -9790,10 +9960,10 @@ module Io
9790
9960
 
9791
9961
  def initialize(incoming={})
9792
9962
  opts = HttpClient::Helper.symbolize_keys(incoming)
9793
- HttpClient::Preconditions.require_keys(opts, [:id, :key, :card, :amount, :currency, :customer, :attributes, :result, :created_at], 'Authorization')
9963
+ HttpClient::Preconditions.require_keys(opts, [:id, :key, :amount, :currency, :customer, :attributes, :result, :created_at], 'Authorization')
9794
9964
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
9795
9965
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
9796
- @card = (x = opts.delete(:card); x.is_a?(::Io::Flow::V0::Models::CardReference) ? x : ::Io::Flow::V0::Models::CardReference.new(x))
9966
+ @card = (x = opts.delete(:card); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ExpandableCard) ? x : ::Io::Flow::V0::Models::ExpandableCard.from_json(x)))
9797
9967
  @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
9798
9968
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
9799
9969
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
@@ -9817,7 +9987,7 @@ module Io
9817
9987
  {
9818
9988
  :id => id,
9819
9989
  :key => key,
9820
- :card => card.to_hash,
9990
+ :card => card.nil? ? nil : card.to_hash,
9821
9991
  :amount => amount,
9822
9992
  :currency => currency,
9823
9993
  :customer => customer.to_hash,
@@ -10287,11 +10457,12 @@ module Io
10287
10457
  # channels (like the user's browser via JavaScript) and can be used once only.
10288
10458
  # If you have a nonce you can exchange it for a permanent card token via the
10289
10459
  # operation POST /:organization/cards/nonces
10290
- class Card
10460
+ class Card < ExpandableCard
10291
10461
 
10292
10462
  attr_reader :id, :token, :type, :expiration, :iin, :last4, :name, :address
10293
10463
 
10294
10464
  def initialize(incoming={})
10465
+ super(:discriminator => ExpandableCard::Types::CARD)
10295
10466
  opts = HttpClient::Helper.symbolize_keys(incoming)
10296
10467
  HttpClient::Preconditions.require_keys(opts, [:id, :token, :type, :expiration, :iin, :last4, :name], 'Card')
10297
10468
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
@@ -10309,10 +10480,10 @@ module Io
10309
10480
  end
10310
10481
 
10311
10482
  def copy(incoming={})
10312
- Card.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
10483
+ Card.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
10313
10484
  end
10314
10485
 
10315
- def to_hash
10486
+ def subtype_to_hash
10316
10487
  {
10317
10488
  :id => id,
10318
10489
  :token => token,
@@ -10465,11 +10636,12 @@ module Io
10465
10636
 
10466
10637
  end
10467
10638
 
10468
- class CardReference
10639
+ class CardReference < ExpandableCard
10469
10640
 
10470
10641
  attr_reader :id, :token
10471
10642
 
10472
10643
  def initialize(incoming={})
10644
+ super(:discriminator => ExpandableCard::Types::CARD_REFERENCE)
10473
10645
  opts = HttpClient::Helper.symbolize_keys(incoming)
10474
10646
  HttpClient::Preconditions.require_keys(opts, [:id, :token], 'CardReference')
10475
10647
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
@@ -10481,10 +10653,10 @@ module Io
10481
10653
  end
10482
10654
 
10483
10655
  def copy(incoming={})
10484
- CardReference.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
10656
+ CardReference.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
10485
10657
  end
10486
10658
 
10487
- def to_hash
10659
+ def subtype_to_hash
10488
10660
  {
10489
10661
  :id => id,
10490
10662
  :token => token
@@ -11509,6 +11681,34 @@ module Io
11509
11681
 
11510
11682
  end
11511
11683
 
11684
+ class DeliveredDutySetting
11685
+
11686
+ attr_reader :default, :available
11687
+
11688
+ def initialize(incoming={})
11689
+ opts = HttpClient::Helper.symbolize_keys(incoming)
11690
+ HttpClient::Preconditions.require_keys(opts, [:default, :available], 'DeliveredDutySetting')
11691
+ @default = (x = opts.delete(:default); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x))
11692
+ @available = HttpClient::Preconditions.assert_class('available', opts.delete(:available), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)) }
11693
+ end
11694
+
11695
+ def to_json
11696
+ JSON.dump(to_hash)
11697
+ end
11698
+
11699
+ def copy(incoming={})
11700
+ DeliveredDutySetting.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
11701
+ end
11702
+
11703
+ def to_hash
11704
+ {
11705
+ :default => default.value,
11706
+ :available => available.map { |o| o.value }
11707
+ }
11708
+ end
11709
+
11710
+ end
11711
+
11512
11712
  # Represents a collection of items, the available delivery option tier for that
11513
11713
  # collection of items, and metadata about those options
11514
11714
  class Delivery
@@ -11965,7 +12165,7 @@ module Io
11965
12165
  # you can capture up to the amount of the authorization.
11966
12166
  class DirectAuthorizationForm < AuthorizationForm
11967
12167
 
11968
- attr_reader :token, :amount, :currency, :customer, :key, :cvv, :attributes, :destination, :ip
12168
+ attr_reader :token, :amount, :currency, :customer, :key, :cvv, :attributes, :destination, :ip, :options
11969
12169
 
11970
12170
  def initialize(incoming={})
11971
12171
  super(:discriminator => AuthorizationForm::Types::DIRECT_AUTHORIZATION_FORM)
@@ -11980,6 +12180,7 @@ module Io
11980
12180
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
11981
12181
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
11982
12182
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
12183
+ @options = (x = opts.delete(:options); x.nil? ? nil : HttpClient::Preconditions.assert_class('options', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AuthorizationOption) ? x : ::Io::Flow::V0::Models::AuthorizationOption.apply(x)) })
11983
12184
  end
11984
12185
 
11985
12186
  def to_json
@@ -12000,7 +12201,8 @@ module Io
12000
12201
  :cvv => cvv,
12001
12202
  :attributes => attributes.nil? ? nil : attributes,
12002
12203
  :destination => destination.nil? ? nil : destination.to_hash,
12003
- :ip => ip
12204
+ :ip => ip,
12205
+ :options => options.nil? ? nil : options.map { |o| o.value }
12004
12206
  }
12005
12207
  end
12006
12208
 
@@ -12159,11 +12361,11 @@ module Io
12159
12361
  # Experiences define a local experience for a given geographic region
12160
12362
  class Experience
12161
12363
 
12162
- attr_reader :id, :key, :name, :delivered_duty, :region, :country, :currency, :language, :measurement_system, :subcatalog, :position
12364
+ attr_reader :id, :key, :name, :delivered_duty, :region, :country, :currency, :language, :measurement_system, :subcatalog, :position, :settings
12163
12365
 
12164
12366
  def initialize(incoming={})
12165
12367
  opts = HttpClient::Helper.symbolize_keys(incoming)
12166
- HttpClient::Preconditions.require_keys(opts, [:id, :key, :name, :delivered_duty, :region, :country, :currency, :language, :measurement_system, :subcatalog, :position], 'Experience')
12368
+ HttpClient::Preconditions.require_keys(opts, [:id, :key, :name, :delivered_duty, :region, :country, :currency, :language, :measurement_system, :subcatalog, :position, :settings], 'Experience')
12167
12369
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
12168
12370
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
12169
12371
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
@@ -12175,6 +12377,7 @@ module Io
12175
12377
  @measurement_system = (x = opts.delete(:measurement_system); x.is_a?(::Io::Flow::V0::Models::MeasurementSystem) ? x : ::Io::Flow::V0::Models::MeasurementSystem.apply(x))
12176
12378
  @subcatalog = (x = opts.delete(:subcatalog); x.is_a?(::Io::Flow::V0::Models::SubcatalogReference) ? x : ::Io::Flow::V0::Models::SubcatalogReference.new(x))
12177
12379
  @position = HttpClient::Preconditions.assert_class('position', opts.delete(:position), Integer)
12380
+ @settings = (x = opts.delete(:settings); x.is_a?(::Io::Flow::V0::Models::ExperienceSettings) ? x : ::Io::Flow::V0::Models::ExperienceSettings.new(x))
12178
12381
  end
12179
12382
 
12180
12383
  def to_json
@@ -12197,7 +12400,8 @@ module Io
12197
12400
  :language => language,
12198
12401
  :measurement_system => measurement_system.value,
12199
12402
  :subcatalog => subcatalog.to_hash,
12200
- :position => position
12403
+ :position => position,
12404
+ :settings => settings.to_hash
12201
12405
  }
12202
12406
  end
12203
12407
 
@@ -12210,10 +12414,10 @@ module Io
12210
12414
 
12211
12415
  def initialize(incoming={})
12212
12416
  opts = HttpClient::Helper.symbolize_keys(incoming)
12213
- HttpClient::Preconditions.require_keys(opts, [:key, :name, :country, :currency, :language, :measurement_system], 'ExperienceDefaults')
12417
+ HttpClient::Preconditions.require_keys(opts, [:key, :name, :delivered_duty, :country, :currency, :language, :measurement_system], 'ExperienceDefaults')
12214
12418
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
12215
12419
  @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
12216
- @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)))
12420
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x))
12217
12421
  @country = HttpClient::Preconditions.assert_class('country', opts.delete(:country), String)
12218
12422
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
12219
12423
  @language = HttpClient::Preconditions.assert_class('language', opts.delete(:language), String)
@@ -12232,7 +12436,7 @@ module Io
12232
12436
  {
12233
12437
  :key => key,
12234
12438
  :name => name,
12235
- :delivered_duty => delivered_duty.nil? ? nil : delivered_duty.value,
12439
+ :delivered_duty => delivered_duty.value,
12236
12440
  :country => country,
12237
12441
  :currency => currency,
12238
12442
  :language => language,
@@ -12374,6 +12578,32 @@ module Io
12374
12578
 
12375
12579
  end
12376
12580
 
12581
+ class ExperienceSettings
12582
+
12583
+ attr_reader :delivered_duty
12584
+
12585
+ def initialize(incoming={})
12586
+ opts = HttpClient::Helper.symbolize_keys(incoming)
12587
+ HttpClient::Preconditions.require_keys(opts, [:delivered_duty], 'ExperienceSettings')
12588
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDutySetting) ? x : ::Io::Flow::V0::Models::DeliveredDutySetting.new(x))
12589
+ end
12590
+
12591
+ def to_json
12592
+ JSON.dump(to_hash)
12593
+ end
12594
+
12595
+ def copy(incoming={})
12596
+ ExperienceSettings.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
12597
+ end
12598
+
12599
+ def to_hash
12600
+ {
12601
+ :delivered_duty => delivered_duty.to_hash
12602
+ }
12603
+ end
12604
+
12605
+ end
12606
+
12377
12607
  # Some important fields related to experiences used in various APIs
12378
12608
  class ExperienceSummary
12379
12609
 
@@ -15218,6 +15448,86 @@ module Io
15218
15448
 
15219
15449
  end
15220
15450
 
15451
+ class ItemSalesMarginDeleted < Event
15452
+
15453
+ attr_reader :event_id, :timestamp, :item_sales_margin_id, :organization_id, :experience_key
15454
+
15455
+ def initialize(incoming={})
15456
+ super(:discriminator => Event::Types::ITEM_SALES_MARGIN_DELETED)
15457
+ opts = HttpClient::Helper.symbolize_keys(incoming)
15458
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :item_sales_margin_id, :organization_id, :experience_key], 'ItemSalesMarginDeleted')
15459
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
15460
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
15461
+ @item_sales_margin_id = HttpClient::Preconditions.assert_class('item_sales_margin_id', opts.delete(:item_sales_margin_id), String)
15462
+ @organization_id = HttpClient::Preconditions.assert_class('organization_id', opts.delete(:organization_id), String)
15463
+ @experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
15464
+ end
15465
+
15466
+ def to_json
15467
+ JSON.dump(to_hash)
15468
+ end
15469
+
15470
+ def copy(incoming={})
15471
+ ItemSalesMarginDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
15472
+ end
15473
+
15474
+ def subtype_to_hash
15475
+ {
15476
+ :event_id => event_id,
15477
+ :timestamp => timestamp,
15478
+ :item_sales_margin_id => item_sales_margin_id,
15479
+ :organization_id => organization_id,
15480
+ :experience_key => experience_key
15481
+ }
15482
+ end
15483
+
15484
+ end
15485
+
15486
+ class ItemSalesMarginUpserted < Event
15487
+
15488
+ attr_reader :event_id, :timestamp, :item_sales_margin_id, :organization_id, :experience_key, :name, :q, :fixed, :percent, :position
15489
+
15490
+ def initialize(incoming={})
15491
+ super(:discriminator => Event::Types::ITEM_SALES_MARGIN_UPSERTED)
15492
+ opts = HttpClient::Helper.symbolize_keys(incoming)
15493
+ HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :item_sales_margin_id, :organization_id, :experience_key, :name, :q, :fixed, :percent, :position], 'ItemSalesMarginUpserted')
15494
+ @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
15495
+ @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
15496
+ @item_sales_margin_id = HttpClient::Preconditions.assert_class('item_sales_margin_id', opts.delete(:item_sales_margin_id), String)
15497
+ @organization_id = HttpClient::Preconditions.assert_class('organization_id', opts.delete(:organization_id), String)
15498
+ @experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
15499
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:name), String)
15500
+ @q = HttpClient::Preconditions.assert_class('q', opts.delete(:q), String)
15501
+ @fixed = HttpClient::Preconditions.assert_class('fixed', HttpClient::Helper.to_big_decimal(opts.delete(:fixed)), BigDecimal)
15502
+ @percent = HttpClient::Preconditions.assert_class('percent', HttpClient::Helper.to_big_decimal(opts.delete(:percent)), BigDecimal)
15503
+ @position = HttpClient::Preconditions.assert_class('position', opts.delete(:position), Integer)
15504
+ end
15505
+
15506
+ def to_json
15507
+ JSON.dump(to_hash)
15508
+ end
15509
+
15510
+ def copy(incoming={})
15511
+ ItemSalesMarginUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
15512
+ end
15513
+
15514
+ def subtype_to_hash
15515
+ {
15516
+ :event_id => event_id,
15517
+ :timestamp => timestamp,
15518
+ :item_sales_margin_id => item_sales_margin_id,
15519
+ :organization_id => organization_id,
15520
+ :experience_key => experience_key,
15521
+ :name => name,
15522
+ :q => q,
15523
+ :fixed => fixed,
15524
+ :percent => percent,
15525
+ :position => position
15526
+ }
15527
+ end
15528
+
15529
+ end
15530
+
15221
15531
  # Statistics covering product catalog item information, including total catalog
15222
15532
  # item count, number of distinct categories, etc.
15223
15533
  class ItemStatistics
@@ -15503,8 +15813,8 @@ module Io
15503
15813
  HttpClient::Preconditions.require_keys(opts, [:item_number, :quantity, :price, :total], 'Line')
15504
15814
  @item_number = HttpClient::Preconditions.assert_class('item_number', opts.delete(:item_number), String)
15505
15815
  @quantity = HttpClient::Preconditions.assert_class('quantity', opts.delete(:quantity), Integer)
15506
- @price = (x = opts.delete(:price); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
15507
- @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
15816
+ @price = (x = opts.delete(:price); x.is_a?(::Io::Flow::V0::Models::PriceWithBase) ? x : ::Io::Flow::V0::Models::PriceWithBase.new(x))
15817
+ @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::PriceWithBase) ? x : ::Io::Flow::V0::Models::PriceWithBase.new(x))
15508
15818
  end
15509
15819
 
15510
15820
  def to_json
@@ -15642,13 +15952,15 @@ module Io
15642
15952
 
15643
15953
  class LocalPriceDetails
15644
15954
 
15645
- attr_reader :base, :local
15955
+ attr_reader :base, :local, :discount, :local_before_discount
15646
15956
 
15647
15957
  def initialize(incoming={})
15648
15958
  opts = HttpClient::Helper.symbolize_keys(incoming)
15649
15959
  HttpClient::Preconditions.require_keys(opts, [:base, :local], 'LocalPriceDetails')
15650
15960
  @base = (x = opts.delete(:base); x.is_a?(::Io::Flow::V0::Models::PriceDetails) ? x : ::Io::Flow::V0::Models::PriceDetails.new(x))
15651
15961
  @local = (x = opts.delete(:local); x.is_a?(::Io::Flow::V0::Models::PriceDetails) ? x : ::Io::Flow::V0::Models::PriceDetails.new(x))
15962
+ @discount = (x = opts.delete(:discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PriceDetail) ? x : ::Io::Flow::V0::Models::PriceDetail.new(x)))
15963
+ @local_before_discount = (x = opts.delete(:local_before_discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PriceDetail) ? x : ::Io::Flow::V0::Models::PriceDetail.new(x)))
15652
15964
  end
15653
15965
 
15654
15966
  def to_json
@@ -15662,7 +15974,9 @@ module Io
15662
15974
  def to_hash
15663
15975
  {
15664
15976
  :base => base.to_hash,
15665
- :local => local.to_hash
15977
+ :local => local.to_hash,
15978
+ :discount => discount.nil? ? nil : discount.to_hash,
15979
+ :local_before_discount => local_before_discount.nil? ? nil : local_before_discount.to_hash
15666
15980
  }
15667
15981
  end
15668
15982
 
@@ -16363,7 +16677,7 @@ module Io
16363
16677
  # you can capture up to the amount of the authorization
16364
16678
  class MerchantOfRecordAuthorizationForm < AuthorizationForm
16365
16679
 
16366
- attr_reader :token, :order_number, :key, :cvv, :attributes, :ip
16680
+ attr_reader :token, :order_number, :key, :cvv, :attributes, :ip, :options
16367
16681
 
16368
16682
  def initialize(incoming={})
16369
16683
  super(:discriminator => AuthorizationForm::Types::MERCHANT_OF_RECORD_AUTHORIZATION_FORM)
@@ -16375,6 +16689,7 @@ module Io
16375
16689
  @cvv = (x = opts.delete(:cvv); x.nil? ? nil : HttpClient::Preconditions.assert_class('cvv', x, String))
16376
16690
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
16377
16691
  @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
16692
+ @options = (x = opts.delete(:options); x.nil? ? nil : HttpClient::Preconditions.assert_class('options', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AuthorizationOption) ? x : ::Io::Flow::V0::Models::AuthorizationOption.apply(x)) })
16378
16693
  end
16379
16694
 
16380
16695
  def to_json
@@ -16392,7 +16707,8 @@ module Io
16392
16707
  :key => key,
16393
16708
  :cvv => cvv,
16394
16709
  :attributes => attributes.nil? ? nil : attributes,
16395
- :ip => ip
16710
+ :ip => ip,
16711
+ :options => options.nil? ? nil : options.map { |o| o.value }
16396
16712
  }
16397
16713
  end
16398
16714
 
@@ -16648,14 +16964,15 @@ module Io
16648
16964
  # payment authorization for an order.
16649
16965
  class Order
16650
16966
 
16651
- attr_reader :id, :number, :customer, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes, :submitted_at, :lines, :identifiers, :promotions
16967
+ attr_reader :id, :number, :customer, :delivered_duty, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes, :submitted_at, :lines, :identifiers, :promotions
16652
16968
 
16653
16969
  def initialize(incoming={})
16654
16970
  opts = HttpClient::Helper.symbolize_keys(incoming)
16655
- HttpClient::Preconditions.require_keys(opts, [:id, :number, :customer, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes], 'Order')
16971
+ HttpClient::Preconditions.require_keys(opts, [:id, :number, :customer, :delivered_duty, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes], 'Order')
16656
16972
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
16657
16973
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
16658
16974
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
16975
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x))
16659
16976
  @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x))
16660
16977
  @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime)
16661
16978
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LocalizedLineItem) ? x : ::Io::Flow::V0::Models::LocalizedLineItem.new(x)) }
@@ -16683,6 +17000,7 @@ module Io
16683
17000
  :id => id,
16684
17001
  :number => number,
16685
17002
  :customer => customer.to_hash,
17003
+ :delivered_duty => delivered_duty.value,
16686
17004
  :destination => destination.to_hash,
16687
17005
  :expires_at => expires_at,
16688
17006
  :items => items.map { |o| o.to_hash },
@@ -16923,13 +17241,14 @@ module Io
16923
17241
  # pricing and delivery options for destination and items/quantities specified
16924
17242
  class OrderForm
16925
17243
 
16926
- attr_reader :customer, :items, :number, :destination, :discount, :attributes
17244
+ attr_reader :customer, :items, :delivered_duty, :number, :destination, :discount, :attributes
16927
17245
 
16928
17246
  def initialize(incoming={})
16929
17247
  opts = HttpClient::Helper.symbolize_keys(incoming)
16930
17248
  HttpClient::Preconditions.require_keys(opts, [:items], 'OrderForm')
16931
17249
  @customer = (x = opts.delete(:customer); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x)))
16932
17250
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItemForm) ? x : ::Io::Flow::V0::Models::LineItemForm.new(x)) }
17251
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)))
16933
17252
  @number = (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, String))
16934
17253
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x)))
16935
17254
  @discount = (x = opts.delete(:discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
@@ -16948,6 +17267,7 @@ module Io
16948
17267
  {
16949
17268
  :customer => customer.nil? ? nil : customer.to_hash,
16950
17269
  :items => items.map { |o| o.to_hash },
17270
+ :delivered_duty => delivered_duty.nil? ? nil : delivered_duty.value,
16951
17271
  :number => number,
16952
17272
  :destination => destination.nil? ? nil : destination.to_hash,
16953
17273
  :discount => discount.nil? ? nil : discount.to_hash,
@@ -17221,13 +17541,14 @@ module Io
17221
17541
  # pricing and delivery options for destination and items/quantities specified.
17222
17542
  class OrderPutForm
17223
17543
 
17224
- attr_reader :items, :customer, :selections, :destination, :discount, :attributes
17544
+ attr_reader :items, :customer, :delivered_duty, :selections, :destination, :discount, :attributes
17225
17545
 
17226
17546
  def initialize(incoming={})
17227
17547
  opts = HttpClient::Helper.symbolize_keys(incoming)
17228
17548
  HttpClient::Preconditions.require_keys(opts, [:items], 'OrderPutForm')
17229
17549
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItemForm) ? x : ::Io::Flow::V0::Models::LineItemForm.new(x)) }
17230
17550
  @customer = (x = opts.delete(:customer); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x)))
17551
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)))
17231
17552
  @selections = (x = opts.delete(:selections); x.nil? ? nil : HttpClient::Preconditions.assert_class('selections', x, Array).map { |v| HttpClient::Preconditions.assert_class('selections', v, String) })
17232
17553
  @destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x)))
17233
17554
  @discount = (x = opts.delete(:discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
@@ -17246,6 +17567,7 @@ module Io
17246
17567
  {
17247
17568
  :items => items.map { |o| o.to_hash },
17248
17569
  :customer => customer.nil? ? nil : customer.to_hash,
17570
+ :delivered_duty => delivered_duty.nil? ? nil : delivered_duty.value,
17249
17571
  :selections => selections.nil? ? nil : selections,
17250
17572
  :destination => destination.nil? ? nil : destination.to_hash,
17251
17573
  :discount => discount.nil? ? nil : discount.to_hash,
@@ -17285,7 +17607,7 @@ module Io
17285
17607
 
17286
17608
  class OrderUpserted < Event
17287
17609
 
17288
- attr_reader :event_id, :timestamp, :organization, :number, :environment, :experience_id, :expires_at, :customer, :selections, :items, :destination, :deliveries, :prices, :discount, :total, :created_at, :updated_at, :submitted_at, :lines, :attributes
17610
+ attr_reader :event_id, :timestamp, :organization, :number, :environment, :experience_id, :expires_at, :customer, :selections, :items, :destination, :deliveries, :prices, :discount, :delivered_duty, :total, :created_at, :updated_at, :submitted_at, :lines, :attributes
17289
17611
 
17290
17612
  def initialize(incoming={})
17291
17613
  super(:discriminator => Event::Types::ORDER_UPSERTED)
@@ -17305,6 +17627,7 @@ module Io
17305
17627
  @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| HttpClient::Preconditions.assert_class('deliveries', HttpClient::Helper.to_object(v), Hash) }
17306
17628
  @prices = HttpClient::Preconditions.assert_class('prices', opts.delete(:prices), Array).map { |v| HttpClient::Preconditions.assert_class('prices', HttpClient::Helper.to_object(v), Hash) }
17307
17629
  @discount = (x = opts.delete(:discount); x.nil? ? nil : HttpClient::Preconditions.assert_class('discount', HttpClient::Helper.to_object(x), Hash))
17630
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : HttpClient::Preconditions.assert_class('delivered_duty', x, String))
17308
17631
  @total = HttpClient::Preconditions.assert_class('total', HttpClient::Helper.to_object(opts.delete(:total)), Hash)
17309
17632
  @created_at = (x = opts.delete(:created_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
17310
17633
  @updated_at = (x = opts.delete(:updated_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('updated_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
@@ -17337,6 +17660,7 @@ module Io
17337
17660
  :deliveries => deliveries,
17338
17661
  :prices => prices,
17339
17662
  :discount => discount,
17663
+ :delivered_duty => delivered_duty,
17340
17664
  :total => total,
17341
17665
  :created_at => created_at,
17342
17666
  :updated_at => updated_at,
@@ -17888,7 +18212,7 @@ module Io
17888
18212
 
17889
18213
  class OrganizationUpserted < Event
17890
18214
 
17891
- attr_reader :event_id, :timestamp, :id, :name, :environment, :currencies, :parent_id, :default_base_currency
18215
+ attr_reader :event_id, :timestamp, :id, :name, :environment, :currencies, :parent_id, :default_base_currency, :default_country
17892
18216
 
17893
18217
  def initialize(incoming={})
17894
18218
  super(:discriminator => Event::Types::ORGANIZATION_UPSERTED)
@@ -17902,6 +18226,7 @@ module Io
17902
18226
  @currencies = HttpClient::Preconditions.assert_class('currencies', opts.delete(:currencies), Array).map { |v| HttpClient::Preconditions.assert_class('currencies', v, String) }
17903
18227
  @parent_id = (x = opts.delete(:parent_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('parent_id', x, String))
17904
18228
  @default_base_currency = (x = opts.delete(:default_base_currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('default_base_currency', x, String))
18229
+ @default_country = (x = opts.delete(:default_country); x.nil? ? nil : HttpClient::Preconditions.assert_class('default_country', x, String))
17905
18230
  end
17906
18231
 
17907
18232
  def to_json
@@ -17921,7 +18246,8 @@ module Io
17921
18246
  :environment => environment,
17922
18247
  :currencies => currencies,
17923
18248
  :parent_id => parent_id,
17924
- :default_base_currency => default_base_currency
18249
+ :default_base_currency => default_base_currency,
18250
+ :default_country => default_country
17925
18251
  }
17926
18252
  end
17927
18253
 
@@ -18433,7 +18759,7 @@ module Io
18433
18759
  # Detailed information for the pricing of a given item within an experience.
18434
18760
  class PriceDetails
18435
18761
 
18436
- attr_reader :currency, :item_price, :margins, :vat, :duty, :rounding, :price, :total
18762
+ attr_reader :currency, :item_price, :margins, :vat, :duty, :rounding, :price, :total, :adjustment
18437
18763
 
18438
18764
  def initialize(incoming={})
18439
18765
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -18446,6 +18772,7 @@ module Io
18446
18772
  @rounding = (x = opts.delete(:rounding); x.is_a?(::Io::Flow::V0::Models::PriceDetail) ? x : ::Io::Flow::V0::Models::PriceDetail.new(x))
18447
18773
  @price = (x = opts.delete(:price); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
18448
18774
  @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
18775
+ @adjustment = (x = opts.delete(:adjustment); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PriceDetail) ? x : ::Io::Flow::V0::Models::PriceDetail.new(x)))
18449
18776
  end
18450
18777
 
18451
18778
  def to_json
@@ -18465,7 +18792,8 @@ module Io
18465
18792
  :duty => duty.to_hash,
18466
18793
  :rounding => rounding.to_hash,
18467
18794
  :price => price.to_hash,
18468
- :total => total.to_hash
18795
+ :total => total.to_hash,
18796
+ :adjustment => adjustment.nil? ? nil : adjustment.to_hash
18469
18797
  }
18470
18798
  end
18471
18799
 
@@ -18473,7 +18801,7 @@ module Io
18473
18801
 
18474
18802
  class PriceEquation
18475
18803
 
18476
- attr_reader :contracted_rate, :rate, :pricing, :base_price, :discount, :fixed_margin, :percent_margin, :insurance, :freight, :duty, :tax
18804
+ attr_reader :contracted_rate, :rate, :pricing, :base_price, :discount, :fixed_margin, :percent_margin, :insurance, :freight, :duty, :tax, :percent_sales_margin
18477
18805
 
18478
18806
  def initialize(incoming={})
18479
18807
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -18489,6 +18817,7 @@ module Io
18489
18817
  @freight = HttpClient::Preconditions.assert_class('freight', HttpClient::Helper.to_big_decimal(opts.delete(:freight)), BigDecimal)
18490
18818
  @duty = (x = opts.delete(:duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Duty) ? x : ::Io::Flow::V0::Models::Duty.new(x)))
18491
18819
  @tax = (x = opts.delete(:tax); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Tax) ? x : ::Io::Flow::V0::Models::Tax.new(x)))
18820
+ @percent_sales_margin = HttpClient::Preconditions.assert_class('percent_sales_margin', HttpClient::Helper.to_big_decimal((x = opts.delete(:percent_sales_margin); x.nil? ? 0 : x)), BigDecimal)
18492
18821
  end
18493
18822
 
18494
18823
  def to_json
@@ -18511,7 +18840,8 @@ module Io
18511
18840
  :insurance => insurance,
18512
18841
  :freight => freight,
18513
18842
  :duty => duty.nil? ? nil : duty.to_hash,
18514
- :tax => tax.nil? ? nil : tax.to_hash
18843
+ :tax => tax.nil? ? nil : tax.to_hash,
18844
+ :percent_sales_margin => percent_sales_margin
18515
18845
  }
18516
18846
  end
18517
18847
 
@@ -18870,7 +19200,7 @@ module Io
18870
19200
  # that delivery
18871
19201
  class Quote
18872
19202
 
18873
- attr_reader :id, :destination, :deliveries, :selections
19203
+ attr_reader :id, :destination, :deliveries, :selections, :delivered_duty
18874
19204
 
18875
19205
  def initialize(incoming={})
18876
19206
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -18879,6 +19209,7 @@ module Io
18879
19209
  @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
18880
19210
  @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Delivery) ? x : ::Io::Flow::V0::Models::Delivery.new(x)) }
18881
19211
  @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::DeliveryOptionReference) ? x : ::Io::Flow::V0::Models::DeliveryOptionReference.new(x)) }
19212
+ @delivered_duty = (x = (x = opts.delete(:delivered_duty); x.nil? ? "paid" : x); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x))
18882
19213
  end
18883
19214
 
18884
19215
  def to_json
@@ -18894,7 +19225,8 @@ module Io
18894
19225
  :id => id,
18895
19226
  :destination => destination.to_hash,
18896
19227
  :deliveries => deliveries.map { |o| o.to_hash },
18897
- :selections => selections.map { |o| o.to_hash }
19228
+ :selections => selections.map { |o| o.to_hash },
19229
+ :delivered_duty => delivered_duty.value
18898
19230
  }
18899
19231
  end
18900
19232
 
@@ -18932,7 +19264,7 @@ module Io
18932
19264
 
18933
19265
  class QuoteForm
18934
19266
 
18935
- attr_reader :destination, :experience, :items
19267
+ attr_reader :destination, :experience, :items, :delivered_duty
18936
19268
 
18937
19269
  def initialize(incoming={})
18938
19270
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -18940,6 +19272,7 @@ module Io
18940
19272
  @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::ShippingAddress) ? x : ::Io::Flow::V0::Models::ShippingAddress.new(x))
18941
19273
  @experience = HttpClient::Preconditions.assert_class('experience', opts.delete(:experience), String)
18942
19274
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LineItemForm) ? x : ::Io::Flow::V0::Models::LineItemForm.new(x)) }
19275
+ @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)))
18943
19276
  end
18944
19277
 
18945
19278
  def to_json
@@ -18954,7 +19287,8 @@ module Io
18954
19287
  {
18955
19288
  :destination => destination.to_hash,
18956
19289
  :experience => experience,
18957
- :items => items.map { |o| o.to_hash }
19290
+ :items => items.map { |o| o.to_hash },
19291
+ :delivered_duty => delivered_duty.nil? ? nil : delivered_duty.value
18958
19292
  }
18959
19293
  end
18960
19294
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowcommerce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flow Commerce, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-23 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json