amazonka-finspace-data-2.0: gen/Amazonka/FinSpaceData/ListPermissionGroupsByUser.hs
{-# 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.FinSpaceData.ListPermissionGroupsByUser
-- 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 all the permission groups that are associated with a specific user
-- account.
module Amazonka.FinSpaceData.ListPermissionGroupsByUser
( -- * Creating a Request
ListPermissionGroupsByUser (..),
newListPermissionGroupsByUser,
-- * Request Lenses
listPermissionGroupsByUser_nextToken,
listPermissionGroupsByUser_userId,
listPermissionGroupsByUser_maxResults,
-- * Destructuring the Response
ListPermissionGroupsByUserResponse (..),
newListPermissionGroupsByUserResponse,
-- * Response Lenses
listPermissionGroupsByUserResponse_nextToken,
listPermissionGroupsByUserResponse_permissionGroups,
listPermissionGroupsByUserResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FinSpaceData.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newListPermissionGroupsByUser' smart constructor.
data ListPermissionGroupsByUser = ListPermissionGroupsByUser'
{ -- | A token that indicates where a results page should begin.
nextToken :: Prelude.Maybe Prelude.Text,
-- | The unique identifier for the user.
userId :: Prelude.Text,
-- | The maximum number of results per page.
maxResults :: Prelude.Natural
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListPermissionGroupsByUser' 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:
--
-- 'nextToken', 'listPermissionGroupsByUser_nextToken' - A token that indicates where a results page should begin.
--
-- 'userId', 'listPermissionGroupsByUser_userId' - The unique identifier for the user.
--
-- 'maxResults', 'listPermissionGroupsByUser_maxResults' - The maximum number of results per page.
newListPermissionGroupsByUser ::
-- | 'userId'
Prelude.Text ->
-- | 'maxResults'
Prelude.Natural ->
ListPermissionGroupsByUser
newListPermissionGroupsByUser pUserId_ pMaxResults_ =
ListPermissionGroupsByUser'
{ nextToken =
Prelude.Nothing,
userId = pUserId_,
maxResults = pMaxResults_
}
-- | A token that indicates where a results page should begin.
listPermissionGroupsByUser_nextToken :: Lens.Lens' ListPermissionGroupsByUser (Prelude.Maybe Prelude.Text)
listPermissionGroupsByUser_nextToken = Lens.lens (\ListPermissionGroupsByUser' {nextToken} -> nextToken) (\s@ListPermissionGroupsByUser' {} a -> s {nextToken = a} :: ListPermissionGroupsByUser)
-- | The unique identifier for the user.
listPermissionGroupsByUser_userId :: Lens.Lens' ListPermissionGroupsByUser Prelude.Text
listPermissionGroupsByUser_userId = Lens.lens (\ListPermissionGroupsByUser' {userId} -> userId) (\s@ListPermissionGroupsByUser' {} a -> s {userId = a} :: ListPermissionGroupsByUser)
-- | The maximum number of results per page.
listPermissionGroupsByUser_maxResults :: Lens.Lens' ListPermissionGroupsByUser Prelude.Natural
listPermissionGroupsByUser_maxResults = Lens.lens (\ListPermissionGroupsByUser' {maxResults} -> maxResults) (\s@ListPermissionGroupsByUser' {} a -> s {maxResults = a} :: ListPermissionGroupsByUser)
instance Core.AWSRequest ListPermissionGroupsByUser where
type
AWSResponse ListPermissionGroupsByUser =
ListPermissionGroupsByUserResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
ListPermissionGroupsByUserResponse'
Prelude.<$> (x Data..?> "nextToken")
Prelude.<*> ( x
Data..?> "permissionGroups"
Core..!@ Prelude.mempty
)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable ListPermissionGroupsByUser where
hashWithSalt _salt ListPermissionGroupsByUser' {..} =
_salt
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` userId
`Prelude.hashWithSalt` maxResults
instance Prelude.NFData ListPermissionGroupsByUser where
rnf ListPermissionGroupsByUser' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf userId
`Prelude.seq` Prelude.rnf maxResults
instance Data.ToHeaders ListPermissionGroupsByUser where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath ListPermissionGroupsByUser where
toPath ListPermissionGroupsByUser' {..} =
Prelude.mconcat
["/user/", Data.toBS userId, "/permission-groups"]
instance Data.ToQuery ListPermissionGroupsByUser where
toQuery ListPermissionGroupsByUser' {..} =
Prelude.mconcat
[ "nextToken" Data.=: nextToken,
"maxResults" Data.=: maxResults
]
-- | /See:/ 'newListPermissionGroupsByUserResponse' smart constructor.
data ListPermissionGroupsByUserResponse = ListPermissionGroupsByUserResponse'
{ -- | A token that indicates where a results page should begin.
nextToken :: Prelude.Maybe Prelude.Text,
-- | A list of returned permission groups.
permissionGroups :: Prelude.Maybe [PermissionGroupByUser],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListPermissionGroupsByUserResponse' 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:
--
-- 'nextToken', 'listPermissionGroupsByUserResponse_nextToken' - A token that indicates where a results page should begin.
--
-- 'permissionGroups', 'listPermissionGroupsByUserResponse_permissionGroups' - A list of returned permission groups.
--
-- 'httpStatus', 'listPermissionGroupsByUserResponse_httpStatus' - The response's http status code.
newListPermissionGroupsByUserResponse ::
-- | 'httpStatus'
Prelude.Int ->
ListPermissionGroupsByUserResponse
newListPermissionGroupsByUserResponse pHttpStatus_ =
ListPermissionGroupsByUserResponse'
{ nextToken =
Prelude.Nothing,
permissionGroups = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | A token that indicates where a results page should begin.
listPermissionGroupsByUserResponse_nextToken :: Lens.Lens' ListPermissionGroupsByUserResponse (Prelude.Maybe Prelude.Text)
listPermissionGroupsByUserResponse_nextToken = Lens.lens (\ListPermissionGroupsByUserResponse' {nextToken} -> nextToken) (\s@ListPermissionGroupsByUserResponse' {} a -> s {nextToken = a} :: ListPermissionGroupsByUserResponse)
-- | A list of returned permission groups.
listPermissionGroupsByUserResponse_permissionGroups :: Lens.Lens' ListPermissionGroupsByUserResponse (Prelude.Maybe [PermissionGroupByUser])
listPermissionGroupsByUserResponse_permissionGroups = Lens.lens (\ListPermissionGroupsByUserResponse' {permissionGroups} -> permissionGroups) (\s@ListPermissionGroupsByUserResponse' {} a -> s {permissionGroups = a} :: ListPermissionGroupsByUserResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
listPermissionGroupsByUserResponse_httpStatus :: Lens.Lens' ListPermissionGroupsByUserResponse Prelude.Int
listPermissionGroupsByUserResponse_httpStatus = Lens.lens (\ListPermissionGroupsByUserResponse' {httpStatus} -> httpStatus) (\s@ListPermissionGroupsByUserResponse' {} a -> s {httpStatus = a} :: ListPermissionGroupsByUserResponse)
instance
Prelude.NFData
ListPermissionGroupsByUserResponse
where
rnf ListPermissionGroupsByUserResponse' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf permissionGroups
`Prelude.seq` Prelude.rnf httpStatus