{-# 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.Chime.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.Chime.Types.User where

import Amazonka.Chime.Types.AlexaForBusinessMetadata
import Amazonka.Chime.Types.InviteStatus
import Amazonka.Chime.Types.License
import Amazonka.Chime.Types.RegistrationStatus
import Amazonka.Chime.Types.UserType
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

-- | The user on the Amazon Chime account.
--
-- /See:/ 'newUser' smart constructor.
data User = User'
  { -- | The Amazon Chime account ID.
    User -> Maybe Text
accountId :: Prelude.Maybe Prelude.Text,
    -- | The Alexa for Business metadata.
    User -> Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata :: Prelude.Maybe AlexaForBusinessMetadata,
    -- | The display name of the user.
    User -> Maybe (Sensitive Text)
displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Date and time when the user is invited to the Amazon Chime account, in
    -- ISO 8601 format.
    User -> Maybe ISO8601
invitedOn :: Prelude.Maybe Data.ISO8601,
    -- | The license type for the user.
    User -> Maybe License
licenseType :: Prelude.Maybe License,
    -- | The user\'s personal meeting PIN.
    User -> Maybe Text
personalPIN :: Prelude.Maybe Prelude.Text,
    -- | The primary email address of the user.
    User -> Maybe (Sensitive Text)
primaryEmail :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The primary phone number associated with the user.
    User -> Maybe (Sensitive Text)
primaryProvisionedNumber :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Date and time when the user is registered, in ISO 8601 format.
    User -> Maybe ISO8601
registeredOn :: Prelude.Maybe Data.ISO8601,
    -- | The user invite status.
    User -> Maybe InviteStatus
userInvitationStatus :: Prelude.Maybe InviteStatus,
    -- | The user registration status.
    User -> Maybe RegistrationStatus
userRegistrationStatus :: Prelude.Maybe RegistrationStatus,
    -- | The user type.
    User -> Maybe UserType
userType :: Prelude.Maybe UserType,
    -- | The user ID.
    User -> Text
userId :: 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:
--
-- 'accountId', 'user_accountId' - The Amazon Chime account ID.
--
-- 'alexaForBusinessMetadata', 'user_alexaForBusinessMetadata' - The Alexa for Business metadata.
--
-- 'displayName', 'user_displayName' - The display name of the user.
--
-- 'invitedOn', 'user_invitedOn' - Date and time when the user is invited to the Amazon Chime account, in
-- ISO 8601 format.
--
-- 'licenseType', 'user_licenseType' - The license type for the user.
--
-- 'personalPIN', 'user_personalPIN' - The user\'s personal meeting PIN.
--
-- 'primaryEmail', 'user_primaryEmail' - The primary email address of the user.
--
-- 'primaryProvisionedNumber', 'user_primaryProvisionedNumber' - The primary phone number associated with the user.
--
-- 'registeredOn', 'user_registeredOn' - Date and time when the user is registered, in ISO 8601 format.
--
-- 'userInvitationStatus', 'user_userInvitationStatus' - The user invite status.
--
-- 'userRegistrationStatus', 'user_userRegistrationStatus' - The user registration status.
--
-- 'userType', 'user_userType' - The user type.
--
-- 'userId', 'user_userId' - The user ID.
newUser ::
  -- | 'userId'
  Prelude.Text ->
  User
newUser :: Text -> User
newUser Text
pUserId_ =
  User'
    { $sel:accountId:User' :: Maybe Text
accountId = forall a. Maybe a
Prelude.Nothing,
      $sel:alexaForBusinessMetadata:User' :: Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata = forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:User' :: Maybe (Sensitive Text)
displayName = forall a. Maybe a
Prelude.Nothing,
      $sel:invitedOn:User' :: Maybe ISO8601
invitedOn = forall a. Maybe a
Prelude.Nothing,
      $sel:licenseType:User' :: Maybe License
licenseType = forall a. Maybe a
Prelude.Nothing,
      $sel:personalPIN:User' :: Maybe Text
personalPIN = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryEmail:User' :: Maybe (Sensitive Text)
primaryEmail = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryProvisionedNumber:User' :: Maybe (Sensitive Text)
primaryProvisionedNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:registeredOn:User' :: Maybe ISO8601
registeredOn = forall a. Maybe a
Prelude.Nothing,
      $sel:userInvitationStatus:User' :: Maybe InviteStatus
userInvitationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:userRegistrationStatus:User' :: Maybe RegistrationStatus
userRegistrationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:userType:User' :: Maybe UserType
userType = forall a. Maybe a
Prelude.Nothing,
      $sel:userId:User' :: Text
userId = Text
pUserId_
    }

-- | The Amazon Chime account ID.
user_accountId :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_accountId :: Lens' User (Maybe Text)
user_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
accountId :: Maybe Text
$sel:accountId:User' :: User -> Maybe Text
accountId} -> Maybe Text
accountId) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:accountId:User' :: Maybe Text
accountId = Maybe Text
a} :: User)

