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

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

-- |
-- Module      : Amazonka.IdentityStore.CreateUser
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new user within the specified identity store.
module Amazonka.IdentityStore.CreateUser
  ( -- * Creating a Request
    CreateUser (..),
    newCreateUser,

    -- * Request Lenses
    createUser_addresses,
    createUser_displayName,
    createUser_emails,
    createUser_locale,
    createUser_name,
    createUser_nickName,
    createUser_phoneNumbers,
    createUser_preferredLanguage,
    createUser_profileUrl,
    createUser_timezone,
    createUser_title,
    createUser_userName,
    createUser_userType,
    createUser_identityStoreId,

    -- * Destructuring the Response
    CreateUserResponse (..),
    newCreateUserResponse,

    -- * Response Lenses
    createUserResponse_httpStatus,
    createUserResponse_userId,
    createUserResponse_identityStoreId,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IdentityStore.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateUser' smart constructor.
data CreateUser = CreateUser'
  { -- | A list of @Address@ objects containing addresses associated with the
    -- user.
    CreateUser -> Maybe (NonEmpty Address)
addresses :: Prelude.Maybe (Prelude.NonEmpty Address),
    -- | A string containing the user\'s name. This value is typically formatted
    -- for display when the user is referenced. For example, \"John Doe.\"
    CreateUser -> Maybe (Sensitive Text)
displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A list of @Email@ objects containing email addresses associated with the
    -- user.
    CreateUser -> Maybe (NonEmpty Email)
emails :: Prelude.Maybe (Prelude.NonEmpty Email),
    -- | A string containing the user\'s geographical region or location.
    CreateUser -> Maybe (Sensitive Text)
locale :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | An object containing the user\'s name.
    CreateUser -> Maybe Name
name :: Prelude.Maybe Name,
    -- | A string containing an alternate name for the user.
    CreateUser -> Maybe (Sensitive Text)
nickName :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A list of @PhoneNumber@ objects containing phone numbers associated with
    -- the user.
    CreateUser -> Maybe (NonEmpty PhoneNumber)
phoneNumbers :: Prelude.Maybe (Prelude.NonEmpty PhoneNumber),
    -- | A string containing the preferred language of the user. For example,
    -- \"American English\" or \"en-us.\"
    CreateUser -> Maybe (Sensitive Text)
preferredLanguage :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A string containing a URL that may be associated with the user.
    CreateUser -> Maybe (Sensitive Text)
profileUrl :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A string containing the user\'s time zone.
    CreateUser -> Maybe (Sensitive Text)
timezone :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A string containing the user\'s title. Possible values are left
    -- unspecified given that they depend on each customer\'s specific needs.
    CreateUser -> Maybe (Sensitive Text)
title :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A unique string used to identify the user. The length limit is 128
    -- characters. This value can consist of letters, accented characters,
    -- symbols, numbers, and punctuation. This value is specified at the time
    -- the user is created and stored as an attribute of the user object in the
    -- identity store.
    CreateUser -> Maybe (Sensitive Text)
userName :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | A string indicating the user\'s type. Possible values depend on each
    -- customer\'s specific needs, so they are left unspecified.
    CreateUser -> Maybe (Sensitive Text)
userType :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The globally unique identifier for the identity store.
    CreateUser -> Text
identityStoreId :: Prelude.Text
  }
  deriving (CreateUser -> CreateUser -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateUser -> CreateUser -> Bool
$c/= :: CreateUser -> CreateUser -> Bool
== :: CreateUser -> CreateUser -> Bool
$c== :: CreateUser -> CreateUser -> Bool
Prelude.Eq, Int -> CreateUser -> ShowS
[CreateUser] -> ShowS
CreateUser -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateUser] -> ShowS
$cshowList :: [CreateUser] -> ShowS
show :: CreateUser -> String
$cshow :: CreateUser -> String
showsPrec :: Int -> CreateUser -> ShowS
$cshowsPrec :: Int -> CreateUser -> ShowS
Prelude.Show, forall x. Rep CreateUser x -> CreateUser
forall x. CreateUser -> Rep CreateUser x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateUser x -> CreateUser
$cfrom :: forall x. CreateUser -> Rep CreateUser x
Prelude.Generic)

