lib/docusign/model/editor.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.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