Module: Peddler::Types::FulfillmentInbound20240320

Defined in:
lib/peddler/types/fulfillment_inbound_2024_03_20/box.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/item.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/dates.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/error.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/quote.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/pallet.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/region.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/weight.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/window.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/address.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/carrier.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/currency.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipment.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/tax_rate.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/box_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/incentive.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/dimensions.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/error_list.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/item_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/pagination.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/tax_details.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/inbound_plan.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/pallet_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/weight_range.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/window_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/address_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/msku_quantity.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/packing_option.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipment_source.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/appointment_slot.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/box_requirements.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/box_update_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/msku_prep_detail.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/placement_option.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/prep_instruction.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipment_summary.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/tracking_details.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/compliance_detail.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/document_download.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/operation_problem.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/requested_updates.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/spd_tracking_item.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/carrier_appointment.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/contact_information.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/freight_information.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/ltl_tracking_detail.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/spd_tracking_detail.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/inbound_plan_summary.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipment_destination.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/appointment_slot_time.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/packing_configuration.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipping_requirements.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/transportation_option.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/content_update_preview.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/custom_placement_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/delivery_window_option.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/msku_prep_detail_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/package_grouping_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/packing_option_summary.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipping_configuration.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/tracking_details_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/spd_tracking_item_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/inbound_operation_status.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/placement_option_summary.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/selected_delivery_window.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/set_prep_details_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/transportation_selection.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/ltl_tracking_detail_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/set_prep_details_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/spd_tracking_detail_input.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_prep_details_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/create_inbound_plan_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_inbound_plans_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/cancel_inbound_plan_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/create_inbound_plan_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_shipment_boxes_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_shipment_items_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_shipment_name_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_packing_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/self_ship_appointment_details.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_shipment_pallets_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_packing_option_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_placement_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/set_packing_information_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_inbound_plan_boxes_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_inbound_plan_items_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/set_packing_information_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_inbound_plan_name_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_placement_option_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_packing_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_packing_group_boxes_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_packing_group_items_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_placement_options_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_inbound_plan_pallets_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_placement_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/cancel_self_ship_appointment_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_transportation_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/cancel_self_ship_appointment_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_delivery_window_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_item_compliance_details_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/shipment_transportation_configuration.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_transportation_options_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/create_marketplace_item_labels_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/get_delivery_challan_document_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/schedule_self_ship_appointment_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_item_compliance_details_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_shipment_source_address_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_transportation_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/create_marketplace_item_labels_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_transportation_options_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/schedule_self_ship_appointment_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_item_compliance_details_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_shipment_source_address_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_delivery_window_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_transportation_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/get_self_ship_appointment_slots_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/self_ship_appointment_slots_availability.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_shipment_tracking_details_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_delivery_window_options_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/update_shipment_tracking_details_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_self_ship_appointment_slots_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_self_ship_appointment_slots_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/list_shipment_content_update_previews_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/confirm_shipment_content_update_preview_response.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_shipment_content_update_previews_request.rb,
lib/peddler/types/fulfillment_inbound_2024_03_20/generate_shipment_content_update_previews_response.rb

Constant Summary collapse

Box =

Contains information about a box that is used in the inbound plan. The box is a container that holds multiple items.

Structure.new do
  # @return [String] The ID provided by Amazon that identifies a given box. This ID is comprised of the external
  # shipment ID (which is generated after transportation has been confirmed) and the index of the box.
  attribute(:box_id, String, from: "boxId")

  # @return [String]
  attribute(:content_information_source, String, from: "contentInformationSource")

  # @return [Region]
  attribute(:destination_region, Region, from: "destinationRegion")

  # @return [Dimensions]
  attribute(:dimensions, Dimensions)

  # @return [String] The external identifier for this container / box.
  attribute(:external_container_identifier, String, from: "externalContainerIdentifier")

  # @return [String] Type of the external identifier used. Can be: `AMAZON`, `SSCC`.
  attribute(:external_container_identifier_type, String, from: "externalContainerIdentifierType")

  # @return [Array<Item>] Items contained within the box.
  attribute(:items, [Item])

  # @return [String] Primary key to uniquely identify a Package (Box or Pallet).
  attribute(:package_id, String, from: "packageId")

  # @return [Integer] The number of containers where all other properties like weight or dimensions are identical.
  attribute(:quantity, Integer)

  # @return [String] Template name of the box.
  attribute(:template_name, String, from: "templateName")

  # @return [Weight]
  attribute(:weight, Weight)
end
Item =

Information associated with a single SKU in the seller's catalog.

Structure.new do
  # @return [String] The Amazon Standard Identification Number (ASIN) of the item.
  attribute(:asin, String)

  # @return [String] The expiration date of the MSKU. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern`YYYY-MM-DD`. The
  # same MSKU with different expiration dates cannot go into the same box.
  attribute(:expiration, String)

  # @return [String] A unique identifier assigned by Amazon to products stored in and fulfilled from an Amazon
  # fulfillment center.
  attribute(:fnsku, String)

  # @return [String] Specifies who will label the items. Options include `AMAZON`, `SELLER`, and `NONE`.
  attribute(:label_owner, String, from: "labelOwner")

  # @return [String] The manufacturing lot code.
  attribute(:manufacturing_lot_code, String, from: "manufacturingLotCode")

  # @return [String] The merchant-defined SKU ID.
  attribute(:msku, String)

  # @return [Array<PrepInstruction>] Special preparations that are required for an item.
  attribute(:prep_instructions, [PrepInstruction], from: "prepInstructions")

  # @return [Integer] The number of the specified MSKU.
  attribute(:quantity, Integer)
end
Dates =

Specifies the date that the seller expects their shipment will be shipped.

Structure.new do
  # @return [Window]
  attribute(:ready_to_ship_window, Window, from: "readyToShipWindow")
end
Error =

Error object containing information about what went wrong.

Structure.new do
  # @return [String] An error code that identifies the type of error that occurred.
  attribute(:code, String)

  # @return [String] Additional details that can help the caller understand or fix the issue.
  attribute(:details, String)

  # @return [String] A message that describes the error condition.
  attribute(:message, String)
end
Quote =

The estimated shipping cost associated with the transportation option.

Structure.new do
  # @return [Currency]
  attribute(:cost, Currency)

  # @return [String] The time at which this transportation option quote expires. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime with pattern
  # `yyyy-MM-ddTHH:mm:ss.sssZ`.
  attribute(:expiration, String)

  # @return [String] Voidable until timestamp.
  attribute(:voidable_until, String, from: "voidableUntil")
end
Pallet =

Contains information about a pallet that is used in the inbound plan. The pallet is a container that holds multiple items or boxes.

Structure.new do
  # @return [Dimensions]
  attribute(:dimensions, Dimensions)

  # @return [String] Primary key to uniquely identify a Package (Box or Pallet).
  attribute(:package_id, String, from: "packageId")

  # @return [Integer] The number of containers where all other properties like weight or dimensions are identical.
  attribute(:quantity, Integer)

  # @return [String]
  attribute(:stackability, String)

  # @return [Weight]
  attribute(:weight, Weight)
end
Region =

Representation of a location used within the inbounding experience.

Structure.new do
  # @return [String] ISO 3166 standard alpha-2 country code.
  attribute(:country_code, String, from: "countryCode")

  # @return [String] State.
  attribute(:state, String)

  # @return [String] An identifier for a warehouse, such as a FC, IXD, upstream storage.
  attribute(:warehouse_id, String, from: "warehouseId")
