{-# 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.ListAssessmentTemplates
-- 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 assessment templates that correspond to the assessment targets
-- that are specified by the ARNs of the assessment targets.
--
-- This operation returns paginated results.
module Amazonka.Inspector.ListAssessmentTemplates
  ( -- * Creating a Request
    ListAssessmentTemplates (..),
    newListAssessmentTemplates,

    -- * Request Lenses
    listAssessmentTemplates_assessmentTargetArns,
    listAssessmentTemplates_filter,
    listAssessmentTemplates_maxResults,
    listAssessmentTemplates_nextToken,

    -- * Destructuring the Response
    ListAssessmentTemplatesResponse (..),
    newListAssessmentTemplatesResponse,

    -- * Response Lenses
    listAssessmentTemplatesResponse_nextToken,
    listAssessmentTemplatesResponse_httpStatus,
    listAssessmentTemplatesResponse_assessmentTemplateArns,
  )
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:/ 'newListAssessmentTemplates' smart constructor.
data ListAssessmentTemplates = ListAssessmentTemplates'
  { -- | A list of ARNs that specifies the assessment targets whose assessment
    -- templates you want to list.
    ListAssessmentTemplates -> Maybe [Text]
assessmentTargetArns :: Prelude.Maybe [Prelude.Text],
    -- | 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.
    ListAssessmentTemplates -> Maybe AssessmentTemplateFilter
filter' :: Prelude.Maybe AssessmentTemplateFilter,
    -- | 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.
    ListAssessmentTemplates -> 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
    -- __ListAssessmentTemplates__ action. Subsequent calls to the action fill
    -- __nextToken__ in the request with the value of __NextToken__ from the
    -- previous response to continue listing data.
    ListAssessmentTemplates -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListAssessmentTemplates -> ListAssessmentTemplates -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAssessmentTemplates -> ListAssessmentTemplates -> Bool
$c/= :: ListAssessmentTemplates -> ListAssessmentTemplates -> Bool
== :: ListAssessmentTemplates -> ListAssessmentTemplates -> Bool
$c== :: ListAssessmentTemplates -> ListAssessmentTemplates -> Bool
Prelude.Eq, ReadPrec [ListAssessmentTemplates]
ReadPrec ListAssessmentTemplates
Int -> ReadS ListAssessmentTemplates
ReadS [ListAssessmentTemplates]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAssessmentTemplates]
$creadListPrec :: ReadPrec [ListAssessmentTemplates]
readPrec :: ReadPrec ListAssessmentTemplates
$creadPrec :: ReadPrec ListAssessmentTemplates
readList :: ReadS [ListAssessmentTemplates]
$creadList :: ReadS [ListAssessmentTemplates]
readsPrec :: Int -> ReadS ListAssessmentTemplates
$creadsPrec :: Int -> ReadS ListAssessmentTemplates
Prelude.Read, Int -> ListAssessmentTemplates -> ShowS
[ListAssessmentTemplates] -> ShowS
ListAssessmentTemplates -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAssessmentTemplates] -> ShowS
$cshowList :: [ListAssessmentTemplates] -> ShowS
show :: ListAssessmentTemplates -> String
$cshow :: ListAssessmentTemplates -> String
showsPrec :: Int -> ListAssessmentTemplates -> ShowS
$cshowsPrec :: Int -> ListAssessmentTemplates -> ShowS
Prelude.Show, forall x. Rep ListAssessmentTemplates x -> ListAssessmentTemplates
forall x. ListAssessmentTemplates -> Rep ListAssessmentTemplates x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListAssessmentTemplates x -> ListAssessmentTemplates
$cfrom :: forall x. ListAssessmentTemplates -> Rep ListAssessmentTemplates x
Prelude.Generic)

-- |
-- Create a value of 'ListAssessmentTemplates' 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:
--
-- 'assessmentTargetArns', 'listAssessmentTemplates_assessmentTargetArns' - A list of ARNs that specifies the assessment targets whose assessment
-- templates you want to list.
--
-- 'filter'', 'listAssessmentTemplates_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', 'listAssessmentTemplates_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', 'listAssessmentTemplates_nextToken' - You can use this parameter when paginating results. Set the value of
-- this parameter to null on your first call to the
-- __ListAssessmentTemplates__ action. Subsequent calls to the action fill
-- __nextToken__ in the request with the value of __NextToken__ from the
-- previous response to continue listing data.
newListAssessmentTemplates ::
  ListAssessmentTemplates
