{-# 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.AccessAnalyzer.ListAccessPreviewFindings
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list of access preview findings generated by the specified
-- access preview.
--
-- This operation returns paginated results.
module Amazonka.AccessAnalyzer.ListAccessPreviewFindings
  ( -- * Creating a Request
    ListAccessPreviewFindings (..),
    newListAccessPreviewFindings,

    -- * Request Lenses
    listAccessPreviewFindings_filter,
    listAccessPreviewFindings_maxResults,
    listAccessPreviewFindings_nextToken,
    listAccessPreviewFindings_accessPreviewId,
    listAccessPreviewFindings_analyzerArn,

    -- * Destructuring the Response
    ListAccessPreviewFindingsResponse (..),
    newListAccessPreviewFindingsResponse,

    -- * Response Lenses
    listAccessPreviewFindingsResponse_nextToken,
    listAccessPreviewFindingsResponse_httpStatus,
    listAccessPreviewFindingsResponse_findings,
  )
where

import Amazonka.AccessAnalyzer.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:/ 'newListAccessPreviewFindings' smart constructor.
data ListAccessPreviewFindings = ListAccessPreviewFindings'
  { -- | Criteria to filter the returned findings.
    ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
filter' :: Prelude.Maybe (Prelude.HashMap Prelude.Text Criterion),
    -- | The maximum number of results to return in the response.
    ListAccessPreviewFindings -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | A token used for pagination of results returned.
    ListAccessPreviewFindings -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The unique ID for the access preview.
    ListAccessPreviewFindings -> Text
accessPreviewId :: Prelude.Text,
    -- | The
    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources ARN of the analyzer>
    -- used to generate the access.
    ListAccessPreviewFindings -> Text
analyzerArn :: Prelude.Text
  }
  deriving (ListAccessPreviewFindings -> ListAccessPreviewFindings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAccessPreviewFindings -> ListAccessPreviewFindings -> Bool
$c/= :: ListAccessPreviewFindings -> ListAccessPreviewFindings -> Bool
== :: ListAccessPreviewFindings -> ListAccessPreviewFindings -> Bool
$c== :: ListAccessPreviewFindings -> ListAccessPreviewFindings -> Bool
Prelude.Eq, ReadPrec [ListAccessPreviewFindings]
ReadPrec ListAccessPreviewFindings
Int -> ReadS ListAccessPreviewFindings
ReadS [ListAccessPreviewFindings]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAccessPreviewFindings]
$creadListPrec :: ReadPrec [ListAccessPreviewFindings]
readPrec :: ReadPrec ListAccessPreviewFindings
$creadPrec :: ReadPrec ListAccessPreviewFindings
readList :: ReadS [ListAccessPreviewFindings]
$creadList :: ReadS [ListAccessPreviewFindings]
readsPrec :: Int -> ReadS ListAccessPreviewFindings
$creadsPrec :: Int -> ReadS ListAccessPreviewFindings
Prelude.Read, Int -> ListAccessPreviewFindings -> ShowS
[ListAccessPreviewFindings] -> ShowS
ListAccessPreviewFindings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAccessPreviewFindings] -> ShowS
$cshowList :: [ListAccessPreviewFindings] -> ShowS
show :: ListAccessPreviewFindings -> String
$cshow :: ListAccessPreviewFindings -> String
showsPrec :: Int -> ListAccessPreviewFindings -> ShowS
$cshowsPrec :: Int -> ListAccessPreviewFindings -> ShowS
Prelude.Show, forall x.
Rep ListAccessPreviewFindings x -> ListAccessPreviewFindings
forall x.
ListAccessPreviewFindings -> Rep ListAccessPreviewFindings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAccessPreviewFindings x -> ListAccessPreviewFindings
$cfrom :: forall x.
ListAccessPreviewFindings -> Rep ListAccessPreviewFindings x
Prelude.Generic)

-- |
-- Create a value of 'ListAccessPreviewFindings' 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:
--
-- 'filter'', 'listAccessPreviewFindings_filter' - Criteria to filter the returned findings.
--
-- 'maxResults', 'listAccessPreviewFindings_maxResults' - The maximum number of results to return in the response.
--
-- 'nextToken', 'listAccessPreviewFindings_nextToken' - A token used for pagination of results returned.
--
-- 'accessPreviewId', 'listAccessPreviewFindings_accessPreviewId' - The unique ID for the access preview.
--
-- 'analyzerArn', 'listAccessPreviewFindings_analyzerArn' - The
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources ARN of the analyzer>
-- used to generate the access.
newListAccessPreviewFindings ::
  -- | 'accessPreviewId'
  Prelude.Text ->
  -- | 'analyzerArn'
  Prelude.Text ->
  ListAccessPreviewFindings
newListAccessPreviewFindings :: Text -> Text -> ListAccessPreviewFindings
newListAccessPreviewFindings
  Text
