{-# 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.CognitoIdentityProvider.AdminListGroupsForUser
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the groups that the user belongs to.
--
-- Calling this action requires developer credentials.
--
-- This operation returns paginated results.
module Amazonka.CognitoIdentityProvider.AdminListGroupsForUser
  ( -- * Creating a Request
    AdminListGroupsForUser (..),
    newAdminListGroupsForUser,

    -- * Request Lenses
    adminListGroupsForUser_limit,
    adminListGroupsForUser_nextToken,
    adminListGroupsForUser_username,
    adminListGroupsForUser_userPoolId,

    -- * Destructuring the Response
    AdminListGroupsForUserResponse (..),
    newAdminListGroupsForUserResponse,

    -- * Response Lenses
    adminListGroupsForUserResponse_groups,
    adminListGroupsForUserResponse_nextToken,
    adminListGroupsForUserResponse_httpStatus,
  )
where

import Amazonka.CognitoIdentityProvider.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:/ 'newAdminListGroupsForUser' smart constructor.
data AdminListGroupsForUser = AdminListGroupsForUser'
  { -- | The limit of the request to list groups.
    AdminListGroupsForUser -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
    -- | An identifier that was returned from the previous call to this
    -- operation, which can be used to return the next set of items in the
    -- list.
    AdminListGroupsForUser -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The username for the user.
    AdminListGroupsForUser -> Sensitive Text
username :: Data.Sensitive Prelude.Text,
    -- | The user pool ID for the user pool.
    AdminListGroupsForUser -> Text
userPoolId :: Prelude.Text
  }
  deriving (AdminListGroupsForUser -> AdminListGroupsForUser -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdminListGroupsForUser -> AdminListGroupsForUser -> Bool
$c/= :: AdminListGroupsForUser -> AdminListGroupsForUser -> Bool
== :: AdminListGroupsForUser -> AdminListGroupsForUser -> Bool
$c== :: AdminListGroupsForUser -> AdminListGroupsForUser -> Bool
Prelude.Eq, Int -> AdminListGroupsForUser -> ShowS
[AdminListGroupsForUser] -> ShowS
AdminListGroupsForUser -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdminListGroupsForUser] -> ShowS
$cshowList :: [AdminListGroupsForUser] -> ShowS
show :: AdminListGroupsForUser -> String
$cshow :: AdminListGroupsForUser -> String
showsPrec :: Int -> AdminListGroupsForUser -> ShowS
$cshowsPrec :: Int -> AdminListGroupsForUser -> ShowS
Prelude.Show, forall x. Rep AdminListGroupsForUser x -> AdminListGroupsForUser
forall x. AdminListGroupsForUser -> Rep AdminListGroupsForUser x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AdminListGroupsForUser x -> AdminListGroupsForUser
$cfrom :: forall x. AdminListGroupsForUser -> Rep AdminListGroupsForUser x
Prelude.Generic)

-- |
-- Create a value of 'AdminListGroupsForUser' 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:
--
-- 'limit', 'adminListGroupsForUser_limit' - The limit of the request to list groups.
--
-- 'nextToken', 'adminListGroupsForUser_nextToken' - An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
--
-- 'username', 'adminListGroupsForUser_username' - The username for the user.
--
-- 'userPoolId', 'adminListGroupsForUser_userPoolId' - The user pool ID for the user pool.
newAdminListGroupsForUser ::
  -- | 'username'
  Prelude.Text ->
  -- | 'userPoolId'
  Prelude.Text ->
  AdminListGroupsForUser
newAdminListGroupsForUser :: Text -> Text -> AdminListGroupsForUser
newAdminListGroupsForUser Text
pUsername_ Text
pUserPoolId_ =
  AdminListGroupsForUser'
    { $sel:limit:AdminListGroupsForUser' :: Maybe Natural
limit = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:AdminListGroupsForUser' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:username:AdminListGroupsForUser' :: Sensitive Text
username = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pUsername_,
      $sel:userPoolId:AdminListGroupsForUser' :: Text
userPoolId = Text
pUserPoolId_
    }

