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.



32439
32440
32441
32442
32443
32444
32445
32446
32447
32448
32449
32450
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32439

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.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



32437
32438
32439
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32437

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32456
32457
32458
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32456

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

#subtype_to_hashObject



32460
32461
32462
32463
32464
32465
32466
32467
32468
32469
32470
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32460

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



32452
32453
32454
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32452

def to_json
  JSON.dump(to_hash)
end