amazon-spapi 2.0.3

A Rust client library for Amazon Selling Partner API (SP-API)
Documentation
/*
 * The Selling Partner API for Amazon Seller Wallet Open Banking API
 *
 * The Selling Partner API for Seller Wallet (Seller Wallet API) provides financial information that is relevant to a seller's Seller Wallet account. You can obtain financial events, balances, and transfer schedules for Seller Wallet accounts. You can also schedule and initiate transactions.
 *
 * The version of the OpenAPI document: 2024-03-01
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// TransferSchedule : Transfer schedule details and related historical details.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TransferSchedule {
    /// The unique identifier provided by Amazon to the scheduled transfer 
    #[serde(rename = "transferScheduleId")]
    pub transfer_schedule_id: String,
    #[serde(rename = "transactionType")]
    pub transaction_type: models::seller_wallet_2024_03_01::TransactionType,
    #[serde(rename = "transactionSourceAccount", skip_serializing_if = "Option::is_none")]
    pub transaction_source_account: Option<Box<models::seller_wallet_2024_03_01::TransactionAccount>>,
    #[serde(rename = "transactionDestinationAccount")]
    pub transaction_destination_account: Box<models::seller_wallet_2024_03_01::TransactionAccount>,
    #[serde(rename = "transferScheduleStatus")]
    pub transfer_schedule_status: models::seller_wallet_2024_03_01::TransferScheduleStatus,
    #[serde(rename = "transferScheduleInformation")]
    pub transfer_schedule_information: Box<models::seller_wallet_2024_03_01::TransferScheduleInformation>,
    #[serde(rename = "paymentPreference", skip_serializing_if = "Option::is_none")]
    pub payment_preference: Option<Box<models::seller_wallet_2024_03_01::PaymentPreference>>,
    /// Collection that holds Transfer Schedules that has been cancelled or failed due to certain reasons. 
    #[serde(rename = "transferScheduleFailures")]
    pub transfer_schedule_failures: Vec<models::seller_wallet_2024_03_01::TransferScheduleFailures>,
}

impl TransferSchedule {
    /// Transfer schedule details and related historical details.
    pub fn new(transfer_schedule_id: String, transaction_type: models::seller_wallet_2024_03_01::TransactionType, transaction_destination_account: models::seller_wallet_2024_03_01::TransactionAccount, transfer_schedule_status: models::seller_wallet_2024_03_01::TransferScheduleStatus, transfer_schedule_information: models::seller_wallet_2024_03_01::TransferScheduleInformation, transfer_schedule_failures: Vec<models::seller_wallet_2024_03_01::TransferScheduleFailures>) -> TransferSchedule {
        TransferSchedule {
            transfer_schedule_id,
            transaction_type,
            transaction_source_account: None,
            transaction_destination_account: Box::new(transaction_destination_account),
            transfer_schedule_status,
            transfer_schedule_information: Box::new(transfer_schedule_information),
            payment_preference: None,
            transfer_schedule_failures,
        }
    }
}