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 RetrieveTokenBuilder {
#[serde(skip_serializing_if = "Option::is_none")]
expand: Option<Vec<String>>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for RetrieveTokenBuilder {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("RetrieveTokenBuilder").finish_non_exhaustive()
}
}
impl RetrieveTokenBuilder {
fn new() -> Self {
Self { expand: None }
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct RetrieveToken {
inner: RetrieveTokenBuilder,
token: stripe_core::TokenId,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for RetrieveToken {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("RetrieveToken").finish_non_exhaustive()
}
}
impl RetrieveToken {
pub fn new(token: impl Into<stripe_core::TokenId>) -> Self {
Self { token: token.into(), inner: RetrieveTokenBuilder::new() }
}
pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
self.inner.expand = Some(expand.into());
self
}
}
impl RetrieveToken {
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 RetrieveToken {
type Output = stripe_core::Token;
fn build(&self) -> RequestBuilder {
let token = &self.token;
RequestBuilder::new(StripeMethod::Get, format!("/tokens/{token}")).query(&self.inner)
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
struct CreateTokenBuilder {
#[serde(skip_serializing_if = "Option::is_none")]
account: Option<CreateTokenAccount>,
#[serde(skip_serializing_if = "Option::is_none")]
bank_account: Option<CreateTokenBankAccount>,
#[serde(skip_serializing_if = "Option::is_none")]
card: Option<CreateTokenCard>,
#[serde(skip_serializing_if = "Option::is_none")]
customer: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
cvc_update: Option<CreateTokenCvcUpdate>,
#[serde(skip_serializing_if = "Option::is_none")]
expand: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
person: Option<CreateTokenPerson>,
#[serde(skip_serializing_if = "Option::is_none")]
pii: Option<CreateTokenPii>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenBuilder {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenBuilder").finish_non_exhaustive()
}
}
impl CreateTokenBuilder {
fn new() -> Self {
Self {
account: None,
bank_account: None,
card: None,
customer: None,
cvc_update: None,
expand: None,
person: None,
pii: None,
}
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccount {
#[serde(skip_serializing_if = "Option::is_none")]
pub business_type: Option<CreateTokenAccountBusinessType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub company: Option<CreateTokenAccountCompany>,
#[serde(skip_serializing_if = "Option::is_none")]
pub individual: Option<CreateTokenAccountIndividual>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tos_shown_and_accepted: Option<bool>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccount {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccount").finish_non_exhaustive()
}
}
impl CreateTokenAccount {
pub fn new() -> Self {
Self { business_type: None, company: None, individual: None, tos_shown_and_accepted: None }
}
}
impl Default for CreateTokenAccount {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenAccountBusinessType {
Company,
GovernmentEntity,
Individual,
NonProfit,
Unknown(String),
}
impl CreateTokenAccountBusinessType {
pub fn as_str(&self) -> &str {
use CreateTokenAccountBusinessType::*;
match self {
Company => "company",
GovernmentEntity => "government_entity",
Individual => "individual",
NonProfit => "non_profit",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenAccountBusinessType {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenAccountBusinessType::*;
match s {
"company" => Ok(Company),
"government_entity" => Ok(GovernmentEntity),
"individual" => Ok(Individual),
"non_profit" => Ok(NonProfit),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenAccountBusinessType"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenAccountBusinessType {
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 CreateTokenAccountBusinessType {
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 CreateTokenAccountBusinessType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenAccountBusinessType)).finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenAccountBusinessType {
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 CreateTokenAccountBusinessType {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompany {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<CreateTokenAccountCompanyAddress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<CreateTokenAccountCompanyAddressKana>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<CreateTokenAccountCompanyAddressKanji>,
#[serde(skip_serializing_if = "Option::is_none")]
pub directors_provided: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub directorship_declaration: Option<CreateTokenAccountCompanyDirectorshipDeclaration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executives_provided: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub export_license_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub export_purpose_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kana: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name_kanji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owners_provided: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ownership_declaration: Option<CreateTokenAccountCompanyOwnershipDeclaration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ownership_declaration_shown_and_signed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ownership_exemption_reason: Option<CreateTokenAccountCompanyOwnershipExemptionReason>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_date: Option<CreateTokenAccountCompanyRegistrationDate>,
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_number: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub representative_declaration: Option<CreateTokenAccountCompanyRepresentativeDeclaration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub structure: Option<CreateTokenAccountCompanyStructure>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tax_id_registrar: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vat_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<CreateTokenAccountCompanyVerification>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompany {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompany").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompany {
pub fn new() -> Self {
Self {
address: None,
address_kana: None,
address_kanji: None,
directors_provided: None,
directorship_declaration: None,
executives_provided: None,
export_license_id: None,
export_purpose_code: None,
name: None,
name_kana: None,
name_kanji: None,
owners_provided: None,
ownership_declaration: None,
ownership_declaration_shown_and_signed: None,
ownership_exemption_reason: None,
phone: None,
registration_date: None,
registration_number: None,
representative_declaration: None,
structure: None,
tax_id: None,
tax_id_registrar: None,
vat_id: None,
verification: None,
}
}
}
impl Default for CreateTokenAccountCompany {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyAddress {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyAddress {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyAddress").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyAddress {
pub fn new() -> Self {
Self { city: None, country: None, line1: None, line2: None, postal_code: None, state: None }
}
}
impl Default for CreateTokenAccountCompanyAddress {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyAddressKana {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyAddressKana {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyAddressKana").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyAddressKana {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenAccountCompanyAddressKana {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyAddressKanji {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyAddressKanji {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyAddressKanji").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyAddressKanji {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenAccountCompanyAddressKanji {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyDirectorshipDeclaration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<stripe_types::Timestamp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyDirectorshipDeclaration {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyDirectorshipDeclaration").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyDirectorshipDeclaration {
pub fn new() -> Self {
Self { date: None, ip: None, user_agent: None }
}
}
impl Default for CreateTokenAccountCompanyDirectorshipDeclaration {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyOwnershipDeclaration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<stripe_types::Timestamp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyOwnershipDeclaration {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyOwnershipDeclaration").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyOwnershipDeclaration {
pub fn new() -> Self {
Self { date: None, ip: None, user_agent: None }
}
}
impl Default for CreateTokenAccountCompanyOwnershipDeclaration {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenAccountCompanyOwnershipExemptionReason {
QualifiedEntityExceedsOwnershipThreshold,
QualifiesAsFinancialInstitution,
Unknown(String),
}
impl CreateTokenAccountCompanyOwnershipExemptionReason {
pub fn as_str(&self) -> &str {
use CreateTokenAccountCompanyOwnershipExemptionReason::*;
match self {
QualifiedEntityExceedsOwnershipThreshold => {
"qualified_entity_exceeds_ownership_threshold"
}
QualifiesAsFinancialInstitution => "qualifies_as_financial_institution",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenAccountCompanyOwnershipExemptionReason {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenAccountCompanyOwnershipExemptionReason::*;
match s {
"qualified_entity_exceeds_ownership_threshold" => {
Ok(QualifiedEntityExceedsOwnershipThreshold)
}
"qualifies_as_financial_institution" => Ok(QualifiesAsFinancialInstitution),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenAccountCompanyOwnershipExemptionReason"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenAccountCompanyOwnershipExemptionReason {
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 CreateTokenAccountCompanyOwnershipExemptionReason {
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 CreateTokenAccountCompanyOwnershipExemptionReason {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenAccountCompanyOwnershipExemptionReason))
.finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenAccountCompanyOwnershipExemptionReason {
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 CreateTokenAccountCompanyOwnershipExemptionReason {
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 CreateTokenAccountCompanyRegistrationDate {
pub day: i64,
pub month: i64,
pub year: i64,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyRegistrationDate {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyRegistrationDate").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyRegistrationDate {
pub fn new(day: impl Into<i64>, month: impl Into<i64>, year: impl Into<i64>) -> Self {
Self { day: day.into(), month: month.into(), year: year.into() }
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyRepresentativeDeclaration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<stripe_types::Timestamp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyRepresentativeDeclaration {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyRepresentativeDeclaration").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyRepresentativeDeclaration {
pub fn new() -> Self {
Self { date: None, ip: None, user_agent: None }
}
}
impl Default for CreateTokenAccountCompanyRepresentativeDeclaration {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenAccountCompanyStructure {
FreeZoneEstablishment,
FreeZoneLlc,
GovernmentInstrumentality,
GovernmentalUnit,
IncorporatedNonProfit,
IncorporatedPartnership,
LimitedLiabilityPartnership,
Llc,
MultiMemberLlc,
PrivateCompany,
PrivateCorporation,
PrivatePartnership,
PublicCompany,
PublicCorporation,
PublicPartnership,
RegisteredCharity,
SingleMemberLlc,
SoleEstablishment,
SoleProprietorship,
TaxExemptGovernmentInstrumentality,
UnincorporatedAssociation,
UnincorporatedNonProfit,
UnincorporatedPartnership,
Unknown(String),
}
impl CreateTokenAccountCompanyStructure {
pub fn as_str(&self) -> &str {
use CreateTokenAccountCompanyStructure::*;
match self {
FreeZoneEstablishment => "free_zone_establishment",
FreeZoneLlc => "free_zone_llc",
GovernmentInstrumentality => "government_instrumentality",
GovernmentalUnit => "governmental_unit",
IncorporatedNonProfit => "incorporated_non_profit",
IncorporatedPartnership => "incorporated_partnership",
LimitedLiabilityPartnership => "limited_liability_partnership",
Llc => "llc",
MultiMemberLlc => "multi_member_llc",
PrivateCompany => "private_company",
PrivateCorporation => "private_corporation",
PrivatePartnership => "private_partnership",
PublicCompany => "public_company",
PublicCorporation => "public_corporation",
PublicPartnership => "public_partnership",
RegisteredCharity => "registered_charity",
SingleMemberLlc => "single_member_llc",
SoleEstablishment => "sole_establishment",
SoleProprietorship => "sole_proprietorship",
TaxExemptGovernmentInstrumentality => "tax_exempt_government_instrumentality",
UnincorporatedAssociation => "unincorporated_association",
UnincorporatedNonProfit => "unincorporated_non_profit",
UnincorporatedPartnership => "unincorporated_partnership",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenAccountCompanyStructure {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenAccountCompanyStructure::*;
match s {
"free_zone_establishment" => Ok(FreeZoneEstablishment),
"free_zone_llc" => Ok(FreeZoneLlc),
"government_instrumentality" => Ok(GovernmentInstrumentality),
"governmental_unit" => Ok(GovernmentalUnit),
"incorporated_non_profit" => Ok(IncorporatedNonProfit),
"incorporated_partnership" => Ok(IncorporatedPartnership),
"limited_liability_partnership" => Ok(LimitedLiabilityPartnership),
"llc" => Ok(Llc),
"multi_member_llc" => Ok(MultiMemberLlc),
"private_company" => Ok(PrivateCompany),
"private_corporation" => Ok(PrivateCorporation),
"private_partnership" => Ok(PrivatePartnership),
"public_company" => Ok(PublicCompany),
"public_corporation" => Ok(PublicCorporation),
"public_partnership" => Ok(PublicPartnership),
"registered_charity" => Ok(RegisteredCharity),
"single_member_llc" => Ok(SingleMemberLlc),
"sole_establishment" => Ok(SoleEstablishment),
"sole_proprietorship" => Ok(SoleProprietorship),
"tax_exempt_government_instrumentality" => Ok(TaxExemptGovernmentInstrumentality),
"unincorporated_association" => Ok(UnincorporatedAssociation),
"unincorporated_non_profit" => Ok(UnincorporatedNonProfit),
"unincorporated_partnership" => Ok(UnincorporatedPartnership),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenAccountCompanyStructure"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenAccountCompanyStructure {
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 CreateTokenAccountCompanyStructure {
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 CreateTokenAccountCompanyStructure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenAccountCompanyStructure)).finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenAccountCompanyStructure {
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 CreateTokenAccountCompanyStructure {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyVerification {
#[serde(skip_serializing_if = "Option::is_none")]
pub document: Option<CreateTokenAccountCompanyVerificationDocument>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyVerification {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyVerification").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyVerification {
pub fn new() -> Self {
Self { document: None }
}
}
impl Default for CreateTokenAccountCompanyVerification {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountCompanyVerificationDocument {
#[serde(skip_serializing_if = "Option::is_none")]
pub back: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub front: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountCompanyVerificationDocument {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountCompanyVerificationDocument").finish_non_exhaustive()
}
}
impl CreateTokenAccountCompanyVerificationDocument {
pub fn new() -> Self {
Self { back: None, front: None }
}
}
impl Default for CreateTokenAccountCompanyVerificationDocument {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividual {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<CreateTokenAccountIndividualAddress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<CreateTokenAccountIndividualAddressKana>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<CreateTokenAccountIndividualAddressKanji>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dob: Option<DateOfBirthSpecs>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kana: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kanji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full_name_aliases: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gender: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number_secondary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kana: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kanji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maiden_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub political_exposure: Option<CreateTokenAccountIndividualPoliticalExposure>,
#[serde(skip_serializing_if = "Option::is_none")]
pub registered_address: Option<CreateTokenAccountIndividualRegisteredAddress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub relationship: Option<CreateTokenAccountIndividualRelationship>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ssn_last_4: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<PersonVerificationSpecs>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividual {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividual").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividual {
pub fn new() -> Self {
Self {
address: None,
address_kana: None,
address_kanji: None,
dob: None,
email: None,
first_name: None,
first_name_kana: None,
first_name_kanji: None,
full_name_aliases: None,
gender: None,
id_number: None,
id_number_secondary: None,
last_name: None,
last_name_kana: None,
last_name_kanji: None,
maiden_name: None,
metadata: None,
phone: None,
political_exposure: None,
registered_address: None,
relationship: None,
ssn_last_4: None,
verification: None,
}
}
}
impl Default for CreateTokenAccountIndividual {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividualAddress {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividualAddress {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividualAddress").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividualAddress {
pub fn new() -> Self {
Self { city: None, country: None, line1: None, line2: None, postal_code: None, state: None }
}
}
impl Default for CreateTokenAccountIndividualAddress {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividualAddressKana {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividualAddressKana {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividualAddressKana").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividualAddressKana {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenAccountIndividualAddressKana {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividualAddressKanji {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividualAddressKanji {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividualAddressKanji").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividualAddressKanji {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenAccountIndividualAddressKanji {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenAccountIndividualPoliticalExposure {
Existing,
None,
Unknown(String),
}
impl CreateTokenAccountIndividualPoliticalExposure {
pub fn as_str(&self) -> &str {
use CreateTokenAccountIndividualPoliticalExposure::*;
match self {
Existing => "existing",
None => "none",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenAccountIndividualPoliticalExposure {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenAccountIndividualPoliticalExposure::*;
match s {
"existing" => Ok(Existing),
"none" => Ok(None),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenAccountIndividualPoliticalExposure"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenAccountIndividualPoliticalExposure {
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 CreateTokenAccountIndividualPoliticalExposure {
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 CreateTokenAccountIndividualPoliticalExposure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenAccountIndividualPoliticalExposure))
.finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenAccountIndividualPoliticalExposure {
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 CreateTokenAccountIndividualPoliticalExposure {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividualRegisteredAddress {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividualRegisteredAddress {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividualRegisteredAddress").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividualRegisteredAddress {
pub fn new() -> Self {
Self { city: None, country: None, line1: None, line2: None, postal_code: None, state: None }
}
}
impl Default for CreateTokenAccountIndividualRegisteredAddress {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenAccountIndividualRelationship {
#[serde(skip_serializing_if = "Option::is_none")]
pub director: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percent_ownership: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenAccountIndividualRelationship {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenAccountIndividualRelationship").finish_non_exhaustive()
}
}
impl CreateTokenAccountIndividualRelationship {
pub fn new() -> Self {
Self { director: None, executive: None, owner: None, percent_ownership: None, title: None }
}
}
impl Default for CreateTokenAccountIndividualRelationship {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenBankAccount {
#[serde(skip_serializing_if = "Option::is_none")]
pub account_holder_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub account_holder_type: Option<CreateTokenBankAccountAccountHolderType>,
pub account_number: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub account_type: Option<CreateTokenBankAccountAccountType>,
pub country: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub currency: Option<stripe_types::Currency>,
#[serde(skip_serializing_if = "Option::is_none")]
pub payment_method: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub routing_number: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenBankAccount {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenBankAccount").finish_non_exhaustive()
}
}
impl CreateTokenBankAccount {
pub fn new(account_number: impl Into<String>, country: impl Into<String>) -> Self {
Self {
account_holder_name: None,
account_holder_type: None,
account_number: account_number.into(),
account_type: None,
country: country.into(),
currency: None,
payment_method: None,
routing_number: None,
}
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenBankAccountAccountHolderType {
Company,
Individual,
Unknown(String),
}
impl CreateTokenBankAccountAccountHolderType {
pub fn as_str(&self) -> &str {
use CreateTokenBankAccountAccountHolderType::*;
match self {
Company => "company",
Individual => "individual",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenBankAccountAccountHolderType {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenBankAccountAccountHolderType::*;
match s {
"company" => Ok(Company),
"individual" => Ok(Individual),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenBankAccountAccountHolderType"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenBankAccountAccountHolderType {
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 CreateTokenBankAccountAccountHolderType {
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 CreateTokenBankAccountAccountHolderType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenBankAccountAccountHolderType)).finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenBankAccountAccountHolderType {
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 CreateTokenBankAccountAccountHolderType {
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 CreateTokenBankAccountAccountType {
Checking,
Futsu,
Savings,
Toza,
Unknown(String),
}
impl CreateTokenBankAccountAccountType {
pub fn as_str(&self) -> &str {
use CreateTokenBankAccountAccountType::*;
match self {
Checking => "checking",
Futsu => "futsu",
Savings => "savings",
Toza => "toza",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenBankAccountAccountType {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenBankAccountAccountType::*;
match s {
"checking" => Ok(Checking),
"futsu" => Ok(Futsu),
"savings" => Ok(Savings),
"toza" => Ok(Toza),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenBankAccountAccountType"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenBankAccountAccountType {
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 CreateTokenBankAccountAccountType {
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 CreateTokenBankAccountAccountType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenBankAccountAccountType)).finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenBankAccountAccountType {
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 CreateTokenBankAccountAccountType {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
#[serde(rename_all = "snake_case")]
pub enum CreateTokenCard {
#[serde(untagged)]
CreditCardSpecs(CreateTokenCreditCardSpecs),
#[serde(untagged)]
String(String),
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenCard {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenCard").finish_non_exhaustive()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenCreditCardSpecs {
#[serde(skip_serializing_if = "Option::is_none")]
pub address_city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_zip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub currency: Option<stripe_types::Currency>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cvc: Option<String>,
pub exp_month: String,
pub exp_year: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub networks: Option<CreateTokenCreditCardSpecsNetworks>,
pub number: String,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenCreditCardSpecs {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenCreditCardSpecs").finish_non_exhaustive()
}
}
impl CreateTokenCreditCardSpecs {
pub fn new(
exp_month: impl Into<String>,
exp_year: impl Into<String>,
number: impl Into<String>,
) -> Self {
Self {
address_city: None,
address_country: None,
address_line1: None,
address_line2: None,
address_state: None,
address_zip: None,
currency: None,
cvc: None,
exp_month: exp_month.into(),
exp_year: exp_year.into(),
name: None,
networks: None,
number: number.into(),
}
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenCreditCardSpecsNetworks {
#[serde(skip_serializing_if = "Option::is_none")]
pub preferred: Option<CreateTokenCreditCardSpecsNetworksPreferred>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenCreditCardSpecsNetworks {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenCreditCardSpecsNetworks").finish_non_exhaustive()
}
}
impl CreateTokenCreditCardSpecsNetworks {
pub fn new() -> Self {
Self { preferred: None }
}
}
impl Default for CreateTokenCreditCardSpecsNetworks {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenCreditCardSpecsNetworksPreferred {
CartesBancaires,
Mastercard,
Visa,
Unknown(String),
}
impl CreateTokenCreditCardSpecsNetworksPreferred {
pub fn as_str(&self) -> &str {
use CreateTokenCreditCardSpecsNetworksPreferred::*;
match self {
CartesBancaires => "cartes_bancaires",
Mastercard => "mastercard",
Visa => "visa",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenCreditCardSpecsNetworksPreferred {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenCreditCardSpecsNetworksPreferred::*;
match s {
"cartes_bancaires" => Ok(CartesBancaires),
"mastercard" => Ok(Mastercard),
"visa" => Ok(Visa),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenCreditCardSpecsNetworksPreferred"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenCreditCardSpecsNetworksPreferred {
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 CreateTokenCreditCardSpecsNetworksPreferred {
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 CreateTokenCreditCardSpecsNetworksPreferred {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenCreditCardSpecsNetworksPreferred))
.finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenCreditCardSpecsNetworksPreferred {
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 CreateTokenCreditCardSpecsNetworksPreferred {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenCvcUpdate {
pub cvc: String,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenCvcUpdate {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenCvcUpdate").finish_non_exhaustive()
}
}
impl CreateTokenCvcUpdate {
pub fn new(cvc: impl Into<String>) -> Self {
Self { cvc: cvc.into() }
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPerson {
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_tos_acceptances: Option<CreateTokenPersonAdditionalTosAcceptances>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<CreateTokenPersonAddress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kana: Option<CreateTokenPersonAddressKana>,
#[serde(skip_serializing_if = "Option::is_none")]
pub address_kanji: Option<CreateTokenPersonAddressKanji>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dob: Option<DateOfBirthSpecs>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documents: Option<CreateTokenPersonDocuments>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kana: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_name_kanji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full_name_aliases: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gender: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number_secondary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kana: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_name_kanji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maiden_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nationality: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub political_exposure: Option<CreateTokenPersonPoliticalExposure>,
#[serde(skip_serializing_if = "Option::is_none")]
pub registered_address: Option<CreateTokenPersonRegisteredAddress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub relationship: Option<CreateTokenPersonRelationship>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ssn_last_4: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub us_cfpb_data: Option<CreateTokenPersonUsCfpbData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<PersonVerificationSpecs>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPerson {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPerson").finish_non_exhaustive()
}
}
impl CreateTokenPerson {
pub fn new() -> Self {
Self {
additional_tos_acceptances: None,
address: None,
address_kana: None,
address_kanji: None,
dob: None,
documents: None,
email: None,
first_name: None,
first_name_kana: None,
first_name_kanji: None,
full_name_aliases: None,
gender: None,
id_number: None,
id_number_secondary: None,
last_name: None,
last_name_kana: None,
last_name_kanji: None,
maiden_name: None,
metadata: None,
nationality: None,
phone: None,
political_exposure: None,
registered_address: None,
relationship: None,
ssn_last_4: None,
us_cfpb_data: None,
verification: None,
}
}
}
impl Default for CreateTokenPerson {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonAdditionalTosAcceptances {
#[serde(skip_serializing_if = "Option::is_none")]
pub account: Option<CreateTokenPersonAdditionalTosAcceptancesAccount>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonAdditionalTosAcceptances {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonAdditionalTosAcceptances").finish_non_exhaustive()
}
}
impl CreateTokenPersonAdditionalTosAcceptances {
pub fn new() -> Self {
Self { account: None }
}
}
impl Default for CreateTokenPersonAdditionalTosAcceptances {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonAdditionalTosAcceptancesAccount {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<stripe_types::Timestamp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_agent: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonAdditionalTosAcceptancesAccount {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonAdditionalTosAcceptancesAccount").finish_non_exhaustive()
}
}
impl CreateTokenPersonAdditionalTosAcceptancesAccount {
pub fn new() -> Self {
Self { date: None, ip: None, user_agent: None }
}
}
impl Default for CreateTokenPersonAdditionalTosAcceptancesAccount {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonAddress {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonAddress {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonAddress").finish_non_exhaustive()
}
}
impl CreateTokenPersonAddress {
pub fn new() -> Self {
Self { city: None, country: None, line1: None, line2: None, postal_code: None, state: None }
}
}
impl Default for CreateTokenPersonAddress {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonAddressKana {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonAddressKana {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonAddressKana").finish_non_exhaustive()
}
}
impl CreateTokenPersonAddressKana {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenPersonAddressKana {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonAddressKanji {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub town: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonAddressKanji {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonAddressKanji").finish_non_exhaustive()
}
}
impl CreateTokenPersonAddressKanji {
pub fn new() -> Self {
Self {
city: None,
country: None,
line1: None,
line2: None,
postal_code: None,
state: None,
town: None,
}
}
}
impl Default for CreateTokenPersonAddressKanji {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonDocuments {
#[serde(skip_serializing_if = "Option::is_none")]
pub company_authorization: Option<DocumentsParam>,
#[serde(skip_serializing_if = "Option::is_none")]
pub passport: Option<DocumentsParam>,
#[serde(skip_serializing_if = "Option::is_none")]
pub visa: Option<DocumentsParam>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonDocuments {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonDocuments").finish_non_exhaustive()
}
}
impl CreateTokenPersonDocuments {
pub fn new() -> Self {
Self { company_authorization: None, passport: None, visa: None }
}
}
impl Default for CreateTokenPersonDocuments {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenPersonPoliticalExposure {
Existing,
None,
Unknown(String),
}
impl CreateTokenPersonPoliticalExposure {
pub fn as_str(&self) -> &str {
use CreateTokenPersonPoliticalExposure::*;
match self {
Existing => "existing",
None => "none",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenPersonPoliticalExposure {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenPersonPoliticalExposure::*;
match s {
"existing" => Ok(Existing),
"none" => Ok(None),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenPersonPoliticalExposure"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenPersonPoliticalExposure {
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 CreateTokenPersonPoliticalExposure {
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 CreateTokenPersonPoliticalExposure {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenPersonPoliticalExposure)).finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenPersonPoliticalExposure {
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 CreateTokenPersonPoliticalExposure {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonRegisteredAddress {
#[serde(skip_serializing_if = "Option::is_none")]
pub city: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line1: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line2: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postal_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonRegisteredAddress {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonRegisteredAddress").finish_non_exhaustive()
}
}
impl CreateTokenPersonRegisteredAddress {
pub fn new() -> Self {
Self { city: None, country: None, line1: None, line2: None, postal_code: None, state: None }
}
}
impl Default for CreateTokenPersonRegisteredAddress {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonRelationship {
#[serde(skip_serializing_if = "Option::is_none")]
pub authorizer: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub director: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub executive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub legal_guardian: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percent_ownership: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub representative: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonRelationship {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonRelationship").finish_non_exhaustive()
}
}
impl CreateTokenPersonRelationship {
pub fn new() -> Self {
Self {
authorizer: None,
director: None,
executive: None,
legal_guardian: None,
owner: None,
percent_ownership: None,
representative: None,
title: None,
}
}
}
impl Default for CreateTokenPersonRelationship {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonUsCfpbData {
#[serde(skip_serializing_if = "Option::is_none")]
pub ethnicity_details: Option<CreateTokenPersonUsCfpbDataEthnicityDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub race_details: Option<CreateTokenPersonUsCfpbDataRaceDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub self_identified_gender: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonUsCfpbData {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonUsCfpbData").finish_non_exhaustive()
}
}
impl CreateTokenPersonUsCfpbData {
pub fn new() -> Self {
Self { ethnicity_details: None, race_details: None, self_identified_gender: None }
}
}
impl Default for CreateTokenPersonUsCfpbData {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonUsCfpbDataEthnicityDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub ethnicity: Option<Vec<CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ethnicity_other: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonUsCfpbDataEthnicityDetails {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonUsCfpbDataEthnicityDetails").finish_non_exhaustive()
}
}
impl CreateTokenPersonUsCfpbDataEthnicityDetails {
pub fn new() -> Self {
Self { ethnicity: None, ethnicity_other: None }
}
}
impl Default for CreateTokenPersonUsCfpbDataEthnicityDetails {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
Cuban,
HispanicOrLatino,
Mexican,
NotHispanicOrLatino,
OtherHispanicOrLatino,
PreferNotToAnswer,
PuertoRican,
Unknown(String),
}
impl CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
pub fn as_str(&self) -> &str {
use CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity::*;
match self {
Cuban => "cuban",
HispanicOrLatino => "hispanic_or_latino",
Mexican => "mexican",
NotHispanicOrLatino => "not_hispanic_or_latino",
OtherHispanicOrLatino => "other_hispanic_or_latino",
PreferNotToAnswer => "prefer_not_to_answer",
PuertoRican => "puerto_rican",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity::*;
match s {
"cuban" => Ok(Cuban),
"hispanic_or_latino" => Ok(HispanicOrLatino),
"mexican" => Ok(Mexican),
"not_hispanic_or_latino" => Ok(NotHispanicOrLatino),
"other_hispanic_or_latino" => Ok(OtherHispanicOrLatino),
"prefer_not_to_answer" => Ok(PreferNotToAnswer),
"puerto_rican" => Ok(PuertoRican),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
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 CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
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 CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity))
.finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
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 CreateTokenPersonUsCfpbDataEthnicityDetailsEthnicity {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPersonUsCfpbDataRaceDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub race: Option<Vec<CreateTokenPersonUsCfpbDataRaceDetailsRace>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub race_other: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPersonUsCfpbDataRaceDetails {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPersonUsCfpbDataRaceDetails").finish_non_exhaustive()
}
}
impl CreateTokenPersonUsCfpbDataRaceDetails {
pub fn new() -> Self {
Self { race: None, race_other: None }
}
}
impl Default for CreateTokenPersonUsCfpbDataRaceDetails {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum CreateTokenPersonUsCfpbDataRaceDetailsRace {
AfricanAmerican,
AmericanIndianOrAlaskaNative,
Asian,
AsianIndian,
BlackOrAfricanAmerican,
Chinese,
Ethiopian,
Filipino,
GuamanianOrChamorro,
Haitian,
Jamaican,
Japanese,
Korean,
NativeHawaiian,
NativeHawaiianOrOtherPacificIslander,
Nigerian,
OtherAsian,
OtherBlackOrAfricanAmerican,
OtherPacificIslander,
PreferNotToAnswer,
Samoan,
Somali,
Vietnamese,
White,
Unknown(String),
}
impl CreateTokenPersonUsCfpbDataRaceDetailsRace {
pub fn as_str(&self) -> &str {
use CreateTokenPersonUsCfpbDataRaceDetailsRace::*;
match self {
AfricanAmerican => "african_american",
AmericanIndianOrAlaskaNative => "american_indian_or_alaska_native",
Asian => "asian",
AsianIndian => "asian_indian",
BlackOrAfricanAmerican => "black_or_african_american",
Chinese => "chinese",
Ethiopian => "ethiopian",
Filipino => "filipino",
GuamanianOrChamorro => "guamanian_or_chamorro",
Haitian => "haitian",
Jamaican => "jamaican",
Japanese => "japanese",
Korean => "korean",
NativeHawaiian => "native_hawaiian",
NativeHawaiianOrOtherPacificIslander => "native_hawaiian_or_other_pacific_islander",
Nigerian => "nigerian",
OtherAsian => "other_asian",
OtherBlackOrAfricanAmerican => "other_black_or_african_american",
OtherPacificIslander => "other_pacific_islander",
PreferNotToAnswer => "prefer_not_to_answer",
Samoan => "samoan",
Somali => "somali",
Vietnamese => "vietnamese",
White => "white",
Unknown(v) => v,
}
}
}
impl std::str::FromStr for CreateTokenPersonUsCfpbDataRaceDetailsRace {
type Err = std::convert::Infallible;
fn from_str(s: &str) -> Result<Self, Self::Err> {
use CreateTokenPersonUsCfpbDataRaceDetailsRace::*;
match s {
"african_american" => Ok(AfricanAmerican),
"american_indian_or_alaska_native" => Ok(AmericanIndianOrAlaskaNative),
"asian" => Ok(Asian),
"asian_indian" => Ok(AsianIndian),
"black_or_african_american" => Ok(BlackOrAfricanAmerican),
"chinese" => Ok(Chinese),
"ethiopian" => Ok(Ethiopian),
"filipino" => Ok(Filipino),
"guamanian_or_chamorro" => Ok(GuamanianOrChamorro),
"haitian" => Ok(Haitian),
"jamaican" => Ok(Jamaican),
"japanese" => Ok(Japanese),
"korean" => Ok(Korean),
"native_hawaiian" => Ok(NativeHawaiian),
"native_hawaiian_or_other_pacific_islander" => Ok(NativeHawaiianOrOtherPacificIslander),
"nigerian" => Ok(Nigerian),
"other_asian" => Ok(OtherAsian),
"other_black_or_african_american" => Ok(OtherBlackOrAfricanAmerican),
"other_pacific_islander" => Ok(OtherPacificIslander),
"prefer_not_to_answer" => Ok(PreferNotToAnswer),
"samoan" => Ok(Samoan),
"somali" => Ok(Somali),
"vietnamese" => Ok(Vietnamese),
"white" => Ok(White),
v => {
tracing::warn!(
"Unknown value '{}' for enum '{}'",
v,
"CreateTokenPersonUsCfpbDataRaceDetailsRace"
);
Ok(Unknown(v.to_owned()))
}
}
}
}
impl std::fmt::Display for CreateTokenPersonUsCfpbDataRaceDetailsRace {
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 CreateTokenPersonUsCfpbDataRaceDetailsRace {
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 CreateTokenPersonUsCfpbDataRaceDetailsRace {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct(stringify!(CreateTokenPersonUsCfpbDataRaceDetailsRace))
.finish_non_exhaustive()
}
}
impl serde::Serialize for CreateTokenPersonUsCfpbDataRaceDetailsRace {
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 CreateTokenPersonUsCfpbDataRaceDetailsRace {
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)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateTokenPii {
#[serde(skip_serializing_if = "Option::is_none")]
pub id_number: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateTokenPii {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateTokenPii").finish_non_exhaustive()
}
}
impl CreateTokenPii {
pub fn new() -> Self {
Self { id_number: None }
}
}
impl Default for CreateTokenPii {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct CreateToken {
inner: CreateTokenBuilder,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for CreateToken {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CreateToken").finish_non_exhaustive()
}
}
impl CreateToken {
pub fn new() -> Self {
Self { inner: CreateTokenBuilder::new() }
}
pub fn account(mut self, account: impl Into<CreateTokenAccount>) -> Self {
self.inner.account = Some(account.into());
self
}
pub fn bank_account(mut self, bank_account: impl Into<CreateTokenBankAccount>) -> Self {
self.inner.bank_account = Some(bank_account.into());
self
}
pub fn card(mut self, card: impl Into<CreateTokenCard>) -> Self {
self.inner.card = Some(card.into());
self
}
pub fn customer(mut self, customer: impl Into<String>) -> Self {
self.inner.customer = Some(customer.into());
self
}
pub fn cvc_update(mut self, cvc_update: impl Into<CreateTokenCvcUpdate>) -> Self {
self.inner.cvc_update = Some(cvc_update.into());
self
}
pub fn expand(mut self, expand: impl Into<Vec<String>>) -> Self {
self.inner.expand = Some(expand.into());
self
}
pub fn person(mut self, person: impl Into<CreateTokenPerson>) -> Self {
self.inner.person = Some(person.into());
self
}
pub fn pii(mut self, pii: impl Into<CreateTokenPii>) -> Self {
self.inner.pii = Some(pii.into());
self
}
}
impl Default for CreateToken {
fn default() -> Self {
Self::new()
}
}
impl CreateToken {
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 CreateToken {
type Output = stripe_core::Token;
fn build(&self) -> RequestBuilder {
RequestBuilder::new(StripeMethod::Post, "/tokens").form(&self.inner)
}
}
#[derive(Copy, Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct DateOfBirthSpecs {
pub day: i64,
pub month: i64,
pub year: i64,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for DateOfBirthSpecs {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DateOfBirthSpecs").finish_non_exhaustive()
}
}
impl DateOfBirthSpecs {
pub fn new(day: impl Into<i64>, month: impl Into<i64>, year: impl Into<i64>) -> Self {
Self { day: day.into(), month: month.into(), year: year.into() }
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct PersonVerificationDocumentSpecs {
#[serde(skip_serializing_if = "Option::is_none")]
pub back: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub front: Option<String>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for PersonVerificationDocumentSpecs {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("PersonVerificationDocumentSpecs").finish_non_exhaustive()
}
}
impl PersonVerificationDocumentSpecs {
pub fn new() -> Self {
Self { back: None, front: None }
}
}
impl Default for PersonVerificationDocumentSpecs {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct DocumentsParam {
#[serde(skip_serializing_if = "Option::is_none")]
pub files: Option<Vec<String>>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for DocumentsParam {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("DocumentsParam").finish_non_exhaustive()
}
}
impl DocumentsParam {
pub fn new() -> Self {
Self { files: None }
}
}
impl Default for DocumentsParam {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Eq, PartialEq)]
#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
#[derive(serde::Serialize)]
pub struct PersonVerificationSpecs {
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_document: Option<PersonVerificationDocumentSpecs>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document: Option<PersonVerificationDocumentSpecs>,
}
#[cfg(feature = "redact-generated-debug")]
impl std::fmt::Debug for PersonVerificationSpecs {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("PersonVerificationSpecs").finish_non_exhaustive()
}
}
impl PersonVerificationSpecs {
pub fn new() -> Self {
Self { additional_document: None, document: None }
}
}
impl Default for PersonVerificationSpecs {
fn default() -> Self {
Self::new()
}
}