-- | The Alexa for Business metadata.
user_alexaForBusinessMetadata :: Lens.Lens' User (Prelude.Maybe AlexaForBusinessMetadata)
user_alexaForBusinessMetadata :: Lens' User (Maybe AlexaForBusinessMetadata)
user_alexaForBusinessMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata :: Maybe AlexaForBusinessMetadata
$sel:alexaForBusinessMetadata:User' :: User -> Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata} -> Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata) (\s :: User
s@User' {} Maybe AlexaForBusinessMetadata
a -> User
s {$sel:alexaForBusinessMetadata:User' :: Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata = Maybe AlexaForBusinessMetadata
a} :: User)

-- | The display name of the user.
user_displayName :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_displayName :: Lens' User (Maybe Text)
user_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe (Sensitive Text)
displayName :: Maybe (Sensitive Text)
$sel:displayName:User' :: User -> Maybe (Sensitive Text)
displayName} -> Maybe (Sensitive Text)
displayName) (\s :: User
s@User' {} Maybe (Sensitive Text)
a -> User
s {$sel:displayName:User' :: Maybe (Sensitive Text)
displayName = 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

-- | Date and time when the user is invited to the Amazon Chime account, in
-- ISO 8601 format.
user_invitedOn :: Lens.Lens' User (Prelude.Maybe Prelude.UTCTime)
user_invitedOn :: Lens' User (Maybe UTCTime)
user_invitedOn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe ISO8601
invitedOn :: Maybe ISO8601
$sel:invitedOn:User' :: User -> Maybe ISO8601
invitedOn} -> Maybe ISO8601
invitedOn) (\s :: User
s@User' {} Maybe ISO8601
a -> User
s {$sel:invitedOn:User' :: Maybe ISO8601
invitedOn = Maybe ISO8601
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 license type for the user.
user_licenseType :: Lens.Lens' User (Prelude.Maybe License)
user_licenseType :: Lens' User (Maybe License)
user_licenseType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe License
licenseType :: Maybe License
$sel:licenseType:User' :: User -> Maybe License
licenseType} -> Maybe License
licenseType) (\s :: User
s@User' {} Maybe License
a -> User
s {$sel:licenseType:User' :: Maybe License
licenseType = Maybe License
a} :: User)

-- | The user\'s personal meeting PIN.
user_personalPIN :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_personalPIN :: Lens' User (Maybe Text)
user_personalPIN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe Text
personalPIN :: Maybe Text
$sel:personalPIN:User' :: User -> Maybe Text
personalPIN} -> Maybe Text
personalPIN) (\s :: User
s@User' {} Maybe Text
a -> User
s {$sel:personalPIN:User' :: Maybe Text
personalPIN = Maybe Text
a} :: User)

