1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 * Selling Partner APIs for Fulfillment Outbound
 *
 * The Selling Partner API for Fulfillment Outbound lets you create applications that help a seller fulfill Multi-Channel Fulfillment orders using their inventory in Amazon's fulfillment network. You can get information on both potential and existing fulfillment orders.
 *
 * The version of the OpenAPI document: 2020-07-01
 * 
 * Generated by: https://openapi-generator.tech
 */

/// FulfillmentOrder : General information about a fulfillment order, including its status.



#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct FulfillmentOrder {
    /// The fulfillment order identifier submitted with the createFulfillmentOrder operation.
    #[serde(default, rename = "sellerFulfillmentOrderId")]
    pub seller_fulfillment_order_id: String,
    /// The identifier for the marketplace the fulfillment order is placed against.
    #[serde(default, rename = "marketplaceId")]
    pub marketplace_id: String,
    /// A fulfillment order identifier submitted with the createFulfillmentOrder operation. Displays as the order identifier in recipient-facing materials such as the packing slip.
    #[serde(default, rename = "displayableOrderId")]
    pub displayable_order_id: String,
    #[serde(default, rename = "displayableOrderDate")]
    pub displayable_order_date: String,
    /// A text block submitted with the createFulfillmentOrder operation. Displays in recipient-facing materials such as the packing slip.
    #[serde(default, rename = "displayableOrderComment")]
    pub displayable_order_comment: String,
    #[serde(default, rename = "shippingSpeedCategory")]
    pub shipping_speed_category: crate::models::ShippingSpeedCategory,
    #[serde(default, rename = "deliveryWindow", skip_serializing_if = "Option::is_none")]
    pub delivery_window: Option<Box<crate::models::DeliveryWindow>>,
    #[serde(default, rename = "destinationAddress")]
    pub destination_address: Box<crate::models::Address>,
    #[serde(default, rename = "fulfillmentAction", skip_serializing_if = "Option::is_none")]
    pub fulfillment_action: Option<crate::models::FulfillmentAction>,
    #[serde(default, rename = "fulfillmentPolicy", skip_serializing_if = "Option::is_none")]
    pub fulfillment_policy: Option<crate::models::FulfillmentPolicy>,
    #[serde(default, rename = "codSettings", skip_serializing_if = "Option::is_none")]
    pub cod_settings: Option<Box<crate::models::CodSettings>>,
    #[serde(default, rename = "receivedDate")]
    pub received_date: String,
    #[serde(default, rename = "fulfillmentOrderStatus")]
    pub fulfillment_order_status: crate::models::FulfillmentOrderStatus,
    #[serde(default, rename = "statusUpdatedDate")]
    pub status_updated_date: String,
    /// A list of email addresses that the seller provides that are used by Amazon to send ship-complete notifications to recipients on behalf of the seller.
    #[serde(default, rename = "notificationEmails", skip_serializing_if = "Option::is_none")]
    pub notification_emails: Option<Vec<String>>,
    /// A list of features and their fulfillment policies to apply to the order.
    #[serde(default, rename = "featureConstraints", skip_serializing_if = "Option::is_none")]
    pub feature_constraints: Option<Vec<crate::models::FeatureSettings>>,
}

impl FulfillmentOrder {
    /// General information about a fulfillment order, including its status.
    pub fn new(seller_fulfillment_order_id: String, marketplace_id: String, displayable_order_id: String, displayable_order_date: String, displayable_order_comment: String, shipping_speed_category: crate::models::ShippingSpeedCategory, destination_address: crate::models::Address, received_date: String, fulfillment_order_status: crate::models::FulfillmentOrderStatus, status_updated_date: String) -> FulfillmentOrder {
        FulfillmentOrder {
            seller_fulfillment_order_id,
            marketplace_id,
            displayable_order_id,
            displayable_order_date,
            displayable_order_comment,
            shipping_speed_category,
            delivery_window: None,
            destination_address: Box::new(destination_address),
            fulfillment_action: None,
            fulfillment_policy: None,
            cod_settings: None,
            received_date,
            fulfillment_order_status,
            status_updated_date,
            notification_emails: None,
            feature_constraints: None,
        }
    }
}