end
Weight =

The weight of a package.

Structure.new do
  # @return [String]
  attribute(:unit, String)

  # @return [Float] Value of a weight.
  attribute(:value, Float)
end
Window =

Contains a start and end DateTime representing a time range.

Structure.new do
  # @return [String] The timestamp at which this Window can no longer be edited.
  attribute(:editable_until, String, from: "editableUntil")

  # @return [String] The end timestamp of the window.
  attribute(:end, String)

  # @return [String] The start timestamp of the window.
  attribute(:start, String)
end
Address =

Specific details to identify a place.

Structure.new do
  # @return [String] Street address information.
  attribute(:address_line1, String, from: "addressLine1")

  # @return [String] Additional street address information.
  attribute(:address_line2, String, from: "addressLine2")

  # @return [String] The city.
  attribute(:city, String)

  # @return [String] The name of the business.
  attribute(:company_name, String, from: "companyName")

  # @return [String] The country code in two-character ISO 3166-1 alpha-2 format.
  attribute(:country_code, String, from: "countryCode")

  # @return [String] The district or county.
  attribute(:district_or_county, String, from: "districtOrCounty")

  # @return [String] The email address.
  attribute(:email, String)

  # @return [String] The name of the individual who is the primary contact.
  attribute(:name, String)

  # @return [String] The phone number.
  attribute(:phone_number, String, from: "phoneNumber")

  # @return [String] The postal code.
  attribute(:postal_code, String, from: "postalCode")

  # @return [String] The state or province code.
  attribute(:state_or_province_code, String, from: "stateOrProvinceCode")
end
Carrier =

The carrier for the inbound shipment.

Structure.new do
  # @return [String] The carrier code. For example, USPS or DHLEX.
  attribute(:alpha_code, String, from: "alphaCode")

  # @return [String] The name of the carrier.
  attribute(:name, String)
end
Currency =

The type and amount of currency.

Structure.new do
  # @return [Float] Decimal value of the currency.
  attribute(:amount, Float)

  # @return [String] ISO 4217 standard of a currency code.
  attribute(:code, String)
end
Shipment =

Contains information pertaining to a shipment in an inbound plan.

Structure.new do
  # @return [String] A unique identifier created by Amazon that identifies this Amazon-partnered, Less Than
  # Truckload/Full Truckload (LTL/FTL) shipment.
  attribute(:amazon_reference_id, String, from: "amazonReferenceId")

  # @return [ContactInformation]
  attribute(:contact_information, ContactInformation, from: "contactInformation")

  # @return [Dates]
  attribute(:dates, Dates)

  # @return [ShipmentDestination]
  attribute(:destination, ShipmentDestination)

  # @return [FreightInformation]
  attribute(:freight_information, FreightInformation, from: "freightInformation")

  # @return [String] The name of the shipment.
  attribute(:name, String)

  # @return [String] The identifier of a placement option. A placement option represents the shipment splits and
  # destinations of SKUs.
  attribute(:placement_option_id, String, from: "placementOptionId")

  # @return [SelectedDeliveryWindow]
  attribute(:selected_delivery_window, SelectedDeliveryWindow, from: "selectedDeliveryWindow")

  # @return [String] Identifier of a transportation option. A transportation option represent one option for how
  # to send a shipment.
  attribute(:selected_transportation_option_id, String, from: "selectedTransportationOptionId")

  # @return [Array<SelfShipAppointmentDetails>] List of self ship appointment details.
  attribute(:self_ship_appointment_details, [SelfShipAppointmentDetails], from: "selfShipAppointmentDetails")

  # @return [String] The confirmed shipment ID which shows up on labels (for example, `FBA1234ABCD`).
  attribute(:shipment_confirmation_id, String, from: "shipmentConfirmationId")

  # @return [String] Identifier of a shipment. A shipment contains the boxes and units being inbounded.
  attribute(:shipment_id, String, from: "shipmentId")

  # @return [ShipmentSource]
  attribute(:source, ShipmentSource)

  # @return [String] The status of a shipment. The state of the shipment will typically start as `UNCONFIRMED`,
  # then transition to `WORKING` after a placement option has been confirmed, and then to `READY_TO_SHIP` once
  # labels are generated.
  #
  # Possible values: `ABANDONED`, `CANCELLED`, `CHECKED_IN`, `CLOSED`, `DELETED`, `DELIVERED`, `IN_TRANSIT`,
  # `MIXED`, `READY_TO_SHIP`, `RECEIVING`, `SHIPPED`, `UNCONFIRMED`, `WORKING`
  attribute(:status, String)

  # @return [TrackingDetails]
  attribute(:tracking_details, TrackingDetails, from: "trackingDetails")
end
TaxRate =

Contains the type and rate of tax.

Structure.new do
  # @return [Float] Rate of cess tax.
  attribute(:cess_rate, Float, from: "cessRate")

  # @return [Float] Rate of gst tax.
  attribute(:gst_rate, Float, from: "gstRate")

  # @return [String] Type of tax. Possible values: `CGST`, `SGST`, `IGST`, `TOTAL_TAX`.
  attribute(:tax_type, String, from: "taxType")
end
BoxInput =

Input information for a given box.

Structure.new do
  # @return [String]
  attribute(:content_information_source, String, from: "contentInformationSource")

  # @return [Dimensions]
  attribute(:dimensions, Dimensions)

  # @return [Array<ItemInput>] The items and their quantity in the box. This must be empty if the box
  # `contentInformationSource` is `BARCODE_2D` or `MANUAL_PROCESS`.
  attribute(:items, [ItemInput])

  # @return [Integer] The number of containers where all other properties like weight or dimensions are identical.
  attribute(:quantity, Integer)

  # @return [Weight]
  attribute(:weight, Weight)
end
Incentive =

Contains details about cost related modifications to the placement cost.

Structure.new do
  # @return [String] Description of the incentive.
  attribute(:description, String)

  # @return [String] Target of the incentive. Possible values: 'Placement Services', 'Fulfillment Fee Discount'.
  attribute(:target, String)

  # @return [String] Type of incentive. Possible values: `FEE`, `DISCOUNT`.
  attribute(:type, String)

  # @return [Currency]
  attribute(:value, Currency)
end
Dimensions =

Measurement of a package's dimensions.

Structure.new do
  # @return [Float] The height of a package.
  attribute(:height, Float)

  # @return [Float] The length of a package.
  attribute(:length, Float)

  # @return [String]
  attribute(:unit_of_measurement, String, from: "unitOfMeasurement")

  # @return [Float] The width of a package.
  attribute(:width, Float)
end
ErrorList =

A list of error responses returned when a request is unsuccessful.

Structure.new do
  # @return [Array<Error>] List of errors.
  attribute(:errors, [Error])
end
ItemInput =

Defines an item's input parameters.

Structure.new do
  # @return [String] The expiration date of the MSKU. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern `YYYY-MM-DD`. Items
  # with the same MSKU but different expiration dates cannot go into the same box.
  attribute(:expiration, String)

  # @return [String]
  attribute(:label_owner, String, from: "labelOwner")

  # @return [String] The manufacturing lot code.
  attribute(:manufacturing_lot_code, String, from: "manufacturingLotCode")

  # @return [String] The merchant SKU, a merchant-supplied identifier of a specific SKU.
  attribute(:msku, String)

  # @return [String]
  attribute(:prep_owner, String, from: "prepOwner")

  # @return [Integer] The number of units of the specified MSKU that will be shipped.
  attribute(:quantity, Integer)
