# NOTE: This file is auto generated by OpenAPI Generator # 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 defstruct [ :accountName, :accountSettings, :addressInformation, :creditCardInformation, :directDebitProcessorInformation, :distributorCode, :distributorPassword, :enablePreAuth, :envelopePartitionId, :initialUser, :paymentMethod, :paymentProcessor, :paymentProcessorInformation, :planInformation, :processPayment, :referralInformation, :socialAccountInformation, :taxExemptId ] @doc false defimpl Jason.Encoder, for: __MODULE__ do def encode(struct, opts) do struct |> Map.from_struct() |> Enum.reject(fn {_k, v} -> is_nil(v) end) |> Map.new() |> Jason.Encode.map(opts) end end @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 ) |> then(&struct(__MODULE__, &1)) end end