-- |
-- Create a value of 'CreateUser' 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:
--
-- 'addresses', 'createUser_addresses' - A list of @Address@ objects containing addresses associated with the
-- user.
--
-- 'displayName', 'createUser_displayName' - A string containing the user\'s name. This value is typically formatted
-- for display when the user is referenced. For example, \"John Doe.\"
--
-- 'emails', 'createUser_emails' - A list of @Email@ objects containing email addresses associated with the
-- user.
--
-- 'locale', 'createUser_locale' - A string containing the user\'s geographical region or location.
--
-- 'name', 'createUser_name' - An object containing the user\'s name.
--
-- 'nickName', 'createUser_nickName' - A string containing an alternate name for the user.
--
-- 'phoneNumbers', 'createUser_phoneNumbers' - A list of @PhoneNumber@ objects containing phone numbers associated with
-- the user.
--
-- 'preferredLanguage', 'createUser_preferredLanguage' - A string containing the preferred language of the user. For example,
-- \"American English\" or \"en-us.\"
--
-- 'profileUrl', 'createUser_profileUrl' - A string containing a URL that may be associated with the user.
--
-- 'timezone', 'createUser_timezone' - A string containing the user\'s time zone.
--
-- 'title', 'createUser_title' - A string containing the user\'s title. Possible values are left
-- unspecified given that they depend on each customer\'s specific needs.
--
-- 'userName', 'createUser_userName' - A unique string used to identify the user. The length limit is 128
-- characters. This value can consist of letters, accented characters,
-- symbols, numbers, and punctuation. This value is specified at the time
-- the user is created and stored as an attribute of the user object in the
-- identity store.
--
-- 'userType', 'createUser_userType' - A string indicating the user\'s type. Possible values depend on each
-- customer\'s specific needs, so they are left unspecified.
--
-- 'identityStoreId', 'createUser_identityStoreId' - The globally unique identifier for the identity store.
newCreateUser ::
  -- | 'identityStoreId'
  Prelude.Text ->
  CreateUser
newCreateUser :: Text -> CreateUser
newCreateUser Text
pIdentityStoreId_ =
  CreateUser'
    { $sel:addresses:CreateUser' :: Maybe (NonEmpty Address)
addresses = forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:CreateUser' :: Maybe (Sensitive Text)
displayName = forall a. Maybe a
Prelude.Nothing,
      $sel:emails:CreateUser' :: Maybe (NonEmpty Email)
emails = forall a. Maybe a
Prelude.Nothing,
      $sel:locale:CreateUser' :: Maybe (Sensitive Text)
locale = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateUser' :: Maybe Name
name = forall a. Maybe a
Prelude.Nothing,
      $sel:nickName:CreateUser' :: Maybe (Sensitive Text)
nickName = forall a. Maybe a
Prelude.Nothing,
      $sel:phoneNumbers:CreateUser' :: Maybe (NonEmpty PhoneNumber)
phoneNumbers = forall a. Maybe a
Prelude.Nothing,
      $sel:preferredLanguage:CreateUser' :: Maybe (Sensitive Text)
preferredLanguage = forall a. Maybe a
Prelude.Nothing,
      $sel:profileUrl:CreateUser' :: Maybe (Sensitive Text)
profileUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:timezone:CreateUser' :: Maybe (Sensitive Text)
timezone = forall a. Maybe a
Prelude.Nothing,
      $sel:title:CreateUser' :: Maybe (Sensitive Text)
title = forall a. Maybe a
Prelude.Nothing,
      $sel:userName:CreateUser' :: Maybe (Sensitive Text)
userName = forall a. Maybe a
Prelude.Nothing,
      $sel:userType:CreateUser' :: Maybe (Sensitive Text)
userType = forall a. Maybe a
Prelude.Nothing,
      $sel:identityStoreId:CreateUser' :: Text
identityStoreId = Text
pIdentityStoreId_
    }