end
Pagination =

Contains tokens to fetch from a certain page.

Structure.new do
  # @return [String] When present, pass this string token in the next request to return the next response page.
  attribute(:next_token, String, from: "nextToken")
end
TaxDetails =

Information used to determine the tax compliance.

Structure.new do
  # @return [Currency]
  attribute(:declared_value, Currency, from: "declaredValue")

  # @return [String] Harmonized System of Nomenclature code.
  attribute(:hsn_code, String, from: "hsnCode")

  # @return [Array<TaxRate>] List of tax rates.
  attribute(:tax_rates, [TaxRate], from: "taxRates")
end
InboundPlan =

Inbound plan containing details of the inbound workflow.

Structure.new do
  # @return [String] The time at which the inbound plan was created. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime with pattern `yyyy-MM-ddTHH:mm:ssZ`.
  attribute(:created_at, String, from: "createdAt")

  # @return [String] Identifier of an inbound plan.
  attribute(:inbound_plan_id, String, from: "inboundPlanId")

  # @return [String] The time at which the inbound plan was last updated. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ssZ`.
  attribute(:last_updated_at, String, from: "lastUpdatedAt")

  # @return [Array<String>] A list of marketplace IDs.
  attribute(:marketplace_ids, [String], from: "marketplaceIds")

  # @return [String] Human-readable name of the inbound plan.
  attribute(:name, String)

  # @return [Array<PackingOptionSummary>] Packing options for the inbound plan. This property will be populated
  # when it has been generated via the corresponding operation. If there is a chosen placement option, only
  # packing options for that placement option will be returned. If there are confirmed shipments, only packing
  # options for those shipments will be returned. Query the packing option for more details.
  attribute(:packing_options, [PackingOptionSummary], from: "packingOptions")

  # @return [Array<PlacementOptionSummary>] Placement options for the inbound plan. This property will be
  # populated when it has been generated via the corresponding operation. If there is a chosen placement option,
  # that will be the only returned option. Query the placement option for more details.
  attribute(:placement_options, [PlacementOptionSummary], from: "placementOptions")

  # @return [Array<ShipmentSummary>] A list of shipment IDs for the inbound plan. This property is populated when
  # it has been generated with the `confirmPlacementOptions` operation. Only shipments from the chosen placement
  # option are returned. Query the shipment for more details.
  attribute(:shipments, [ShipmentSummary])

  # @return [Address]
  attribute(:source_address, Address, from: "sourceAddress")

  # @return [String] Current status of the inbound plan. Possible values: `ACTIVE`, `VOIDED`, `SHIPPED`,
  # `ERRORED`.
  attribute(:status, String)
end
PalletInput =

Contains input information about a pallet to be used in the inbound plan.

Structure.new do
  # @return [Dimensions]
  attribute(:dimensions, Dimensions)

  # @return [Integer] The number of containers where all other properties like weight or dimensions are identical.
  attribute(:quantity, Integer)

  # @return [String]
  attribute(:stackability, String)

  # @return [Weight]
  attribute(:weight, Weight)
end
WeightRange =

The range of weights that are allowed for a package.

Structure.new do
  # @return [Float] Maximum allowed weight.
  attribute(:maximum, Float)

  # @return [Float] Minimum allowed weight.
  attribute(:minimum, Float)

  # @return [String]
  attribute(:unit, String)
end
WindowInput =

Contains only a starting DateTime.

Structure.new do
  # @return [String] The start date of the window. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with minute precision. Supports
  # patterns `yyyy-MM-ddTHH:mmZ`, `yyyy-MM-ddTHH:mm:ssZ`, or `yyyy-MM-ddTHH:mm:ss.sssZ`. Note that non-zero second
  # and millisecond components are removed.
  attribute(:start, String)
end
AddressInput =

Specific details to identify a place.

Structure.new do
  # @return [String] Street address information.
  attribute(:address_line1, String, from: "addressLine1")

  # @return [String] Additional street address information.
  attribute(:address_line2, String, from: "addressLine2")

  # @return [String] The city.
  attribute(:city, String)

  # @return [String] The name of the business.
  attribute(:company_name, String, from: "companyName")

  # @return [String] The country code in two-character ISO 3166-1 alpha-2 format.
  attribute(:country_code, String, from: "countryCode")

  # @return [String] The district or county.
  attribute(:district_or_county, String, from: "districtOrCounty")

  # @return [String] The email address.
  attribute(:email, String)

  # @return [String] The name of the individual who is the primary contact.
  attribute(:name, String)

  # @return [String] The phone number.
  attribute(:phone_number, String, from: "phoneNumber")

  # @return [String] The postal code.
  attribute(:postal_code, String, from: "postalCode")

  # @return [String] The state or province code.
  attribute(:state_or_province_code, String, from: "stateOrProvinceCode")
end
MskuQuantity =

Represents an MSKU and the related quantity.

Structure.new do
  # @return [String] The merchant SKU, a merchant-supplied identifier for a specific SKU.
  attribute(:msku, String)

  # @return [Integer] A positive integer.
  attribute(:quantity, Integer)
end
PackingOption =

A packing option contains a set of pack groups plus additional information about the packing option, such as any discounts or fees if it's selected.

Structure.new do
  # @return [Array<Incentive>] Discount for the offered option.
  attribute(:discounts, [Incentive])

  # @return [String] The time at which this packing option is no longer valid. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ss.sssZ`.
  attribute(:expiration, String)

  # @return [Array<Incentive>] Fee for the offered option.
  attribute(:fees, [Incentive])

  # @return [Array<String>] Packing group IDs.
  attribute(:packing_groups, [String], from: "packingGroups")

  # @return [String] Identifier of a packing option.
  attribute(:packing_option_id, String, from: "packingOptionId")

  # @return [String] The status of the packing option. Possible values: `OFFERED`, `ACCEPTED`, `EXPIRED`.
  attribute(:status, String)

  # @return [Array<PackingConfiguration>] A list of possible configurations for this option.
  attribute(:supported_configurations, [PackingConfiguration], from: "supportedConfigurations")

  # @return [Array<ShippingConfiguration>] **This field is deprecated**. Use the `shippingRequirements` property
  # under `supportedConfigurations` instead. List of supported shipping modes.
  attribute(:supported_shipping_configurations, [ShippingConfiguration], from: "supportedShippingConfigurations")
end
ShipmentSource =

Specifies the 'ship from' address for the shipment.

Structure.new do
  # @return [Address]
  attribute(:address, Address)

  # @return [String] The type of source for this shipment. Possible values: `SELLER_FACILITY`.
  attribute(:source_type, String, from: "sourceType")
end
AppointmentSlot =

The fulfillment center appointment slot for the transportation option.

Structure.new do
  # @return [String] An identifier to a self-ship appointment slot.
  attribute(:slot_id, String, from: "slotId")

  # @return [AppointmentSlotTime]
  attribute(:slot_time, AppointmentSlotTime, from: "slotTime")
end
BoxRequirements =

The requirements for a box in the packing option.

Structure.new do
  # @return [WeightRange]
  attribute(:weight, WeightRange)
end
BoxUpdateInput =

Input information for updating a box

