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.



22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22429

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.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



22427
22428
22429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22427

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22446
22447
22448
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22446

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

#subtype_to_hashObject



22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22450

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



22442
22443
22444
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22442

def to_json
  JSON.dump(to_hash)
end