-- | A list of @Address@ objects containing addresses associated with the
-- user.
createUser_addresses :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty Address))
createUser_addresses :: Lens' CreateUser (Maybe (NonEmpty Address))
createUser_addresses = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (NonEmpty Address)
addresses :: Maybe (NonEmpty Address)
$sel:addresses:CreateUser' :: CreateUser -> Maybe (NonEmpty Address)
addresses} -> Maybe (NonEmpty Address)
addresses) (\s :: CreateUser
s@CreateUser' {} Maybe (NonEmpty Address)
a -> CreateUser
s {$sel:addresses:CreateUser' :: Maybe (NonEmpty Address)
addresses = Maybe (NonEmpty Address)
a} :: CreateUser) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A string containing the user\'s name. This value is typically formatted
-- for display when the user is referenced. For example, \"John Doe.\"
createUser_displayName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_displayName :: Lens' CreateUser (Maybe Text)
createUser_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
displayName :: Maybe (Sensitive Text)
$sel:displayName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
displayName} -> Maybe (Sensitive Text)
displayName) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:displayName:CreateUser' :: Maybe (Sensitive Text)
displayName = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A list of @Email@ objects containing email addresses associated with the
-- user.
createUser_emails :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty Email))
createUser_emails :: Lens' CreateUser (Maybe (NonEmpty Email))
createUser_emails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (NonEmpty Email)
emails :: Maybe (NonEmpty Email)
$sel:emails:CreateUser' :: CreateUser -> Maybe (NonEmpty Email)
emails} -> Maybe (NonEmpty Email)
emails) (\s :: CreateUser
s@CreateUser' {} Maybe (NonEmpty Email)
a -> CreateUser
s {$sel:emails:CreateUser' :: Maybe (NonEmpty Email)
emails = Maybe (NonEmpty Email)
a} :: CreateUser) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A string containing the user\'s geographical region or location.
createUser_locale :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_locale :: Lens' CreateUser (Maybe Text)
createUser_locale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
locale :: Maybe (Sensitive Text)
$sel:locale:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
locale} -> Maybe (Sensitive Text)
locale) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:locale:CreateUser' :: Maybe (Sensitive Text)
locale = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | An object containing the user\'s name.
createUser_name :: Lens.Lens' CreateUser (Prelude.Maybe Name)
createUser_name :: Lens' CreateUser (Maybe Name)
createUser_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe Name
name :: Maybe Name
$sel:name:CreateUser' :: CreateUser -> Maybe Name
name} -> Maybe Name
name) (\s :: CreateUser
s@CreateUser' {} Maybe Name
a -> CreateUser
s {$sel:name:CreateUser' :: Maybe Name
name = Maybe Name
a} :: CreateUser)