Structure.new do
  # @return [String]
  attribute(:content_information_source, String, from: "contentInformationSource")

  # @return [Dimensions]
  attribute(:dimensions, Dimensions)

  # @return [Array<ItemInput>] The items and their quantity in the box. This must be empty if the box
  # `contentInformationSource` is `BARCODE_2D` or `MANUAL_PROCESS`.
  attribute(:items, [ItemInput])

  # @return [String] Primary key to uniquely identify a Box Package. PackageId must be provided if the intent is
  # to update an existing box. Adding a new box will not require providing this value. Any existing PackageIds not
  # provided will be treated as to-be-removed
  attribute(:package_id, String, from: "packageId")

  # @return [Integer] The number of containers where all other properties like weight or dimensions are identical.
  attribute(:quantity, Integer)

  # @return [Weight]
  attribute(:weight, Weight)
end
MskuPrepDetail =

An MSKU and its related prep details.

Structure.new do
  # @return [String]
  attribute(:all_owners_constraint, String, from: "allOwnersConstraint")

  # @return [String]
  attribute(:label_owner_constraint, String, from: "labelOwnerConstraint")

  # @return [String] The merchant SKU, a merchant-supplied identifier for a specific SKU.
  attribute(:msku, String)

  # @return [String]
  attribute(:prep_category, String, from: "prepCategory")

  # @return [String]
  attribute(:prep_owner_constraint, String, from: "prepOwnerConstraint")

  # @return [Array<PrepType>] A list of preparation types associated with a preparation category.
  attribute(:prep_types, Array, from: "prepTypes")
end
PlacementOption =

Contains information pertaining to the placement of the contents of an inbound plan and the related costs.

Structure.new do
  # @return [Array<Incentive>] Discount for the offered option.
  attribute(:discounts, [Incentive])

  # @return [String] The expiration date of the placement option. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ss.sssZ`.
  attribute(:expiration, String)

  # @return [Array<Incentive>] The fee for the offered option.
  attribute(:fees, [Incentive])

  # @return [String] The identifier of a placement option. A placement option represents the shipment splits and
  # destinations of SKUs.
  attribute(:placement_option_id, String, from: "placementOptionId")

  # @return [Array<String>] Shipment ids.
  attribute(:shipment_ids, [String], from: "shipmentIds")

  # @return [String] The status of a placement option. Possible values: `OFFERED`, `ACCEPTED`, `EXPIRED`.
  attribute(:status, String)
end
PrepInstruction =

Information pertaining to the preparation of inbound goods.

Structure.new do
  # @return [Currency]
  attribute(:fee, Currency)

  # @return [String] In some situations, special preparations are required for items and this field reflects the
  # owner of the preparations. Options include `AMAZON`, `SELLER` or `NONE`.
  attribute(:prep_owner, String, from: "prepOwner")

  # @return [String] Type of preparation that should be done.
  #
  # Possible values: `ITEM_LABELING`, `ITEM_BUBBLEWRAP`, `ITEM_POLYBAGGING`, `ITEM_TAPING`,
  # `ITEM_BLACK_SHRINKWRAP`, `ITEM_HANG_GARMENT`, `ITEM_BOXING`, `ITEM_SETCREAT`, `ITEM_RMOVHANG`,
  # `ITEM_SUFFOSTK`, `ITEM_CAP_SEALING`, `ITEM_DEBUNDLE`, `ITEM_SETSTK`, `ITEM_SIOC`, `ITEM_NO_PREP`, `ADULT`,
  # `BABY`, `TEXTILE`, `HANGER`, `FRAGILE`, `LIQUID`, `SHARP`, `SMALL`, `PERFORATED`, `GRANULAR`, `SET`,
  # `FC_PROVIDED`, `UNKNOWN`, `NONE`.
  attribute(:prep_type, String, from: "prepType")
end
ShipmentSummary =

Summary information about a shipment.

Structure.new do
  # @return [String] Identifier of a shipment. A shipment contains the boxes and units being inbounded.
  attribute(:shipment_id, String, from: "shipmentId")

  # @return [String] The status of a shipment. The state of the shipment will typically start as `UNCONFIRMED`,
  # then transition to `WORKING` after a placement option has been confirmed, and then to `READY_TO_SHIP` once
  # labels are generated.
  #
  # Possible values: `ABANDONED`, `CANCELLED`, `CHECKED_IN`, `CLOSED`, `DELETED`, `DELIVERED`, `IN_TRANSIT`,
  # `MIXED`, `READY_TO_SHIP`, `RECEIVING`, `SHIPPED`, `UNCONFIRMED`, `WORKING`
  attribute(:status, String)
end
TrackingDetails =

Tracking information for Less-Than-Truckload (LTL) and Small Parcel Delivery (SPD) shipments.

Structure.new do
  # @return [LtlTrackingDetail]
  attribute(:ltl_tracking_detail, LtlTrackingDetail, from: "ltlTrackingDetail")

  # @return [SpdTrackingDetail]
  attribute(:spd_tracking_detail, SpdTrackingDetail, from: "spdTrackingDetail")
end
ComplianceDetail =

Contains item identifiers and related tax information.

Structure.new do
  # @return [String] The Amazon Standard Identification Number, which identifies the detail page identifier.
  attribute(:asin, String)

  # @return [String] The Fulfillment Network SKU, which identifies a real fulfillable item with catalog data and
  # condition.
  attribute(:fnsku, String)

  # @return [String] The merchant SKU, a merchant-supplied identifier for a specific SKU.
  attribute(:msku, String)

  # @return [TaxDetails]
  attribute(:tax_details, TaxDetails, from: "taxDetails")
end
DocumentDownload =

Resource to download the requested document.

Structure.new do
  # @return [String] The type of download. Possible values: `URL`.
  attribute(:download_type, String, from: "downloadType")

  # @return [String] The URI's expiration time. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ss.sssZ`.
  attribute(:expiration, String)

  # @return [String] Uniform resource identifier to identify where the document is located.
  attribute(:uri, String)
end
OperationProblem =

A problem with additional properties persisted to an operation.

Structure.new do
  # @return [String] An error code that identifies the type of error that occurred.
  attribute(:code, String)

  # @return [String] Additional details that can help the caller understand or fix the issue.
  attribute(:details, String)

  # @return [String] A message that describes the error condition.
  attribute(:message, String)

  # @return [String] The severity of the problem. Possible values: `WARNING`, `ERROR`.
  attribute(:severity, String)
end
RequestedUpdates =

Objects that were included in the update request.

Structure.new do
  # @return [Array<BoxUpdateInput>] A list of boxes that will be present in the shipment after the update.
  attribute(:boxes, [BoxUpdateInput])

  # @return [Array<ItemInput>] A list of all items that will be present in the shipment after the update.
  attribute(:items, [ItemInput])
end
SpdTrackingItem =

Contains information used to track and identify a Small Parcel Delivery (SPD) item.

Structure.new do
  # @return [String] The ID provided by Amazon that identifies a given box. This ID is comprised of the external
  # shipment ID (which is generated after transportation has been confirmed) and the index of the box.
  attribute(:box_id, String, from: "boxId")

  # @return [String] The tracking ID associated with each box in a non-Amazon partnered Small Parcel Delivery
  # (SPD) shipment.
  attribute(:tracking_id, String, from: "trackingId")

  # @return [String] Indicates whether Amazon has validated the tracking number. Because shipment validation is
  # asynchronous, tracking IDs might not be validated immediately, and the status might change after a few hours.
  # If more than 24 hours have passed and the status is not yet 'VALIDATED' or `NOT_SUPPORTED`, verify the number
  # and update it if necessary. **Possible values:** `VALIDATED`, `NOT_VALIDATED`, `NOT_SUPPORTED` (Amazon is
  # unable to find tracking information for the provided tracking ID).
  attribute(:tracking_number_validation_status, String, from: "trackingNumberValidationStatus")
