# NOTE: This file is auto generated by OpenAPI Generator
# https://openapi-generator.tech
# Do not edit this file manually.
defmodule DocuSign.Model.PermissionProfile do
@moduledoc """
This object defines the account permissions for a profile that you can apply to a group of users.
"""
alias DocuSign.Deserializer
alias DocuSign.Model.AccountRoleSettings
alias DocuSign.Model.UserInformation
defstruct [
:modifiedByUsername,
:modifiedDateTime,
:permissionProfileId,
:permissionProfileName,
:settings,
:userCount,
:users
]
@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__{
:modifiedByUsername => String.t() | nil,
:modifiedDateTime => String.t() | nil,
:permissionProfileId => String.t() | nil,
:permissionProfileName => String.t() | nil,
:settings => AccountRoleSettings.t() | nil,
:userCount => String.t() | nil,
:users => [UserInformation.t()] | nil
}
def decode(value) do
value
|> Deserializer.deserialize(
:settings,
:struct,
AccountRoleSettings
)
|> Deserializer.deserialize(
:users,
:list,
UserInformation
)
|> then(&struct(__MODULE__, &1))
end
end