-- | A string containing an alternate name for the user.
createUser_nickName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_nickName :: Lens' CreateUser (Maybe Text)
createUser_nickName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
nickName :: Maybe (Sensitive Text)
$sel:nickName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
nickName} -> Maybe (Sensitive Text)
nickName) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:nickName:CreateUser' :: Maybe (Sensitive Text)
nickName = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A list of @PhoneNumber@ objects containing phone numbers associated with
-- the user.
createUser_phoneNumbers :: Lens.Lens' CreateUser (Prelude.Maybe (Prelude.NonEmpty PhoneNumber))
createUser_phoneNumbers :: Lens' CreateUser (Maybe (NonEmpty PhoneNumber))
createUser_phoneNumbers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (NonEmpty PhoneNumber)
phoneNumbers :: Maybe (NonEmpty PhoneNumber)
$sel:phoneNumbers:CreateUser' :: CreateUser -> Maybe (NonEmpty PhoneNumber)
phoneNumbers} -> Maybe (NonEmpty PhoneNumber)
phoneNumbers) (\s :: CreateUser
s@CreateUser' {} Maybe (NonEmpty PhoneNumber)
a -> CreateUser
s {$sel:phoneNumbers:CreateUser' :: Maybe (NonEmpty PhoneNumber)
phoneNumbers = Maybe (NonEmpty PhoneNumber)
a} :: CreateUser) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A string containing the preferred language of the user. For example,
-- \"American English\" or \"en-us.\"
createUser_preferredLanguage :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_preferredLanguage :: Lens' CreateUser (Maybe Text)
createUser_preferredLanguage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
preferredLanguage :: Maybe (Sensitive Text)
$sel:preferredLanguage:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
preferredLanguage} -> Maybe (Sensitive Text)
preferredLanguage) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:preferredLanguage:CreateUser' :: Maybe (Sensitive Text)
preferredLanguage = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A string containing a URL that may be associated with the user.
createUser_profileUrl :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_profileUrl :: Lens' CreateUser (Maybe Text)
createUser_profileUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
profileUrl :: Maybe (Sensitive Text)
$sel:profileUrl:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
profileUrl} -> Maybe (Sensitive Text)
profileUrl) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:profileUrl:CreateUser' :: Maybe (Sensitive Text)
profileUrl = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A string containing the user\'s time zone.
createUser_timezone :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_timezone :: Lens' CreateUser (Maybe Text)
createUser_timezone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
timezone :: Maybe (Sensitive Text)
$sel:timezone:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
timezone} -> Maybe (Sensitive Text)
timezone) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:timezone:CreateUser' :: Maybe (Sensitive Text)
timezone = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A string containing the user\'s title. Possible values are left
-- unspecified given that they depend on each customer\'s specific needs.
createUser_title :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_title :: Lens' CreateUser (Maybe Text)
createUser_title = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
title :: Maybe (Sensitive Text)
$sel:title:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
title} -> Maybe (Sensitive Text)
title) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:title:CreateUser' :: Maybe (Sensitive Text)
title = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A unique string used to identify the user. The length limit is 128
-- characters. This value can consist of letters, accented characters,
-- symbols, numbers, and punctuation. This value is specified at the time
-- the user is created and stored as an attribute of the user object in the
-- identity store.
createUser_userName :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_userName :: Lens' CreateUser (Maybe Text)
createUser_userName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
userName :: Maybe (Sensitive Text)
$sel:userName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
userName} -> Maybe (Sensitive Text)
userName) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:userName:CreateUser' :: Maybe (Sensitive Text)
userName = Maybe (Sensitive Text)
a} :: CreateUser) 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

-- | A string indicating the user\'s type. Possible values depend on each
-- customer\'s specific needs, so they are left unspecified.
createUser_userType :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Text)
createUser_userType :: Lens' CreateUser (Maybe Text)
createUser_userType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Maybe (Sensitive Text)
userType :: Maybe (Sensitive Text)
$sel:userType:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
userType} -> Maybe (Sensitive Text)
userType) (\s :: CreateUser
s@CreateUser' {} Maybe (Sensitive Text)
a -> CreateUser
s {$sel:userType:CreateUser' :: Maybe (Sensitive Text)
userType = Maybe (Sensitive Text)
a} :: CreateUser) 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 globally unique identifier for the identity store.
createUser_identityStoreId :: Lens.Lens' CreateUser Prelude.Text
createUser_identityStoreId :: Lens' CreateUser Text
createUser_identityStoreId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUser' {Text
identityStoreId :: Text
$sel:identityStoreId:CreateUser' :: CreateUser -> Text
identityStoreId} -> Text
identityStoreId) (\s :: CreateUser
s@CreateUser' {} Text
a -> CreateUser
s {$sel:identityStoreId:CreateUser' :: Text
identityStoreId = Text
a} :: CreateUser)