newListAssessmentTemplates :: ListAssessmentTemplates
newListAssessmentTemplates =
  ListAssessmentTemplates'
    { $sel:assessmentTargetArns:ListAssessmentTemplates' :: Maybe [Text]
assessmentTargetArns =
        forall a. Maybe a
Prelude.Nothing,
      $sel:filter':ListAssessmentTemplates' :: Maybe AssessmentTemplateFilter
filter' = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListAssessmentTemplates' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListAssessmentTemplates' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | A list of ARNs that specifies the assessment targets whose assessment
-- templates you want to list.
listAssessmentTemplates_assessmentTargetArns :: Lens.Lens' ListAssessmentTemplates (Prelude.Maybe [Prelude.Text])
listAssessmentTemplates_assessmentTargetArns :: Lens' ListAssessmentTemplates (Maybe [Text])
listAssessmentTemplates_assessmentTargetArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTemplates' {Maybe [Text]
assessmentTargetArns :: Maybe [Text]
$sel:assessmentTargetArns:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe [Text]
assessmentTargetArns} -> Maybe [Text]
assessmentTargetArns) (\s :: ListAssessmentTemplates
s@ListAssessmentTemplates' {} Maybe [Text]
a -> ListAssessmentTemplates
s {$sel:assessmentTargetArns:ListAssessmentTemplates' :: Maybe [Text]
assessmentTargetArns = Maybe [Text]
a} :: ListAssessmentTemplates) 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

-- | 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.
listAssessmentTemplates_filter :: Lens.Lens' ListAssessmentTemplates (Prelude.Maybe AssessmentTemplateFilter)
listAssessmentTemplates_filter :: Lens' ListAssessmentTemplates (Maybe AssessmentTemplateFilter)
listAssessmentTemplates_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTemplates' {Maybe AssessmentTemplateFilter
filter' :: Maybe AssessmentTemplateFilter
$sel:filter':ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe AssessmentTemplateFilter
filter'} -> Maybe AssessmentTemplateFilter
filter') (\s :: ListAssessmentTemplates
s@ListAssessmentTemplates' {} Maybe AssessmentTemplateFilter
a -> ListAssessmentTemplates
s {$sel:filter':ListAssessmentTemplates' :: Maybe AssessmentTemplateFilter
filter' = Maybe AssessmentTemplateFilter
a} :: ListAssessmentTemplates)

-- | 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.
listAssessmentTemplates_maxResults :: Lens.Lens' ListAssessmentTemplates (Prelude.Maybe Prelude.Int)
listAssessmentTemplates_maxResults :: Lens' ListAssessmentTemplates (Maybe Int)
listAssessmentTemplates_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTemplates' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListAssessmentTemplates
s@ListAssessmentTemplates' {} Maybe Int
a -> ListAssessmentTemplates
s {$sel:maxResults:ListAssessmentTemplates' :: Maybe Int
maxResults = Maybe Int
a} :: ListAssessmentTemplates)

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

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

instance Prelude.Hashable ListAssessmentTemplates where
  hashWithSalt :: Int -> ListAssessmentTemplates -> Int
hashWithSalt Int
_salt ListAssessmentTemplates' {Maybe Int
Maybe [Text]
Maybe Text
Maybe AssessmentTemplateFilter
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe AssessmentTemplateFilter
assessmentTargetArns :: Maybe [Text]
$sel:nextToken:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Text
$sel:maxResults:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Int
$sel:filter':ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe AssessmentTemplateFilter
$sel:assessmentTargetArns:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
assessmentTargetArns
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssessmentTemplateFilter
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 ListAssessmentTemplates where
  rnf :: ListAssessmentTemplates -> ()
rnf ListAssessmentTemplates' {Maybe Int
Maybe [Text]
Maybe Text
Maybe AssessmentTemplateFilter
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe AssessmentTemplateFilter
assessmentTargetArns :: Maybe [Text]
$sel:nextToken:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Text
$sel:maxResults:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Int
$sel:filter':ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe AssessmentTemplateFilter
$sel:assessmentTargetArns:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
assessmentTargetArns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssessmentTemplateFilter
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 ListAssessmentTemplates where
  toHeaders :: ListAssessmentTemplates -> 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.ListAssessmentTemplates" ::
                          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 ListAssessmentTemplates where
  toJSON :: ListAssessmentTemplates -> Value