end
CarrierAppointment =

Contains details for a transportation carrier appointment. This appointment is vended out by Amazon and is an indicator for when a transportation carrier is accepting shipments to be picked up.

Structure.new do
  # @return [String] The end timestamp of the appointment in UTC.
  attribute(:end_time, String, from: "endTime")

  # @return [String] The start timestamp of the appointment in UTC.
  attribute(:start_time, String, from: "startTime")
end
ContactInformation =

The seller's contact information.

Structure.new do
  # @return [String] The email address.
  attribute(:email, String)

  # @return [String] The contact's name.
  attribute(:name, String)

  # @return [String] The phone number.
  attribute(:phone_number, String, from: "phoneNumber")
end
FreightInformation =

Freight information describes the SKUs that are in transit. Freight carrier options and quotes will only be returned if the freight information is provided.

Structure.new do
  # @return [Currency]
  attribute(:declared_value, Currency, from: "declaredValue")

  # @return [String] Freight class.
  #
  # Possible values: `NONE`, `FC_50`, `FC_55`, `FC_60`, `FC_65`, `FC_70`, `FC_77_5`, `FC_85`, `FC_92_5`, `FC_100`,
  # `FC_110`, `FC_125`, `FC_150`, `FC_175`, `FC_200`, `FC_250`, `FC_300`, `FC_400`, `FC_500`.
  attribute(:freight_class, String, from: "freightClass")
end
LtlTrackingDetail =

Contains information related to Less-Than-Truckload (LTL) shipment tracking.

Structure.new do
  # @return [String] The number of the carrier shipment acknowledgement document.
  attribute(:bill_of_lading_number, String, from: "billOfLadingNumber")

  # @return [Array<String>] The number associated with the freight bill.
  attribute(:freight_bill_number, [String], from: "freightBillNumber")
end
SpdTrackingDetail =

Contains information related to Small Parcel Delivery (SPD) shipment tracking.

Structure.new do
  # @return [Array<SpdTrackingItem>] List of Small Parcel Delivery (SPD) tracking items.
  attribute(:spd_tracking_items, [SpdTrackingItem], from: "spdTrackingItems")
end
InboundPlanSummary =

A light-weight inbound plan.

Structure.new do
  # @return [String] The time at which the inbound plan was created. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ssZ`.
  attribute(:created_at, String, from: "createdAt")

  # @return [String] Identifier of an inbound plan.
  attribute(:inbound_plan_id, String, from: "inboundPlanId")

  # @return [String] The time at which the inbound plan was last updated. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ssZ`.
  attribute(:last_updated_at, String, from: "lastUpdatedAt")

  # @return [Array<String>] A list of marketplace IDs.
  attribute(:marketplace_ids, [String], from: "marketplaceIds")

  # @return [String] Human-readable name of the inbound plan.
  attribute(:name, String)

  # @return [Address]
  attribute(:source_address, Address, from: "sourceAddress")

  # @return [String] The current status of the inbound plan. Possible values: `ACTIVE`, `VOIDED`, `SHIPPED`,
  # `ERRORED`.
  attribute(:status, String)
end
ShipmentDestination =

The Amazon fulfillment center address and warehouse ID.

Structure.new do
  # @return [Address] The address the shipment should be sent to. This can be empty if the destination type is
  # `AMAZON_OPTIMIZED`.
  attribute(:address, Address)

  # @return [String] The type of destination for this shipment. Possible values: `AMAZON_OPTIMIZED`,
  # `AMAZON_WAREHOUSE`.
  attribute(:destination_type, String, from: "destinationType")

  # @return [String] The warehouse that the shipment should be sent to. This can be empty if the destination type
  # is `AMAZON_OPTIMIZED`.
  attribute(:warehouse_id, String, from: "warehouseId")
end
AppointmentSlotTime =

An appointment slot time with start and end.

Structure.new do
  # @return [String] The end timestamp of the appointment in UTC.
  attribute(:end_time, String, from: "endTime")

  # @return [String] The start timestamp of the appointment in UTC.
  attribute(:start_time, String, from: "startTime")
end
PackingConfiguration =

A way to configure this packing option. Some box content information sources might not be allowed. Non-standard minimum and maximum box weights might be enforced.

Structure.new do
  # @return [Array<BoxContentInformationSource>] The box content information sources that are allowed.
  attribute(:box_packing_methods, Array, from: "boxPackingMethods")

  # @return [BoxRequirements]
  attribute(:box_requirements, BoxRequirements, from: "boxRequirements")

  # @return [Array<ShippingRequirements>] A list of supported shipping requirements for this packing
  # configuration.
  attribute(:shipping_requirements, [ShippingRequirements], from: "shippingRequirements")
end
ShippingRequirements =

The possible shipping modes for the packing option for a given shipping solution or program. Available solutions are Amazon-Partnered Carrier and Use Your Own Carrier. Available modes are ground small parcel, freight less-than-truckload (LTL), freight full-truckload (FTL) palletized, freight FTL non-palletized, ocean less-than-container-load (LCL), ocean full-container load (FCL), air small parcel, and air small parcel express.

Structure.new do
  # @return [Array<String>] Available shipment modes for this shipping program.
  attribute(:modes, [String])

  # @return [String] Shipping program for the option. Can be: `AMAZON_PARTNERED_CARRIER`, `USE_YOUR_OWN_CARRIER`.
  attribute(:solution, String)
end
TransportationOption =

Contains information pertaining to a transportation option and the related carrier.

Structure.new do
  # @return [Carrier]
  attribute(:carrier, Carrier)

  # @return [CarrierAppointment]
  attribute(:carrier_appointment, CarrierAppointment, from: "carrierAppointment")

  # @return [Array<String>] Identifies a list of preconditions for confirming the transportation option.
  attribute(:preconditions, [String])

  # @return [Quote]
  attribute(:quote, Quote)

  # @return [String] Identifier of a shipment. A shipment contains the boxes and units being inbounded.
  attribute(:shipment_id, String, from: "shipmentId")

  # @return [String] Mode of shipment transportation that this option will provide.
  #
  # Possible values: `GROUND_SMALL_PARCEL`, `FREIGHT_LTL`, `FREIGHT_FTL_PALLET`, `FREIGHT_FTL_NONPALLET`,
  # `OCEAN_LCL`, `OCEAN_FCL`, `AIR_SMALL_PARCEL`, `AIR_SMALL_PARCEL_EXPRESS`.
  attribute(:shipping_mode, String, from: "shippingMode")

  # @return [String] Shipping program for the option. Possible values: `AMAZON_PARTNERED_CARRIER`,
  # `USE_YOUR_OWN_CARRIER`.
  attribute(:shipping_solution, String, from: "shippingSolution")

  # @return [String] Identifier of a transportation option. A transportation option represent one option for how
  # to send a shipment.
  attribute(:transportation_option_id, String, from: "transportationOptionId")
end
ContentUpdatePreview =

Preview of the changes that will be applied to the shipment.