-- | The primary email address of the user.
user_primaryEmail :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_primaryEmail :: Lens' User (Maybe Text)
user_primaryEmail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe (Sensitive Text)
primaryEmail :: Maybe (Sensitive Text)
$sel:primaryEmail:User' :: User -> Maybe (Sensitive Text)
primaryEmail} -> Maybe (Sensitive Text)
primaryEmail) (\s :: User
s@User' {} Maybe (Sensitive Text)
a -> User
s {$sel:primaryEmail:User' :: Maybe (Sensitive Text)
primaryEmail = 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 primary phone number associated with the user.
user_primaryProvisionedNumber :: Lens.Lens' User (Prelude.Maybe Prelude.Text)
user_primaryProvisionedNumber :: Lens' User (Maybe Text)
user_primaryProvisionedNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe (Sensitive Text)
primaryProvisionedNumber :: Maybe (Sensitive Text)
$sel:primaryProvisionedNumber:User' :: User -> Maybe (Sensitive Text)
primaryProvisionedNumber} -> Maybe (Sensitive Text)
primaryProvisionedNumber) (\s :: User
s@User' {} Maybe (Sensitive Text)
a -> User
s {$sel:primaryProvisionedNumber:User' :: Maybe (Sensitive Text)
primaryProvisionedNumber = 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

-- | Date and time when the user is registered, in ISO 8601 format.
user_registeredOn :: Lens.Lens' User (Prelude.Maybe Prelude.UTCTime)
user_registeredOn :: Lens' User (Maybe UTCTime)
user_registeredOn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe ISO8601
registeredOn :: Maybe ISO8601
$sel:registeredOn:User' :: User -> Maybe ISO8601
registeredOn} -> Maybe ISO8601
registeredOn) (\s :: User
s@User' {} Maybe ISO8601
a -> User
s {$sel:registeredOn:User' :: Maybe ISO8601
registeredOn = Maybe ISO8601
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 user invite status.
user_userInvitationStatus :: Lens.Lens' User (Prelude.Maybe InviteStatus)
user_userInvitationStatus :: Lens' User (Maybe InviteStatus)
user_userInvitationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe InviteStatus
userInvitationStatus :: Maybe InviteStatus
$sel:userInvitationStatus:User' :: User -> Maybe InviteStatus
userInvitationStatus} -> Maybe InviteStatus
userInvitationStatus) (\s :: User
s@User' {} Maybe InviteStatus
a -> User
s {$sel:userInvitationStatus:User' :: Maybe InviteStatus
userInvitationStatus = Maybe InviteStatus
a} :: User)

-- | The user registration status.
user_userRegistrationStatus :: Lens.Lens' User (Prelude.Maybe RegistrationStatus)
user_userRegistrationStatus :: Lens' User (Maybe RegistrationStatus)
user_userRegistrationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Maybe RegistrationStatus
userRegistrationStatus :: Maybe RegistrationStatus
$sel:userRegistrationStatus:User' :: User -> Maybe RegistrationStatus
userRegistrationStatus} -> Maybe RegistrationStatus
userRegistrationStatus) (\s :: User
s@User' {} Maybe RegistrationStatus
a -> User
s {$sel:userRegistrationStatus:User' :: Maybe RegistrationStatus
userRegistrationStatus = Maybe RegistrationStatus
a} :: User)

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

-- | The user ID.
user_userId :: Lens.Lens' User Prelude.Text
user_userId :: Lens' User Text
user_userId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\User' {Text
userId :: Text
$sel:userId:User' :: User -> Text
userId} -> Text
userId) (\s :: User
s@User' {} Text
a -> User
s {$sel:userId:User' :: Text
userId = 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 Text
-> Maybe AlexaForBusinessMetadata
-> Maybe (Sensitive Text)
-> Maybe ISO8601
-> Maybe License
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe (Sensitive Text)
-> Maybe ISO8601
-> Maybe InviteStatus
-> Maybe RegistrationStatus
-> Maybe UserType
-> 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
"AccountId")
            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
"AlexaForBusinessMetadata")
            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
"DisplayName")
            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
"InvitedOn")
            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
"LicenseType")
            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
"PersonalPIN")
            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
"PrimaryEmail")
            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
"PrimaryProvisionedNumber")
            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
"RegisteredOn")
            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
"UserInvitationStatus")
            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
"UserRegistrationStatus")
            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
"UserType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"UserId")
      )

