use stripe_client_core::{
RequestBuilder, StripeBlockingClient, StripeClient, StripeMethod, StripeRequest,
};
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
struct RetrieveForMyAccountBalanceSettingsBuilder {
#[serde(skip_serializing_if = "Option::is_none")]
expand: Option<Vec<String>>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for RetrieveForMyAccountBalanceSettingsBuilder {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("RetrieveForMyAccountBalanceSettingsBuilder").finish_non_exhaustive()
}
}
impl RetrieveForMyAccountBalanceSettingsBuilder {
fn new() -> Self {
Self { expand: None }
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct RetrieveForMyAccountBalanceSettings {
inner: RetrieveForMyAccountBalanceSettingsBuilder,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for RetrieveForMyAccountBalanceSettings {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("RetrieveForMyAccountBalanceSettings").finish_non_exhaustive()
}
}
impl RetrieveForMyAccountBalanceSettings {
pub fn new() -> Self {
Self { inner: RetrieveForMyAccountBalanceSettingsBuilder::new() }
}
pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
self.inner.expand = Some(expand.into());
self
}
}
impl Default for RetrieveForMyAccountBalanceSettings {
fn default() -> Self {
Self::new()
}
}
impl RetrieveForMyAccountBalanceSettings {
pub async fn send<C: StripeClient>(
&self,
client: &C,
) -> Result<<Self as StripeRequest>::Output, C::Err> {
self.customize().send(client).await
}
pub fn send_blocking<C: StripeBlockingClient>(
&self,
client: &C,
) -> Result<<Self as StripeRequest>::Output, C::Err> {
self.customize().send_blocking(client)
}
}
impl StripeRequest for RetrieveForMyAccountBalanceSettings {
type Output = stripe_core::BalanceSettings;
fn build(&self) -> RequestBuilder {
RequestBuilder::new(StripeMethod::Get, "/balance_settings").query(&self.inner)
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
struct UpdateBalanceSettingsBuilder {
#[serde(skip_serializing_if = "Option::is_none")]
expand: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
payments: Option<UpdateBalanceSettingsPayments>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsBuilder {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettingsBuilder").finish_non_exhaustive()
}
}
impl UpdateBalanceSettingsBuilder {
fn new() -> Self {
Self { expand: None, payments: None }
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct UpdateBalanceSettingsPayments {
#[serde(skip_serializing_if = "Option::is_none")]
pub debit_negative_balances: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub payouts: Option<UpdateBalanceSettingsPaymentsPayouts>,
#[serde(skip_serializing_if = "Option::is_none")]
pub settlement_timing: Option<UpdateBalanceSettingsPaymentsSettlementTiming>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPayments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettingsPayments").finish_non_exhaustive()
}
}
impl UpdateBalanceSettingsPayments {
pub fn new() -> Self {
Self { debit_negative_balances: None, payouts: None, settlement_timing: None }
}
}
impl Default for UpdateBalanceSettingsPayments {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct UpdateBalanceSettingsPaymentsPayouts {
#[serde(skip_serializing_if = "Option::is_none")]
pub minimum_balance_by_currency: Option<std::collections::HashMap<String, i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<UpdateBalanceSettingsPaymentsPayoutsSchedule>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statement_descriptor: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayouts {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettingsPaymentsPayouts").finish_non_exhaustive()
}
}
impl UpdateBalanceSettingsPaymentsPayouts {
pub fn new() -> Self {
Self { minimum_balance_by_currency: None, schedule: None, statement_descriptor: None }
}
}
impl Default for UpdateBalanceSettingsPaymentsPayouts {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct UpdateBalanceSettingsPaymentsPayoutsSchedule {
#[serde(skip_serializing_if = "Option::is_none")]
pub interval: Option<UpdateBalanceSettingsPaymentsPayoutsScheduleInterval>,
#[serde(skip_serializing_if = "Option::is_none")]
pub monthly_payout_days: Option<Vec<u32>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub weekly_payout_days:
Option<Vec<UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays>>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayoutsSchedule {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettingsPaymentsPayoutsSchedule").finish_non_exhaustive()
}
}
impl UpdateBalanceSettingsPaymentsPayoutsSchedule {
pub fn new() -> Self {
Self { interval: None, monthly_payout_days: None, weekly_payout_days: None }
}
}
impl Default for UpdateBalanceSettingsPaymentsPayoutsSchedule {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
Daily,
Manual,
Monthly,
Weekly,
Unknown(String),
}
impl UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
pub fn as_str(&self) -> &str {
use UpdateBalanceSettingsPaymentsPayoutsScheduleInterval::*;
match self {
Daily => "daily",
Manual => "manual",
Monthly => "monthly",
Weekly => "weekly",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use UpdateBalanceSettingsPaymentsPayoutsScheduleInterval::*;
match s {
"daily" => Ok(Daily),
"manual" => Ok(Manual),
"monthly" => Ok(Monthly),
"weekly" => Ok(Weekly),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"UpdateBalanceSettingsPaymentsPayoutsScheduleInterval"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[cfg(not(feature = "redact-generated-debug"))]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(UpdateBalanceSettingsPaymentsPayoutsScheduleInterval))
.finish_non_exhaustive()
}
}
impl serde::Serialize for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
#[cfg(feature = "deserialize")]
impl<'de> serde::Deserialize<'de> for UpdateBalanceSettingsPaymentsPayoutsScheduleInterval {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
use std::str::FromStr;
let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
Ok(Self::from_str(&s).expect("infallible"))
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
Friday,
Monday,
Thursday,
Tuesday,
Wednesday,
Unknown(String),
}
impl UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
pub fn as_str(&self) -> &str {
use UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays::*;
match self {
Friday => "friday",
Monday => "monday",
Thursday => "thursday",
Tuesday => "tuesday",
Wednesday => "wednesday",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays::*;
match s {
"friday" => Ok(Friday),
"monday" => Ok(Monday),
"thursday" => Ok(Thursday),
"tuesday" => Ok(Tuesday),
"wednesday" => Ok(Wednesday),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[cfg(not(feature = "redact-generated-debug"))]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays))
.finish_non_exhaustive()
}
}
impl serde::Serialize for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
#[cfg(feature = "deserialize")]
impl<'de> serde::Deserialize<'de> for UpdateBalanceSettingsPaymentsPayoutsScheduleWeeklyPayoutDays {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
use std::str::FromStr;
let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
Ok(Self::from_str(&s).expect("infallible"))
}
}
#[derive(Copy, Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct UpdateBalanceSettingsPaymentsSettlementTiming {
#[serde(skip_serializing_if = "Option::is_none")]
pub delay_days_override: Option<u32>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettingsPaymentsSettlementTiming {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettingsPaymentsSettlementTiming").finish_non_exhaustive()
}
}
impl UpdateBalanceSettingsPaymentsSettlementTiming {
pub fn new() -> Self {
Self { delay_days_override: None }
}
}
impl Default for UpdateBalanceSettingsPaymentsSettlementTiming {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct UpdateBalanceSettings {
inner: UpdateBalanceSettingsBuilder,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for UpdateBalanceSettings {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("UpdateBalanceSettings").finish_non_exhaustive()
}
}
impl UpdateBalanceSettings {
pub fn new() -> Self {
Self { inner: UpdateBalanceSettingsBuilder::new() }
}
pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
self.inner.expand = Some(expand.into());
self
}
pub fn payments(mut self, payments: impl Into<UpdateBalanceSettingsPayments>) -> Self {
self.inner.payments = Some(payments.into());
self
}
}
impl Default for UpdateBalanceSettings {
fn default() -> Self {
Self::new()
}
}
impl UpdateBalanceSettings {
pub async fn send<C: StripeClient>(
&self,
client: &C,
) -> Result<<Self as StripeRequest>::Output, C::Err> {
self.customize().send(client).await
}
pub fn send_blocking<C: StripeBlockingClient>(
&self,
client: &C,
) -> Result<<Self as StripeRequest>::Output, C::Err> {
self.customize().send_blocking(client)
}
}
impl StripeRequest for UpdateBalanceSettings {
type Output = stripe_core::BalanceSettings;
fn build(&self) -> RequestBuilder {
RequestBuilder::new(StripeMethod::Post, "/balance_settings").form(&self.inner)
}
}