Structure.new do
  # @return [String] Identifier of a content update preview.
  attribute(:content_update_preview_id, String, from: "contentUpdatePreviewId")

  # @return [String] The time at which the content update expires. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mm:ss.sssZ`.
  attribute(:expiration, String)

  # @return [RequestedUpdates]
  attribute(:requested_updates, RequestedUpdates, from: "requestedUpdates")

  # @return [TransportationOption]
  attribute(:transportation_option, TransportationOption, from: "transportationOption")
end
CustomPlacementInput =

Provide units going to the warehouse.

Structure.new do
  # @return [Array<ItemInput>] Items included while creating Inbound Plan.
  attribute(:items, [ItemInput])

  # @return [String] Warehouse Id.
  attribute(:warehouse_id, String, from: "warehouseId")
end
DeliveryWindowOption =

Contains information pertaining to a delivery window option.

Structure.new do
  # @return [String] Identifies type of Delivery Window Availability. Values: `AVAILABLE`, `CONGESTED`
  attribute(:availability_type, String, from: "availabilityType")

  # @return [String] Identifier of a delivery window option. A delivery window option represent one option for
  # when a shipment is expected to be delivered.
  attribute(:delivery_window_option_id, String, from: "deliveryWindowOptionId")

  # @return [String] The time at which this delivery window option ends. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mmZ`.
  attribute(:end_date, String, from: "endDate")

  # @return [String] The time at which this delivery window option starts. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mmZ`.
  attribute(:start_date, String, from: "startDate")

  # @return [String] The time at which this window delivery option is no longer valid. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format with pattern
  # `yyyy-MM-ddTHH:mmZ`.
  attribute(:valid_until, String, from: "validUntil")
end
MskuPrepDetailInput =

An MSKU and its related prep details.

Structure.new do
  # @return [String] The merchant SKU, a merchant-supplied identifier for a specific SKU.
  attribute(:msku, String)

  # @return [String]
  attribute(:prep_category, String, from: "prepCategory")

  # @return [Array<PrepType>] A list of preparation types associated with a preparation category.
  attribute(:prep_types, Array, from: "prepTypes")
end
PackageGroupingInput =

Packing information for the inbound plan.

Structure.new do
  # @return [Array<BoxInput>] Box level information being provided.
  attribute(:boxes, [BoxInput])

  # @return [String] The ID of the `packingGroup` that packages are grouped according to. The `PackingGroupId` can
  # only be provided before placement confirmation, and it must belong to the confirmed `PackingOption`. One of
  # `ShipmentId` or `PackingGroupId` must be provided with every request.
  attribute(:packing_group_id, String, from: "packingGroupId")

  # @return [String] The ID of the shipment that packages are grouped according to. The `ShipmentId` can only be
  # provided after placement confirmation, and the shipment must belong to the confirmed placement option. One of
  # `ShipmentId` or `PackingGroupId` must be provided with every request.
  attribute(:shipment_id, String, from: "shipmentId")
end
PackingOptionSummary =

Summary information about a packing option.

Structure.new do
  # @return [String] Identifier of a packing option.
  attribute(:packing_option_id, String, from: "packingOptionId")

  # @return [String] The status of a packing option. Possible values: 'OFFERED', 'ACCEPTED', 'EXPIRED'.
  attribute(:status, String)
end
ShippingConfiguration =

The shipping configurations supported for the packing option. Available modes are ground small parcel, freight less-than-truckload (LTL), freight full-truckload (FTL) palletized, freight FTL non-palletized, ocean less-than-container-load (LCL), ocean full-container load (FCL), air small parcel, and air small parcel express.

Structure.new do
  # @return [String] Mode of shipment transportation that this option will provide.
  #
  # Possible values: `GROUND_SMALL_PARCEL`, `FREIGHT_LTL`, `FREIGHT_FTL_PALLET`, `FREIGHT_FTL_NONPALLET`,
  # `OCEAN_LCL`, `OCEAN_FCL`, `AIR_SMALL_PARCEL`, `AIR_SMALL_PARCEL_EXPRESS`.
  attribute(:shipping_mode, String, from: "shippingMode")

  # @return [String] Shipping program for the option. Possible values: `AMAZON_PARTNERED_CARRIER`,
  # `USE_YOUR_OWN_CARRIER`.
  attribute(:shipping_solution, String, from: "shippingSolution")
end
TrackingDetailsInput =

Tracking information input for Less-Than-Truckload (LTL) and Small Parcel Delivery (SPD) shipments.

Structure.new do
  # @return [LtlTrackingDetailInput]
  attribute(:ltl_tracking_detail, LtlTrackingDetailInput, from: "ltlTrackingDetail")

  # @return [SpdTrackingDetailInput]
  attribute(:spd_tracking_detail, SpdTrackingDetailInput, from: "spdTrackingDetail")
end
SpdTrackingItemInput =

Small Parcel Delivery (SPD) tracking items input information.

Structure.new do
  # @return [String] The ID provided by Amazon that identifies a given box. This ID is comprised of the external
  # shipment ID (which is generated after transportation has been confirmed) and the index of the box.
  attribute(:box_id, String, from: "boxId")

  # @return [String] The tracking Id associated with each box in a non-Amazon partnered Small Parcel Delivery
  # (SPD) shipment. The seller must provide this information.
  attribute(:tracking_id, String, from: "trackingId")
end
InboundOperationStatus =

GetInboundOperationStatus response.

Structure.new do
  # @return [String] The name of the operation in the asynchronous API call.
  attribute(:operation, String)

  # @return [String] The operation ID returned by the asynchronous API call.
  attribute(:operation_id, String, from: "operationId")

  # @return [Array<OperationProblem>] The problems in the processing of the asynchronous operation.
  attribute(:operation_problems, [OperationProblem], from: "operationProblems")

  # @return [String]
  attribute(:operation_status, String, from: "operationStatus")
end
PlacementOptionSummary =

Summary information about a placement option.

Structure.new do
  # @return [String] The identifier of a placement option. A placement option represents the shipment splits and
  # destinations of SKUs.
  attribute(:placement_option_id, String, from: "placementOptionId")

  # @return [String] The status of a placement option. Possible values: `OFFERED`, `ACCEPTED`.
  attribute(:status, String)
end
SelectedDeliveryWindow =

Selected delivery window attributes.

Structure.new do
  # @return [String] Identifies type of Delivery Window Availability. Values: `AVAILABLE`, `CONGESTED`
  attribute(:availability_type, String, from: "availabilityType")

  # @return [String] Identifier of a delivery window option. A delivery window option represent one option for
  # when a shipment is expected to be delivered.
  attribute(:delivery_window_option_id, String, from: "deliveryWindowOptionId")

  # @return [String] The timestamp at which this Window can no longer be edited.
  attribute(:editable_until, String, from: "editableUntil")

  # @return [String] The end timestamp of the window.
  attribute(:end_date, String, from: "endDate")

  # @return [String] The start timestamp of the window.
  attribute(:start_date, String, from: "startDate")
end
SetPrepDetailsRequest =

The setPrepDetails request.

Structure.new do
  # @return [String] The marketplace ID. For a list of possible values, refer to [Marketplace
  # IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids).
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [Array<MskuPrepDetailInput>] A list of MSKUs and related prep details.
  attribute(:msku_prep_details, [MskuPrepDetailInput], from: "mskuPrepDetails")
end
TransportationSelection =

The transportation option selected to confirm.

