Class: Io::Flow::V0::Models::FullyHarmonizedItemUpserted

Inherits:
Event
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

Event indicating insertion or changes to the details of a fully harmonized item. Will be triggered upon any change to the item being harmonized, its duties or taxes. If two changes occur within minutes of each other, it is possible only one upserted event will be produced, aggregating both changes.

Instance Attribute Summary collapse

Attributes inherited from Event

#discriminator

Instance Method Summary collapse

Methods inherited from Event

from_json, #to_hash

Constructor Details

#initialize(incoming = {}) ⇒ FullyHarmonizedItemUpserted

Returns a new instance of FullyHarmonizedItemUpserted.



23807
23808
23809
23810
23811
23812
23813
23814
23815
23816
23817
23818
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23807

def initialize(incoming={})
  super(:discriminator => Event::Types::FULLY_HARMONIZED_ITEM_UPSERTED)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :item_number, :customs_description, :hs6_code, :landed_costs], 'FullyHarmonizedItemUpserted')
  @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
  @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
  @item_number = HttpClient::Preconditions.assert_class('item_number', opts.delete(:item_number), String)
  @customs_description = HttpClient::Preconditions.assert_class('customs_description', opts.delete(:customs_description), String)
  @hs6_code = HttpClient::Preconditions.assert_class('hs6_code', opts.delete(:hs6_code), String)
  @landed_costs = HttpClient::Preconditions.assert_class('landed_costs', opts.delete(:landed_costs), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LaneLandedCost) ? x : ::Io::Flow::V0::Models::LaneLandedCost.new(x)) }
end

Instance Attribute Details

#customs_descriptionObject (readonly)

Returns the value of attribute customs_description.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



23805
23806
23807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23805

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



23824
23825
23826
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23824

def copy(incoming={})
  FullyHarmonizedItemUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
end

#subtype_to_hashObject



23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23828

def subtype_to_hash
  {
    :event_id => event_id,
    :timestamp => timestamp,
    :organization => organization,
    :item_number => item_number,
    :customs_description => customs_description,
    :hs6_code => hs6_code,
    :landed_costs => landed_costs.map { |o| o.to_hash }
  }
end

#to_jsonObject



23820
23821
23822
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23820

def to_json
  JSON.dump(to_hash)
end