-- | The limit of the request to list groups.
adminListGroupsForUser_limit :: Lens.Lens' AdminListGroupsForUser (Prelude.Maybe Prelude.Natural)
adminListGroupsForUser_limit :: Lens' AdminListGroupsForUser (Maybe Natural)
adminListGroupsForUser_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUser' {Maybe Natural
limit :: Maybe Natural
$sel:limit:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: AdminListGroupsForUser
s@AdminListGroupsForUser' {} Maybe Natural
a -> AdminListGroupsForUser
s {$sel:limit:AdminListGroupsForUser' :: Maybe Natural
limit = Maybe Natural
a} :: AdminListGroupsForUser)

-- | An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
adminListGroupsForUser_nextToken :: Lens.Lens' AdminListGroupsForUser (Prelude.Maybe Prelude.Text)
adminListGroupsForUser_nextToken :: Lens' AdminListGroupsForUser (Maybe Text)
adminListGroupsForUser_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUser' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: AdminListGroupsForUser
s@AdminListGroupsForUser' {} Maybe Text
a -> AdminListGroupsForUser
s {$sel:nextToken:AdminListGroupsForUser' :: Maybe Text
nextToken = Maybe Text
a} :: AdminListGroupsForUser)

-- | The username for the user.
adminListGroupsForUser_username :: Lens.Lens' AdminListGroupsForUser Prelude.Text
adminListGroupsForUser_username :: Lens' AdminListGroupsForUser Text
adminListGroupsForUser_username = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUser' {Sensitive Text
username :: Sensitive Text
$sel:username:AdminListGroupsForUser' :: AdminListGroupsForUser -> Sensitive Text
username} -> Sensitive Text
username) (\s :: AdminListGroupsForUser
s@AdminListGroupsForUser' {} Sensitive Text
a -> AdminListGroupsForUser
s {$sel:username:AdminListGroupsForUser' :: Sensitive Text
username = Sensitive Text
a} :: AdminListGroupsForUser) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The user pool ID for the user pool.
adminListGroupsForUser_userPoolId :: Lens.Lens' AdminListGroupsForUser Prelude.Text
adminListGroupsForUser_userPoolId :: Lens' AdminListGroupsForUser Text
adminListGroupsForUser_userPoolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUser' {Text
userPoolId :: Text
$sel:userPoolId:AdminListGroupsForUser' :: AdminListGroupsForUser -> Text
userPoolId} -> Text
userPoolId) (\s :: AdminListGroupsForUser
s@AdminListGroupsForUser' {} Text
a -> AdminListGroupsForUser
s {$sel:userPoolId:AdminListGroupsForUser' :: Text
userPoolId = Text
a} :: AdminListGroupsForUser)

instance Core.AWSPager AdminListGroupsForUser where
  page :: AdminListGroupsForUser
-> AWSResponse AdminListGroupsForUser
-> Maybe AdminListGroupsForUser
page AdminListGroupsForUser
rq AWSResponse AdminListGroupsForUser
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse AdminListGroupsForUser
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' AdminListGroupsForUserResponse (Maybe Text)
adminListGroupsForUserResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse AdminListGroupsForUser
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' AdminListGroupsForUserResponse (Maybe [GroupType])
adminListGroupsForUserResponse_groups
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ AdminListGroupsForUser
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' AdminListGroupsForUser (Maybe Text)
adminListGroupsForUser_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse AdminListGroupsForUser
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' AdminListGroupsForUserResponse (Maybe Text)
adminListGroupsForUserResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest AdminListGroupsForUser where
  type
    AWSResponse AdminListGroupsForUser =
      AdminListGroupsForUserResponse
  request :: (Service -> Service)
-> AdminListGroupsForUser -> Request AdminListGroupsForUser
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 AdminListGroupsForUser
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse AdminListGroupsForUser)))
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 [GroupType]
-> Maybe Text -> Int -> AdminListGroupsForUserResponse
AdminListGroupsForUserResponse'
            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
"Groups" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"NextToken")
            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 AdminListGroupsForUser where
  hashWithSalt :: Int -> AdminListGroupsForUser -> Int
