{-# 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.Transfer.ListSecurityPolicies
-- 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 security policies that are attached to your file transfer
-- protocol-enabled servers.
--
-- This operation returns paginated results.
module Amazonka.Transfer.ListSecurityPolicies
  ( -- * Creating a Request
    ListSecurityPolicies (..),
    newListSecurityPolicies,

    -- * Request Lenses
    listSecurityPolicies_maxResults,
    listSecurityPolicies_nextToken,

    -- * Destructuring the Response
    ListSecurityPoliciesResponse (..),
    newListSecurityPoliciesResponse,

    -- * Response Lenses
    listSecurityPoliciesResponse_nextToken,
    listSecurityPoliciesResponse_httpStatus,
    listSecurityPoliciesResponse_securityPolicyNames,
  )
where

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
import Amazonka.Transfer.Types

-- | /See:/ 'newListSecurityPolicies' smart constructor.
data ListSecurityPolicies = ListSecurityPolicies'
  { -- | Specifies the number of security policies to return as a response to the
    -- @ListSecurityPolicies@ query.
    ListSecurityPolicies -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | When additional results are obtained from the @ListSecurityPolicies@
    -- command, a @NextToken@ parameter is returned in the output. You can then
    -- pass the @NextToken@ parameter in a subsequent command to continue
    -- listing additional security policies.
    ListSecurityPolicies -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListSecurityPolicies -> ListSecurityPolicies -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSecurityPolicies -> ListSecurityPolicies -> Bool
$c/= :: ListSecurityPolicies -> ListSecurityPolicies -> Bool
== :: ListSecurityPolicies -> ListSecurityPolicies -> Bool
$c== :: ListSecurityPolicies -> ListSecurityPolicies -> Bool
Prelude.Eq, ReadPrec [ListSecurityPolicies]
ReadPrec ListSecurityPolicies
Int -> ReadS ListSecurityPolicies
ReadS [ListSecurityPolicies]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSecurityPolicies]
$creadListPrec :: ReadPrec [ListSecurityPolicies]
readPrec :: ReadPrec ListSecurityPolicies
$creadPrec :: ReadPrec ListSecurityPolicies
readList :: ReadS [ListSecurityPolicies]
$creadList :: ReadS [ListSecurityPolicies]
readsPrec :: Int -> ReadS ListSecurityPolicies
$creadsPrec :: Int -> ReadS ListSecurityPolicies
Prelude.Read, Int -> ListSecurityPolicies -> ShowS
[ListSecurityPolicies] -> ShowS
ListSecurityPolicies -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSecurityPolicies] -> ShowS
$cshowList :: [ListSecurityPolicies] -> ShowS
show :: ListSecurityPolicies -> String
$cshow :: ListSecurityPolicies -> String
showsPrec :: Int -> ListSecurityPolicies -> ShowS
$cshowsPrec :: Int -> ListSecurityPolicies -> ShowS
Prelude.Show, forall x. Rep ListSecurityPolicies x -> ListSecurityPolicies
forall x. ListSecurityPolicies -> Rep ListSecurityPolicies x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListSecurityPolicies x -> ListSecurityPolicies
$cfrom :: forall x. ListSecurityPolicies -> Rep ListSecurityPolicies x
Prelude.Generic)

-- |
-- Create a value of 'ListSecurityPolicies' 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', 'listSecurityPolicies_maxResults' - Specifies the number of security policies to return as a response to the
-- @ListSecurityPolicies@ query.
--
-- 'nextToken', 'listSecurityPolicies_nextToken' - When additional results are obtained from the @ListSecurityPolicies@
-- command, a @NextToken@ parameter is returned in the output. You can then
-- pass the @NextToken@ parameter in a subsequent command to continue
-- listing additional security policies.
newListSecurityPolicies ::
  ListSecurityPolicies
