lib/docusign/model/composite_template.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.CompositeTemplate do
  @moduledoc """
  This object contains information about a [composite template][composite], which you can use to to apply multiple templates to a single envelope, combine templates with PDF forms, and combine templates with documents from cloud sources.  [composite]: /docs/esign-rest-api/esign101/concepts/templates/composite/
  """

  @derive [Poison.Encoder]
  defstruct [
    :compositeTemplateId,
    :document,
    :inlineTemplates,
    :pdfMetaDataTemplateSequence,
    :serverTemplates
  ]

  @type t :: %__MODULE__{
          :compositeTemplateId => String.t() | nil,
          :document => DocuSign.Model.Document.t() | nil,
          :inlineTemplates => [DocuSign.Model.InlineTemplate.t()] | nil,
          :pdfMetaDataTemplateSequence => String.t() | nil,
          :serverTemplates => [DocuSign.Model.ServerTemplate.t()] | nil
        }
end

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

  def decode(value, options) do
    value
    |> deserialize(:document, :struct, DocuSign.Model.Document, options)
    |> deserialize(:inlineTemplates, :list, DocuSign.Model.InlineTemplate, options)
    |> deserialize(:serverTemplates, :list, DocuSign.Model.ServerTemplate, options)
  end
end