instance Core.AWSRequest CreateUser where
  type AWSResponse CreateUser = CreateUserResponse
  request :: (Service -> Service) -> CreateUser -> Request CreateUser
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateUser
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateUser)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Int -> Text -> Text -> CreateUserResponse
CreateUserResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"UserId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"IdentityStoreId")
      )

instance Prelude.Hashable CreateUser where
  hashWithSalt :: Int -> CreateUser -> Int
hashWithSalt Int
_salt CreateUser' {Maybe (NonEmpty Address)
Maybe (NonEmpty Email)
Maybe (NonEmpty PhoneNumber)
Maybe (Sensitive Text)
Maybe Name
Text
identityStoreId :: Text
userType :: Maybe (Sensitive Text)
userName :: Maybe (Sensitive Text)
title :: Maybe (Sensitive Text)
timezone :: Maybe (Sensitive Text)
profileUrl :: Maybe (Sensitive Text)
preferredLanguage :: Maybe (Sensitive Text)
phoneNumbers :: Maybe (NonEmpty PhoneNumber)
nickName :: Maybe (Sensitive Text)
name :: Maybe Name
locale :: Maybe (Sensitive Text)
emails :: Maybe (NonEmpty Email)
displayName :: Maybe (Sensitive Text)
addresses :: Maybe (NonEmpty Address)
$sel:identityStoreId:CreateUser' :: CreateUser -> Text
$sel:userType:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:userName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:title:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:timezone:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:profileUrl:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:preferredLanguage:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:phoneNumbers:CreateUser' :: CreateUser -> Maybe (NonEmpty PhoneNumber)
$sel:nickName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:name:CreateUser' :: CreateUser -> Maybe Name
$sel:locale:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:emails:CreateUser' :: CreateUser -> Maybe (NonEmpty Email)
$sel:displayName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:addresses:CreateUser' :: CreateUser -> Maybe (NonEmpty Address)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Address)
addresses
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
displayName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Email)
emails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
locale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Name
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
nickName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty PhoneNumber)
phoneNumbers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
preferredLanguage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
profileUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
timezone
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
title
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
userName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
userType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
identityStoreId

instance Prelude.NFData CreateUser where
  rnf :: CreateUser -> ()
rnf CreateUser' {Maybe (NonEmpty Address)
Maybe (NonEmpty Email)
Maybe (NonEmpty PhoneNumber)
Maybe (Sensitive Text)
Maybe Name
Text
identityStoreId :: Text
userType :: Maybe (Sensitive Text)
userName :: Maybe (Sensitive Text)
title :: Maybe (Sensitive Text)
timezone :: Maybe (Sensitive Text)
profileUrl :: Maybe (Sensitive Text)
preferredLanguage :: Maybe (Sensitive Text)
phoneNumbers :: Maybe (NonEmpty PhoneNumber)
nickName :: Maybe (Sensitive Text)
name :: Maybe Name
locale :: Maybe (Sensitive Text)
emails :: Maybe (NonEmpty Email)
displayName :: Maybe (Sensitive Text)
addresses :: Maybe (NonEmpty Address)
$sel:identityStoreId:CreateUser' :: CreateUser -> Text
$sel:userType:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:userName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:title:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:timezone:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:profileUrl:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:preferredLanguage:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:phoneNumbers:CreateUser' :: CreateUser -> Maybe (NonEmpty PhoneNumber)
$sel:nickName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:name:CreateUser' :: CreateUser -> Maybe Name
$sel:locale:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:emails:CreateUser' :: CreateUser -> Maybe (NonEmpty Email)
$sel:displayName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:addresses:CreateUser' :: CreateUser -> Maybe (NonEmpty Address)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Address)
addresses
      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 (NonEmpty Email)
emails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
locale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Name
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
nickName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty PhoneNumber)
phoneNumbers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
preferredLanguage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
profileUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
timezone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
title
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
userName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
userType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
identityStoreId

