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.



34238
34239
34240
34241
34242
34243
34244
34245
34246
34247
34248
34249
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34238

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.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def customs_description
  @customs_description
end

#event_idObject (readonly)

Returns the value of attribute event_id.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def event_id
  @event_id
end

#hs6_codeObject (readonly)

Returns the value of attribute hs6_code.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def hs6_code
  @hs6_code
end

#item_numberObject (readonly)

Returns the value of attribute item_number.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def item_number
  @item_number
end

#landed_costsObject (readonly)

Returns the value of attribute landed_costs.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def landed_costs
  @landed_costs
end

#organizationObject (readonly)

Returns the value of attribute organization.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def organization
  @organization
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



34236
34237
34238
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34236

def timestamp
  @timestamp
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



34255
34256
34257
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34255

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

#subtype_to_hashObject



34259
34260
34261
34262
34263
34264
34265
34266
34267
34268
34269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34259

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



34251
34252
34253
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34251

def to_json
  JSON.dump(to_hash)
end