# 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