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.



39143
39144
39145
39146
39147
39148
39149
39150
39151
39152
39153
39154
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39143

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.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



39141
39142
39143
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39141

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



39160
39161
39162
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39160

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

#subtype_to_hashObject



39164
39165
39166
39167
39168
39169
39170
39171
39172
39173
39174
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39164

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



39156
39157
39158
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39156

def to_json
  JSON.dump(to_hash)
end