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



16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16923

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.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



16921
16922
16923
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16921

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



16940
16941
16942
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16940

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

#subtype_to_hashObject



16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16944

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



16936
16937
16938
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 16936

def to_json
  JSON.dump(to_hash)
end