lib/docusign/model/seal_sign.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.SealSign do
  @moduledoc """
  Specifies one or more electronic seals to apply on documents. An electronic seal recipient is a legal entity rather than an actual person. Electronic Seals can be used by organizations and governments to show evidence of origin and integrity of documents. Even though electronic seals can be represented by a tab in a document, they do not require user interaction and apply automatically in the order specified by the sender. The sender is therefore the person authorizing usage of the electronic seal in the flow.  Example:  ```json \"recipients\": {       \"seals\": [         {           \"recipientId\": \"1\",           \"routingOrder\" : 1,           \"recipientSignatureProviders\": [             {               \"sealName\": \"52e9d968-xxxx-xxxx-xxxx-4682bc45c106\"             }         ]       }     ]   },     .     .     . ``` For more information about Electronic Seals, see [Apply Electronic Seals to Your Documents](https://support.docusign.com/s/document-item?bundleId=xcm1643837555908&topicId=isl1578456577247.html).
  """

  alias DocuSign.Deserializer
  alias DocuSign.Model.AuthenticationStatus
  alias DocuSign.Model.DocumentVisibility
  alias DocuSign.Model.EnvelopeRecipientTabs
  alias DocuSign.Model.ErrorDetails
  alias DocuSign.Model.FeatureAvailableMetadata
  alias DocuSign.Model.IdCheckInformationInput
  alias DocuSign.Model.PropertyMetadata
  alias DocuSign.Model.RecipientAttachment
  alias DocuSign.Model.RecipientEmailNotification
  alias DocuSign.Model.RecipientIdentityVerification
  alias DocuSign.Model.RecipientPhoneAuthentication
  alias DocuSign.Model.RecipientSignatureProvider
  alias DocuSign.Model.RecipientSmsAuthentication
  alias DocuSign.Model.SocialAuthentication

  @derive Jason.Encoder
  defstruct [
    :accessCode,
    :accessCodeMetadata,
    :addAccessCodeToEmail,
    :allowSystemOverrideForLockedRecipient,
    :autoRespondedReason,
    :bulkSendV2Recipient,
    :clientUserId,
    :completedCount,
    :customFields,
    :declinedDateTime,
    :declinedReason,
    :deliveredDateTime,
    :deliveryMethod,
    :deliveryMethodMetadata,
    :designatorId,
    :designatorIdGuid,
    :documentTemplateId,
    :documentVisibility,
    :emailNotification,
    :embeddedRecipientStartURL,
    :errorDetails,
    :faxNumber,
    :faxNumberMetadata,
    :idCheckConfigurationName,
    :idCheckConfigurationNameMetadata,
    :idCheckInformationInput,
    :identityVerification,
    :inheritEmailNotificationConfiguration,
    :lockedRecipientPhoneAuthEditable,
    :lockedRecipientSmsEditable,
    :name,
    :note,
    :noteMetadata,
    :phoneAuthentication,
    :recipientAttachments,
    :recipientAuthenticationStatus,
    :recipientFeatureMetadata,
    :recipientId,
    :recipientIdGuid,
    :recipientSignatureProviders,
    :recipientType,
    :recipientTypeMetadata,
    :requireIdLookup,
    :requireIdLookupMetadata,
    :roleName,
    :routingOrder,
    :routingOrderMetadata,
    :sentDateTime,
    :signedDateTime,
    :smsAuthentication,
    :socialAuthentications,
    :status,
    :statusCode,
    :suppressEmails,
    :tabs,
    :templateLocked,
    :templateRequired,
    :totalTabCount,
    :userId,
    :webFormRecipientViewId
  ]

  @type t :: %__MODULE__{
          :accessCode => String.t() | nil,
          :accessCodeMetadata => PropertyMetadata.t() | nil,
          :addAccessCodeToEmail => String.t() | nil,
          :allowSystemOverrideForLockedRecipient => String.t() | nil,
          :autoRespondedReason => String.t() | nil,
          :bulkSendV2Recipient => String.t() | nil,
          :clientUserId => String.t() | nil,
          :completedCount => String.t() | nil,
          :customFields => [String.t()] | nil,
          :declinedDateTime => String.t() | nil,
          :declinedReason => String.t() | nil,
          :deliveredDateTime => String.t() | nil,
          :deliveryMethod => String.t() | nil,
          :deliveryMethodMetadata => PropertyMetadata.t() | nil,
          :designatorId => String.t() | nil,
          :designatorIdGuid => String.t() | nil,
          :documentTemplateId => String.t() | nil,
          :documentVisibility => [DocumentVisibility.t()] | nil,
          :emailNotification => RecipientEmailNotification.t() | nil,
          :embeddedRecipientStartURL => String.t() | nil,
          :errorDetails => ErrorDetails.t() | nil,
          :faxNumber => String.t() | nil,
          :faxNumberMetadata => PropertyMetadata.t() | nil,
          :idCheckConfigurationName => String.t() | nil,
          :idCheckConfigurationNameMetadata => PropertyMetadata.t() | nil,
          :idCheckInformationInput => IdCheckInformationInput.t() | nil,
          :identityVerification => RecipientIdentityVerification.t() | nil,
          :inheritEmailNotificationConfiguration => String.t() | nil,
          :lockedRecipientPhoneAuthEditable => String.t() | nil,
          :lockedRecipientSmsEditable => String.t() | nil,
          :name => String.t() | nil,
          :note => String.t() | nil,
          :noteMetadata => PropertyMetadata.t() | nil,
          :phoneAuthentication => RecipientPhoneAuthentication.t() | nil,
          :recipientAttachments => [RecipientAttachment.t()] | nil,
          :recipientAuthenticationStatus => AuthenticationStatus.t() | nil,
          :recipientFeatureMetadata => [FeatureAvailableMetadata.t()] | nil,
          :recipientId => String.t() | nil,
          :recipientIdGuid => String.t() | nil,
          :recipientSignatureProviders => [RecipientSignatureProvider.t()] | nil,
          :recipientType => String.t() | nil,
          :recipientTypeMetadata => PropertyMetadata.t() | nil,
          :requireIdLookup => String.t() | nil,
          :requireIdLookupMetadata => PropertyMetadata.t() | nil,
          :roleName => String.t() | nil,
          :routingOrder => String.t() | nil,
          :routingOrderMetadata => PropertyMetadata.t() | nil,
          :sentDateTime => String.t() | nil,
          :signedDateTime => String.t() | nil,
          :smsAuthentication => RecipientSmsAuthentication.t() | nil,
          :socialAuthentications => [SocialAuthentication.t()] | nil,
          :status => String.t() | nil,
          :statusCode => String.t() | nil,
          :suppressEmails => String.t() | nil,
          :tabs => EnvelopeRecipientTabs.t() | nil,
          :templateLocked => String.t() | nil,
          :templateRequired => String.t() | nil,
          :totalTabCount => String.t() | nil,
          :userId => String.t() | nil,
          :webFormRecipientViewId => String.t() | nil
        }

  def decode(value) do
    value
    |> Deserializer.deserialize(:accessCodeMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:deliveryMethodMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(:documentVisibility, :list, DocumentVisibility)
    |> Deserializer.deserialize(
      :emailNotification,
      :struct,
      RecipientEmailNotification
    )
    |> Deserializer.deserialize(:errorDetails, :struct, ErrorDetails)
    |> Deserializer.deserialize(:faxNumberMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :idCheckConfigurationNameMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(
      :idCheckInformationInput,
      :struct,
      IdCheckInformationInput
    )
    |> Deserializer.deserialize(
      :identityVerification,
      :struct,
      RecipientIdentityVerification
    )
    |> Deserializer.deserialize(:noteMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :phoneAuthentication,
      :struct,
      RecipientPhoneAuthentication
    )
    |> Deserializer.deserialize(:recipientAttachments, :list, RecipientAttachment)
    |> Deserializer.deserialize(
      :recipientAuthenticationStatus,
      :struct,
      AuthenticationStatus
    )
    |> Deserializer.deserialize(
      :recipientFeatureMetadata,
      :list,
      FeatureAvailableMetadata
    )
    |> Deserializer.deserialize(
      :recipientSignatureProviders,
      :list,
      RecipientSignatureProvider
    )
    |> Deserializer.deserialize(:recipientTypeMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :requireIdLookupMetadata,
      :struct,
      PropertyMetadata
    )
    |> Deserializer.deserialize(:routingOrderMetadata, :struct, PropertyMetadata)
    |> Deserializer.deserialize(
      :smsAuthentication,
      :struct,
      RecipientSmsAuthentication
    )
    |> Deserializer.deserialize(
      :socialAuthentications,
      :list,
      SocialAuthentication
    )
    |> Deserializer.deserialize(:tabs, :struct, EnvelopeRecipientTabs)
  end
end