hashWithSalt Int
_salt AdminListGroupsForUser' {Maybe Natural
Maybe Text
Text
Sensitive Text
userPoolId :: Text
username :: Sensitive Text
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:userPoolId:AdminListGroupsForUser' :: AdminListGroupsForUser -> Text
$sel:username:AdminListGroupsForUser' :: AdminListGroupsForUser -> Sensitive Text
$sel:nextToken:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Text
$sel:limit:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
username
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
userPoolId

instance Prelude.NFData AdminListGroupsForUser where
  rnf :: AdminListGroupsForUser -> ()
rnf AdminListGroupsForUser' {Maybe Natural
Maybe Text
Text
Sensitive Text
userPoolId :: Text
username :: Sensitive Text
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:userPoolId:AdminListGroupsForUser' :: AdminListGroupsForUser -> Text
$sel:username:AdminListGroupsForUser' :: AdminListGroupsForUser -> Sensitive Text
$sel:nextToken:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Text
$sel:limit:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
username
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
userPoolId

instance Data.ToHeaders AdminListGroupsForUser where
  toHeaders :: AdminListGroupsForUser -> 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
"AWSCognitoIdentityProviderService.AdminListGroupsForUser" ::
                          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 AdminListGroupsForUser where
  toJSON :: AdminListGroupsForUser -> Value
toJSON AdminListGroupsForUser' {Maybe Natural
Maybe Text
Text
Sensitive Text
userPoolId :: Text
username :: Sensitive Text
nextToken :: Maybe Text
limit :: Maybe Natural
$sel:userPoolId:AdminListGroupsForUser' :: AdminListGroupsForUser -> Text
$sel:username:AdminListGroupsForUser' :: AdminListGroupsForUser -> Sensitive Text
$sel:nextToken:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Text
$sel:limit:AdminListGroupsForUser' :: AdminListGroupsForUser -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Limit" 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 Natural
limit,
            (Key
"NextToken" 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 Text
nextToken,
            forall a. a -> Maybe a
Prelude.Just (Key
"Username" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
username),
            forall a. a -> Maybe a
Prelude.Just (Key
"UserPoolId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
userPoolId)
          ]
      )

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

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

-- | /See:/ 'newAdminListGroupsForUserResponse' smart constructor.
data AdminListGroupsForUserResponse = AdminListGroupsForUserResponse'
  { -- | The groups that the user belongs to.
    AdminListGroupsForUserResponse -> Maybe [GroupType]
groups :: Prelude.Maybe [GroupType],
    -- | An identifier that was returned from the previous call to this
    -- operation, which can be used to return the next set of items in the
    -- list.
    AdminListGroupsForUserResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    AdminListGroupsForUserResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (AdminListGroupsForUserResponse
-> AdminListGroupsForUserResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdminListGroupsForUserResponse
-> AdminListGroupsForUserResponse -> Bool
$c/= :: AdminListGroupsForUserResponse
-> AdminListGroupsForUserResponse -> Bool
== :: AdminListGroupsForUserResponse
-> AdminListGroupsForUserResponse -> Bool
$c== :: AdminListGroupsForUserResponse
-> AdminListGroupsForUserResponse -> Bool
Prelude.Eq, ReadPrec [AdminListGroupsForUserResponse]
ReadPrec AdminListGroupsForUserResponse
Int -> ReadS AdminListGroupsForUserResponse
ReadS [AdminListGroupsForUserResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AdminListGroupsForUserResponse]
$creadListPrec :: ReadPrec [AdminListGroupsForUserResponse]
readPrec :: ReadPrec AdminListGroupsForUserResponse
$creadPrec :: ReadPrec AdminListGroupsForUserResponse
readList :: ReadS [AdminListGroupsForUserResponse]
$creadList :: ReadS [AdminListGroupsForUserResponse]
readsPrec :: Int -> ReadS AdminListGroupsForUserResponse
$creadsPrec :: Int -> ReadS AdminListGroupsForUserResponse
Prelude.Read, Int -> AdminListGroupsForUserResponse -> ShowS
[AdminListGroupsForUserResponse] -> ShowS
AdminListGroupsForUserResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdminListGroupsForUserResponse] -> ShowS
$cshowList :: [AdminListGroupsForUserResponse] -> ShowS
show :: AdminListGroupsForUserResponse -> String
$cshow :: AdminListGroupsForUserResponse -> String
showsPrec :: Int -> AdminListGroupsForUserResponse -> ShowS
$cshowsPrec :: Int -> AdminListGroupsForUserResponse -> ShowS
Prelude.Show, forall x.
Rep AdminListGroupsForUserResponse x
-> AdminListGroupsForUserResponse
forall x.
AdminListGroupsForUserResponse
-> Rep AdminListGroupsForUserResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AdminListGroupsForUserResponse x
-> AdminListGroupsForUserResponse
$cfrom :: forall x.
AdminListGroupsForUserResponse
-> Rep AdminListGroupsForUserResponse x
Prelude.Generic)

