lib/docusign/model/bcc_email_archive.ex

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

defmodule DocuSign.Model.BccEmailArchive do
  @moduledoc """
  The `EmailArchive` resource provides methods for managing your email archive configuration, which consists of the BCC email address or addresses that you want to use to archive Docusign emails. Each account can use up to five BCC email addresses for archiving purposes. 
  """

  alias DocuSign.Deserializer
  alias DocuSign.Model.BccEmailArchiveHistory

  defstruct [
    :bccEmailArchiveHistory,
    :endPosition,
    :nextUri,
    :previousUri,
    :resultSetSize,
    :startPosition,
    :totalSetSize
  ]

  @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__{
          :bccEmailArchiveHistory => [BccEmailArchiveHistory.t()] | nil,
          :endPosition => String.t() | nil,
          :nextUri => String.t() | nil,
          :previousUri => String.t() | nil,
          :resultSetSize => String.t() | nil,
          :startPosition => String.t() | nil,
          :totalSetSize => String.t() | nil
        }

  def decode(value) do
    value
    |> Deserializer.deserialize(
      :bccEmailArchiveHistory,
      :list,
      BccEmailArchiveHistory
    )
    |> then(&struct(__MODULE__, &1))
  end
end