lib/docusign/model/billing_plan.ex

# 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.BillingPlan do
  @moduledoc """
  Contains information about a billing plan.
  """

  @derive [Poison.Encoder]
  defstruct [
    :appStoreProducts,
    :currencyPlanPrices,
    :enableSupport,
    :includedSeats,
    :otherDiscountPercent,
    :paymentCycle,
    :paymentMethod,
    :perSeatPrice,
    :planClassification,
    :planFeatureSets,
    :planId,
    :planName,
    :seatDiscounts,
    :supportIncidentFee,
    :supportPlanFee
  ]

  @type t :: %__MODULE__{
          :appStoreProducts => [DocuSign.Model.AppStoreProduct.t()] | nil,
          :currencyPlanPrices => [DocuSign.Model.CurrencyPlanPrice.t()] | nil,
          :enableSupport => String.t() | nil,
          :includedSeats => String.t() | nil,
          :otherDiscountPercent => String.t() | nil,
          :paymentCycle => String.t() | nil,
          :paymentMethod => String.t() | nil,
          :perSeatPrice => String.t() | nil,
          :planClassification => String.t() | nil,
          :planFeatureSets => [DocuSign.Model.FeatureSet.t()] | nil,
          :planId => String.t() | nil,
          :planName => String.t() | nil,
          :seatDiscounts => [DocuSign.Model.SeatDiscount.t()] | nil,
          :supportIncidentFee => String.t() | nil,
          :supportPlanFee => String.t() | nil
        }
end

defimpl Poison.Decoder, for: DocuSign.Model.BillingPlan do
  import DocuSign.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:appStoreProducts, :list, DocuSign.Model.AppStoreProduct, options)
    |> deserialize(:currencyPlanPrices, :list, DocuSign.Model.CurrencyPlanPrice, options)
    |> deserialize(:planFeatureSets, :list, DocuSign.Model.FeatureSet, options)
    |> deserialize(:seatDiscounts, :list, DocuSign.Model.SeatDiscount, options)
  end
end