pAccessPreviewId_
  Text
pAnalyzerArn_ =
    ListAccessPreviewFindings'
      { $sel:filter':ListAccessPreviewFindings' :: Maybe (HashMap Text Criterion)
filter' =
          forall a. Maybe a
Prelude.Nothing,
        $sel:maxResults:ListAccessPreviewFindings' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:ListAccessPreviewFindings' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:accessPreviewId:ListAccessPreviewFindings' :: Text
accessPreviewId = Text
pAccessPreviewId_,
        $sel:analyzerArn:ListAccessPreviewFindings' :: Text
analyzerArn = Text
pAnalyzerArn_
      }

-- | Criteria to filter the returned findings.
listAccessPreviewFindings_filter :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe (Prelude.HashMap Prelude.Text Criterion))
listAccessPreviewFindings_filter :: Lens' ListAccessPreviewFindings (Maybe (HashMap Text Criterion))
listAccessPreviewFindings_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindings' {Maybe (HashMap Text Criterion)
filter' :: Maybe (HashMap Text Criterion)
$sel:filter':ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
filter'} -> Maybe (HashMap Text Criterion)
filter') (\s :: ListAccessPreviewFindings
s@ListAccessPreviewFindings' {} Maybe (HashMap Text Criterion)
a -> ListAccessPreviewFindings
s {$sel:filter':ListAccessPreviewFindings' :: Maybe (HashMap Text Criterion)
filter' = Maybe (HashMap Text Criterion)
a} :: ListAccessPreviewFindings) 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 maximum number of results to return in the response.
listAccessPreviewFindings_maxResults :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe Prelude.Int)
listAccessPreviewFindings_maxResults :: Lens' ListAccessPreviewFindings (Maybe Int)
listAccessPreviewFindings_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindings' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListAccessPreviewFindings
s@ListAccessPreviewFindings' {} Maybe Int
a -> ListAccessPreviewFindings
s {$sel:maxResults:ListAccessPreviewFindings' :: Maybe Int
maxResults = Maybe Int
a} :: ListAccessPreviewFindings)

-- | A token used for pagination of results returned.
listAccessPreviewFindings_nextToken :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe Prelude.Text)
listAccessPreviewFindings_nextToken :: Lens' ListAccessPreviewFindings (Maybe Text)
listAccessPreviewFindings_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindings' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAccessPreviewFindings
s@ListAccessPreviewFindings' {} Maybe Text
a -> ListAccessPreviewFindings
s {$sel:nextToken:ListAccessPreviewFindings' :: Maybe Text
nextToken = Maybe Text
a} :: ListAccessPreviewFindings)

-- | The unique ID for the access preview.
listAccessPreviewFindings_accessPreviewId :: Lens.Lens' ListAccessPreviewFindings Prelude.Text
listAccessPreviewFindings_accessPreviewId :: Lens' ListAccessPreviewFindings Text
listAccessPreviewFindings_accessPreviewId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindings' {Text
accessPreviewId :: Text
$sel:accessPreviewId:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
accessPreviewId} -> Text
accessPreviewId) (\s :: ListAccessPreviewFindings
s@ListAccessPreviewFindings' {} Text
a -> ListAccessPreviewFindings
s {$sel:accessPreviewId:ListAccessPreviewFindings' :: Text
accessPreviewId = Text
a} :: ListAccessPreviewFindings)

-- | The
-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources ARN of the analyzer>
-- used to generate the access.
listAccessPreviewFindings_analyzerArn :: Lens.Lens' ListAccessPreviewFindings Prelude.Text
listAccessPreviewFindings_analyzerArn :: Lens' ListAccessPreviewFindings Text
listAccessPreviewFindings_analyzerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindings' {Text
analyzerArn :: Text
$sel:analyzerArn:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
analyzerArn} -> Text
analyzerArn) (\s :: ListAccessPreviewFindings
s@ListAccessPreviewFindings' {} Text
a -> ListAccessPreviewFindings
s {$sel:analyzerArn:ListAccessPreviewFindings' :: Text
analyzerArn = Text
a} :: ListAccessPreviewFindings)

instance Core.AWSPager ListAccessPreviewFindings where
  page :: ListAccessPreviewFindings
-> AWSResponse ListAccessPreviewFindings
-> Maybe ListAccessPreviewFindings
page ListAccessPreviewFindings
rq AWSResponse ListAccessPreviewFindings
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListAccessPreviewFindings
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListAccessPreviewFindingsResponse (Maybe Text)
listAccessPreviewFindingsResponse_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 ListAccessPreviewFindings
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' ListAccessPreviewFindingsResponse [AccessPreviewFinding]
listAccessPreviewFindingsResponse_findings
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListAccessPreviewFindings
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListAccessPreviewFindings (Maybe Text)
listAccessPreviewFindings_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListAccessPreviewFindings
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListAccessPreviewFindingsResponse (Maybe Text)
listAccessPreviewFindingsResponse_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 ListAccessPreviewFindings where
  type
    AWSResponse ListAccessPreviewFindings =
      ListAccessPreviewFindingsResponse
  request :: (Service -> Service)
