{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.WorkDocs.Types.User
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WorkDocs.Types.User where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.WorkDocs.Types.LocaleType
import Amazonka.WorkDocs.Types.UserStatusType
import Amazonka.WorkDocs.Types.UserStorageMetadata
import Amazonka.WorkDocs.Types.UserType

-- | Describes a user.
--
-- /See:/ 'newUser' smart constructor.
data User = User'
  { -- | The time when the user was created.
    User -> Maybe POSIX
createdTimestamp :: Prelude.Maybe Data.POSIX,
    -- | The email address of the user.
    User -> Maybe (Sensitive Text)
emailAddress :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The given name of the user.
    User -> Maybe Text
givenName :: Prelude.Maybe Prelude.Text,
    -- | The ID of the user.
    User -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The locale of the user.
    User -> Maybe LocaleType
locale :: Prelude.Maybe LocaleType,
    -- | The time when the user was modified.
    User -> Maybe POSIX
modifiedTimestamp :: Prelude.Maybe Data.POSIX,
    -- | The ID of the organization.
    User -> Maybe Text
organizationId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the recycle bin folder.
    User -> Maybe Text
recycleBinFolderId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the root folder.
    User -> Maybe Text
rootFolderId :: Prelude.Maybe Prelude.Text,
    -- | The status of the user.
    User -> Maybe UserStatusType
status :: Prelude.Maybe UserStatusType,
    -- | The storage for the user.
    User -> Maybe UserStorageMetadata
storage :: Prelude.Maybe UserStorageMetadata,
    -- | The surname of the user.
    User -> Maybe Text
surname :: Prelude.Maybe Prelude.Text,
    -- | The time zone ID of the user.
    User -> Maybe Text
timeZoneId :: Prelude.Maybe Prelude.Text,
    -- | The type of user.
    User -> Maybe UserType
type' :: Prelude.Maybe UserType,
    -- | The login name of the user.
    User -> Maybe Text
username :: Prelude.Maybe Prelude.Text
  }
  deriving (User -> User -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: User -> User -> Bool
$c/= :: User -> User -> Bool
== :: User -> User -> Bool
$c== :: User -> User -> Bool
Prelude.Eq, Int -> User -> ShowS
[User] -> ShowS
User -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [User] -> ShowS
$cshowList :: [User] -> ShowS
show :: User -> String
$cshow :: User -> String
showsPrec :: Int -> User -> ShowS
$cshowsPrec :: Int -> User -> ShowS
Prelude.Show, forall x. Rep User x -> User
forall x. User -> Rep User x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep User x -> User
$cfrom :: forall x. User -> Rep User x
Prelude.Generic)

-- |
-- Create a value of 'User' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'createdTimestamp', 'user_createdTimestamp' - The time when the user was created.
--
-- 'emailAddress', 'user_emailAddress' - The email address of the user.
--
-- 'givenName', 'user_givenName' - The given name of the user.
--
-- 'id', 'user_id' - The ID of the user.
--
-- 'locale', 'user_locale' - The locale of the user.
--
-- 'modifiedTimestamp', 'user_modifiedTimestamp' - The time when the user was modified.
--
-- 'organizationId', 'user_organizationId' - The ID of the organization.
--
-- 'recycleBinFolderId', 'user_recycleBinFolderId' - The ID of the recycle bin folder.
--
-- 'rootFolderId', 'user_rootFolderId' - The ID of the root folder.
--
-- 'status', 'user_status' - The status of the user.
--
-- 'storage', 'user_storage' - The storage for the user.
--
-- 'surname', 'user_surname' - The surname of the user.
--
-- 'timeZoneId', 'user_timeZoneId' - The time zone ID of the user.
--
-- 'type'', 'user_type' - The type of user.
--
-- 'username', 'user_username' - The login name of the user.
newUser ::
  User
newUser :: User
newUser =
  User'
    { $sel:createdTimestamp:User' :: Maybe POSIX
createdTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:emailAddress:User' :: Maybe (Sensitive Text)
emailAddress = forall a. Maybe a
Prelude.Nothing,
      $sel:givenName:User' :: Maybe Text
givenName = forall a. Maybe a
Prelude.Nothing,
      $sel:id:User' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:locale:User' :: Maybe LocaleType
locale = forall a. Maybe a
Prelude.Nothing,
      $sel:modifiedTimestamp:User' :: Maybe POSIX
modifiedTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:organizationId:User' :: Maybe Text
organizationId = forall a. Maybe a
Prelude.Nothing,
      $sel:recycleBinFolderId:User' :: Maybe Text
recycleBinFolderId = forall a. Maybe a
Prelude.Nothing,
      $sel:rootFolderId:User' :: Maybe Text
rootFolderId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:User' :: Maybe UserStatusType
status = forall a. Maybe a
Prelude.Nothing,
      $sel:storage:User' :: Maybe UserStorageMetadata
storage = forall a. Maybe a
Prelude.Nothing,
      $sel:surname:User' :: Maybe Text
surname = forall a. Maybe a
Prelude.Nothing,
      $sel:timeZoneId:User' :: Maybe Text
timeZoneId = forall a. Maybe a
Prelude.Nothing,
      $sel:type':User' :: Maybe UserType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:username:User' :: Maybe Text
username = forall a. Maybe a
Prelude.Nothing
    }

-- | The time when the user was created.
user_createdTimestamp :: Lens.Lens' User (Prelude.Maybe Prelude.UTCTime)
user_createdTimestamp :: Lens' User (Maybe UTCTime)
user_createdTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe POSIX
createdTimestamp :: Maybe POSIX
$sel:createdTimestamp:User' :: User -> Maybe POSIX
createdTimestamp} -> Maybe POSIX
createdTimestamp) (\s :: User
s@User' {} Maybe POSIX
a -> User
s {$sel:createdTimestamp:User' :: Maybe POSIX
createdTimestamp = Maybe POSIX
a} :: User) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The email address of the user.
user_emailAddress :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_emailAddress :: Lens' User (Maybe Text)
user_emailAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe (Sensitive Text)
emailAddress :: Maybe (Sensitive Text)
$sel:emailAddress:User' :: User -> Maybe (Sensitive Text)
emailAddress} -> Maybe (Sensitive Text)
emailAddress) (\s :: User
s@User' {} Maybe (Sensitive Text)
a -> User
s {$sel:emailAddress:User' :: Maybe (Sensitive Text)
emailAddress = Maybe (Sensitive Text)
a} :: User) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The given name of the user.
user_givenName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_givenName :: Lens' User (Maybe Text)
user_givenName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
givenName :: Maybe Text
$sel:givenName:User' :: User -> Maybe Text
givenName} -> Maybe Text
givenName) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:givenName:User' :: Maybe Text
givenName = Maybe Text
a} :: User)

