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.



26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26746

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.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



26744
26745
26746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26744

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



26763
26764
26765
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26763

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

#subtype_to_hashObject



26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26767

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



26759
26760
26761
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26759

def to_json
  JSON.dump(to_hash)
end