{-# 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.Inspector.ListAssessmentTargets
-- 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 ARNs of the assessment targets within this AWS account. For
-- more information about assessment targets, see
-- <https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html Amazon Inspector Assessment Targets>.
--
-- This operation returns paginated results.
module Amazonka.Inspector.ListAssessmentTargets
  ( -- * Creating a Request
    ListAssessmentTargets (..),
    newListAssessmentTargets,

    -- * Request Lenses
    listAssessmentTargets_filter,
    listAssessmentTargets_maxResults,
    listAssessmentTargets_nextToken,

    -- * Destructuring the Response
    ListAssessmentTargetsResponse (..),
    newListAssessmentTargetsResponse,

    -- * Response Lenses
    listAssessmentTargetsResponse_nextToken,
    listAssessmentTargetsResponse_httpStatus,
    listAssessmentTargetsResponse_assessmentTargetArns,
  )
where

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

-- | /See:/ 'newListAssessmentTargets' smart constructor.
data ListAssessmentTargets = ListAssessmentTargets'
  { -- | You can use this parameter to specify a subset of data to be included in
    -- the action\'s response.
    --
    -- For a record to match a filter, all specified filter attributes must
    -- match. When multiple values are specified for a filter attribute, any of
    -- the values can match.
    ListAssessmentTargets -> Maybe AssessmentTargetFilter
filter' :: Prelude.Maybe AssessmentTargetFilter,
    -- | You can use this parameter to indicate the maximum number of items you
    -- want in the response. The default value is 10. The maximum value is 500.
    ListAssessmentTargets -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | You can use this parameter when paginating results. Set the value of
    -- this parameter to null on your first call to the
    -- __ListAssessmentTargets__ action. Subsequent calls to the action fill
    -- __nextToken__ in the request with the value of __NextToken__ from the
    -- previous response to continue listing data.
    ListAssessmentTargets -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListAssessmentTargets -> ListAssessmentTargets -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAssessmentTargets -> ListAssessmentTargets -> Bool
$c/= :: ListAssessmentTargets -> ListAssessmentTargets -> Bool
== :: ListAssessmentTargets -> ListAssessmentTargets -> Bool
$c== :: ListAssessmentTargets -> ListAssessmentTargets -> Bool
Prelude.Eq, ReadPrec [ListAssessmentTargets]
ReadPrec ListAssessmentTargets
Int -> ReadS ListAssessmentTargets
ReadS [ListAssessmentTargets]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAssessmentTargets]
$creadListPrec :: ReadPrec [ListAssessmentTargets]
readPrec :: ReadPrec ListAssessmentTargets
$creadPrec :: ReadPrec ListAssessmentTargets
readList :: ReadS [ListAssessmentTargets]
$creadList :: ReadS [ListAssessmentTargets]
readsPrec :: Int -> ReadS ListAssessmentTargets
$creadsPrec :: Int -> ReadS ListAssessmentTargets
Prelude.Read, Int -> ListAssessmentTargets -> ShowS
[ListAssessmentTargets] -> ShowS
ListAssessmentTargets -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAssessmentTargets] -> ShowS
$cshowList :: [ListAssessmentTargets] -> ShowS
show :: ListAssessmentTargets -> String
$cshow :: ListAssessmentTargets -> String
showsPrec :: Int -> ListAssessmentTargets -> ShowS
$cshowsPrec :: Int -> ListAssessmentTargets -> ShowS
Prelude.Show, forall x. Rep ListAssessmentTargets x -> ListAssessmentTargets
forall x. ListAssessmentTargets -> Rep ListAssessmentTargets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListAssessmentTargets x -> ListAssessmentTargets
$cfrom :: forall x. ListAssessmentTargets -> Rep ListAssessmentTargets x
Prelude.Generic)

-- |
-- Create a value of 'ListAssessmentTargets' 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'', 'listAssessmentTargets_filter' - You can use this parameter to specify a subset of data to be included in
-- the action\'s response.
--
-- For a record to match a filter, all specified filter attributes must
-- match. When multiple values are specified for a filter attribute, any of
-- the values can match.
--
-- 'maxResults', 'listAssessmentTargets_maxResults' - You can use this parameter to indicate the maximum number of items you
-- want in the response. The default value is 10. The maximum value is 500.
--
-- 'nextToken', 'listAssessmentTargets_nextToken' - You can use this parameter when paginating results. Set the value of
-- this parameter to null on your first call to the
-- __ListAssessmentTargets__ action. Subsequent calls to the action fill
-- __nextToken__ in the request with the value of __NextToken__ from the
-- previous response to continue listing data.
newListAssessmentTargets ::
  ListAssessmentTargets