-- | The ID of the user.
user_id :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_id :: Lens' User (Maybe Text)
user_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
id :: Maybe Text
$sel:id:User' :: User -> Maybe Text
id} -> Maybe Text
id) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:id:User' :: Maybe Text
id = Maybe Text
a} :: User)

-- | The locale of the user.
user_locale :: Lens.Lens' User (Prelude.Maybe LocaleType)
user_locale :: Lens' User (Maybe LocaleType)
user_locale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe LocaleType
locale :: Maybe LocaleType
$sel:locale:User' :: User -> Maybe LocaleType
locale} -> Maybe LocaleType
locale) (\s :: User
s@User' {} Maybe LocaleType
a -> User
s {$sel:locale:User' :: Maybe LocaleType
locale = Maybe LocaleType
a} :: User)

-- | The time when the user was modified.
user_modifiedTimestamp :: Lens.Lens' User (Prelude.Maybe Prelude.UTCTime)
user_modifiedTimestamp :: Lens' User (Maybe UTCTime)
user_modifiedTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe POSIX
modifiedTimestamp :: Maybe POSIX
$sel:modifiedTimestamp:User' :: User -> Maybe POSIX
modifiedTimestamp} -> Maybe POSIX
modifiedTimestamp) (\s :: User
s@User' {} Maybe POSIX
a -> User
s {$sel:modifiedTimestamp:User' :: Maybe POSIX
modifiedTimestamp = Maybe POSIX
a} :: User) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ID of the organization.
user_organizationId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_organizationId :: Lens' User (Maybe Text)
user_organizationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
organizationId :: Maybe Text
$sel:organizationId:User' :: User -> Maybe Text
organizationId} -> Maybe Text
organizationId) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:organizationId:User' :: Maybe Text
organizationId = Maybe Text
a} :: User)