-> ListAccessPreviewFindings -> Request ListAccessPreviewFindings
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 ListAccessPreviewFindings
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListAccessPreviewFindings)))
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
-> [AccessPreviewFinding]
-> ListAccessPreviewFindingsResponse
ListAccessPreviewFindingsResponse'
            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
"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))
            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
"findings" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable ListAccessPreviewFindings where
  hashWithSalt :: Int -> ListAccessPreviewFindings -> Int
hashWithSalt Int
_salt ListAccessPreviewFindings' {Maybe Int
Maybe Text
Maybe (HashMap Text Criterion)
Text
analyzerArn :: Text
accessPreviewId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe (HashMap Text Criterion)
$sel:analyzerArn:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:accessPreviewId:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:nextToken:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Text
$sel:maxResults:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Int
$sel:filter':ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Criterion)
filter'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
accessPreviewId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
analyzerArn

instance Prelude.NFData ListAccessPreviewFindings where
  rnf :: ListAccessPreviewFindings -> ()
rnf ListAccessPreviewFindings' {Maybe Int
Maybe Text
Maybe (HashMap Text Criterion)
Text
analyzerArn :: Text
accessPreviewId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe (HashMap Text Criterion)
$sel:analyzerArn:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:accessPreviewId:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:nextToken:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Text
$sel:maxResults:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Int
$sel:filter':ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Criterion)
filter'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
      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 Text
accessPreviewId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
analyzerArn

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

instance Data.ToJSON ListAccessPreviewFindings where
  toJSON :: ListAccessPreviewFindings -> Value
toJSON ListAccessPreviewFindings' {Maybe Int
Maybe Text
Maybe (HashMap Text Criterion)
Text
analyzerArn :: Text
accessPreviewId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe (HashMap Text Criterion)
$sel:analyzerArn:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:accessPreviewId:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:nextToken:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Text
$sel:maxResults:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Int
$sel:filter':ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"filter" 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 (HashMap Text Criterion)
filter',
            (Key
"maxResults" 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 Int
maxResults,
            (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
"analyzerArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
analyzerArn)
          ]
      )

instance Data.ToPath ListAccessPreviewFindings where
  toPath :: ListAccessPreviewFindings -> ByteString
toPath ListAccessPreviewFindings' {Maybe Int
Maybe Text
Maybe (HashMap Text Criterion)
Text
analyzerArn :: Text
accessPreviewId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe (HashMap Text Criterion)
$sel:analyzerArn:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:accessPreviewId:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Text
$sel:nextToken:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Text
$sel:maxResults:ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe Int
$sel:filter':ListAccessPreviewFindings' :: ListAccessPreviewFindings -> Maybe (HashMap Text Criterion)
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/access-preview/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
accessPreviewId]

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

-- | /See:/ 'newListAccessPreviewFindingsResponse' smart constructor.
data ListAccessPreviewFindingsResponse = ListAccessPreviewFindingsResponse'
  { -- | A token used for pagination of results returned.
    ListAccessPreviewFindingsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListAccessPreviewFindingsResponse -> Int
httpStatus :: Prelude.Int,
    -- | A list of access preview findings that match the specified filter
    -- criteria.
    ListAccessPreviewFindingsResponse -> [AccessPreviewFinding]
findings :: [AccessPreviewFinding]
  }
  deriving (ListAccessPreviewFindingsResponse
-> ListAccessPreviewFindingsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAccessPreviewFindingsResponse
-> ListAccessPreviewFindingsResponse -> Bool
$c/= :: ListAccessPreviewFindingsResponse
-> ListAccessPreviewFindingsResponse -> Bool
== :: ListAccessPreviewFindingsResponse
-> ListAccessPreviewFindingsResponse -> Bool
$c== :: ListAccessPreviewFindingsResponse
-> ListAccessPreviewFindingsResponse -> Bool
Prelude.Eq, ReadPrec [ListAccessPreviewFindingsResponse]
ReadPrec ListAccessPreviewFindingsResponse
Int -> ReadS ListAccessPreviewFindingsResponse
ReadS [ListAccessPreviewFindingsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAccessPreviewFindingsResponse]
$creadListPrec :: ReadPrec [ListAccessPreviewFindingsResponse]
readPrec :: ReadPrec ListAccessPreviewFindingsResponse
$creadPrec :: ReadPrec ListAccessPreviewFindingsResponse
readList :: ReadS [ListAccessPreviewFindingsResponse]
$creadList :: ReadS [ListAccessPreviewFindingsResponse]
readsPrec :: Int -> ReadS ListAccessPreviewFindingsResponse
$creadsPrec :: Int -> ReadS ListAccessPreviewFindingsResponse
Prelude.Read, Int -> ListAccessPreviewFindingsResponse -> ShowS
[ListAccessPreviewFindingsResponse] -> ShowS
ListAccessPreviewFindingsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAccessPreviewFindingsResponse] -> ShowS
$cshowList :: [ListAccessPreviewFindingsResponse] -> ShowS
show :: ListAccessPreviewFindingsResponse -> String
$cshow :: ListAccessPreviewFindingsResponse -> String
showsPrec :: Int -> ListAccessPreviewFindingsResponse -> ShowS
$cshowsPrec :: Int -> ListAccessPreviewFindingsResponse -> ShowS
Prelude.Show, forall x.
Rep ListAccessPreviewFindingsResponse x
-> ListAccessPreviewFindingsResponse
forall x.
ListAccessPreviewFindingsResponse
-> Rep ListAccessPreviewFindingsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAccessPreviewFindingsResponse x
-> ListAccessPreviewFindingsResponse
$cfrom :: forall x.
ListAccessPreviewFindingsResponse
-> Rep ListAccessPreviewFindingsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAccessPreviewFindingsResponse' 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', 'listAccessPreviewFindingsResponse_nextToken' - A token used for pagination of results returned.
--
-- 'httpStatus', 'listAccessPreviewFindingsResponse_httpStatus' - The response's http status code.
--
-- 'findings', 'listAccessPreviewFindingsResponse_findings' - A list of access preview findings that match the specified filter
-- criteria.
newListAccessPreviewFindingsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAccessPreviewFindingsResponse
newListAccessPreviewFindingsResponse :: Int -> ListAccessPreviewFindingsResponse
newListAccessPreviewFindingsResponse Int
pHttpStatus_ =
  ListAccessPreviewFindingsResponse'
    { $sel:nextToken:ListAccessPreviewFindingsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAccessPreviewFindingsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:findings:ListAccessPreviewFindingsResponse' :: [AccessPreviewFinding]
findings = forall a. Monoid a => a
Prelude.mempty
    }

-- | A token used for pagination of results returned.
listAccessPreviewFindingsResponse_nextToken :: Lens.Lens' ListAccessPreviewFindingsResponse (Prelude.Maybe Prelude.Text)
listAccessPreviewFindingsResponse_nextToken :: Lens' ListAccessPreviewFindingsResponse (Maybe Text)
listAccessPreviewFindingsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindingsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAccessPreviewFindingsResponse' :: ListAccessPreviewFindingsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAccessPreviewFindingsResponse
s@ListAccessPreviewFindingsResponse' {} Maybe Text
a -> ListAccessPreviewFindingsResponse
s {$sel:nextToken:ListAccessPreviewFindingsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAccessPreviewFindingsResponse)

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

-- | A list of access preview findings that match the specified filter
-- criteria.
listAccessPreviewFindingsResponse_findings :: Lens.Lens' ListAccessPreviewFindingsResponse [AccessPreviewFinding]
listAccessPreviewFindingsResponse_findings :: Lens' ListAccessPreviewFindingsResponse [AccessPreviewFinding]
listAccessPreviewFindingsResponse_findings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAccessPreviewFindingsResponse' {[AccessPreviewFinding]
findings :: [AccessPreviewFinding]
$sel:findings:ListAccessPreviewFindingsResponse' :: ListAccessPreviewFindingsResponse -> [AccessPreviewFinding]
findings} -> [AccessPreviewFinding]
findings) (\s :: ListAccessPreviewFindingsResponse
s@ListAccessPreviewFindingsResponse' {} [AccessPreviewFinding]
a -> ListAccessPreviewFindingsResponse
s {$sel:findings:ListAccessPreviewFindingsResponse' :: [AccessPreviewFinding]
findings = [AccessPreviewFinding]
a} :: ListAccessPreviewFindingsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    ListAccessPreviewFindingsResponse
  where
  rnf :: ListAccessPreviewFindingsResponse -> ()
rnf ListAccessPreviewFindingsResponse' {Int
[AccessPreviewFinding]
Maybe Text
findings :: [AccessPreviewFinding]
httpStatus :: Int
nextToken :: Maybe Text
$sel:findings:ListAccessPreviewFindingsResponse' :: ListAccessPreviewFindingsResponse -> [AccessPreviewFinding]
$sel:httpStatus:ListAccessPreviewFindingsResponse' :: ListAccessPreviewFindingsResponse -> Int
$sel:nextToken:ListAccessPreviewFindingsResponse' :: ListAccessPreviewFindingsResponse -> Maybe Text
..} =
    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
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [AccessPreviewFinding]
findings