lib/docusign/model/draw.ex

# NOTE: This file is auto generated by OpenAPI Generator 7.12.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule DocuSign.Model.Draw do
  @moduledoc """
  A tab that allows the recipient to add a free-form drawing to the document.
  """

  alias DocuSign.Deserializer
  alias DocuSign.Model.ErrorDetails
  alias DocuSign.Model.MergeField
  alias DocuSign.Model.PropertyMetadata
  alias DocuSign.Model.SmartContractInformation

  @derive Jason.Encoder
  defstruct [
    :allowSignerUpload,
    :anchorAllowWhiteSpaceInCharacters,
    :anchorAllowWhiteSpaceInCharactersMetadata,
    :anchorCaseSensitive,
    :anchorCaseSensitiveMetadata,
    :anchorHorizontalAlignment,
    :anchorHorizontalAlignmentMetadata,
    :anchorIgnoreIfNotPresent,
    :anchorIgnoreIfNotPresentMetadata,
    :anchorMatchWholeWord,
    :anchorMatchWholeWordMetadata,
    :anchorString,
    :anchorStringMetadata,
    :anchorTabProcessorVersion,
    :anchorTabProcessorVersionMetadata,
    :anchorUnits,
    :anchorUnitsMetadata,
    :anchorXOffset,
    :anchorXOffsetMetadata,
    :anchorYOffset,
    :anchorYOffsetMetadata,
    :caption,
    :captionMetadata,
    :conditionalParentLabel,
    :conditionalParentLabelMetadata,
    :conditionalParentValue,
    :conditionalParentValueMetadata,
    :customTabId,
    :customTabIdMetadata,
    :documentId,
    :documentIdMetadata,
    :errorDetails,
    :formOrder,
    :formOrderMetadata,
    :formPageLabel,
    :formPageLabelMetadata,
    :formPageNumber,
    :formPageNumberMetadata,
    :height,
    :heightMetadata,
    :locked,
    :lockedMetadata,
    :mergeField,
    :mergeFieldXml,
    :pageNumber,
    :pageNumberMetadata,
    :recipientId,
    :recipientIdGuid,
    :recipientIdGuidMetadata,
    :recipientIdMetadata,
    :required,
    :requiredMetadata,
    :shared,
    :sharedMetadata,
    :smartContractInformation,
    :source,
    :status,
    :statusMetadata,
    :tabGroupLabels,
    :tabGroupLabelsMetadata,
    :tabId,
    :tabIdMetadata,
    :tabLabelMetadata,
    :tabOrder,
    :tabOrderMetadata,
    :tabType,
    :tabTypeMetadata,
    :templateLocked,
    :templateLockedMetadata,
    :templateRequired,
    :templateRequiredMetadata,
    :toolTipMetadata,
    :tooltip,
    :useBackgroundAsCanvas,
    :warningDetails,
    :width,
    :widthMetadata,
    :xPosition,
    :xPositionMetadata,
    :yPosition,
    :yPositionMetadata
  ]

  @type t :: %__MODULE__{
          :allowSignerUpload => String.t() | nil,
          :anchorAllowWhiteSpaceInCharacters => String.t() | nil,
          :anchorAllowWhiteSpaceInCharactersMetadata => PropertyMetadata.t() | nil,
          :anchorCaseSensitive => String.t() | nil,
          :anchorCaseSensitiveMetadata => PropertyMetadata.t() | nil,
          :anchorHorizontalAlignment => String.t() | nil,
          :anchorHorizontalAlignmentMetadata => PropertyMetadata.t() | nil,
          :anchorIgnoreIfNotPresent => String.t() | nil,
          :anchorIgnoreIfNotPresentMetadata => PropertyMetadata.t() | nil,
          :anchorMatchWholeWord => String.t() | nil,
          :anchorMatchWholeWordMetadata => PropertyMetadata.t() | nil,
          :anchorString => String.t() | nil,
          :anchorStringMetadata => PropertyMetadata.t() | nil,
          :anchorTabProcessorVersion => String.t() | nil,
          :anchorTabProcessorVersionMetadata => PropertyMetadata.t() | nil,
          :anchorUnits => String.t() | nil,
          :anchorUnitsMetadata => PropertyMetadata.t() | nil,
          :anchorXOffset => String.t() | nil,
          :anchorXOffsetMetadata => PropertyMetadata.t() | nil,
          :anchorYOffset => String.t() | nil,
          :anchorYOffsetMetadata => PropertyMetadata.t() | nil,
          :caption => String.t() | nil,
          :captionMetadata => PropertyMetadata.t() | nil,
          :conditionalParentLabel => String.t() | nil,
          :conditionalParentLabelMetadata => PropertyMetadata.t() | nil,
          :conditionalParentValue => String.t() | nil,
          :conditionalParentValueMetadata => PropertyMetadata.t() | nil,
          :customTabId => String.t() | nil,
          :customTabIdMetadata => PropertyMetadata.t() | nil,
          :documentId => String.t() | nil,
          :documentIdMetadata => PropertyMetadata.t() | nil,
          :errorDetails => ErrorDetails.t() | nil,
          :formOrder => String.t() | nil,
          :formOrderMetadata => PropertyMetadata.t() | nil,
          :formPageLabel => String.t() | nil,
          :formPageLabelMetadata => PropertyMetadata.t() | nil,
          :formPageNumber => String.t() | nil,
          :formPageNumberMetadata => PropertyMetadata.t() | nil,
          :height => String.t() | nil,
          :heightMetadata => PropertyMetadata.t() | nil,
          :locked => String.t() | nil,
          :lockedMetadata => PropertyMetadata.t() | nil,
          :mergeField => MergeField.t() | nil,
          :mergeFieldXml => String.t() | nil,
          :pageNumber => String.t() | nil,
          :pageNumberMetadata => PropertyMetadata.t() | nil,
          :recipientId => String.t() | nil,
          :recipientIdGuid => String.t() | nil,
          :recipientIdGuidMetadata => PropertyMetadata.t() | nil,
          :recipientIdMetadata => PropertyMetadata.t() | nil,
          :required => String.t() | nil,
          :requiredMetadata => PropertyMetadata.t() | nil,
          :shared => String.t() | nil,
          :sharedMetadata => PropertyMetadata.t() | nil,
          :smartContractInformation => SmartContractInformation.t() | nil,
          :source => String.t() | nil,
          :status => String.t() | nil,
          :statusMetadata => PropertyMetadata.t() | nil,
          :tabGroupLabels => [String.t()] | nil,
          :tabGroupLabelsMetadata => PropertyMetadata.t() | nil,
          :tabId => String.t() | nil,
          :tabIdMetadata => PropertyMetadata.t() | nil,
          :tabLabelMetadata => PropertyMetadata.t() | nil,
          :tabOrder => String.t() | nil,
          :tabOrderMetadata => PropertyMetadata.t() | nil,
          :tabType => String.t() | nil,
          :tabTypeMetadata => PropertyMetadata.t() | nil,
          :templateLocked => String.t() | nil,
          :templateLockedMetadata => PropertyMetadata.t() | nil,
          :templateRequired => String.t() | nil,
          :templateRequiredMetadata => PropertyMetadata.t() | nil,
          :toolTipMetadata => PropertyMetadata.t() | nil,
          :tooltip => String.t() | nil,
          :useBackgroundAsCanvas => String.t() | nil,
          :warningDetails => ErrorDetails.t() | nil,
          :width => String.t() | nil,
          :widthMetadata => PropertyMetadata.t() | nil,
          :xPosition => String.t() | nil,
          :xPositionMetadata => PropertyMetadata.t() | nil,
          :yPosition => String.t() | nil,
          :yPositionMetadata => PropertyMetadata.t() | nil
        }

  def decode(value) do
    value
    |> Deserializer.deserialize(
      :anchorAllowWhiteSpaceInCharactersMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :anchorCaseSensitiveMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :anchorHorizontalAlignmentMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :anchorIgnoreIfNotPresentMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :anchorMatchWholeWordMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:anchorStringMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :anchorTabProcessorVersionMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:anchorUnitsMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:anchorXOffsetMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:anchorYOffsetMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:captionMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :conditionalParentLabelMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :conditionalParentValueMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:customTabIdMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:documentIdMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:errorDetails, :struct, ErrorDetails)
    |> Deserializer.deserialize(:formOrderMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:formPageLabelMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:formPageNumberMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:heightMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:lockedMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:mergeField, :struct, MergeField)
    |> Deserializer.deserialize(:pageNumberMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :recipientIdGuidMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:recipientIdMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:requiredMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:sharedMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :smartContractInformation,
      :struct,
      SmartContractInformation
    )
    |> Deserializer.deserialize(:statusMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:tabGroupLabelsMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:tabIdMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:tabLabelMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:tabOrderMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:tabTypeMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:templateLockedMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :templateRequiredMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:toolTipMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:warningDetails, :struct, ErrorDetails)
    |> Deserializer.deserialize(:widthMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:xPositionMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:yPositionMetadata, :struct, PropertyMetadata)
  end
end