# 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.Agent do
@moduledoc """
Contains information about an agent recipient. An agent is a recipient who can add name and email information for recipients that appear after the agent in routing order.
"""
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,
:excludedDocuments,
: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,
:excludedDocuments => [String.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