/*
* Selling Partner API for FBA Inbound Eligibilty
*
* With the FBA Inbound Eligibility API, you can build applications that let sellers get eligibility previews for items before shipping them to Amazon's fulfillment centers. With this API you can find out if an item is eligible for inbound shipment to Amazon's fulfillment centers in a specific marketplace. You can also find out if an item is eligible for using the manufacturer barcode for FBA inventory tracking. Sellers can use this information to inform their decisions about which items to ship Amazon's fulfillment centers.
*
* The version of the OpenAPI document: v1
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// ItemEligibilityPreview : The response object which contains the ASIN, marketplaceId if required, eligibility program, the eligibility status (boolean), and a list of ineligibility reason codes.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ItemEligibilityPreview {
/// The ASIN for which eligibility was determined.
#[serde(rename = "asin")]
pub asin: String,
/// The marketplace for which eligibility was determined.
#[serde(rename = "marketplaceId", skip_serializing_if = "Option::is_none")]
pub marketplace_id: Option<String>,
/// The program for which eligibility was determined.
#[serde(rename = "program")]
pub program: Program,
/// Indicates if the item is eligible for the program.
#[serde(rename = "isEligibleForProgram")]
pub is_eligible_for_program: bool,
/// Potential Ineligibility Reason Codes.
#[serde(rename = "ineligibilityReasonList", skip_serializing_if = "Option::is_none")]
pub ineligibility_reason_list: Option<Vec<IneligibilityReasonList>>,
}
impl ItemEligibilityPreview {
/// The response object which contains the ASIN, marketplaceId if required, eligibility program, the eligibility status (boolean), and a list of ineligibility reason codes.
pub fn new(asin: String, program: Program, is_eligible_for_program: bool) -> ItemEligibilityPreview {
ItemEligibilityPreview {
asin,
marketplace_id: None,
program,
is_eligible_for_program,
ineligibility_reason_list: None,
}
}
}
/// The program for which eligibility was determined.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Program {
#[serde(rename = "INBOUND")]
Inbound,
#[serde(rename = "COMMINGLING")]
Commingling,
}
impl Default for Program {
fn default() -> Program {
Self::Inbound
}
}
/// Potential Ineligibility Reason Codes.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum IneligibilityReasonList {
#[serde(rename = "FBA_INB_0004")]
FbaInb0004,
#[serde(rename = "FBA_INB_0006")]
FbaInb0006,
#[serde(rename = "FBA_INB_0007")]
FbaInb0007,
#[serde(rename = "FBA_INB_0008")]
FbaInb0008,
#[serde(rename = "FBA_INB_0009")]
FbaInb0009,
#[serde(rename = "FBA_INB_0010")]
FbaInb0010,
#[serde(rename = "FBA_INB_0011")]
FbaInb0011,
#[serde(rename = "FBA_INB_0012")]
FbaInb0012,
#[serde(rename = "FBA_INB_0013")]
FbaInb0013,
#[serde(rename = "FBA_INB_0014")]
FbaInb0014,
#[serde(rename = "FBA_INB_0015")]
FbaInb0015,
#[serde(rename = "FBA_INB_0016")]
FbaInb0016,
#[serde(rename = "FBA_INB_0017")]
FbaInb0017,
#[serde(rename = "FBA_INB_0018")]
FbaInb0018,
#[serde(rename = "FBA_INB_0019")]
FbaInb0019,
#[serde(rename = "FBA_INB_0034")]
FbaInb0034,
#[serde(rename = "FBA_INB_0035")]
FbaInb0035,
#[serde(rename = "FBA_INB_0036")]
FbaInb0036,
#[serde(rename = "FBA_INB_0037")]
FbaInb0037,
#[serde(rename = "FBA_INB_0038")]
FbaInb0038,
#[serde(rename = "FBA_INB_0050")]
FbaInb0050,
#[serde(rename = "FBA_INB_0051")]
FbaInb0051,
#[serde(rename = "FBA_INB_0053")]
FbaInb0053,
#[serde(rename = "FBA_INB_0055")]
FbaInb0055,
#[serde(rename = "FBA_INB_0056")]
FbaInb0056,
#[serde(rename = "FBA_INB_0059")]
FbaInb0059,
#[serde(rename = "FBA_INB_0065")]
FbaInb0065,
#[serde(rename = "FBA_INB_0066")]
FbaInb0066,
#[serde(rename = "FBA_INB_0067")]
FbaInb0067,
#[serde(rename = "FBA_INB_0068")]
FbaInb0068,
#[serde(rename = "FBA_INB_0095")]
FbaInb0095,
#[serde(rename = "FBA_INB_0097")]
FbaInb0097,
#[serde(rename = "FBA_INB_0098")]
FbaInb0098,
#[serde(rename = "FBA_INB_0099")]
FbaInb0099,
#[serde(rename = "FBA_INB_0100")]
FbaInb0100,
#[serde(rename = "FBA_INB_0103")]
FbaInb0103,
#[serde(rename = "FBA_INB_0104")]
FbaInb0104,
#[serde(rename = "FBA_INB_0197")]
FbaInb0197,
#[serde(rename = "UNKNOWN_INB_ERROR_CODE")]
UnknownInbErrorCode,
}
impl Default for IneligibilityReasonList {
fn default() -> IneligibilityReasonList {
Self::FbaInb0004
}
}