Structure.new do
  # @return [ContactInformation]
  attribute(:contact_information, ContactInformation, from: "contactInformation")

  # @return [String] Shipment ID that the transportation Option is for.
  attribute(:shipment_id, String, from: "shipmentId")

  # @return [String] Transportation option being selected for the provided shipment.
  attribute(:transportation_option_id, String, from: "transportationOptionId")
end
LtlTrackingDetailInput =

Contains input information to update Less-Than-Truckload (LTL) tracking information.

Structure.new do
  # @return [String] The number of the carrier shipment acknowledgement document.
  attribute(:bill_of_lading_number, String, from: "billOfLadingNumber")

  # @return [Array<String>] Number associated with the freight bill.
  attribute(:freight_bill_number, [String], from: "freightBillNumber")
end
SetPrepDetailsResponse =

The setPrepDetails response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
SpdTrackingDetailInput =

Contains input information to update Small Parcel Delivery (SPD) tracking information.

Structure.new do
  # @return [Array<SpdTrackingItemInput>] List of Small Parcel Delivery (SPD) tracking items input.
  attribute(:spd_tracking_items, [SpdTrackingItemInput], from: "spdTrackingItems")
end
ListPrepDetailsResponse =

The response to the listPrepDetails operation.

Structure.new do
  # @return [Array<MskuPrepDetail>] A list of MSKUs and related prep details.
  attribute(:msku_prep_details, [MskuPrepDetail], from: "mskuPrepDetails")
end
CreateInboundPlanRequest =

The createInboundPlan request.

Structure.new do
  # @return [Array<String>] Marketplaces where the items need to be shipped to. Currently only one marketplace can
  # be selected in this request.
  attribute(:destination_marketplaces, [String], from: "destinationMarketplaces")

  # @return [Array<ItemInput>] Items included in this plan.
  attribute(:items, [ItemInput])

  # @return [String] Name for the Inbound Plan. If one isn't provided, a default name will be provided.
  attribute(:name, String)

  # @return [AddressInput]
  attribute(:source_address, AddressInput, from: "sourceAddress")
end
ListInboundPlansResponse =

The listInboundPlans response.

Structure.new do
  # @return [Array<InboundPlanSummary>] A list of inbound plans with minimal information.
  attribute(:inbound_plans, [InboundPlanSummary], from: "inboundPlans")

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
CancelInboundPlanResponse =

The cancelInboundPlan response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
CreateInboundPlanResponse =

The createInboundPlan response.

Structure.new do
  # @return [String] Identifier of an inbound plan.
  attribute(:inbound_plan_id, String, from: "inboundPlanId")

  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ListShipmentBoxesResponse =

The listShipmentBoxes response.

Structure.new do
  # @return [Array<Box>] A list of boxes in a shipment.
  attribute(:boxes, [Box])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
ListShipmentItemsResponse =

The listShipmentItems response.

Structure.new do
  # @return [Array<Item>] The items in a shipment.
  attribute(:items, [Item])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
UpdateShipmentNameRequest =

The updateShipmentName request.

Structure.new do
  # @return [String] A human-readable name to update the shipment name to.
  attribute(:name, String)
end
ListPackingOptionsResponse =

The listPlacementOptions response.

Structure.new do
  # @return [Array<PackingOption>] List of packing options.
  attribute(:packing_options, [PackingOption], from: "packingOptions")

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
SelfShipAppointmentDetails =

Appointment details for carrier pickup or fulfillment center appointments.

Structure.new do
  # @return [Float] Identifier for appointment.
  attribute(:appointment_id, Float, from: "appointmentId")

  # @return [AppointmentSlotTime]
  attribute(:appointment_slot_time, AppointmentSlotTime, from: "appointmentSlotTime")

  # @return [String] Status of the appointment.
  attribute(:appointment_status, String, from: "appointmentStatus")
end
ListShipmentPalletsResponse =

The listShipmentPallets response.

Structure.new do
  # @return [Pagination]
  attribute(:pagination, Pagination)

  # @return [Array<Pallet>] The pallets in a shipment.
  attribute(:pallets, [Pallet])
end
ConfirmPackingOptionResponse =

The confirmPackingOption response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ListPlacementOptionsResponse =

The listPlacementOptions response.

Structure.new do
  # @return [Pagination]
  attribute(:pagination, Pagination)

  # @return [Array<PlacementOption>] Placement options generated for the inbound plan.
  attribute(:placement_options, [PlacementOption], from: "placementOptions")
end
SetPackingInformationRequest =

The setPackingInformation request.

Structure.new do
  # @return [Array<PackageGroupingInput>] List of packing information for the inbound plan.
  attribute(:package_groupings, [PackageGroupingInput], from: "packageGroupings")
end
ListInboundPlanBoxesResponse =

The listInboundPlanBoxes response.

Structure.new do
  # @return [Array<Box>] A list of boxes in an inbound plan.
  attribute(:boxes, [Box])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
ListInboundPlanItemsResponse =

The listInboundPlanItems response.

Structure.new do
  # @return [Array<Item>] The items in an inbound plan.
  attribute(:items, [Item])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
SetPackingInformationResponse =

The setPackingInformation response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
UpdateInboundPlanNameRequest =

The updateInboundPlanName request.

Structure.new do
  # @return [String] A human-readable name to update the inbound plan name to.
  attribute(:name, String)
end
ConfirmPlacementOptionResponse =

The confirmPlacementOption response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
GeneratePackingOptionsResponse =

The generatePackingOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ListPackingGroupBoxesResponse =

The listPackingGroupBoxes response.

Structure.new do
  # @return [Array<Box>] Provides the information about the list of boxes in the packing group.
  attribute(:boxes, [Box])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
ListPackingGroupItemsResponse =

The listPackingGroupItems response.

Structure.new do
  # @return [Array<Item>] Provides the information about the list of items in the packing group.
  attribute(:items, [Item])

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
GeneratePlacementOptionsRequest =

The generatePlacementOptions request.

Structure.new do
  # @return [Array<CustomPlacementInput>] Custom placement options you want to add to the plan. This is only used
  # for the India (IN - A21TJRUUN4KGV) marketplace.
  attribute(:custom_placement, [CustomPlacementInput], from: "customPlacement")
end
ListInboundPlanPalletsResponse =

The listInboundPlanPallets response.

Structure.new do
  # @return [Pagination]
  attribute(:pagination, Pagination)

  # @return [Array<Pallet>] The pallets in an inbound plan.
  attribute(:pallets, [Pallet])
end
GeneratePlacementOptionsResponse =

The generatePlacementOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
CancelSelfShipAppointmentRequest =

The cancelSelfShipAppointment request.

Structure.new do
  # @return [String]
  attribute(:reason_comment, String, from: "reasonComment")
end
ListTransportationOptionsResponse =

The listTransportationOptions response.

Structure.new do
  # @return [Pagination]
  attribute(:pagination, Pagination)

  # @return [Array<TransportationOption>] Transportation options generated for the placement option.
  attribute(:transportation_options, [TransportationOption], from: "transportationOptions")
end
CancelSelfShipAppointmentResponse =

The CancelSelfShipAppointment response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ListDeliveryWindowOptionsResponse =

The listDeliveryWindowOptions response.

Structure.new do
  # @return [Array<DeliveryWindowOption>] Delivery window options generated for the placement option.
  attribute(:delivery_window_options, [DeliveryWindowOption], from: "deliveryWindowOptions")

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
ListItemComplianceDetailsResponse =

