Skip to main content

amazon_spapi/models/vendor_orders/
order_item_acknowledgement.rs

1/*
2 * Selling Partner API for Retail Procurement Orders
3 *
4 * The Selling Partner API for Retail Procurement Orders provides programmatic access to vendor orders data.
5 *
6 * The version of the OpenAPI document: v1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// OrderItemAcknowledgement : Represents the acknowledgement details for an individual order item, including the acknowledgement code, acknowledged quantity, scheduled ship and delivery dates, and rejection reason (if applicable).
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OrderItemAcknowledgement {
17    /// This indicates the acknowledgement code.
18    #[serde(rename = "acknowledgementCode")]
19    pub acknowledgement_code: AcknowledgementCode,
20    #[serde(rename = "acknowledgedQuantity")]
21    pub acknowledged_quantity: Box<models::vendor_orders::ItemQuantity>,
22    /// Estimated ship date per line item. Must be in ISO-8601 date/time format.
23    #[serde(rename = "scheduledShipDate", skip_serializing_if = "Option::is_none")]
24    pub scheduled_ship_date: Option<String>,
25    /// Estimated delivery date per line item. Must be in ISO-8601 date/time format.
26    #[serde(rename = "scheduledDeliveryDate", skip_serializing_if = "Option::is_none")]
27    pub scheduled_delivery_date: Option<String>,
28    /// Indicates the reason for rejection.
29    #[serde(rename = "rejectionReason", skip_serializing_if = "Option::is_none")]
30    pub rejection_reason: Option<RejectionReason>,
31}
32
33impl OrderItemAcknowledgement {
34    /// Represents the acknowledgement details for an individual order item, including the acknowledgement code, acknowledged quantity, scheduled ship and delivery dates, and rejection reason (if applicable).
35    pub fn new(acknowledgement_code: AcknowledgementCode, acknowledged_quantity: models::vendor_orders::ItemQuantity) -> OrderItemAcknowledgement {
36        OrderItemAcknowledgement {
37            acknowledgement_code,
38            acknowledged_quantity: Box::new(acknowledged_quantity),
39            scheduled_ship_date: None,
40            scheduled_delivery_date: None,
41            rejection_reason: None,
42        }
43    }
44}
45/// This indicates the acknowledgement code.
46#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
47pub enum AcknowledgementCode {
48    #[serde(rename = "Accepted")]
49    Accepted,
50    #[serde(rename = "Backordered")]
51    Backordered,
52    #[serde(rename = "Rejected")]
53    Rejected,
54}
55
56impl Default for AcknowledgementCode {
57    fn default() -> AcknowledgementCode {
58        Self::Accepted
59    }
60}
61/// Indicates the reason for rejection.
62#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
63pub enum RejectionReason {
64    #[serde(rename = "TemporarilyUnavailable")]
65    TemporarilyUnavailable,
66    #[serde(rename = "InvalidProductIdentifier")]
67    InvalidProductIdentifier,
68    #[serde(rename = "ObsoleteProduct")]
69    ObsoleteProduct,
70}
71
72impl Default for RejectionReason {
73    fn default() -> RejectionReason {
74        Self::TemporarilyUnavailable
75    }
76}
77