# NOTE: This file is auto generated by OpenAPI Generator
# https://openapi-generator.tech
# Do not edit this file manually.
defmodule DocuSign.Model.Contact do
@moduledoc """
"""
alias DocuSign.Deserializer
alias DocuSign.Model.ContactPhoneNumber
alias DocuSign.Model.ErrorDetails
alias DocuSign.Model.NotaryContactDetails
defstruct [
:cloudProvider,
:cloudProviderContainerId,
:contactId,
:contactPhoneNumbers,
:contactUri,
:emails,
:errorDetails,
:isOwner,
:name,
:notaryContactDetails,
:organization,
:roomContactType,
:shared,
:signingGroup,
:signingGroupName
]
@doc false
defimpl Jason.Encoder, for: __MODULE__ do
def encode(struct, opts) do
struct
|> Map.from_struct()
|> Enum.reject(fn {_k, v} -> is_nil(v) end)
|> Map.new()
|> Jason.Encode.map(opts)
end
end
@type t :: %__MODULE__{
:cloudProvider => String.t() | nil,
:cloudProviderContainerId => String.t() | nil,
:contactId => String.t() | nil,
:contactPhoneNumbers => [ContactPhoneNumber.t()] | nil,
:contactUri => String.t() | nil,
:emails => [String.t()] | nil,
:errorDetails => ErrorDetails.t() | nil,
:isOwner => boolean() | nil,
:name => String.t() | nil,
:notaryContactDetails => NotaryContactDetails.t() | nil,
:organization => String.t() | nil,
:roomContactType => String.t() | nil,
:shared => String.t() | nil,
:signingGroup => String.t() | nil,
:signingGroupName => String.t() | nil
}
def decode(value) do
value
|> Deserializer.deserialize(
:contactPhoneNumbers,
:list,
ContactPhoneNumber
)
|> Deserializer.deserialize(
:errorDetails,
:struct,
ErrorDetails
)
|> Deserializer.deserialize(
:notaryContactDetails,
:struct,
NotaryContactDetails
)
|> then(&struct(__MODULE__, &1))
end
end