{-# 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.Chime.CreateAppInstanceUser
-- 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 user under an Amazon Chime @AppInstance@. The request consists
-- of a unique @appInstanceUserId@ and @Name@ for that user.
module Amazonka.Chime.CreateAppInstanceUser
  ( -- * Creating a Request
    CreateAppInstanceUser (..),
    newCreateAppInstanceUser,

    -- * Request Lenses
    createAppInstanceUser_metadata,
    createAppInstanceUser_tags,
    createAppInstanceUser_appInstanceArn,
    createAppInstanceUser_appInstanceUserId,
    createAppInstanceUser_name,
    createAppInstanceUser_clientRequestToken,

    -- * Destructuring the Response
    CreateAppInstanceUserResponse (..),
    newCreateAppInstanceUserResponse,

    -- * Response Lenses
    createAppInstanceUserResponse_appInstanceUserArn,
    createAppInstanceUserResponse_httpStatus,
  )
where

import Amazonka.Chime.Types
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateAppInstanceUser' smart constructor.
data CreateAppInstanceUser = CreateAppInstanceUser'
  { -- | The request\'s metadata. Limited to a 1KB string in UTF-8.
    CreateAppInstanceUser -> Maybe (Sensitive Text)
metadata :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | Tags assigned to the @AppInstanceUser@.
    CreateAppInstanceUser -> Maybe (NonEmpty Tag)
tags :: Prelude.Maybe (Prelude.NonEmpty Tag),
    -- | The ARN of the @AppInstance@ request.
    CreateAppInstanceUser -> Text
appInstanceArn :: Prelude.Text,
    -- | The user ID of the @AppInstance@.
    CreateAppInstanceUser -> Sensitive Text
appInstanceUserId :: Data.Sensitive Prelude.Text,
    -- | The user\'s name.
    CreateAppInstanceUser -> Sensitive Text
name :: Data.Sensitive Prelude.Text,
    -- | The token assigned to the user requesting an @AppInstance@.
    CreateAppInstanceUser -> Sensitive Text
clientRequestToken :: Data.Sensitive Prelude.Text
  }
  deriving (CreateAppInstanceUser -> CreateAppInstanceUser -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAppInstanceUser -> CreateAppInstanceUser -> Bool
$c/= :: CreateAppInstanceUser -> CreateAppInstanceUser -> Bool
== :: CreateAppInstanceUser -> CreateAppInstanceUser -> Bool
$c== :: CreateAppInstanceUser -> CreateAppInstanceUser -> Bool
Prelude.Eq, Int -> CreateAppInstanceUser -> ShowS
[CreateAppInstanceUser] -> ShowS
CreateAppInstanceUser -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAppInstanceUser] -> ShowS
$cshowList :: [CreateAppInstanceUser] -> ShowS
show :: CreateAppInstanceUser -> String
$cshow :: CreateAppInstanceUser -> String
showsPrec :: Int -> CreateAppInstanceUser -> ShowS
$cshowsPrec :: Int -> CreateAppInstanceUser -> ShowS
Prelude.Show, forall x. Rep CreateAppInstanceUser x -> CreateAppInstanceUser
forall x. CreateAppInstanceUser -> Rep CreateAppInstanceUser x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAppInstanceUser x -> CreateAppInstanceUser
$cfrom :: forall x. CreateAppInstanceUser -> Rep CreateAppInstanceUser x
Prelude.Generic)

-- |
-- Create a value of 'CreateAppInstanceUser' 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:
--
-- 'metadata', 'createAppInstanceUser_metadata' - The request\'s metadata. Limited to a 1KB string in UTF-8.
--
-- 'tags', 'createAppInstanceUser_tags' - Tags assigned to the @AppInstanceUser@.
--
-- 'appInstanceArn', 'createAppInstanceUser_appInstanceArn' - The ARN of the @AppInstance@ request.
--
-- 'appInstanceUserId', 'createAppInstanceUser_appInstanceUserId' - The user ID of the @AppInstance@.
--
-- 'name', 'createAppInstanceUser_name' - The user\'s name.
--
-- 'clientRequestToken', 'createAppInstanceUser_clientRequestToken' - The token assigned to the user requesting an @AppInstance@.
newCreateAppInstanceUser ::
  -- | 'appInstanceArn'
  Prelude.Text ->
  -- | 'appInstanceUserId'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  -- | 'clientRequestToken'
  Prelude.Text ->
  CreateAppInstanceUser
