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.



24280
24281
24282
24283
24284
24285
24286
24287
24288
24289
24290
24291
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24280

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.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



24278
24279
24280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24278

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24297
24298
24299
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24297

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

#subtype_to_hashObject



24301
24302
24303
24304
24305
24306
24307
24308
24309
24310
24311
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24301

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



24293
24294
24295
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24293

def to_json
  JSON.dump(to_hash)
end