#[derive(Debug)]
pub struct ApiError {
pub error_type: Option<String>,
pub code: Option<String>,
pub message: String,
pub status: u16,
pub param: Option<String>,
pub request_id: Option<String>,
pub docs_url: Option<String>,
pub retry_after: Option<std::time::Duration>,
pub body: serde_json::Value,
pub headers: http::HeaderMap,
}
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("SellApp authentication error: {0:?}")]
Authentication(Box<ApiError>),
#[error("SellApp API error: {0:?}")]
Api(Box<ApiError>),
#[error("transport error: {0}")]
Transport(String),
#[error("request timed out: {0}")]
Timeout(String),
#[error("request cancelled: {0}")]
Cancelled(String),
#[error("serialization error: {0}")]
Serialization(String),
#[error("validation error: {0}")]
Validation(String),
#[error("configuration error: {0}")]
Configuration(String),
#[error("request builder error: {0}")]
Builder(String),
}