newCreateAppInstanceUser :: Text -> Text -> Text -> Text -> CreateAppInstanceUser
newCreateAppInstanceUser
  Text
pAppInstanceArn_
  Text
pAppInstanceUserId_
  Text
pName_
  Text
pClientRequestToken_ =
    CreateAppInstanceUser'
      { $sel:metadata:CreateAppInstanceUser' :: Maybe (Sensitive Text)
metadata = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateAppInstanceUser' :: Maybe (NonEmpty Tag)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:appInstanceArn:CreateAppInstanceUser' :: Text
appInstanceArn = Text
pAppInstanceArn_,
        $sel:appInstanceUserId:CreateAppInstanceUser' :: Sensitive Text
appInstanceUserId =
          forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pAppInstanceUserId_,
        $sel:name:CreateAppInstanceUser' :: Sensitive Text
name = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pName_,
        $sel:clientRequestToken:CreateAppInstanceUser' :: Sensitive Text
clientRequestToken =
          forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pClientRequestToken_
      }

-- | The request\'s metadata. Limited to a 1KB string in UTF-8.
createAppInstanceUser_metadata :: Lens.Lens' CreateAppInstanceUser (Prelude.Maybe Prelude.Text)
createAppInstanceUser_metadata :: Lens' CreateAppInstanceUser (Maybe Text)
createAppInstanceUser_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Maybe (Sensitive Text)
metadata :: Maybe (Sensitive Text)
$sel:metadata:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (Sensitive Text)
metadata} -> Maybe (Sensitive Text)
metadata) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Maybe (Sensitive Text)
a -> CreateAppInstanceUser
s {$sel:metadata:CreateAppInstanceUser' :: Maybe (Sensitive Text)
metadata = Maybe (Sensitive Text)
a} :: CreateAppInstanceUser) 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

-- | Tags assigned to the @AppInstanceUser@.
createAppInstanceUser_tags :: Lens.Lens' CreateAppInstanceUser (Prelude.Maybe (Prelude.NonEmpty Tag))
createAppInstanceUser_tags :: Lens' CreateAppInstanceUser (Maybe (NonEmpty Tag))
createAppInstanceUser_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Maybe (NonEmpty Tag)
tags :: Maybe (NonEmpty Tag)
$sel:tags:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (NonEmpty Tag)
tags} -> Maybe (NonEmpty Tag)
tags) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Maybe (NonEmpty Tag)
a -> CreateAppInstanceUser
s {$sel:tags:CreateAppInstanceUser' :: Maybe (NonEmpty Tag)
tags = Maybe (NonEmpty Tag)
a} :: CreateAppInstanceUser) 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

-- | The ARN of the @AppInstance@ request.
createAppInstanceUser_appInstanceArn :: Lens.Lens' CreateAppInstanceUser Prelude.Text
createAppInstanceUser_appInstanceArn :: Lens' CreateAppInstanceUser Text
createAppInstanceUser_appInstanceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Text
appInstanceArn :: Text
$sel:appInstanceArn:CreateAppInstanceUser' :: CreateAppInstanceUser -> Text
appInstanceArn} -> Text
appInstanceArn) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Text
a -> CreateAppInstanceUser
s {$sel:appInstanceArn:CreateAppInstanceUser' :: Text
appInstanceArn = Text
a} :: CreateAppInstanceUser)

-- | The user ID of the @AppInstance@.
createAppInstanceUser_appInstanceUserId :: Lens.Lens' CreateAppInstanceUser Prelude.Text
createAppInstanceUser_appInstanceUserId :: Lens' CreateAppInstanceUser Text
createAppInstanceUser_appInstanceUserId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Sensitive Text
appInstanceUserId :: Sensitive Text
$sel:appInstanceUserId:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
appInstanceUserId} -> Sensitive Text
appInstanceUserId) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Sensitive Text
a -> CreateAppInstanceUser
s {$sel:appInstanceUserId:CreateAppInstanceUser' :: Sensitive Text
appInstanceUserId = Sensitive Text
a} :: CreateAppInstanceUser) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The user\'s name.
createAppInstanceUser_name :: Lens.Lens' CreateAppInstanceUser Prelude.Text
createAppInstanceUser_name :: Lens' CreateAppInstanceUser Text
createAppInstanceUser_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Sensitive Text
name :: Sensitive Text
$sel:name:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
name} -> Sensitive Text
name) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Sensitive Text
a -> CreateAppInstanceUser
s {$sel:name:CreateAppInstanceUser' :: Sensitive Text
name = Sensitive Text
a} :: CreateAppInstanceUser) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The token assigned to the user requesting an @AppInstance@.
createAppInstanceUser_clientRequestToken :: Lens.Lens' CreateAppInstanceUser Prelude.Text
createAppInstanceUser_clientRequestToken :: Lens' CreateAppInstanceUser Text
createAppInstanceUser_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUser' {Sensitive Text
clientRequestToken :: Sensitive Text
$sel:clientRequestToken:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
clientRequestToken} -> Sensitive Text
clientRequestToken) (\s :: CreateAppInstanceUser
s@CreateAppInstanceUser' {} Sensitive Text
a -> CreateAppInstanceUser
s {$sel:clientRequestToken:CreateAppInstanceUser' :: Sensitive Text
clientRequestToken = Sensitive Text
a} :: CreateAppInstanceUser) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