newListAssessmentTargets :: ListAssessmentTargets
newListAssessmentTargets =
  ListAssessmentTargets'
    { $sel:filter':ListAssessmentTargets' :: Maybe AssessmentTargetFilter
filter' = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListAssessmentTargets' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListAssessmentTargets' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | You can use this parameter to specify a subset of data to be included in
-- the action\'s response.
--
-- For a record to match a filter, all specified filter attributes must
-- match. When multiple values are specified for a filter attribute, any of
-- the values can match.
listAssessmentTargets_filter :: Lens.Lens' ListAssessmentTargets (Prelude.Maybe AssessmentTargetFilter)
listAssessmentTargets_filter :: Lens' ListAssessmentTargets (Maybe AssessmentTargetFilter)
listAssessmentTargets_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTargets' {Maybe AssessmentTargetFilter
filter' :: Maybe AssessmentTargetFilter
$sel:filter':ListAssessmentTargets' :: ListAssessmentTargets -> Maybe AssessmentTargetFilter
filter'} -> Maybe AssessmentTargetFilter
filter') (\s :: ListAssessmentTargets
s@ListAssessmentTargets' {} Maybe AssessmentTargetFilter
a -> ListAssessmentTargets
s {$sel:filter':ListAssessmentTargets' :: Maybe AssessmentTargetFilter
filter' = Maybe AssessmentTargetFilter
a} :: ListAssessmentTargets)

-- | You can use this parameter to indicate the maximum number of items you
-- want in the response. The default value is 10. The maximum value is 500.
listAssessmentTargets_maxResults :: Lens.Lens' ListAssessmentTargets (Prelude.Maybe Prelude.Int)
listAssessmentTargets_maxResults :: Lens' ListAssessmentTargets (Maybe Int)
listAssessmentTargets_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTargets' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListAssessmentTargets
s@ListAssessmentTargets' {} Maybe Int
a -> ListAssessmentTargets
s {$sel:maxResults:ListAssessmentTargets' :: Maybe Int
maxResults = Maybe Int
a} :: ListAssessmentTargets)

-- | You can use this parameter when paginating results. Set the value of
-- this parameter to null on your first call to the
-- __ListAssessmentTargets__ action. Subsequent calls to the action fill
-- __nextToken__ in the request with the value of __NextToken__ from the
-- previous response to continue listing data.
listAssessmentTargets_nextToken :: Lens.Lens' ListAssessmentTargets (Prelude.Maybe Prelude.Text)
listAssessmentTargets_nextToken :: Lens' ListAssessmentTargets (Maybe Text)
listAssessmentTargets_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTargets' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAssessmentTargets
s@ListAssessmentTargets' {} Maybe Text
a -> ListAssessmentTargets
s {$sel:nextToken:ListAssessmentTargets' :: Maybe Text
nextToken = Maybe Text
a} :: ListAssessmentTargets)

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

instance Prelude.Hashable ListAssessmentTargets where
  hashWithSalt :: Int -> ListAssessmentTargets -> Int
hashWithSalt Int
_salt ListAssessmentTargets' {Maybe Int
Maybe Text
Maybe AssessmentTargetFilter
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe AssessmentTargetFilter
$sel:nextToken:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Text
$sel:maxResults:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Int
$sel:filter':ListAssessmentTargets' :: ListAssessmentTargets -> Maybe AssessmentTargetFilter
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssessmentTargetFilter
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

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

instance Data.ToHeaders ListAssessmentTargets where
  toHeaders :: ListAssessmentTargets -> 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
"InspectorService.ListAssessmentTargets" ::
                          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 ListAssessmentTargets where
  toJSON :: ListAssessmentTargets -> Value
toJSON ListAssessmentTargets' {Maybe Int
Maybe Text
Maybe AssessmentTargetFilter
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe AssessmentTargetFilter
$sel:nextToken:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Text
$sel:maxResults:ListAssessmentTargets' :: ListAssessmentTargets -> Maybe Int
$sel:filter':ListAssessmentTargets' :: ListAssessmentTargets -> Maybe AssessmentTargetFilter
..} =
    [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 AssessmentTargetFilter
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
          ]
      )

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

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