instance Prelude.Hashable User where
  hashWithSalt :: Int -> User -> Int
hashWithSalt Int
_salt User' {Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe AlexaForBusinessMetadata
Maybe InviteStatus
Maybe License
Maybe RegistrationStatus
Maybe UserType
Text
userId :: Text
userType :: Maybe UserType
userRegistrationStatus :: Maybe RegistrationStatus
userInvitationStatus :: Maybe InviteStatus
registeredOn :: Maybe ISO8601
primaryProvisionedNumber :: Maybe (Sensitive Text)
primaryEmail :: Maybe (Sensitive Text)
personalPIN :: Maybe Text
licenseType :: Maybe License
invitedOn :: Maybe ISO8601
displayName :: Maybe (Sensitive Text)
alexaForBusinessMetadata :: Maybe AlexaForBusinessMetadata
accountId :: Maybe Text
$sel:userId:User' :: User -> Text
$sel:userType:User' :: User -> Maybe UserType
$sel:userRegistrationStatus:User' :: User -> Maybe RegistrationStatus
$sel:userInvitationStatus:User' :: User -> Maybe InviteStatus
$sel:registeredOn:User' :: User -> Maybe ISO8601
$sel:primaryProvisionedNumber:User' :: User -> Maybe (Sensitive Text)
$sel:primaryEmail:User' :: User -> Maybe (Sensitive Text)
$sel:personalPIN:User' :: User -> Maybe Text
$sel:licenseType:User' :: User -> Maybe License
$sel:invitedOn:User' :: User -> Maybe ISO8601
$sel:displayName:User' :: User -> Maybe (Sensitive Text)
$sel:alexaForBusinessMetadata:User' :: User -> Maybe AlexaForBusinessMetadata
$sel:accountId:User' :: User -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
accountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
displayName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
invitedOn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe License
licenseType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
personalPIN
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
primaryEmail
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
primaryProvisionedNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
registeredOn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InviteStatus
userInvitationStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RegistrationStatus
userRegistrationStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserType
userType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
userId

instance Prelude.NFData User where
  rnf :: User -> ()
rnf User' {Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe AlexaForBusinessMetadata
Maybe InviteStatus
Maybe License
Maybe RegistrationStatus
Maybe UserType
Text
userId :: Text
userType :: Maybe UserType
userRegistrationStatus :: Maybe RegistrationStatus
userInvitationStatus :: Maybe InviteStatus
registeredOn :: Maybe ISO8601
primaryProvisionedNumber :: Maybe (Sensitive Text)
primaryEmail :: Maybe (Sensitive Text)
personalPIN :: Maybe Text
licenseType :: Maybe License
invitedOn :: Maybe ISO8601
displayName :: Maybe (Sensitive Text)
alexaForBusinessMetadata :: Maybe AlexaForBusinessMetadata
accountId :: Maybe Text
$sel:userId:User' :: User -> Text
$sel:userType:User' :: User -> Maybe UserType
$sel:userRegistrationStatus:User' :: User -> Maybe RegistrationStatus
$sel:userInvitationStatus:User' :: User -> Maybe InviteStatus
$sel:registeredOn:User' :: User -> Maybe ISO8601
$sel:primaryProvisionedNumber:User' :: User -> Maybe (Sensitive Text)
$sel:primaryEmail:User' :: User -> Maybe (Sensitive Text)
$sel:personalPIN:User' :: User -> Maybe Text
$sel:licenseType:User' :: User -> Maybe License
$sel:invitedOn:User' :: User -> Maybe ISO8601
$sel:displayName:User' :: User -> Maybe (Sensitive Text)
$sel:alexaForBusinessMetadata:User' :: User -> Maybe AlexaForBusinessMetadata
$sel:accountId:User' :: User -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AlexaForBusinessMetadata
alexaForBusinessMetadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
displayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
invitedOn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe License
licenseType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
personalPIN
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
primaryEmail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
primaryProvisionedNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
registeredOn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InviteStatus
userInvitationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RegistrationStatus
userRegistrationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserType
userType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
userId