instance Core.AWSRequest CreateAppInstanceUser where
  type
    AWSResponse CreateAppInstanceUser =
      CreateAppInstanceUserResponse
  request :: (Service -> Service)
-> CreateAppInstanceUser -> Request CreateAppInstanceUser
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 CreateAppInstanceUser
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateAppInstanceUser)))
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 ->
          Maybe Text -> Int -> CreateAppInstanceUserResponse
CreateAppInstanceUserResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AppInstanceUserArn")
            forall (f :: * -> *) a b. Applicative f => 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))
      )

instance Prelude.Hashable CreateAppInstanceUser where
  hashWithSalt :: Int -> CreateAppInstanceUser -> Int
hashWithSalt Int
_salt CreateAppInstanceUser' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
Text
Sensitive Text
clientRequestToken :: Sensitive Text
name :: Sensitive Text
appInstanceUserId :: Sensitive Text
appInstanceArn :: Text
tags :: Maybe (NonEmpty Tag)
metadata :: Maybe (Sensitive Text)
$sel:clientRequestToken:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:name:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceUserId:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceArn:CreateAppInstanceUser' :: CreateAppInstanceUser -> Text
$sel:tags:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (NonEmpty Tag)
$sel:metadata:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (Sensitive Text)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
metadata
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Tag)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appInstanceArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
appInstanceUserId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
clientRequestToken

instance Prelude.NFData CreateAppInstanceUser where
  rnf :: CreateAppInstanceUser -> ()
rnf CreateAppInstanceUser' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
Text
Sensitive Text
clientRequestToken :: Sensitive Text
name :: Sensitive Text
appInstanceUserId :: Sensitive Text
appInstanceArn :: Text
tags :: Maybe (NonEmpty Tag)
metadata :: Maybe (Sensitive Text)
$sel:clientRequestToken:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:name:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceUserId:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceArn:CreateAppInstanceUser' :: CreateAppInstanceUser -> Text
$sel:tags:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (NonEmpty Tag)
$sel:metadata:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (Sensitive Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
metadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Tag)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appInstanceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
appInstanceUserId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
clientRequestToken

instance Data.ToHeaders CreateAppInstanceUser where
  toHeaders :: CreateAppInstanceUser -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON CreateAppInstanceUser where
  toJSON :: CreateAppInstanceUser -> Value
toJSON CreateAppInstanceUser' {Maybe (NonEmpty Tag)
Maybe (Sensitive Text)
Text
Sensitive Text
clientRequestToken :: Sensitive Text
name :: Sensitive Text
appInstanceUserId :: Sensitive Text
appInstanceArn :: Text
tags :: Maybe (NonEmpty Tag)
metadata :: Maybe (Sensitive Text)
$sel:clientRequestToken:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:name:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceUserId:CreateAppInstanceUser' :: CreateAppInstanceUser -> Sensitive Text
$sel:appInstanceArn:CreateAppInstanceUser' :: CreateAppInstanceUser -> Text
$sel:tags:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (NonEmpty Tag)
$sel:metadata:CreateAppInstanceUser' :: CreateAppInstanceUser -> Maybe (Sensitive Text)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Metadata" 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)
metadata,
            (Key
"Tags" 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 Tag)
tags,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"AppInstanceArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
appInstanceArn),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"AppInstanceUserId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
appInstanceUserId),
            forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
