# NOTE: This file is auto generated by OpenAPI Generator 7.12.0 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule DocuSign.Model.NewAccountDefinition do
@moduledoc """
"""
alias DocuSign.Deserializer
alias DocuSign.Model.AccountAddress
alias DocuSign.Model.AccountSettingsInformation
alias DocuSign.Model.CreditCardInformation
alias DocuSign.Model.DirectDebitProcessorInformation
alias DocuSign.Model.PaymentProcessorInformation
alias DocuSign.Model.PlanInformation
alias DocuSign.Model.ReferralInformation
alias DocuSign.Model.SocialAccountInformation
alias DocuSign.Model.UserInformation
@derive Jason.Encoder
defstruct [
:accountName,
:accountSettings,
:addressInformation,
:creditCardInformation,
:directDebitProcessorInformation,
:distributorCode,
:distributorPassword,
:enablePreAuth,
:envelopePartitionId,
:initialUser,
:paymentMethod,
:paymentProcessor,
:paymentProcessorInformation,
:planInformation,
:processPayment,
:referralInformation,
:socialAccountInformation,
:taxExemptId
]
@type t :: %__MODULE__{
:accountName => String.t() | nil,
:accountSettings => AccountSettingsInformation.t() | nil,
:addressInformation => AccountAddress.t() | nil,
:creditCardInformation => CreditCardInformation.t() | nil,
:directDebitProcessorInformation => DirectDebitProcessorInformation.t() | nil,
:distributorCode => String.t() | nil,
:distributorPassword => String.t() | nil,
:enablePreAuth => String.t() | nil,
:envelopePartitionId => String.t() | nil,
:initialUser => UserInformation.t() | nil,
:paymentMethod => String.t() | nil,
:paymentProcessor => String.t() | nil,
:paymentProcessorInformation => PaymentProcessorInformation.t() | nil,
:planInformation => PlanInformation.t() | nil,
:processPayment => String.t() | nil,
:referralInformation => ReferralInformation.t() | nil,
:socialAccountInformation => SocialAccountInformation.t() | nil,
:taxExemptId => String.t() | nil
}
def decode(value) do
value
|> Deserializer.deserialize(
:accountSettings,
:struct,
AccountSettingsInformation
)
|> Deserializer.deserialize(:addressInformation, :struct, AccountAddress)
|> Deserializer.deserialize(
:creditCardInformation,
:struct,
CreditCardInformation
)
|> Deserializer.deserialize(
:directDebitProcessorInformation,
:struct,
DirectDebitProcessorInformation
)
|> Deserializer.deserialize(:initialUser, :struct, UserInformation)
|> Deserializer.deserialize(
:paymentProcessorInformation,
:struct,
PaymentProcessorInformation
)
|> Deserializer.deserialize(:planInformation, :struct, PlanInformation)
|> Deserializer.deserialize(:referralInformation, :struct, ReferralInformation)
|> Deserializer.deserialize(
:socialAccountInformation,
:struct,
SocialAccountInformation
)
end
end