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.



44212
44213
44214
44215
44216
44217
44218
44219
44220
44221
44222
44223
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44212

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.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



44210
44211
44212
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44210

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



44229
44230
44231
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44229

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

#subtype_to_hashObject



44233
44234
44235
44236
44237
44238
44239
44240
44241
44242
44243
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44233

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



44225
44226
44227
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 44225

def to_json
  JSON.dump(to_hash)
end