# NOTE: This file is auto generated by OpenAPI Generator 6.4.0 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule DocuSign.Model.BillingPlans do
@moduledoc """
Billing plans
"""
@derive [Poison.Encoder]
defstruct [
:billingAddress,
:billingAddressIsCreditCardAddress,
:billingPlan,
:creditCardInformation,
:directDebitProcessorInformation,
:downgradePlanInformation,
:downgradeRequestInformation,
:entityInformation,
:paymentMethod,
:paymentProcessorInformation,
:referralInformation,
:successorPlans,
:taxExemptId
]
@type t :: %__MODULE__{
:billingAddress => DocuSign.Model.AccountAddress.t() | nil,
:billingAddressIsCreditCardAddress => String.t() | nil,
:billingPlan => DocuSign.Model.AccountBillingPlan.t() | nil,
:creditCardInformation => DocuSign.Model.CreditCardInformation.t() | nil,
:directDebitProcessorInformation =>
DocuSign.Model.DirectDebitProcessorInformation.t() | nil,
:downgradePlanInformation => DocuSign.Model.DowngradePlanUpdateResponse.t() | nil,
:downgradeRequestInformation => DocuSign.Model.DowngradeRequestInformation.t() | nil,
:entityInformation => DocuSign.Model.BillingEntityInformationResponse.t() | nil,
:paymentMethod => String.t() | nil,
:paymentProcessorInformation => DocuSign.Model.PaymentProcessorInformation.t() | nil,
:referralInformation => DocuSign.Model.ReferralInformation.t() | nil,
:successorPlans => [DocuSign.Model.BillingPlan.t()] | nil,
:taxExemptId => String.t() | nil
}
end
defimpl Poison.Decoder, for: DocuSign.Model.BillingPlans do
import DocuSign.Deserializer
def decode(value, options) do
value
|> deserialize(:billingAddress, :struct, DocuSign.Model.AccountAddress, options)
|> deserialize(:billingPlan, :struct, DocuSign.Model.AccountBillingPlan, options)
|> deserialize(:creditCardInformation, :struct, DocuSign.Model.CreditCardInformation, options)
|> deserialize(
:directDebitProcessorInformation,
:struct,
DocuSign.Model.DirectDebitProcessorInformation,
options
)
|> deserialize(
:downgradePlanInformation,
:struct,
DocuSign.Model.DowngradePlanUpdateResponse,
options
)
|> deserialize(
:downgradeRequestInformation,
:struct,
DocuSign.Model.DowngradeRequestInformation,
options
)
|> deserialize(
:entityInformation,
:struct,
DocuSign.Model.BillingEntityInformationResponse,
options
)
|> deserialize(
:paymentProcessorInformation,
:struct,
DocuSign.Model.PaymentProcessorInformation,
options
)
|> deserialize(:referralInformation, :struct, DocuSign.Model.ReferralInformation, options)
|> deserialize(:successorPlans, :list, DocuSign.Model.BillingPlan, options)
end
end