-- | The ID of the recycle bin folder.
user_recycleBinFolderId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_recycleBinFolderId :: Lens' User (Maybe Text)
user_recycleBinFolderId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
recycleBinFolderId :: Maybe Text
$sel:recycleBinFolderId:User' :: User -> Maybe Text
recycleBinFolderId} -> Maybe Text
recycleBinFolderId) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:recycleBinFolderId:User' :: Maybe Text
recycleBinFolderId = Maybe Text
a} :: User)

-- | The ID of the root folder.
user_rootFolderId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_rootFolderId :: Lens' User (Maybe Text)
user_rootFolderId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
rootFolderId :: Maybe Text
$sel:rootFolderId:User' :: User -> Maybe Text
rootFolderId} -> Maybe Text
rootFolderId) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:rootFolderId:User' :: Maybe Text
rootFolderId = Maybe Text
a} :: User)

-- | The status of the user.
user_status :: Lens.Lens' User (Prelude.Maybe UserStatusType)
user_status :: Lens' User (Maybe UserStatusType)
user_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe UserStatusType
status :: Maybe UserStatusType
$sel:status:User' :: User -> Maybe UserStatusType
status} -> Maybe UserStatusType
status) (\s :: User
s@User' {} Maybe UserStatusType
a -> User
s {$sel:status:User' :: Maybe UserStatusType
status = Maybe UserStatusType
a} :: User)

-- | The storage for the user.
user_storage :: Lens.Lens' User (Prelude.Maybe UserStorageMetadata)
user_storage :: Lens' User (Maybe UserStorageMetadata)
user_storage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe UserStorageMetadata
storage :: Maybe UserStorageMetadata
$sel:storage:User' :: User -> Maybe UserStorageMetadata
storage} -> Maybe UserStorageMetadata
storage) (\s :: User
s@User' {} Maybe UserStorageMetadata
a -> User
s {$sel:storage:User' :: Maybe UserStorageMetadata
storage = Maybe UserStorageMetadata
a} :: User)

-- | The surname of the user.
user_surname :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_surname :: Lens' User (Maybe Text)
user_surname = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
surname :: Maybe Text
$sel:surname:User' :: User -> Maybe Text
surname} -> Maybe Text
surname) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:surname:User' :: Maybe Text
surname = Maybe Text
a} :: User)

-- | The time zone ID of the user.
user_timeZoneId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_timeZoneId :: Lens' User (Maybe Text)
user_timeZoneId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
timeZoneId :: Maybe Text
$sel:timeZoneId:User' :: User -> Maybe Text
timeZoneId} -> Maybe Text
timeZoneId) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:timeZoneId:User' :: Maybe Text
timeZoneId = Maybe Text
a} :: User)

-- | The type of user.
user_type :: Lens.Lens' User (Prelude.Maybe UserType)
user_type :: Lens' User (Maybe UserType)
user_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe UserType
type' :: Maybe UserType
$sel:type':User' :: User -> Maybe UserType
type'} -> Maybe UserType
type') (\s :: User
s@User' {} Maybe UserType
a -> User
s {$sel:type':User' :: Maybe UserType
type' = Maybe UserType
a} :: User)

-- | The login name of the user.
user_username :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_username :: Lens' User (Maybe Text)
user_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
username :: Maybe Text
$sel:username:User' :: User -> Maybe Text
username} -> Maybe Text
username) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:username:User' :: Maybe Text
username = Maybe Text
a} :: User)

instance Data.FromJSON User where
  parseJSON :: Value -> Parser User
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"User"
      ( \Object
x ->
          Maybe POSIX
-> Maybe (Sensitive Text)
-> Maybe Text
-> Maybe Text
-> Maybe LocaleType
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe UserStatusType
-> Maybe UserStorageMetadata
-> Maybe Text
-> Maybe Text
-> Maybe UserType
-> Maybe Text
-> User
User'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedTimestamp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EmailAddress")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"GivenName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Locale")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ModifiedTimestamp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OrganizationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RecycleBinFolderId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RootFolderId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Storage")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Surname")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TimeZoneId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Type")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Username")
      )