name),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ClientRequestToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
clientRequestToken)
          ]
      )

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

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

-- | /See:/ 'newCreateAppInstanceUserResponse' smart constructor.
data CreateAppInstanceUserResponse = CreateAppInstanceUserResponse'
  { -- | The user\'s ARN.
    CreateAppInstanceUserResponse -> Maybe Text
appInstanceUserArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateAppInstanceUserResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateAppInstanceUserResponse
-> CreateAppInstanceUserResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAppInstanceUserResponse
-> CreateAppInstanceUserResponse -> Bool
$c/= :: CreateAppInstanceUserResponse
-> CreateAppInstanceUserResponse -> Bool
== :: CreateAppInstanceUserResponse
-> CreateAppInstanceUserResponse -> Bool
$c== :: CreateAppInstanceUserResponse
-> CreateAppInstanceUserResponse -> Bool
Prelude.Eq, ReadPrec [CreateAppInstanceUserResponse]
ReadPrec CreateAppInstanceUserResponse
Int -> ReadS CreateAppInstanceUserResponse
ReadS [CreateAppInstanceUserResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAppInstanceUserResponse]
$creadListPrec :: ReadPrec [CreateAppInstanceUserResponse]
readPrec :: ReadPrec CreateAppInstanceUserResponse
$creadPrec :: ReadPrec CreateAppInstanceUserResponse
readList :: ReadS [CreateAppInstanceUserResponse]
$creadList :: ReadS [CreateAppInstanceUserResponse]
readsPrec :: Int -> ReadS CreateAppInstanceUserResponse
$creadsPrec :: Int -> ReadS CreateAppInstanceUserResponse
Prelude.Read, Int -> CreateAppInstanceUserResponse -> ShowS
[CreateAppInstanceUserResponse] -> ShowS
CreateAppInstanceUserResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAppInstanceUserResponse] -> ShowS
$cshowList :: [CreateAppInstanceUserResponse] -> ShowS
show :: CreateAppInstanceUserResponse -> String
$cshow :: CreateAppInstanceUserResponse -> String
showsPrec :: Int -> CreateAppInstanceUserResponse -> ShowS
$cshowsPrec :: Int -> CreateAppInstanceUserResponse -> ShowS
Prelude.Show, forall x.
Rep CreateAppInstanceUserResponse x
-> CreateAppInstanceUserResponse
forall x.
CreateAppInstanceUserResponse
-> Rep CreateAppInstanceUserResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateAppInstanceUserResponse x
-> CreateAppInstanceUserResponse
$cfrom :: forall x.
CreateAppInstanceUserResponse
-> Rep CreateAppInstanceUserResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateAppInstanceUserResponse' 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:
--
-- 'appInstanceUserArn', 'createAppInstanceUserResponse_appInstanceUserArn' - The user\'s ARN.
--
-- 'httpStatus', 'createAppInstanceUserResponse_httpStatus' - The response's http status code.
newCreateAppInstanceUserResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateAppInstanceUserResponse
newCreateAppInstanceUserResponse :: Int -> CreateAppInstanceUserResponse
newCreateAppInstanceUserResponse Int
pHttpStatus_ =
  CreateAppInstanceUserResponse'
    { $sel:appInstanceUserArn:CreateAppInstanceUserResponse' :: Maybe Text
appInstanceUserArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateAppInstanceUserResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The user\'s ARN.
createAppInstanceUserResponse_appInstanceUserArn :: Lens.Lens' CreateAppInstanceUserResponse (Prelude.Maybe Prelude.Text)
createAppInstanceUserResponse_appInstanceUserArn :: Lens' CreateAppInstanceUserResponse (Maybe Text)
createAppInstanceUserResponse_appInstanceUserArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAppInstanceUserResponse' {Maybe Text
appInstanceUserArn :: Maybe Text
$sel:appInstanceUserArn:CreateAppInstanceUserResponse' :: CreateAppInstanceUserResponse -> Maybe Text
appInstanceUserArn} -> Maybe Text
appInstanceUserArn) (\s :: CreateAppInstanceUserResponse
s@CreateAppInstanceUserResponse' {} Maybe Text
a -> CreateAppInstanceUserResponse
s {$sel:appInstanceUserArn:CreateAppInstanceUserResponse' :: Maybe Text
appInstanceUserArn = Maybe Text
a} :: CreateAppInstanceUserResponse)

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

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