{-# 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.OpenSearchServerless.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)
--
-- Returns information about configured OpenSearch Serverless security
-- policies.
module Amazonka.OpenSearchServerless.ListSecurityPolicies
  ( -- * Creating a Request
    ListSecurityPolicies (..),
    newListSecurityPolicies,

    -- * Request Lenses
    listSecurityPolicies_maxResults,
    listSecurityPolicies_nextToken,
    listSecurityPolicies_resource,
    listSecurityPolicies_type,

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

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

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

-- | /See:/ 'newListSecurityPolicies' smart constructor.
data ListSecurityPolicies = ListSecurityPolicies'
  { -- | An optional parameter that specifies the maximum number of results to
    -- return. You can use @nextToken@ to get the next page of results. The
    -- default is 20.
    ListSecurityPolicies -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | If your initial @ListSecurityPolicies@ operation returns a @nextToken@,
    -- you can include the returned @nextToken@ in subsequent
    -- @ListSecurityPolicies@ operations, which returns results in the next
    -- page.
    ListSecurityPolicies -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Resource filters (can be collection or indexes) that policies can apply
    -- to.
    ListSecurityPolicies -> Maybe (NonEmpty Text)
resource :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The type of policy.
    ListSecurityPolicies -> SecurityPolicyType
type' :: SecurityPolicyType
  }
  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' - An optional parameter that specifies the maximum number of results to
-- return. You can use @nextToken@ to get the next page of results. The
-- default is 20.
--
-- 'nextToken', 'listSecurityPolicies_nextToken' - If your initial @ListSecurityPolicies@ operation returns a @nextToken@,
-- you can include the returned @nextToken@ in subsequent
-- @ListSecurityPolicies@ operations, which returns results in the next
-- page.
--
-- 'resource', 'listSecurityPolicies_resource' - Resource filters (can be collection or indexes) that policies can apply
-- to.
--
-- 'type'', 'listSecurityPolicies_type' - The type of policy.
newListSecurityPolicies ::
  -- | 'type''
  SecurityPolicyType ->
  ListSecurityPolicies
newListSecurityPolicies :: SecurityPolicyType -> ListSecurityPolicies
newListSecurityPolicies SecurityPolicyType
pType_ =
  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,
      $sel:resource:ListSecurityPolicies' :: Maybe (NonEmpty Text)
resource = forall a. Maybe a
Prelude.Nothing,
      $sel:type':ListSecurityPolicies' :: SecurityPolicyType
type' = SecurityPolicyType
pType_
    }

-- | An optional parameter that specifies the maximum number of results to
-- return. You can use @nextToken@ to get the next page of results. The
-- default is 20.
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)

-- | If your initial @ListSecurityPolicies@ operation returns a @nextToken@,
-- you can include the returned @nextToken@ in subsequent
-- @ListSecurityPolicies@ operations, which returns results in the next
-- page.
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)

-- | Resource filters (can be collection or indexes) that policies can apply
-- to.
listSecurityPolicies_resource :: Lens.Lens' ListSecurityPolicies (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
listSecurityPolicies_resource :: Lens' ListSecurityPolicies (Maybe (NonEmpty Text))
listSecurityPolicies_resource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPolicies' {Maybe (NonEmpty Text)
resource :: Maybe (NonEmpty Text)
$sel:resource:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe (NonEmpty Text)
resource} -> Maybe (NonEmpty Text)
resource) (\s :: ListSecurityPolicies
s@ListSecurityPolicies' {} Maybe (NonEmpty Text)
a -> ListSecurityPolicies
s {$sel:resource:ListSecurityPolicies' :: Maybe (NonEmpty Text)
resource = Maybe (NonEmpty Text)
a} :: ListSecurityPolicies) 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 type of policy.
listSecurityPolicies_type :: Lens.Lens' ListSecurityPolicies SecurityPolicyType
listSecurityPolicies_type :: Lens' ListSecurityPolicies SecurityPolicyType
listSecurityPolicies_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPolicies' {SecurityPolicyType
type' :: SecurityPolicyType
$sel:type':ListSecurityPolicies' :: ListSecurityPolicies -> SecurityPolicyType
type'} -> SecurityPolicyType
type') (\s :: ListSecurityPolicies
s@ListSecurityPolicies' {} SecurityPolicyType
a -> ListSecurityPolicies
s {$sel:type':ListSecurityPolicies' :: SecurityPolicyType
type' = SecurityPolicyType
a} :: ListSecurityPolicies)

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
-> Maybe [SecurityPolicySummary]
-> Int
-> 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.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"securityPolicySummaries"
                            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 ListSecurityPolicies where
  hashWithSalt :: Int -> ListSecurityPolicies -> Int