toJSON ListAssessmentTemplates' {Maybe Int
Maybe [Text]
Maybe Text
Maybe AssessmentTemplateFilter
nextToken :: Maybe Text
maxResults :: Maybe Int
filter' :: Maybe AssessmentTemplateFilter
assessmentTargetArns :: Maybe [Text]
$sel:nextToken:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Text
$sel:maxResults:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe Int
$sel:filter':ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe AssessmentTemplateFilter
$sel:assessmentTargetArns:ListAssessmentTemplates' :: ListAssessmentTemplates -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"assessmentTargetArns" 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]
assessmentTargetArns,
            (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 AssessmentTemplateFilter
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 ListAssessmentTemplates where
  toPath :: ListAssessmentTemplates -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newListAssessmentTemplatesResponse' smart constructor.
data ListAssessmentTemplatesResponse = ListAssessmentTemplatesResponse'
  { -- | 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.
    ListAssessmentTemplatesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListAssessmentTemplatesResponse -> Int
httpStatus :: Prelude.Int,
    -- | A list of ARNs that specifies the assessment templates returned by the
    -- action.
    ListAssessmentTemplatesResponse -> [Text]
assessmentTemplateArns :: [Prelude.Text]
  }
  deriving (ListAssessmentTemplatesResponse
-> ListAssessmentTemplatesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAssessmentTemplatesResponse
-> ListAssessmentTemplatesResponse -> Bool
$c/= :: ListAssessmentTemplatesResponse
-> ListAssessmentTemplatesResponse -> Bool
== :: ListAssessmentTemplatesResponse
-> ListAssessmentTemplatesResponse -> Bool
$c== :: ListAssessmentTemplatesResponse
-> ListAssessmentTemplatesResponse -> Bool
Prelude.Eq, ReadPrec [ListAssessmentTemplatesResponse]
ReadPrec ListAssessmentTemplatesResponse
Int -> ReadS ListAssessmentTemplatesResponse
ReadS [ListAssessmentTemplatesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAssessmentTemplatesResponse]
$creadListPrec :: ReadPrec [ListAssessmentTemplatesResponse]
readPrec :: ReadPrec ListAssessmentTemplatesResponse
$creadPrec :: ReadPrec ListAssessmentTemplatesResponse
readList :: ReadS [ListAssessmentTemplatesResponse]
$creadList :: ReadS [ListAssessmentTemplatesResponse]
readsPrec :: Int -> ReadS ListAssessmentTemplatesResponse
$creadsPrec :: Int -> ReadS ListAssessmentTemplatesResponse
Prelude.Read, Int -> ListAssessmentTemplatesResponse -> ShowS
[ListAssessmentTemplatesResponse] -> ShowS
ListAssessmentTemplatesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAssessmentTemplatesResponse] -> ShowS
$cshowList :: [ListAssessmentTemplatesResponse] -> ShowS
show :: ListAssessmentTemplatesResponse -> String
$cshow :: ListAssessmentTemplatesResponse -> String
showsPrec :: Int -> ListAssessmentTemplatesResponse -> ShowS
$cshowsPrec :: Int -> ListAssessmentTemplatesResponse -> ShowS
Prelude.Show, forall x.
Rep ListAssessmentTemplatesResponse x
-> ListAssessmentTemplatesResponse
forall x.
ListAssessmentTemplatesResponse
-> Rep ListAssessmentTemplatesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAssessmentTemplatesResponse x
-> ListAssessmentTemplatesResponse
$cfrom :: forall x.
ListAssessmentTemplatesResponse
-> Rep ListAssessmentTemplatesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAssessmentTemplatesResponse' 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', 'listAssessmentTemplatesResponse_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', 'listAssessmentTemplatesResponse_httpStatus' - The response's http status code.
--
-- 'assessmentTemplateArns', 'listAssessmentTemplatesResponse_assessmentTemplateArns' - A list of ARNs that specifies the assessment templates returned by the
-- action.
newListAssessmentTemplatesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAssessmentTemplatesResponse
newListAssessmentTemplatesResponse :: Int -> ListAssessmentTemplatesResponse
newListAssessmentTemplatesResponse Int
pHttpStatus_ =
  ListAssessmentTemplatesResponse'
    { $sel:nextToken:ListAssessmentTemplatesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAssessmentTemplatesResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:assessmentTemplateArns:ListAssessmentTemplatesResponse' :: [Text]
assessmentTemplateArns = 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.
listAssessmentTemplatesResponse_nextToken :: Lens.Lens' ListAssessmentTemplatesResponse (Prelude.Maybe Prelude.Text)
listAssessmentTemplatesResponse_nextToken :: Lens' ListAssessmentTemplatesResponse (Maybe Text)
listAssessmentTemplatesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAssessmentTemplatesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAssessmentTemplatesResponse' :: ListAssessmentTemplatesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAssessmentTemplatesResponse
s@ListAssessmentTemplatesResponse' {} Maybe Text
a -> ListAssessmentTemplatesResponse
s {$sel:nextToken:ListAssessmentTemplatesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAssessmentTemplatesResponse)

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

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