instance Data.ToHeaders CreateUser where
  toHeaders :: CreateUser -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSIdentityStore.CreateUser" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateUser where
  toJSON :: CreateUser -> Value
toJSON CreateUser' {Maybe (NonEmpty Address)
Maybe (NonEmpty Email)
Maybe (NonEmpty PhoneNumber)
Maybe (Sensitive Text)
Maybe Name
Text
identityStoreId :: Text
userType :: Maybe (Sensitive Text)
userName :: Maybe (Sensitive Text)
title :: Maybe (Sensitive Text)
timezone :: Maybe (Sensitive Text)
profileUrl :: Maybe (Sensitive Text)
preferredLanguage :: Maybe (Sensitive Text)
phoneNumbers :: Maybe (NonEmpty PhoneNumber)
nickName :: Maybe (Sensitive Text)
name :: Maybe Name
locale :: Maybe (Sensitive Text)
emails :: Maybe (NonEmpty Email)
displayName :: Maybe (Sensitive Text)
addresses :: Maybe (NonEmpty Address)
$sel:identityStoreId:CreateUser' :: CreateUser -> Text
$sel:userType:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:userName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:title:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:timezone:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:profileUrl:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:preferredLanguage:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:phoneNumbers:CreateUser' :: CreateUser -> Maybe (NonEmpty PhoneNumber)
$sel:nickName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:name:CreateUser' :: CreateUser -> Maybe Name
$sel:locale:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:emails:CreateUser' :: CreateUser -> Maybe (NonEmpty Email)
$sel:displayName:CreateUser' :: CreateUser -> Maybe (Sensitive Text)
$sel:addresses:CreateUser' :: CreateUser -> Maybe (NonEmpty Address)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Addresses" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Address)
addresses,
            (Key
"DisplayName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
displayName,
            (Key
"Emails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Email)
emails,
            (Key
"Locale" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
locale,
            (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Name
name,
            (Key
"NickName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
nickName,
            (Key
"PhoneNumbers" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty PhoneNumber)
phoneNumbers,
            (Key
"PreferredLanguage" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
preferredLanguage,
            (Key
"ProfileUrl" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
profileUrl,
            (Key
"Timezone" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
timezone,
            (Key
"Title" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
title,
            (Key
"UserName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
userName,
            (Key
"UserType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Sensitive Text)
userType,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"IdentityStoreId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
identityStoreId)
          ]
      )

instance Data.ToPath CreateUser where
  toPath :: CreateUser -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery CreateUser where
  toQuery :: CreateUser -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newCreateUserResponse' smart constructor.
data CreateUserResponse = CreateUserResponse'
  { -- | The response's http status code.
    CreateUserResponse -> Int
httpStatus :: Prelude.Int,
    -- | The identifier of the newly created user in the identity store.
    CreateUserResponse -> Text
userId :: Prelude.Text,
    -- | The globally unique identifier for the identity store.
    CreateUserResponse -> Text
identityStoreId :: Prelude.Text
  }
  deriving (CreateUserResponse -> CreateUserResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateUserResponse -> CreateUserResponse -> Bool
$c/= :: CreateUserResponse -> CreateUserResponse -> Bool
== :: CreateUserResponse -> CreateUserResponse -> Bool
$c== :: CreateUserResponse -> CreateUserResponse -> Bool
Prelude.Eq, ReadPrec [CreateUserResponse]
ReadPrec CreateUserResponse
Int -> ReadS CreateUserResponse
ReadS [CreateUserResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateUserResponse]
$creadListPrec :: ReadPrec [CreateUserResponse]
readPrec :: ReadPrec CreateUserResponse
$creadPrec :: ReadPrec CreateUserResponse
readList :: ReadS [CreateUserResponse]
$creadList :: ReadS [CreateUserResponse]
readsPrec :: Int -> ReadS CreateUserResponse
$creadsPrec :: Int -> ReadS CreateUserResponse
Prelude.Read, Int -> CreateUserResponse -> ShowS
[CreateUserResponse] -> ShowS
CreateUserResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateUserResponse] -> ShowS
$cshowList :: [CreateUserResponse] -> ShowS
show :: CreateUserResponse -> String
$cshow :: CreateUserResponse -> String
showsPrec :: Int -> CreateUserResponse -> ShowS
$cshowsPrec :: Int -> CreateUserResponse -> ShowS
Prelude.Show, forall x. Rep CreateUserResponse x -> CreateUserResponse
forall x. CreateUserResponse -> Rep CreateUserResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateUserResponse x -> CreateUserResponse
$cfrom :: forall x. CreateUserResponse -> Rep CreateUserResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateUserResponse' 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:
--
-- 'httpStatus', 'createUserResponse_httpStatus' - The response's http status code.
--
-- 'userId', 'createUserResponse_userId' - The identifier of the newly created user in the identity store.
--
-- 'identityStoreId', 'createUserResponse_identityStoreId' - The globally unique identifier for the identity store.
newCreateUserResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'userId'
  Prelude.Text ->
  -- | 'identityStoreId'
  Prelude.Text ->
  CreateUserResponse
newCreateUserResponse :: Int -> Text -> Text -> CreateUserResponse
newCreateUserResponse
  Int
pHttpStatus_
  Text
pUserId_
  Text
pIdentityStoreId_ =
    CreateUserResponse'
      { $sel:httpStatus:CreateUserResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:userId:CreateUserResponse' :: Text
userId = Text
pUserId_,
        $sel:identityStoreId:CreateUserResponse' :: Text
identityStoreId = Text
pIdentityStoreId_
      }

-- | The response's http status code.
createUserResponse_httpStatus :: Lens.Lens' CreateUserResponse Prelude.Int
createUserResponse_httpStatus :: Lens' CreateUserResponse Int
createUserResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUserResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateUserResponse' :: CreateUserResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateUserResponse
s@CreateUserResponse' {} Int
a -> CreateUserResponse
s {$sel:httpStatus:CreateUserResponse' :: Int
httpStatus = Int
a} :: CreateUserResponse)

-- | The identifier of the newly created user in the identity store.
createUserResponse_userId :: Lens.Lens' CreateUserResponse Prelude.Text
createUserResponse_userId :: Lens' CreateUserResponse Text
createUserResponse_userId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUserResponse' {Text
userId :: Text
$sel:userId:CreateUserResponse' :: CreateUserResponse -> Text
userId} -> Text
userId) (\s :: CreateUserResponse
s@CreateUserResponse' {} Text
a -> CreateUserResponse
s {$sel:userId:CreateUserResponse' :: Text
userId = Text
a} :: CreateUserResponse)

-- | The globally unique identifier for the identity store.
createUserResponse_identityStoreId :: Lens.Lens' CreateUserResponse Prelude.Text
createUserResponse_identityStoreId :: Lens' CreateUserResponse Text
createUserResponse_identityStoreId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUserResponse' {Text
identityStoreId :: Text
$sel:identityStoreId:CreateUserResponse' :: CreateUserResponse -> Text
identityStoreId} -> Text
identityStoreId) (\s :: CreateUserResponse
s@CreateUserResponse' {} Text
a -> CreateUserResponse
s {$sel:identityStoreId:CreateUserResponse' :: Text
identityStoreId = Text
a} :: CreateUserResponse)

instance Prelude.NFData CreateUserResponse where
  rnf :: CreateUserResponse -> ()
rnf CreateUserResponse' {Int
Text
identityStoreId :: Text
userId :: Text
httpStatus :: Int
$sel:identityStoreId:CreateUserResponse' :: CreateUserResponse -> Text
$sel:userId:CreateUserResponse' :: CreateUserResponse -> Text
$sel:httpStatus:CreateUserResponse' :: CreateUserResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
userId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
identityStoreId