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.



20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20170

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.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



20168
20169
20170
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20168

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



20187
20188
20189
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20187

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

#subtype_to_hashObject



20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20191

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



20183
20184
20185
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20183

def to_json
  JSON.dump(to_hash)
end