-- | /See:/ 'newListAssessmentTargetsResponse' smart constructor.
data ListAssessmentTargetsResponse = ListAssessmentTargetsResponse'
  { -- | When a response is generated, if there is more data to be listed, this
    -- parameter is present in the response and contains the value to use for
    -- the __nextToken__ parameter in a subsequent pagination request. If there
    -- is no more data to be listed, this parameter is set to null.
    ListAssessmentTargetsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListAssessmentTargetsResponse -> Int
httpStatus :: Prelude.Int,
    -- | A list of ARNs that specifies the assessment targets that are returned
    -- by the action.
    ListAssessmentTargetsResponse -> [Text]
assessmentTargetArns :: [Prelude.Text]
  }
  deriving (ListAssessmentTargetsResponse
-> ListAssessmentTargetsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAssessmentTargetsResponse
-> ListAssessmentTargetsResponse -> Bool
$c/= :: ListAssessmentTargetsResponse
-> ListAssessmentTargetsResponse -> Bool
== :: ListAssessmentTargetsResponse
-> ListAssessmentTargetsResponse -> Bool
$c== :: ListAssessmentTargetsResponse
-> ListAssessmentTargetsResponse -> Bool
Prelude.Eq, ReadPrec [ListAssessmentTargetsResponse]
ReadPrec ListAssessmentTargetsResponse
Int -> ReadS ListAssessmentTargetsResponse
ReadS [ListAssessmentTargetsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAssessmentTargetsResponse]
$creadListPrec :: ReadPrec [ListAssessmentTargetsResponse]
readPrec :: ReadPrec ListAssessmentTargetsResponse
$creadPrec :: ReadPrec ListAssessmentTargetsResponse
readList :: ReadS [ListAssessmentTargetsResponse]
$creadList :: ReadS [ListAssessmentTargetsResponse]
readsPrec :: Int -> ReadS ListAssessmentTargetsResponse
$creadsPrec :: Int -> ReadS ListAssessmentTargetsResponse
Prelude.Read, Int -> ListAssessmentTargetsResponse -> ShowS
[ListAssessmentTargetsResponse] -> ShowS
ListAssessmentTargetsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAssessmentTargetsResponse] -> ShowS
$cshowList :: [ListAssessmentTargetsResponse] -> ShowS
show :: ListAssessmentTargetsResponse -> String
$cshow :: ListAssessmentTargetsResponse -> String
showsPrec :: Int -> ListAssessmentTargetsResponse -> ShowS
$cshowsPrec :: Int -> ListAssessmentTargetsResponse -> ShowS
Prelude.Show, forall x.
Rep ListAssessmentTargetsResponse x
-> ListAssessmentTargetsResponse
forall x.
ListAssessmentTargetsResponse
-> Rep ListAssessmentTargetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAssessmentTargetsResponse x
-> ListAssessmentTargetsResponse
$cfrom :: forall x.
ListAssessmentTargetsResponse
-> Rep ListAssessmentTargetsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAssessmentTargetsResponse' 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', 'listAssessmentTargetsResponse_nextToken' - When a response is generated, if there is more data to be listed, this
-- parameter is present in the response and contains the value to use for
-- the __nextToken__ parameter in a subsequent pagination request. If there
-- is no more data to be listed, this parameter is set to null.
--
-- 'httpStatus', 'listAssessmentTargetsResponse_httpStatus' - The response's http status code.
--
-- 'assessmentTargetArns', 'listAssessmentTargetsResponse_assessmentTargetArns' - A list of ARNs that specifies the assessment targets that are returned
-- by the action.
newListAssessmentTargetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAssessmentTargetsResponse
newListAssessmentTargetsResponse :: Int -> ListAssessmentTargetsResponse
newListAssessmentTargetsResponse Int
pHttpStatus_ =
  ListAssessmentTargetsResponse'
    { $sel:nextToken:ListAssessmentTargetsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAssessmentTargetsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:assessmentTargetArns:ListAssessmentTargetsResponse' :: [Text]
assessmentTargetArns = forall a. Monoid a => a
Prelude.mempty
    }

-- | When a response is generated, if there is more data to be listed, this
-- parameter is present in the response and contains the value to use for
-- the __nextToken__ parameter in a subsequent pagination request. If there
-- is no more data to be listed, this parameter is set to null.
listAssessmentTargetsResponse_nextToken :: Lens.Lens' ListAssessmentTargetsResponse (Prelude.Maybe Prelude.Text)
listAssessmentTargetsResponse_nextToken :: Lens' ListAssessmentTargetsResponse (Maybe Text)
listAssessmentTargetsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTargetsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAssessmentTargetsResponse' :: ListAssessmentTargetsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAssessmentTargetsResponse
s@ListAssessmentTargetsResponse' {} Maybe Text
a -> ListAssessmentTargetsResponse
s {$sel:nextToken:ListAssessmentTargetsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAssessmentTargetsResponse)

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

-- | A list of ARNs that specifies the assessment targets that are returned
-- by the action.
listAssessmentTargetsResponse_assessmentTargetArns :: Lens.Lens' ListAssessmentTargetsResponse [Prelude.Text]
listAssessmentTargetsResponse_assessmentTargetArns :: Lens' ListAssessmentTargetsResponse [Text]
listAssessmentTargetsResponse_assessmentTargetArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTargetsResponse' {[Text]
assessmentTargetArns :: [Text]
$sel:assessmentTargetArns:ListAssessmentTargetsResponse' :: ListAssessmentTargetsResponse -> [Text]
assessmentTargetArns} -> [Text]
assessmentTargetArns) (\s :: ListAssessmentTargetsResponse
s@ListAssessmentTargetsResponse' {} [Text]
a -> ListAssessmentTargetsResponse
s {$sel:assessmentTargetArns:ListAssessmentTargetsResponse' :: [Text]
assessmentTargetArns = [Text]
a} :: ListAssessmentTargetsResponse) 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 ListAssessmentTargetsResponse where
  rnf :: ListAssessmentTargetsResponse -> ()
rnf ListAssessmentTargetsResponse' {Int
[Text]
Maybe Text
assessmentTargetArns :: [Text]
httpStatus :: Int
nextToken :: Maybe Text
$sel:assessmentTargetArns:ListAssessmentTargetsResponse' :: ListAssessmentTargetsResponse -> [Text]
$sel:httpStatus:ListAssessmentTargetsResponse' :: ListAssessmentTargetsResponse -> Int
$sel:nextToken:ListAssessmentTargetsResponse' :: ListAssessmentTargetsResponse -> 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 [Text]
assessmentTargetArns