lib/docusign/model/intermediary.ex

# NOTE: This file is auto generated by OpenAPI Generator 6.4.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule DocuSign.Model.Intermediary do
  @moduledoc """
  Contains information about an intermediary recipient. An intermediary is a recipient who can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order, unless subsequent agents, editors or intermediaries are added.
  """

  @derive [Poison.Encoder]
  defstruct [
    :accessCode,
    :accessCodeMetadata,
    :addAccessCodeToEmail,
    :additionalNotifications,
    :allowSystemOverrideForLockedRecipient,
    :autoRespondedReason,
    :clientUserId,
    :completedCount,
    :consentDetailsList,
    :customFields,
    :declinedDateTime,
    :declinedReason,
    :deliveredDateTime,
    :deliveryMethod,
    :deliveryMethodMetadata,
    :designatorId,
    :designatorIdGuid,
    :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
  ]

  @type t :: %__MODULE__{
          :accessCode => String.t() | nil,
          :accessCodeMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :addAccessCodeToEmail => String.t() | nil,
          :additionalNotifications => [DocuSign.Model.RecipientAdditionalNotification.t()] | nil,
          :allowSystemOverrideForLockedRecipient => String.t() | nil,
          :autoRespondedReason => String.t() | nil,
          :clientUserId => String.t() | nil,
          :completedCount => String.t() | nil,
          :consentDetailsList => [DocuSign.Model.ConsentDetails.t()] | nil,
          :customFields => [String.t()] | nil,
          :declinedDateTime => String.t() | nil,
          :declinedReason => String.t() | nil,
          :deliveredDateTime => String.t() | nil,
          :deliveryMethod => String.t() | nil,
          :deliveryMethodMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :designatorId => String.t() | nil,
          :designatorIdGuid => String.t() | nil,
          :documentVisibility => [DocuSign.Model.DocumentVisibility.t()] | nil,
          :email => String.t() | nil,
          :emailMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :emailNotification => DocuSign.Model.RecipientEmailNotification.t() | nil,
          :emailRecipientPostSigningURL => String.t() | nil,
          :embeddedRecipientStartURL => String.t() | nil,
          :errorDetails => DocuSign.Model.ErrorDetails.t() | nil,
          :excludedDocuments => [String.t()] | nil,
          :faxNumber => String.t() | nil,
          :faxNumberMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :firstName => String.t() | nil,
          :firstNameMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :fullName => String.t() | nil,
          :fullNameMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :idCheckConfigurationName => String.t() | nil,
          :idCheckConfigurationNameMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :idCheckInformationInput => DocuSign.Model.IdCheckInformationInput.t() | nil,
          :identityVerification => DocuSign.Model.RecipientIdentityVerification.t() | nil,
          :inheritEmailNotificationConfiguration => String.t() | nil,
          :lastName => String.t() | nil,
          :lastNameMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :lockedRecipientPhoneAuthEditable => String.t() | nil,
          :lockedRecipientSmsEditable => String.t() | nil,
          :name => String.t() | nil,
          :nameMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :note => String.t() | nil,
          :noteMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :phoneAuthentication => DocuSign.Model.RecipientPhoneAuthentication.t() | nil,
          :phoneNumber => DocuSign.Model.RecipientPhoneNumber.t() | nil,
          :recipientAttachments => [DocuSign.Model.RecipientAttachment.t()] | nil,
          :recipientAuthenticationStatus => DocuSign.Model.AuthenticationStatus.t() | nil,
          :recipientFeatureMetadata => [DocuSign.Model.FeatureAvailableMetadata.t()] | nil,
          :recipientId => String.t() | nil,
          :recipientIdGuid => String.t() | nil,
          :recipientType => String.t() | nil,
          :recipientTypeMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :requireIdLookup => String.t() | nil,
          :requireIdLookupMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :roleName => String.t() | nil,
          :routingOrder => String.t() | nil,
          :routingOrderMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :sentDateTime => String.t() | nil,
          :signedDateTime => String.t() | nil,
          :signingGroupId => String.t() | nil,
          :signingGroupIdMetadata => DocuSign.Model.PropertyMetadata.t() | nil,
          :signingGroupName => String.t() | nil,
          :signingGroupUsers => [DocuSign.Model.UserInfo.t()] | nil,
          :smsAuthentication => DocuSign.Model.RecipientSmsAuthentication.t() | nil,
          :socialAuthentications => [DocuSign.Model.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
        }
end

defimpl Poison.Decoder, for: DocuSign.Model.Intermediary do
  import DocuSign.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:accessCodeMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(
      :additionalNotifications,
      :list,
      DocuSign.Model.RecipientAdditionalNotification,
      options
    )
    |> deserialize(:consentDetailsList, :list, DocuSign.Model.ConsentDetails, options)
    |> deserialize(:deliveryMethodMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:documentVisibility, :list, DocuSign.Model.DocumentVisibility, options)
    |> deserialize(:emailMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(
      :emailNotification,
      :struct,
      DocuSign.Model.RecipientEmailNotification,
      options
    )
    |> deserialize(:errorDetails, :struct, DocuSign.Model.ErrorDetails, options)
    |> deserialize(:faxNumberMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:firstNameMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:fullNameMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(
      :idCheckConfigurationNameMetadata,
      :struct,
      DocuSign.Model.PropertyMetadata,
      options
    )
    |> deserialize(
      :idCheckInformationInput,
      :struct,
      DocuSign.Model.IdCheckInformationInput,
      options
    )
    |> deserialize(
      :identityVerification,
      :struct,
      DocuSign.Model.RecipientIdentityVerification,
      options
    )
    |> deserialize(:lastNameMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:nameMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:noteMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(
      :phoneAuthentication,
      :struct,
      DocuSign.Model.RecipientPhoneAuthentication,
      options
    )
    |> deserialize(:phoneNumber, :struct, DocuSign.Model.RecipientPhoneNumber, options)
    |> deserialize(:recipientAttachments, :list, DocuSign.Model.RecipientAttachment, options)
    |> deserialize(
      :recipientAuthenticationStatus,
      :struct,
      DocuSign.Model.AuthenticationStatus,
      options
    )
    |> deserialize(
      :recipientFeatureMetadata,
      :list,
      DocuSign.Model.FeatureAvailableMetadata,
      options
    )
    |> deserialize(:recipientTypeMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:requireIdLookupMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:routingOrderMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:signingGroupIdMetadata, :struct, DocuSign.Model.PropertyMetadata, options)
    |> deserialize(:signingGroupUsers, :list, DocuSign.Model.UserInfo, options)
    |> deserialize(
      :smsAuthentication,
      :struct,
      DocuSign.Model.RecipientSmsAuthentication,
      options
    )
    |> deserialize(:socialAuthentications, :list, DocuSign.Model.SocialAuthentication, options)
  end
end