newListSecurityPolicies :: ListSecurityPolicies
newListSecurityPolicies =
  ListSecurityPolicies'
    { $sel:maxResults:ListSecurityPolicies' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListSecurityPolicies' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | Specifies the number of security policies to return as a response to the
-- @ListSecurityPolicies@ query.
listSecurityPolicies_maxResults :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe Prelude.Natural)
listSecurityPolicies_maxResults :: Lens' ListSecurityPolicies (Maybe Natural)
listSecurityPolicies_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPolicies' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListSecurityPolicies
s@ListSecurityPolicies' {} Maybe Natural
a -> ListSecurityPolicies
s {$sel:maxResults:ListSecurityPolicies' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListSecurityPolicies)

-- | When additional results are obtained from the @ListSecurityPolicies@
-- command, a @NextToken@ parameter is returned in the output. You can then
-- pass the @NextToken@ parameter in a subsequent command to continue
-- listing additional security policies.
listSecurityPolicies_nextToken :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe Prelude.Text)
listSecurityPolicies_nextToken :: Lens' ListSecurityPolicies (Maybe Text)
listSecurityPolicies_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPolicies' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListSecurityPolicies
s@ListSecurityPolicies' {} Maybe Text
a -> ListSecurityPolicies
s {$sel:nextToken:ListSecurityPolicies' :: Maybe Text
nextToken = Maybe Text
a} :: ListSecurityPolicies)

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

instance Prelude.Hashable ListSecurityPolicies where
  hashWithSalt :: Int -> ListSecurityPolicies -> Int
hashWithSalt Int
_salt ListSecurityPolicies' {Maybe Natural
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Text
$sel:maxResults:ListSecurityPolicies' :: ListSecurityPolicies -> 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

instance Prelude.NFData ListSecurityPolicies where
  rnf :: ListSecurityPolicies -> ()
rnf ListSecurityPolicies' {Maybe Natural
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Text
$sel:maxResults:ListSecurityPolicies' :: ListSecurityPolicies -> 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

instance Data.ToHeaders ListSecurityPolicies where
  toHeaders :: ListSecurityPolicies -> 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
"TransferService.ListSecurityPolicies" ::
                          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 ListSecurityPolicies where
  toJSON :: ListSecurityPolicies -> Value
toJSON ListSecurityPolicies' {Maybe Natural
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:nextToken:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Text
$sel:maxResults:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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 Natural
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 ListSecurityPolicies where
  toPath :: ListSecurityPolicies -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newListSecurityPoliciesResponse' smart constructor.