The listItemComplianceDetails response.

Structure.new do
  # @return [Array<ComplianceDetail>] List of compliance details.
  attribute(:compliance_details, [ComplianceDetail], from: "complianceDetails")
end
ShipmentTransportationConfiguration =

Details needed to generate the transportation options.

Structure.new do
  # @return [ContactInformation]
  attribute(:contact_information, ContactInformation, from: "contactInformation")

  # @return [FreightInformation]
  attribute(:freight_information, FreightInformation, from: "freightInformation")

  # @return [Array<PalletInput>] List of pallet configuration inputs.
  attribute(:pallets, [PalletInput])

  # @return [WindowInput] The range of dates within which the seller intends to ship their items. This is the
  # pick-up date or 'ready to ship' date, not an estimated delivery date.
  attribute(:ready_to_ship_window, WindowInput, from: "readyToShipWindow")

  # @return [String] Identifier of a shipment. A shipment contains the boxes and units being inbounded.
  attribute(:shipment_id, String, from: "shipmentId")
end
ConfirmTransportationOptionsRequest =

The confirmTransportationOptions request.

Structure.new do
  # @return [Array<TransportationSelection>] Information needed to confirm one of the available transportation
  # options.
  attribute(:transportation_selections, [TransportationSelection], from: "transportationSelections")
end
CreateMarketplaceItemLabelsRequest =

The createMarketplaceItemLabels request.

Structure.new do
  # @return [Float] The height of the item label.
  attribute(:height, Float)

  # @return [String]
  attribute(:label_type, String, from: "labelType")

  # @return [String] The locale code constructed from ISO 639 language code and ISO 3166-1 alpha-2 standard of
  # country codes separated by an underscore character.
  attribute(:locale_code, String, from: "localeCode")

  # @return [String] The Marketplace ID. For a list of possible values, refer to [Marketplace
  # IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids).
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [Array<MskuQuantity>] Represents the quantity of an MSKU to print item labels for.
  attribute(:msku_quantities, [MskuQuantity], from: "mskuQuantities")

  # @return [String]
  attribute(:page_type, String, from: "pageType")

  # @return [Float] The width of the item label.
  attribute(:width, Float)
end
GetDeliveryChallanDocumentResponse =

The getDeliveryChallanDocumentResponse response.

Structure.new do
  # @return [DocumentDownload]
  attribute(:document_download, DocumentDownload, from: "documentDownload")
end
ScheduleSelfShipAppointmentRequest =

The scheduleSelfShipAppointment request.

Structure.new do
  # @return [String]
  attribute(:reason_comment, String, from: "reasonComment")
end
UpdateItemComplianceDetailsRequest =

The updateItemComplianceDetails request.

Structure.new do
  # @return [String] The merchant SKU, a merchant-supplied identifier for a specific SKU.
  attribute(:msku, String)

  # @return [TaxDetails]
  attribute(:tax_details, TaxDetails, from: "taxDetails")
end
UpdateShipmentSourceAddressRequest =

The UpdateShipmentSourceAddress request.

Structure.new do
  # @return [AddressInput]
  attribute(:address, AddressInput)
end
ConfirmTransportationOptionsResponse =

The confirmTransportationOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
CreateMarketplaceItemLabelsResponse =

The createMarketplaceItemLabels response.

Structure.new do
  # @return [Array<DocumentDownload>] Resources to download the requested document.
  attribute(:document_downloads, [DocumentDownload], from: "documentDownloads")
end
GenerateTransportationOptionsRequest =

The generateTransportationOptions request.

Structure.new do
  # @return [String] The placement option to generate transportation options for.
  attribute(:placement_option_id, String, from: "placementOptionId")

  # @return [Array<ShipmentTransportationConfiguration>] List of shipment transportation configurations.
  attribute(:shipment_transportation_configurations, [ShipmentTransportationConfiguration], from: "shipmentTransportationConfigurations")
end
ScheduleSelfShipAppointmentResponse =

The scheduleSelfShipAppointment response.

Structure.new do
  # @return [SelfShipAppointmentDetails]
  attribute(:self_ship_appointment_details, SelfShipAppointmentDetails, from: "selfShipAppointmentDetails")
end
UpdateItemComplianceDetailsResponse =

The updateItemComplianceDetails response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
UpdateShipmentSourceAddressResponse =

The UpdateShipmentSourceAddress response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ConfirmDeliveryWindowOptionsResponse =

The confirmDeliveryWindowOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
GenerateTransportationOptionsResponse =

The generateTransportationOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
GetSelfShipAppointmentSlotsResponse =

The getSelfShipAppointmentSlots response.

Structure.new do
  # @return [Pagination]
  attribute(:pagination, Pagination)

  # @return [SelfShipAppointmentSlotsAvailability]
  attribute(:self_ship_appointment_slots_availability, SelfShipAppointmentSlotsAvailability, from: "selfShipAppointmentSlotsAvailability")
end
SelfShipAppointmentSlotsAvailability =

The self ship appointment time slots availability and an expiration date for which the slots can be scheduled.

Structure.new do
  # @return [String] The time at which the self ship appointment slot expires. In [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) datetime format.
  attribute(:expires_at, String, from: "expiresAt")

  # @return [Array<AppointmentSlot>] A list of appointment slots.
  attribute(:slots, [AppointmentSlot])
end
UpdateShipmentTrackingDetailsRequest =

The updateShipmentTrackingDetails request.

Structure.new do
  # @return [TrackingDetailsInput]
  attribute(:tracking_details, TrackingDetailsInput, from: "trackingDetails")
end
GenerateDeliveryWindowOptionsResponse =

The generateDeliveryWindowOptions response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
UpdateShipmentTrackingDetailsResponse =

The updateShipmentTrackingDetails response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
GenerateSelfShipAppointmentSlotsRequest =

The generateSelfShipAppointmentSlots request.

Structure.new do
  # @return [String] The desired end date. In [ISO 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601)
  # datetime format.
  attribute(:desired_end_date, String, from: "desiredEndDate")

  # @return [String] The desired start date. In [ISO 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601)
  # datetime format.
  attribute(:desired_start_date, String, from: "desiredStartDate")
end
GenerateSelfShipAppointmentSlotsResponse =

The generateSelfShipAppointmentSlots response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
ListShipmentContentUpdatePreviewsResponse =

The ListShipmentContentUpdatePreviews response.

Structure.new do
  # @return [Array<ContentUpdatePreview>] A list of content update previews in a shipment.
  attribute(:content_update_previews, [ContentUpdatePreview], from: "contentUpdatePreviews")

  # @return [Pagination]
  attribute(:pagination, Pagination)
end
ConfirmShipmentContentUpdatePreviewResponse =

The confirmShipmentContentUpdatePreview response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end
GenerateShipmentContentUpdatePreviewsRequest =

The GenerateShipmentContentUpdatePreviews request.

Structure.new do
  # @return [Array<BoxUpdateInput>] A list of boxes that will be present in the shipment after the update.
  attribute(:boxes, [BoxUpdateInput])

  # @return [Array<ItemInput>] A list of all items that will be present in the shipment after the update.
  attribute(:items, [ItemInput])
end
GenerateShipmentContentUpdatePreviewsResponse =

The GenerateShipmentContentUpdatePreviews response.

Structure.new do
  # @return [String] UUID for the given operation.
  attribute(:operation_id, String, from: "operationId")
end