# 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.Editor do
@moduledoc """
A complex type defining the management and access rights of a recipient assigned as an editor on the envelope. Editors have the same management and access rights for the envelope as the sender. They can make changes to the envelope as if they were using the Correct feature. This recipient can add name and email information, add or change the routing order and set authentication options for the remaining recipients. Additionally, this recipient can edit signature/initial tabs and text tabs for the remaining recipients.
"""
alias DocuSign.Deserializer
alias DocuSign.Model.AuthenticationStatus
alias DocuSign.Model.ConsentDetails
alias DocuSign.Model.DocumentVisibility
alias DocuSign.Model.ErrorDetails
alias DocuSign.Model.FeatureAvailableMetadata
alias DocuSign.Model.IdCheckInformationInput
alias DocuSign.Model.PropertyMetadata
alias DocuSign.Model.RecipientAdditionalNotification
alias DocuSign.Model.RecipientAttachment
alias DocuSign.Model.RecipientEmailNotification
alias DocuSign.Model.RecipientIdentityVerification
alias DocuSign.Model.RecipientPhoneAuthentication
alias DocuSign.Model.RecipientPhoneNumber
alias DocuSign.Model.RecipientSmsAuthentication
alias DocuSign.Model.SocialAuthentication
alias DocuSign.Model.UserInfo
@derive Jason.Encoder
defstruct [
:accessCode,
:accessCodeMetadata,
:addAccessCodeToEmail,
:additionalNotifications,
:allowSystemOverrideForLockedRecipient,
:autoRespondedReason,
:bulkSendV2Recipient,
:clientUserId,
:completedCount,
:consentDetailsList,
:customFields,
:declinedDateTime,
:declinedReason,
:deliveredDateTime,
:deliveryMethod,
:deliveryMethodMetadata,
:designatorId,
:designatorIdGuid,
:documentTemplateId,
:documentVisibility,
:email,
:emailMetadata,
:emailNotification,
:emailRecipientPostSigningURL,
:embeddedRecipientStartURL,
:errorDetails,
:faxNumber,
:faxNumberMetadata,
:firstName,
:firstNameMetadata,
:fullName,
:fullNameMetadata,
:idCheckConfigurationName,
:idCheckConfigurationNameMetadata,
:idCheckInformationInput,
:identityVerification,
:inheritEmailNotificationConfiguration,
:lastName,
:lastNameMetadata,
:lockedRecipientPhoneAuthEditable,
:lockedRecipientSmsEditable,
:name,
:nameMetadata,
:note,
:noteMetadata,
:phoneAuthentication,
:phoneNumber,
:recipientAttachments,
:recipientAuthenticationStatus,
:recipientFeatureMetadata,
:recipientId,
:recipientIdGuid,
:recipientType,
:recipientTypeMetadata,
:requireIdLookup,
:requireIdLookupMetadata,
:roleName,
:routingOrder,
:routingOrderMetadata,
:sentDateTime,
:signedDateTime,
:signingGroupId,
:signingGroupIdMetadata,
:signingGroupName,
:signingGroupUsers,
:smsAuthentication,
:socialAuthentications,
:status,
:statusCode,
:suppressEmails,
:templateLocked,
:templateRequired,
:totalTabCount,
:userId,
:webFormRecipientViewId
]
@type t :: %__MODULE__{
:accessCode => String.t() | nil,
:accessCodeMetadata => PropertyMetadata.t() | nil,
:addAccessCodeToEmail => String.t() | nil,
:additionalNotifications => [RecipientAdditionalNotification.t()] | nil,
:allowSystemOverrideForLockedRecipient => String.t() | nil,
:autoRespondedReason => String.t() | nil,
:bulkSendV2Recipient => String.t() | nil,
:clientUserId => String.t() | nil,
:completedCount => String.t() | nil,
:consentDetailsList => [ConsentDetails.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,
:email => String.t() | nil,
:emailMetadata => PropertyMetadata.t() | nil,
:emailNotification => RecipientEmailNotification.t() | nil,
:emailRecipientPostSigningURL => String.t() | nil,
:embeddedRecipientStartURL => String.t() | nil,
:errorDetails => ErrorDetails.t() | nil,
:faxNumber => String.t() | nil,
:faxNumberMetadata => PropertyMetadata.t() | nil,
:firstName => String.t() | nil,
:firstNameMetadata => PropertyMetadata.t() | nil,
:fullName => String.t() | nil,
:fullNameMetadata => PropertyMetadata.t() | nil,
:idCheckConfigurationName => String.t() | nil,
:idCheckConfigurationNameMetadata => PropertyMetadata.t() | nil,
:idCheckInformationInput => IdCheckInformationInput.t() | nil,
:identityVerification => RecipientIdentityVerification.t() | nil,
:inheritEmailNotificationConfiguration => String.t() | nil,
:lastName => String.t() | nil,
:lastNameMetadata => PropertyMetadata.t() | nil,
:lockedRecipientPhoneAuthEditable => String.t() | nil,
:lockedRecipientSmsEditable => String.t() | nil,
:name => String.t() | nil,
:nameMetadata => PropertyMetadata.t() | nil,
:note => String.t() | nil,
:noteMetadata => PropertyMetadata.t() | nil,
:phoneAuthentication => RecipientPhoneAuthentication.t() | nil,
:phoneNumber => RecipientPhoneNumber.t() | nil,
:recipientAttachments => [RecipientAttachment.t()] | nil,
:recipientAuthenticationStatus => AuthenticationStatus.t() | nil,
:recipientFeatureMetadata => [FeatureAvailableMetadata.t()] | nil,
:recipientId => String.t() | nil,
:recipientIdGuid => String.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,
:signingGroupId => String.t() | nil,
:signingGroupIdMetadata => PropertyMetadata.t() | nil,
:signingGroupName => String.t() | nil,
:signingGroupUsers => [UserInfo.t()] | nil,
:smsAuthentication => RecipientSmsAuthentication.t() | nil,
:socialAuthentications => [SocialAuthentication.t()] | nil,
:status => String.t() | nil,
:statusCode => String.t() | nil,
:suppressEmails => String.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(
:additionalNotifications,
:list,
RecipientAdditionalNotification
)
|> Deserializer.deserialize(:consentDetailsList, :list, ConsentDetails)
|> Deserializer.deserialize(:deliveryMethodMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:documentVisibility, :list, DocumentVisibility)
|> Deserializer.deserialize(:emailMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(
:emailNotification,
:struct,
RecipientEmailNotification
)
|> Deserializer.deserialize(:errorDetails, :struct, ErrorDetails)
|> Deserializer.deserialize(:faxNumberMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:firstNameMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:fullNameMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(
:idCheckConfigurationNameMetadata,
:struct,
PropertyMetadata
)
|> Deserializer.deserialize(
:idCheckInformationInput,
:struct,
IdCheckInformationInput
)
|> Deserializer.deserialize(
:identityVerification,
:struct,
RecipientIdentityVerification
)
|> Deserializer.deserialize(:lastNameMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:nameMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:noteMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(
:phoneAuthentication,
:struct,
RecipientPhoneAuthentication
)
|> Deserializer.deserialize(:phoneNumber, :struct, RecipientPhoneNumber)
|> Deserializer.deserialize(:recipientAttachments, :list, RecipientAttachment)
|> Deserializer.deserialize(
:recipientAuthenticationStatus,
:struct,
AuthenticationStatus
)
|> Deserializer.deserialize(
:recipientFeatureMetadata,
:list,
FeatureAvailableMetadata
)
|> Deserializer.deserialize(:recipientTypeMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(
:requireIdLookupMetadata,
:struct,
PropertyMetadata
)
|> Deserializer.deserialize(:routingOrderMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:signingGroupIdMetadata, :struct, PropertyMetadata)
|> Deserializer.deserialize(:signingGroupUsers, :list, UserInfo)
|> Deserializer.deserialize(
:smsAuthentication,
:struct,
RecipientSmsAuthentication
)
|> Deserializer.deserialize(
:socialAuthentications,
:list,
SocialAuthentication
)
end
end