data ListSecurityPoliciesResponse = ListSecurityPoliciesResponse'
  { -- | When you can get additional results from the @ListSecurityPolicies@
    -- operation, a @NextToken@ parameter is returned in the output. In a
    -- following command, you can pass in the @NextToken@ parameter to continue
    -- listing security policies.
    ListSecurityPoliciesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListSecurityPoliciesResponse -> Int
httpStatus :: Prelude.Int,
    -- | An array of security policies that were listed.
    ListSecurityPoliciesResponse -> [Text]
securityPolicyNames :: [Prelude.Text]
  }
  deriving (ListSecurityPoliciesResponse
-> ListSecurityPoliciesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSecurityPoliciesResponse
-> ListSecurityPoliciesResponse -> Bool
$c/= :: ListSecurityPoliciesResponse
-> ListSecurityPoliciesResponse -> Bool
== :: ListSecurityPoliciesResponse
-> ListSecurityPoliciesResponse -> Bool
$c== :: ListSecurityPoliciesResponse
-> ListSecurityPoliciesResponse -> Bool
Prelude.Eq, ReadPrec [ListSecurityPoliciesResponse]
ReadPrec ListSecurityPoliciesResponse
Int -> ReadS ListSecurityPoliciesResponse
ReadS [ListSecurityPoliciesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSecurityPoliciesResponse]
$creadListPrec :: ReadPrec [ListSecurityPoliciesResponse]
readPrec :: ReadPrec ListSecurityPoliciesResponse
$creadPrec :: ReadPrec ListSecurityPoliciesResponse
readList :: ReadS [ListSecurityPoliciesResponse]
$creadList :: ReadS [ListSecurityPoliciesResponse]
readsPrec :: Int -> ReadS ListSecurityPoliciesResponse
$creadsPrec :: Int -> ReadS ListSecurityPoliciesResponse
Prelude.Read, Int -> ListSecurityPoliciesResponse -> ShowS
[ListSecurityPoliciesResponse] -> ShowS
ListSecurityPoliciesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSecurityPoliciesResponse] -> ShowS
$cshowList :: [ListSecurityPoliciesResponse] -> ShowS
show :: ListSecurityPoliciesResponse -> String
$cshow :: ListSecurityPoliciesResponse -> String
showsPrec :: Int -> ListSecurityPoliciesResponse -> ShowS
$cshowsPrec :: Int -> ListSecurityPoliciesResponse -> ShowS
Prelude.Show, forall x.
Rep ListSecurityPoliciesResponse x -> ListSecurityPoliciesResponse
forall x.
ListSecurityPoliciesResponse -> Rep ListSecurityPoliciesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListSecurityPoliciesResponse x -> ListSecurityPoliciesResponse
$cfrom :: forall x.
ListSecurityPoliciesResponse -> Rep ListSecurityPoliciesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListSecurityPoliciesResponse' 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', 'listSecurityPoliciesResponse_nextToken' - When you can get additional results from the @ListSecurityPolicies@
-- operation, a @NextToken@ parameter is returned in the output. In a
-- following command, you can pass in the @NextToken@ parameter to continue
-- listing security policies.
--
-- 'httpStatus', 'listSecurityPoliciesResponse_httpStatus' - The response's http status code.
--
-- 'securityPolicyNames', 'listSecurityPoliciesResponse_securityPolicyNames' - An array of security policies that were listed.
newListSecurityPoliciesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListSecurityPoliciesResponse
newListSecurityPoliciesResponse :: Int -> ListSecurityPoliciesResponse
newListSecurityPoliciesResponse Int
pHttpStatus_ =
  ListSecurityPoliciesResponse'
    { $sel:nextToken:ListSecurityPoliciesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListSecurityPoliciesResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:securityPolicyNames:ListSecurityPoliciesResponse' :: [Text]
securityPolicyNames = forall a. Monoid a => a
Prelude.mempty
    }

-- | When you can get additional results from the @ListSecurityPolicies@
-- operation, a @NextToken@ parameter is returned in the output. In a
-- following command, you can pass in the @NextToken@ parameter to continue
-- listing security policies.
listSecurityPoliciesResponse_nextToken :: Lens.Lens' ListSecurityPoliciesResponse (Prelude.Maybe Prelude.Text)
listSecurityPoliciesResponse_nextToken :: Lens' ListSecurityPoliciesResponse (Maybe Text)
listSecurityPoliciesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPoliciesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListSecurityPoliciesResponse
s@ListSecurityPoliciesResponse' {} Maybe Text
a -> ListSecurityPoliciesResponse
s {$sel:nextToken:ListSecurityPoliciesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListSecurityPoliciesResponse)

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

-- | An array of security policies that were listed.
listSecurityPoliciesResponse_securityPolicyNames :: Lens.Lens' ListSecurityPoliciesResponse [Prelude.Text]
listSecurityPoliciesResponse_securityPolicyNames :: Lens' ListSecurityPoliciesResponse [Text]
listSecurityPoliciesResponse_securityPolicyNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPoliciesResponse' {[Text]
securityPolicyNames :: [Text]
$sel:securityPolicyNames:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> [Text]
securityPolicyNames} -> [Text]
securityPolicyNames) (\s :: ListSecurityPoliciesResponse
s@ListSecurityPoliciesResponse' {} [Text]
a -> ListSecurityPoliciesResponse
s {$sel:securityPolicyNames:ListSecurityPoliciesResponse' :: [Text]
securityPolicyNames = [Text]
a} :: ListSecurityPoliciesResponse) 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 ListSecurityPoliciesResponse where
  rnf :: ListSecurityPoliciesResponse -> ()
rnf ListSecurityPoliciesResponse' {Int
[Text]
Maybe Text
securityPolicyNames :: [Text]
httpStatus :: Int
nextToken :: Maybe Text
$sel:securityPolicyNames:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> [Text]
$sel:httpStatus:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> Int
$sel:nextToken:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> 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]
securityPolicyNames