lib/docusign/model/document.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.Document do
  @moduledoc """
  A document object.
  """

  @derive [Poison.Encoder]
  defstruct [
    :applyAnchorTabs,
    :assignTabsToRecipientId,
    :display,
    :docGenFormFields,
    :documentBase64,
    :documentFields,
    :documentId,
    :encryptedWithKeyManager,
    :fileExtension,
    :fileFormatHint,
    :htmlDefinition,
    :includeInDownload,
    :isDocGenDocument,
    :matchBoxes,
    :name,
    :order,
    :pages,
    :password,
    :pdfFormFieldOption,
    :remoteUrl,
    :signerMustAcknowledge,
    :signerMustAcknowledgeUseAccountDefault,
    :tabs,
    :templateLocked,
    :templateRequired,
    :transformPdfFields,
    :uri
  ]

  @type t :: %__MODULE__{
          :applyAnchorTabs => String.t() | nil,
          :assignTabsToRecipientId => String.t() | nil,
          :display => String.t() | nil,
          :docGenFormFields => [DocuSign.Model.DocGenFormField.t()] | nil,
          :documentBase64 => String.t() | nil,
          :documentFields => [DocuSign.Model.NameValue.t()] | nil,
          :documentId => String.t() | nil,
          :encryptedWithKeyManager => String.t() | nil,
          :fileExtension => String.t() | nil,
          :fileFormatHint => String.t() | nil,
          :htmlDefinition => DocuSign.Model.DocumentHtmlDefinition.t() | nil,
          :includeInDownload => String.t() | nil,
          :isDocGenDocument => String.t() | nil,
          :matchBoxes => [DocuSign.Model.MatchBox.t()] | nil,
          :name => String.t() | nil,
          :order => String.t() | nil,
          :pages => String.t() | nil,
          :password => String.t() | nil,
          :pdfFormFieldOption => String.t() | nil,
          :remoteUrl => String.t() | nil,
          :signerMustAcknowledge => String.t() | nil,
          :signerMustAcknowledgeUseAccountDefault => boolean() | nil,
          :tabs => DocuSign.Model.EnvelopeRecipientTabs.t() | nil,
          :templateLocked => String.t() | nil,
          :templateRequired => String.t() | nil,
          :transformPdfFields => String.t() | nil,
          :uri => String.t() | nil
        }
end

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

  def decode(value, options) do
    value
    |> deserialize(:docGenFormFields, :list, DocuSign.Model.DocGenFormField, options)
    |> deserialize(:documentFields, :list, DocuSign.Model.NameValue, options)
    |> deserialize(:htmlDefinition, :struct, DocuSign.Model.DocumentHtmlDefinition, options)
    |> deserialize(:matchBoxes, :list, DocuSign.Model.MatchBox, options)
    |> deserialize(:tabs, :struct, DocuSign.Model.EnvelopeRecipientTabs, options)
  end
end