use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Reason {
#[serde(rename = "message")]
pub message: String,
#[serde(rename = "reasonCode", skip_serializing_if = "Option::is_none")]
pub reason_code: Option<ReasonCode>,
#[serde(rename = "links", skip_serializing_if = "Option::is_none")]
pub links: Option<Vec<models::listings_restrictions_2021_08_01::Link>>,
}
impl Reason {
pub fn new(message: String) -> Reason {
Reason {
message,
reason_code: None,
links: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ReasonCode {
#[serde(rename = "APPROVAL_REQUIRED")]
ApprovalRequired,
#[serde(rename = "ASIN_NOT_FOUND")]
AsinNotFound,
#[serde(rename = "NOT_ELIGIBLE")]
NotEligible,
}
impl Default for ReasonCode {
fn default() -> ReasonCode {
Self::ApprovalRequired
}
}