-- |
-- Create a value of 'AdminListGroupsForUserResponse' 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:
--
-- 'groups', 'adminListGroupsForUserResponse_groups' - The groups that the user belongs to.
--
-- 'nextToken', 'adminListGroupsForUserResponse_nextToken' - An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
--
-- 'httpStatus', 'adminListGroupsForUserResponse_httpStatus' - The response's http status code.
newAdminListGroupsForUserResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  AdminListGroupsForUserResponse
newAdminListGroupsForUserResponse :: Int -> AdminListGroupsForUserResponse
newAdminListGroupsForUserResponse Int
pHttpStatus_ =
  AdminListGroupsForUserResponse'
    { $sel:groups:AdminListGroupsForUserResponse' :: Maybe [GroupType]
groups =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:AdminListGroupsForUserResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:AdminListGroupsForUserResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The groups that the user belongs to.
adminListGroupsForUserResponse_groups :: Lens.Lens' AdminListGroupsForUserResponse (Prelude.Maybe [GroupType])
adminListGroupsForUserResponse_groups :: Lens' AdminListGroupsForUserResponse (Maybe [GroupType])
adminListGroupsForUserResponse_groups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUserResponse' {Maybe [GroupType]
groups :: Maybe [GroupType]
$sel:groups:AdminListGroupsForUserResponse' :: AdminListGroupsForUserResponse -> Maybe [GroupType]
groups} -> Maybe [GroupType]
groups) (\s :: AdminListGroupsForUserResponse
s@AdminListGroupsForUserResponse' {} Maybe [GroupType]
a -> AdminListGroupsForUserResponse
s {$sel:groups:AdminListGroupsForUserResponse' :: Maybe [GroupType]
groups = Maybe [GroupType]
a} :: AdminListGroupsForUserResponse) 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

-- | An identifier that was returned from the previous call to this
-- operation, which can be used to return the next set of items in the
-- list.
adminListGroupsForUserResponse_nextToken :: Lens.Lens' AdminListGroupsForUserResponse (Prelude.Maybe Prelude.Text)
adminListGroupsForUserResponse_nextToken :: Lens' AdminListGroupsForUserResponse (Maybe Text)
adminListGroupsForUserResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminListGroupsForUserResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:AdminListGroupsForUserResponse' :: AdminListGroupsForUserResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: AdminListGroupsForUserResponse
s@AdminListGroupsForUserResponse' {} Maybe Text
a -> AdminListGroupsForUserResponse
s {$sel:nextToken:AdminListGroupsForUserResponse' :: Maybe Text
nextToken = Maybe Text
a} :: AdminListGroupsForUserResponse)

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

instance
  Prelude.NFData
    AdminListGroupsForUserResponse
  where
  rnf :: AdminListGroupsForUserResponse -> ()
rnf AdminListGroupsForUserResponse' {Int
Maybe [GroupType]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
groups :: Maybe [GroupType]
$sel:httpStatus:AdminListGroupsForUserResponse' :: AdminListGroupsForUserResponse -> Int
$sel:nextToken:AdminListGroupsForUserResponse' :: AdminListGroupsForUserResponse -> Maybe Text
$sel:groups:AdminListGroupsForUserResponse' :: AdminListGroupsForUserResponse -> Maybe [GroupType]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [GroupType]
groups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus