{-# 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.IoT.ListRelatedResourcesForAuditFinding
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- The related resources of an Audit finding. The following resources can
-- be returned from calling this API:
--
-- -   DEVICE_CERTIFICATE
--
-- -   CA_CERTIFICATE
--
-- -   IOT_POLICY
--
-- -   COGNITO_IDENTITY_POOL
--
-- -   CLIENT_ID
--
-- -   ACCOUNT_SETTINGS
--
-- -   ROLE_ALIAS
--
-- -   IAM_ROLE
--
-- -   ISSUER_CERTIFICATE
--
-- This API is similar to DescribeAuditFinding\'s
-- <https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeAuditFinding.html RelatedResources>
-- but provides pagination and is not limited to 10 resources. When calling
-- <https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeAuditFinding.html DescribeAuditFinding>
-- for the intermediate CA revoked for active device certificates check,
-- RelatedResources will not be populated. You must use this API,
-- ListRelatedResourcesForAuditFinding, to list the certificates.
module Amazonka.IoT.ListRelatedResourcesForAuditFinding
  ( -- * Creating a Request
    ListRelatedResourcesForAuditFinding (..),
    newListRelatedResourcesForAuditFinding,

    -- * Request Lenses
    listRelatedResourcesForAuditFinding_maxResults,
    listRelatedResourcesForAuditFinding_nextToken,
    listRelatedResourcesForAuditFinding_findingId,

    -- * Destructuring the Response
    ListRelatedResourcesForAuditFindingResponse (..),
    newListRelatedResourcesForAuditFindingResponse,

    -- * Response Lenses
    listRelatedResourcesForAuditFindingResponse_nextToken,
    listRelatedResourcesForAuditFindingResponse_relatedResources,
    listRelatedResourcesForAuditFindingResponse_httpStatus,
  )
where

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

-- | /See:/ 'newListRelatedResourcesForAuditFinding' smart constructor.
data ListRelatedResourcesForAuditFinding = ListRelatedResourcesForAuditFinding'
  { -- | The maximum number of results to return at one time.
    ListRelatedResourcesForAuditFinding -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A token that can be used to retrieve the next set of results, or @null@
    -- if there are no additional results.
    ListRelatedResourcesForAuditFinding -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The finding Id.
    ListRelatedResourcesForAuditFinding -> Text
findingId :: Prelude.Text
  }
  deriving (ListRelatedResourcesForAuditFinding
-> ListRelatedResourcesForAuditFinding -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRelatedResourcesForAuditFinding
-> ListRelatedResourcesForAuditFinding -> Bool
$c/= :: ListRelatedResourcesForAuditFinding
-> ListRelatedResourcesForAuditFinding -> Bool
== :: ListRelatedResourcesForAuditFinding
-> ListRelatedResourcesForAuditFinding -> Bool
$c== :: ListRelatedResourcesForAuditFinding
-> ListRelatedResourcesForAuditFinding -> Bool
Prelude.Eq, ReadPrec [ListRelatedResourcesForAuditFinding]
ReadPrec ListRelatedResourcesForAuditFinding
Int -> ReadS ListRelatedResourcesForAuditFinding
ReadS [ListRelatedResourcesForAuditFinding]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRelatedResourcesForAuditFinding]
$creadListPrec :: ReadPrec [ListRelatedResourcesForAuditFinding]
readPrec :: ReadPrec ListRelatedResourcesForAuditFinding
$creadPrec :: ReadPrec ListRelatedResourcesForAuditFinding
readList :: ReadS [ListRelatedResourcesForAuditFinding]
$creadList :: ReadS [ListRelatedResourcesForAuditFinding]
readsPrec :: Int -> ReadS ListRelatedResourcesForAuditFinding
$creadsPrec :: Int -> ReadS ListRelatedResourcesForAuditFinding
Prelude.Read, Int -> ListRelatedResourcesForAuditFinding -> ShowS
[ListRelatedResourcesForAuditFinding] -> ShowS
ListRelatedResourcesForAuditFinding -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRelatedResourcesForAuditFinding] -> ShowS
$cshowList :: [ListRelatedResourcesForAuditFinding] -> ShowS
show :: ListRelatedResourcesForAuditFinding -> String
$cshow :: ListRelatedResourcesForAuditFinding -> String
showsPrec :: Int -> ListRelatedResourcesForAuditFinding -> ShowS
$cshowsPrec :: Int -> ListRelatedResourcesForAuditFinding -> ShowS
Prelude.Show, forall x.
Rep ListRelatedResourcesForAuditFinding x
-> ListRelatedResourcesForAuditFinding
forall x.
ListRelatedResourcesForAuditFinding
-> Rep ListRelatedResourcesForAuditFinding x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListRelatedResourcesForAuditFinding x
-> ListRelatedResourcesForAuditFinding
$cfrom :: forall x.
ListRelatedResourcesForAuditFinding
-> Rep ListRelatedResourcesForAuditFinding x
Prelude.Generic)

-- |
-- Create a value of 'ListRelatedResourcesForAuditFinding' 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:
--
-- 'maxResults', 'listRelatedResourcesForAuditFinding_maxResults' - The maximum number of results to return at one time.
--
-- 'nextToken', 'listRelatedResourcesForAuditFinding_nextToken' - A token that can be used to retrieve the next set of results, or @null@
-- if there are no additional results.
--
-- 'findingId', 'listRelatedResourcesForAuditFinding_findingId' - The finding Id.
newListRelatedResourcesForAuditFinding ::
  -- | 'findingId'
  Prelude.Text ->
  ListRelatedResourcesForAuditFinding
newListRelatedResourcesForAuditFinding :: Text -> ListRelatedResourcesForAuditFinding
newListRelatedResourcesForAuditFinding Text
pFindingId_ =
  ListRelatedResourcesForAuditFinding'
    { $sel:maxResults:ListRelatedResourcesForAuditFinding' :: Maybe Natural
maxResults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListRelatedResourcesForAuditFinding' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:findingId:ListRelatedResourcesForAuditFinding' :: Text
findingId = Text
pFindingId_
    }

-- | The maximum number of results to return at one time.
listRelatedResourcesForAuditFinding_maxResults :: Lens.Lens' ListRelatedResourcesForAuditFinding (Prelude.Maybe Prelude.Natural)
listRelatedResourcesForAuditFinding_maxResults :: Lens' ListRelatedResourcesForAuditFinding (Maybe Natural)
listRelatedResourcesForAuditFinding_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFinding' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListRelatedResourcesForAuditFinding
s@ListRelatedResourcesForAuditFinding' {} Maybe Natural
a -> ListRelatedResourcesForAuditFinding
s {$sel:maxResults:ListRelatedResourcesForAuditFinding' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListRelatedResourcesForAuditFinding)

-- | A token that can be used to retrieve the next set of results, or @null@
-- if there are no additional results.
listRelatedResourcesForAuditFinding_nextToken :: Lens.Lens' ListRelatedResourcesForAuditFinding (Prelude.Maybe Prelude.Text)
listRelatedResourcesForAuditFinding_nextToken :: Lens' ListRelatedResourcesForAuditFinding (Maybe Text)
listRelatedResourcesForAuditFinding_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFinding' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListRelatedResourcesForAuditFinding
s@ListRelatedResourcesForAuditFinding' {} Maybe Text
a -> ListRelatedResourcesForAuditFinding
s {$sel:nextToken:ListRelatedResourcesForAuditFinding' :: Maybe Text
nextToken = Maybe Text
a} :: ListRelatedResourcesForAuditFinding)

-- | The finding Id.
listRelatedResourcesForAuditFinding_findingId :: Lens.Lens' ListRelatedResourcesForAuditFinding Prelude.Text
listRelatedResourcesForAuditFinding_findingId :: Lens' ListRelatedResourcesForAuditFinding Text
listRelatedResourcesForAuditFinding_findingId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFinding' {Text
findingId :: Text
$sel:findingId:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Text
findingId} -> Text
findingId) (\s :: ListRelatedResourcesForAuditFinding
s@ListRelatedResourcesForAuditFinding' {} Text
a -> ListRelatedResourcesForAuditFinding
s {$sel:findingId:ListRelatedResourcesForAuditFinding' :: Text
findingId = Text
a} :: ListRelatedResourcesForAuditFinding)

instance
  Core.AWSRequest
    ListRelatedResourcesForAuditFinding
  where
  type
    AWSResponse ListRelatedResourcesForAuditFinding =
      ListRelatedResourcesForAuditFindingResponse
  request :: (Service -> Service)
-> ListRelatedResourcesForAuditFinding
-> Request ListRelatedResourcesForAuditFinding
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListRelatedResourcesForAuditFinding
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ListRelatedResourcesForAuditFinding)))
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
-> Maybe [RelatedResource]
-> Int
-> ListRelatedResourcesForAuditFindingResponse
ListRelatedResourcesForAuditFindingResponse'
            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.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"relatedResources"
                            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    ListRelatedResourcesForAuditFinding
  where
  hashWithSalt :: Int -> ListRelatedResourcesForAuditFinding -> Int
hashWithSalt
    Int
_salt
    ListRelatedResourcesForAuditFinding' {Maybe Natural
Maybe Text
Text
findingId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:findingId:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Text
$sel:nextToken:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Text
$sel:maxResults:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Natural
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
findingId

instance
  Prelude.NFData
    ListRelatedResourcesForAuditFinding
  where
  rnf :: ListRelatedResourcesForAuditFinding -> ()
rnf ListRelatedResourcesForAuditFinding' {Maybe Natural
Maybe Text
Text
findingId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:findingId:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Text
$sel:nextToken:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Text
$sel:maxResults:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
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
findingId

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

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

instance
  Data.ToQuery
    ListRelatedResourcesForAuditFinding
  where
  toQuery :: ListRelatedResourcesForAuditFinding -> QueryString
toQuery ListRelatedResourcesForAuditFinding' {Maybe Natural
Maybe Text
Text
findingId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:findingId:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Text
$sel:nextToken:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Text
$sel:maxResults:ListRelatedResourcesForAuditFinding' :: ListRelatedResourcesForAuditFinding -> Maybe Natural
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"maxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"findingId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
findingId
      ]

-- | /See:/ 'newListRelatedResourcesForAuditFindingResponse' smart constructor.
data ListRelatedResourcesForAuditFindingResponse = ListRelatedResourcesForAuditFindingResponse'
  { -- | A token that can be used to retrieve the next set of results, or @null@
    -- for the first API call.
    ListRelatedResourcesForAuditFindingResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The related resources.
    ListRelatedResourcesForAuditFindingResponse
-> Maybe [RelatedResource]
relatedResources :: Prelude.Maybe [RelatedResource],
    -- | The response's http status code.
    ListRelatedResourcesForAuditFindingResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListRelatedResourcesForAuditFindingResponse
-> ListRelatedResourcesForAuditFindingResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRelatedResourcesForAuditFindingResponse
-> ListRelatedResourcesForAuditFindingResponse -> Bool
$c/= :: ListRelatedResourcesForAuditFindingResponse
-> ListRelatedResourcesForAuditFindingResponse -> Bool
== :: ListRelatedResourcesForAuditFindingResponse
-> ListRelatedResourcesForAuditFindingResponse -> Bool
$c== :: ListRelatedResourcesForAuditFindingResponse
-> ListRelatedResourcesForAuditFindingResponse -> Bool
Prelude.Eq, ReadPrec [ListRelatedResourcesForAuditFindingResponse]
ReadPrec ListRelatedResourcesForAuditFindingResponse
Int -> ReadS ListRelatedResourcesForAuditFindingResponse
ReadS [ListRelatedResourcesForAuditFindingResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRelatedResourcesForAuditFindingResponse]
$creadListPrec :: ReadPrec [ListRelatedResourcesForAuditFindingResponse]
readPrec :: ReadPrec ListRelatedResourcesForAuditFindingResponse
$creadPrec :: ReadPrec ListRelatedResourcesForAuditFindingResponse
readList :: ReadS [ListRelatedResourcesForAuditFindingResponse]
$creadList :: ReadS [ListRelatedResourcesForAuditFindingResponse]
readsPrec :: Int -> ReadS ListRelatedResourcesForAuditFindingResponse
$creadsPrec :: Int -> ReadS ListRelatedResourcesForAuditFindingResponse
Prelude.Read, Int -> ListRelatedResourcesForAuditFindingResponse -> ShowS
[ListRelatedResourcesForAuditFindingResponse] -> ShowS
ListRelatedResourcesForAuditFindingResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRelatedResourcesForAuditFindingResponse] -> ShowS
$cshowList :: [ListRelatedResourcesForAuditFindingResponse] -> ShowS
show :: ListRelatedResourcesForAuditFindingResponse -> String
$cshow :: ListRelatedResourcesForAuditFindingResponse -> String
showsPrec :: Int -> ListRelatedResourcesForAuditFindingResponse -> ShowS
$cshowsPrec :: Int -> ListRelatedResourcesForAuditFindingResponse -> ShowS
Prelude.Show, forall x.
Rep ListRelatedResourcesForAuditFindingResponse x
-> ListRelatedResourcesForAuditFindingResponse
forall x.
ListRelatedResourcesForAuditFindingResponse
-> Rep ListRelatedResourcesForAuditFindingResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListRelatedResourcesForAuditFindingResponse x
-> ListRelatedResourcesForAuditFindingResponse
$cfrom :: forall x.
ListRelatedResourcesForAuditFindingResponse
-> Rep ListRelatedResourcesForAuditFindingResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListRelatedResourcesForAuditFindingResponse' 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', 'listRelatedResourcesForAuditFindingResponse_nextToken' - A token that can be used to retrieve the next set of results, or @null@
-- for the first API call.
--
-- 'relatedResources', 'listRelatedResourcesForAuditFindingResponse_relatedResources' - The related resources.
--
-- 'httpStatus', 'listRelatedResourcesForAuditFindingResponse_httpStatus' - The response's http status code.
newListRelatedResourcesForAuditFindingResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListRelatedResourcesForAuditFindingResponse
newListRelatedResourcesForAuditFindingResponse :: Int -> ListRelatedResourcesForAuditFindingResponse
newListRelatedResourcesForAuditFindingResponse
  Int
pHttpStatus_ =
    ListRelatedResourcesForAuditFindingResponse'
      { $sel:nextToken:ListRelatedResourcesForAuditFindingResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:relatedResources:ListRelatedResourcesForAuditFindingResponse' :: Maybe [RelatedResource]
relatedResources =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListRelatedResourcesForAuditFindingResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | A token that can be used to retrieve the next set of results, or @null@
-- for the first API call.
listRelatedResourcesForAuditFindingResponse_nextToken :: Lens.Lens' ListRelatedResourcesForAuditFindingResponse (Prelude.Maybe Prelude.Text)
listRelatedResourcesForAuditFindingResponse_nextToken :: Lens' ListRelatedResourcesForAuditFindingResponse (Maybe Text)
listRelatedResourcesForAuditFindingResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFindingResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListRelatedResourcesForAuditFindingResponse' :: ListRelatedResourcesForAuditFindingResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListRelatedResourcesForAuditFindingResponse
s@ListRelatedResourcesForAuditFindingResponse' {} Maybe Text
a -> ListRelatedResourcesForAuditFindingResponse
s {$sel:nextToken:ListRelatedResourcesForAuditFindingResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListRelatedResourcesForAuditFindingResponse)

-- | The related resources.
listRelatedResourcesForAuditFindingResponse_relatedResources :: Lens.Lens' ListRelatedResourcesForAuditFindingResponse (Prelude.Maybe [RelatedResource])
listRelatedResourcesForAuditFindingResponse_relatedResources :: Lens'
  ListRelatedResourcesForAuditFindingResponse
  (Maybe [RelatedResource])
listRelatedResourcesForAuditFindingResponse_relatedResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFindingResponse' {Maybe [RelatedResource]
relatedResources :: Maybe [RelatedResource]
$sel:relatedResources:ListRelatedResourcesForAuditFindingResponse' :: ListRelatedResourcesForAuditFindingResponse
-> Maybe [RelatedResource]
relatedResources} -> Maybe [RelatedResource]
relatedResources) (\s :: ListRelatedResourcesForAuditFindingResponse
s@ListRelatedResourcesForAuditFindingResponse' {} Maybe [RelatedResource]
a -> ListRelatedResourcesForAuditFindingResponse
s {$sel:relatedResources:ListRelatedResourcesForAuditFindingResponse' :: Maybe [RelatedResource]
relatedResources = Maybe [RelatedResource]
a} :: ListRelatedResourcesForAuditFindingResponse) 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 response's http status code.
listRelatedResourcesForAuditFindingResponse_httpStatus :: Lens.Lens' ListRelatedResourcesForAuditFindingResponse Prelude.Int
listRelatedResourcesForAuditFindingResponse_httpStatus :: Lens' ListRelatedResourcesForAuditFindingResponse Int
listRelatedResourcesForAuditFindingResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRelatedResourcesForAuditFindingResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListRelatedResourcesForAuditFindingResponse' :: ListRelatedResourcesForAuditFindingResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListRelatedResourcesForAuditFindingResponse
s@ListRelatedResourcesForAuditFindingResponse' {} Int
a -> ListRelatedResourcesForAuditFindingResponse
s {$sel:httpStatus:ListRelatedResourcesForAuditFindingResponse' :: Int
httpStatus = Int
a} :: ListRelatedResourcesForAuditFindingResponse)

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