instance Prelude.Hashable User where
  hashWithSalt :: Int -> User -> Int
hashWithSalt Int
_salt User' {Maybe Text
Maybe (Sensitive Text)
Maybe POSIX
Maybe LocaleType
Maybe UserStatusType
Maybe UserStorageMetadata
Maybe UserType
username :: Maybe Text
type' :: Maybe UserType
timeZoneId :: Maybe Text
surname :: Maybe Text
storage :: Maybe UserStorageMetadata
status :: Maybe UserStatusType
rootFolderId :: Maybe Text
recycleBinFolderId :: Maybe Text
organizationId :: Maybe Text
modifiedTimestamp :: Maybe POSIX
locale :: Maybe LocaleType
id :: Maybe Text
givenName :: Maybe Text
emailAddress :: Maybe (Sensitive Text)
createdTimestamp :: Maybe POSIX
$sel:username:User' :: User -> Maybe Text
$sel:type':User' :: User -> Maybe UserType
$sel:timeZoneId:User' :: User -> Maybe Text
$sel:surname:User' :: User -> Maybe Text
$sel:storage:User' :: User -> Maybe UserStorageMetadata
$sel:status:User' :: User -> Maybe UserStatusType
$sel:rootFolderId:User' :: User -> Maybe Text
$sel:recycleBinFolderId:User' :: User -> Maybe Text
$sel:organizationId:User' :: User -> Maybe Text
$sel:modifiedTimestamp:User' :: User -> Maybe POSIX
$sel:locale:User' :: User -> Maybe LocaleType
$sel:id:User' :: User -> Maybe Text
$sel:givenName:User' :: User -> Maybe Text
$sel:emailAddress:User' :: User -> Maybe (Sensitive Text)
$sel:createdTimestamp:User' :: User -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdTimestamp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
emailAddress
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
givenName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LocaleType
locale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
modifiedTimestamp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
organizationId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
recycleBinFolderId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
rootFolderId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserStatusType
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserStorageMetadata
storage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
surname
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
timeZoneId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserType
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
username

instance Prelude.NFData User where
  rnf :: User -> ()
rnf User' {Maybe Text
Maybe (Sensitive Text)
Maybe POSIX
Maybe LocaleType
Maybe UserStatusType
Maybe UserStorageMetadata
Maybe UserType
username :: Maybe Text
type' :: Maybe UserType
timeZoneId :: Maybe Text
surname :: Maybe Text
storage :: Maybe UserStorageMetadata
status :: Maybe UserStatusType
rootFolderId :: Maybe Text
recycleBinFolderId :: Maybe Text
organizationId :: Maybe Text
modifiedTimestamp :: Maybe POSIX
locale :: Maybe LocaleType
id :: Maybe Text
givenName :: Maybe Text
emailAddress :: Maybe (Sensitive Text)
createdTimestamp :: Maybe POSIX
$sel:username:User' :: User -> Maybe Text
$sel:type':User' :: User -> Maybe UserType
$sel:timeZoneId:User' :: User -> Maybe Text
$sel:surname:User' :: User -> Maybe Text
$sel:storage:User' :: User -> Maybe UserStorageMetadata
$sel:status:User' :: User -> Maybe UserStatusType
$sel:rootFolderId:User' :: User -> Maybe Text
$sel:recycleBinFolderId:User' :: User -> Maybe Text
$sel:organizationId:User' :: User -> Maybe Text
$sel:modifiedTimestamp:User' :: User -> Maybe POSIX
$sel:locale:User' :: User -> Maybe LocaleType
$sel:id:User' :: User -> Maybe Text
$sel:givenName:User' :: User -> Maybe Text
$sel:emailAddress:User' :: User -> Maybe (Sensitive Text)
$sel:createdTimestamp:User' :: User -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
emailAddress
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
givenName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LocaleType
locale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
modifiedTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
organizationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
recycleBinFolderId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
rootFolderId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserStatusType
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserStorageMetadata
storage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
surname
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
timeZoneId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
username