hashWithSalt Int
_salt ListSecurityPolicies' {Maybe Natural
Maybe (NonEmpty Text)
Maybe Text
SecurityPolicyType
type' :: SecurityPolicyType
resource :: Maybe (NonEmpty Text)
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:type':ListSecurityPolicies' :: ListSecurityPolicies -> SecurityPolicyType
$sel:resource:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe (NonEmpty Text)
$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
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
resource
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` SecurityPolicyType
type'

instance Prelude.NFData ListSecurityPolicies where
  rnf :: ListSecurityPolicies -> ()
rnf ListSecurityPolicies' {Maybe Natural
Maybe (NonEmpty Text)
Maybe Text
SecurityPolicyType
type' :: SecurityPolicyType
resource :: Maybe (NonEmpty Text)
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:type':ListSecurityPolicies' :: ListSecurityPolicies -> SecurityPolicyType
$sel:resource:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe (NonEmpty Text)
$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
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
resource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf SecurityPolicyType
type'

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
"OpenSearchServerless.ListSecurityPolicies" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON ListSecurityPolicies where
  toJSON :: ListSecurityPolicies -> Value
toJSON ListSecurityPolicies' {Maybe Natural
Maybe (NonEmpty Text)
Maybe Text
SecurityPolicyType
type' :: SecurityPolicyType
resource :: Maybe (NonEmpty Text)
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:type':ListSecurityPolicies' :: ListSecurityPolicies -> SecurityPolicyType
$sel:resource:ListSecurityPolicies' :: ListSecurityPolicies -> Maybe (NonEmpty Text)
$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,
            (Key
"resource" 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 (NonEmpty Text)
resource,
            forall a. a -> Maybe a
Prelude.Just (Key
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= SecurityPolicyType
type')
          ]
      )

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 @nextToken@ is returned, there are more results available. The
    -- value of @nextToken@ is a unique pagination token for each page. Make
    -- the call again using the returned token to retrieve the next page.
    ListSecurityPoliciesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Details about the security policies in your account.
    ListSecurityPoliciesResponse -> Maybe [SecurityPolicySummary]
securityPolicySummaries :: Prelude.Maybe [SecurityPolicySummary],
    -- | The response's http status code.
    ListSecurityPoliciesResponse -> Int
httpStatus :: Prelude.Int
  }
  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 @nextToken@ is returned, there are more results available. The
-- value of @nextToken@ is a unique pagination token for each page. Make
-- the call again using the returned token to retrieve the next page.
--
-- 'securityPolicySummaries', 'listSecurityPoliciesResponse_securityPolicySummaries' - Details about the security policies in your account.
--
-- 'httpStatus', 'listSecurityPoliciesResponse_httpStatus' - The response's http status code.
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:securityPolicySummaries:ListSecurityPoliciesResponse' :: Maybe [SecurityPolicySummary]
securityPolicySummaries = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListSecurityPoliciesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | When @nextToken@ is returned, there are more results available. The
-- value of @nextToken@ is a unique pagination token for each page. Make
-- the call again using the returned token to retrieve the next page.
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)

-- | Details about the security policies in your account.
listSecurityPoliciesResponse_securityPolicySummaries :: Lens.Lens' ListSecurityPoliciesResponse (Prelude.Maybe [SecurityPolicySummary])
listSecurityPoliciesResponse_securityPolicySummaries :: Lens' ListSecurityPoliciesResponse (Maybe [SecurityPolicySummary])
listSecurityPoliciesResponse_securityPolicySummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecurityPoliciesResponse' {Maybe [SecurityPolicySummary]
securityPolicySummaries :: Maybe [SecurityPolicySummary]
$sel:securityPolicySummaries:ListSecurityPoliciesResponse' :: ListSecurityPoliciesResponse -> Maybe [SecurityPolicySummary]
securityPolicySummaries} -> Maybe [SecurityPolicySummary]
securityPolicySummaries) (\s :: ListSecurityPoliciesResponse
s@ListSecurityPoliciesResponse' {} Maybe [SecurityPolicySummary]
a -> ListSecurityPoliciesResponse
s {$sel:securityPolicySummaries:ListSecurityPoliciesResponse' :: Maybe [SecurityPolicySummary]
securityPolicySummaries = Maybe [SecurityPolicySummary]
a} :: ListSecurityPoliciesResponse) 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.
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)

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