{-# 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.FMS.ListThirdPartyFirewallFirewallPolicies
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list of all of the third-party firewall policies that are
-- associated with the third-party firewall administrator\'s account.
--
-- This operation returns paginated results.
module Amazonka.FMS.ListThirdPartyFirewallFirewallPolicies
  ( -- * Creating a Request
    ListThirdPartyFirewallFirewallPolicies (..),
    newListThirdPartyFirewallFirewallPolicies,

    -- * Request Lenses
    listThirdPartyFirewallFirewallPolicies_nextToken,
    listThirdPartyFirewallFirewallPolicies_thirdPartyFirewall,
    listThirdPartyFirewallFirewallPolicies_maxResults,

    -- * Destructuring the Response
    ListThirdPartyFirewallFirewallPoliciesResponse (..),
    newListThirdPartyFirewallFirewallPoliciesResponse,

    -- * Response Lenses
    listThirdPartyFirewallFirewallPoliciesResponse_nextToken,
    listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies,
    listThirdPartyFirewallFirewallPoliciesResponse_httpStatus,
  )
where

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

-- | /See:/ 'newListThirdPartyFirewallFirewallPolicies' smart constructor.
data ListThirdPartyFirewallFirewallPolicies = ListThirdPartyFirewallFirewallPolicies'
  { -- | If the previous response included a @NextToken@ element, the specified
    -- third-party firewall vendor is associated with more third-party firewall
    -- policies. To get more third-party firewall policies, submit another
    -- @ListThirdPartyFirewallFirewallPoliciesRequest@ request.
    --
    -- For the value of @NextToken@, specify the value of @NextToken@ from the
    -- previous response. If the previous response didn\'t include a
    -- @NextToken@ element, there are no more third-party firewall policies to
    -- get.
    ListThirdPartyFirewallFirewallPolicies -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the third-party firewall vendor.
    ListThirdPartyFirewallFirewallPolicies -> ThirdPartyFirewall
thirdPartyFirewall :: ThirdPartyFirewall,
    -- | The maximum number of third-party firewall policies that you want
    -- Firewall Manager to return. If the specified third-party firewall vendor
    -- is associated with more than @MaxResults@ firewall policies, the
    -- response includes a @NextToken@ element. @NextToken@ contains an
    -- encrypted token that identifies the first third-party firewall policies
    -- that Firewall Manager will return if you submit another request.
    ListThirdPartyFirewallFirewallPolicies -> Natural
maxResults :: Prelude.Natural
  }
  deriving (ListThirdPartyFirewallFirewallPolicies
-> ListThirdPartyFirewallFirewallPolicies -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListThirdPartyFirewallFirewallPolicies
-> ListThirdPartyFirewallFirewallPolicies -> Bool
$c/= :: ListThirdPartyFirewallFirewallPolicies
-> ListThirdPartyFirewallFirewallPolicies -> Bool
== :: ListThirdPartyFirewallFirewallPolicies
-> ListThirdPartyFirewallFirewallPolicies -> Bool
$c== :: ListThirdPartyFirewallFirewallPolicies
-> ListThirdPartyFirewallFirewallPolicies -> Bool
Prelude.Eq, ReadPrec [ListThirdPartyFirewallFirewallPolicies]
ReadPrec ListThirdPartyFirewallFirewallPolicies
Int -> ReadS ListThirdPartyFirewallFirewallPolicies
ReadS [ListThirdPartyFirewallFirewallPolicies]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListThirdPartyFirewallFirewallPolicies]
$creadListPrec :: ReadPrec [ListThirdPartyFirewallFirewallPolicies]
readPrec :: ReadPrec ListThirdPartyFirewallFirewallPolicies
$creadPrec :: ReadPrec ListThirdPartyFirewallFirewallPolicies
readList :: ReadS [ListThirdPartyFirewallFirewallPolicies]
$creadList :: ReadS [ListThirdPartyFirewallFirewallPolicies]
readsPrec :: Int -> ReadS ListThirdPartyFirewallFirewallPolicies
$creadsPrec :: Int -> ReadS ListThirdPartyFirewallFirewallPolicies
Prelude.Read, Int -> ListThirdPartyFirewallFirewallPolicies -> ShowS
[ListThirdPartyFirewallFirewallPolicies] -> ShowS
ListThirdPartyFirewallFirewallPolicies -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListThirdPartyFirewallFirewallPolicies] -> ShowS
$cshowList :: [ListThirdPartyFirewallFirewallPolicies] -> ShowS
show :: ListThirdPartyFirewallFirewallPolicies -> String
$cshow :: ListThirdPartyFirewallFirewallPolicies -> String
showsPrec :: Int -> ListThirdPartyFirewallFirewallPolicies -> ShowS
$cshowsPrec :: Int -> ListThirdPartyFirewallFirewallPolicies -> ShowS
Prelude.Show, forall x.
Rep ListThirdPartyFirewallFirewallPolicies x
-> ListThirdPartyFirewallFirewallPolicies
forall x.
ListThirdPartyFirewallFirewallPolicies
-> Rep ListThirdPartyFirewallFirewallPolicies x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListThirdPartyFirewallFirewallPolicies x
-> ListThirdPartyFirewallFirewallPolicies
$cfrom :: forall x.
ListThirdPartyFirewallFirewallPolicies
-> Rep ListThirdPartyFirewallFirewallPolicies x
Prelude.Generic)

-- |
-- Create a value of 'ListThirdPartyFirewallFirewallPolicies' 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', 'listThirdPartyFirewallFirewallPolicies_nextToken' - If the previous response included a @NextToken@ element, the specified
-- third-party firewall vendor is associated with more third-party firewall
-- policies. To get more third-party firewall policies, submit another
-- @ListThirdPartyFirewallFirewallPoliciesRequest@ request.
--
-- For the value of @NextToken@, specify the value of @NextToken@ from the
-- previous response. If the previous response didn\'t include a
-- @NextToken@ element, there are no more third-party firewall policies to
-- get.
--
-- 'thirdPartyFirewall', 'listThirdPartyFirewallFirewallPolicies_thirdPartyFirewall' - The name of the third-party firewall vendor.
--
-- 'maxResults', 'listThirdPartyFirewallFirewallPolicies_maxResults' - The maximum number of third-party firewall policies that you want
-- Firewall Manager to return. If the specified third-party firewall vendor
-- is associated with more than @MaxResults@ firewall policies, the
-- response includes a @NextToken@ element. @NextToken@ contains an
-- encrypted token that identifies the first third-party firewall policies
-- that Firewall Manager will return if you submit another request.
newListThirdPartyFirewallFirewallPolicies ::
  -- | 'thirdPartyFirewall'
  ThirdPartyFirewall ->
  -- | 'maxResults'
  Prelude.Natural ->
  ListThirdPartyFirewallFirewallPolicies
newListThirdPartyFirewallFirewallPolicies :: ThirdPartyFirewall
-> Natural -> ListThirdPartyFirewallFirewallPolicies
newListThirdPartyFirewallFirewallPolicies
  ThirdPartyFirewall
pThirdPartyFirewall_
  Natural
pMaxResults_ =
    ListThirdPartyFirewallFirewallPolicies'
      { $sel:nextToken:ListThirdPartyFirewallFirewallPolicies' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:thirdPartyFirewall:ListThirdPartyFirewallFirewallPolicies' :: ThirdPartyFirewall
thirdPartyFirewall =
          ThirdPartyFirewall
pThirdPartyFirewall_,
        $sel:maxResults:ListThirdPartyFirewallFirewallPolicies' :: Natural
maxResults = Natural
pMaxResults_
      }

-- | If the previous response included a @NextToken@ element, the specified
-- third-party firewall vendor is associated with more third-party firewall
-- policies. To get more third-party firewall policies, submit another
-- @ListThirdPartyFirewallFirewallPoliciesRequest@ request.
--
-- For the value of @NextToken@, specify the value of @NextToken@ from the
-- previous response. If the previous response didn\'t include a
-- @NextToken@ element, there are no more third-party firewall policies to
-- get.
listThirdPartyFirewallFirewallPolicies_nextToken :: Lens.Lens' ListThirdPartyFirewallFirewallPolicies (Prelude.Maybe Prelude.Text)
listThirdPartyFirewallFirewallPolicies_nextToken :: Lens' ListThirdPartyFirewallFirewallPolicies (Maybe Text)
listThirdPartyFirewallFirewallPolicies_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPolicies' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListThirdPartyFirewallFirewallPolicies
s@ListThirdPartyFirewallFirewallPolicies' {} Maybe Text
a -> ListThirdPartyFirewallFirewallPolicies
s {$sel:nextToken:ListThirdPartyFirewallFirewallPolicies' :: Maybe Text
nextToken = Maybe Text
a} :: ListThirdPartyFirewallFirewallPolicies)

-- | The name of the third-party firewall vendor.
listThirdPartyFirewallFirewallPolicies_thirdPartyFirewall :: Lens.Lens' ListThirdPartyFirewallFirewallPolicies ThirdPartyFirewall
listThirdPartyFirewallFirewallPolicies_thirdPartyFirewall :: Lens' ListThirdPartyFirewallFirewallPolicies ThirdPartyFirewall
listThirdPartyFirewallFirewallPolicies_thirdPartyFirewall = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPolicies' {ThirdPartyFirewall
thirdPartyFirewall :: ThirdPartyFirewall
$sel:thirdPartyFirewall:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> ThirdPartyFirewall
thirdPartyFirewall} -> ThirdPartyFirewall
thirdPartyFirewall) (\s :: ListThirdPartyFirewallFirewallPolicies
s@ListThirdPartyFirewallFirewallPolicies' {} ThirdPartyFirewall
a -> ListThirdPartyFirewallFirewallPolicies
s {$sel:thirdPartyFirewall:ListThirdPartyFirewallFirewallPolicies' :: ThirdPartyFirewall
thirdPartyFirewall = ThirdPartyFirewall
a} :: ListThirdPartyFirewallFirewallPolicies)

-- | The maximum number of third-party firewall policies that you want
-- Firewall Manager to return. If the specified third-party firewall vendor
-- is associated with more than @MaxResults@ firewall policies, the
-- response includes a @NextToken@ element. @NextToken@ contains an
-- encrypted token that identifies the first third-party firewall policies
-- that Firewall Manager will return if you submit another request.
listThirdPartyFirewallFirewallPolicies_maxResults :: Lens.Lens' ListThirdPartyFirewallFirewallPolicies Prelude.Natural
listThirdPartyFirewallFirewallPolicies_maxResults :: Lens' ListThirdPartyFirewallFirewallPolicies Natural
listThirdPartyFirewallFirewallPolicies_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPolicies' {Natural
maxResults :: Natural
$sel:maxResults:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Natural
maxResults} -> Natural
maxResults) (\s :: ListThirdPartyFirewallFirewallPolicies
s@ListThirdPartyFirewallFirewallPolicies' {} Natural
a -> ListThirdPartyFirewallFirewallPolicies
s {$sel:maxResults:ListThirdPartyFirewallFirewallPolicies' :: Natural
maxResults = Natural
a} :: ListThirdPartyFirewallFirewallPolicies)

instance
  Core.AWSPager
    ListThirdPartyFirewallFirewallPolicies
  where
  page :: ListThirdPartyFirewallFirewallPolicies
-> AWSResponse ListThirdPartyFirewallFirewallPolicies
-> Maybe ListThirdPartyFirewallFirewallPolicies
page ListThirdPartyFirewallFirewallPolicies
rq AWSResponse ListThirdPartyFirewallFirewallPolicies
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListThirdPartyFirewallFirewallPolicies
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListThirdPartyFirewallFirewallPoliciesResponse (Maybe Text)
listThirdPartyFirewallFirewallPoliciesResponse_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 ListThirdPartyFirewallFirewallPolicies
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  ListThirdPartyFirewallFirewallPoliciesResponse
  (Maybe [ThirdPartyFirewallFirewallPolicy])
listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies
            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
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListThirdPartyFirewallFirewallPolicies
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListThirdPartyFirewallFirewallPolicies (Maybe Text)
listThirdPartyFirewallFirewallPolicies_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListThirdPartyFirewallFirewallPolicies
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListThirdPartyFirewallFirewallPoliciesResponse (Maybe Text)
listThirdPartyFirewallFirewallPoliciesResponse_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
    ListThirdPartyFirewallFirewallPolicies
  where
  type
    AWSResponse
      ListThirdPartyFirewallFirewallPolicies =
      ListThirdPartyFirewallFirewallPoliciesResponse
  request :: (Service -> Service)
-> ListThirdPartyFirewallFirewallPolicies
-> Request ListThirdPartyFirewallFirewallPolicies
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 ListThirdPartyFirewallFirewallPolicies
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse ListThirdPartyFirewallFirewallPolicies)))
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 [ThirdPartyFirewallFirewallPolicy]
-> Int
-> ListThirdPartyFirewallFirewallPoliciesResponse
ListThirdPartyFirewallFirewallPoliciesResponse'
            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
"ThirdPartyFirewallFirewallPolicies"
                            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
    ListThirdPartyFirewallFirewallPolicies
  where
  hashWithSalt :: Int -> ListThirdPartyFirewallFirewallPolicies -> Int
hashWithSalt
    Int
_salt
    ListThirdPartyFirewallFirewallPolicies' {Natural
Maybe Text
ThirdPartyFirewall
maxResults :: Natural
thirdPartyFirewall :: ThirdPartyFirewall
nextToken :: Maybe Text
$sel:maxResults:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Natural
$sel:thirdPartyFirewall:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> ThirdPartyFirewall
$sel:nextToken:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ThirdPartyFirewall
thirdPartyFirewall
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
maxResults

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

instance
  Data.ToHeaders
    ListThirdPartyFirewallFirewallPolicies
  where
  toHeaders :: ListThirdPartyFirewallFirewallPolicies -> 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
"AWSFMS_20180101.ListThirdPartyFirewallFirewallPolicies" ::
                          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
    ListThirdPartyFirewallFirewallPolicies
  where
  toJSON :: ListThirdPartyFirewallFirewallPolicies -> Value
toJSON ListThirdPartyFirewallFirewallPolicies' {Natural
Maybe Text
ThirdPartyFirewall
maxResults :: Natural
thirdPartyFirewall :: ThirdPartyFirewall
nextToken :: Maybe Text
$sel:maxResults:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Natural
$sel:thirdPartyFirewall:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> ThirdPartyFirewall
$sel:nextToken:ListThirdPartyFirewallFirewallPolicies' :: ListThirdPartyFirewallFirewallPolicies -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ThirdPartyFirewall" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ThirdPartyFirewall
thirdPartyFirewall),
            forall a. a -> Maybe a
Prelude.Just (Key
"MaxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
maxResults)
          ]
      )

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

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

-- | /See:/ 'newListThirdPartyFirewallFirewallPoliciesResponse' smart constructor.
data ListThirdPartyFirewallFirewallPoliciesResponse = ListThirdPartyFirewallFirewallPoliciesResponse'
  { -- | The value that you will use for @NextToken@ in the next
    -- @ListThirdPartyFirewallFirewallPolicies@ request.
    ListThirdPartyFirewallFirewallPoliciesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list that contains one @ThirdPartyFirewallFirewallPolicies@ element
    -- for each third-party firewall policies that the specified third-party
    -- firewall vendor is associated with. Each
    -- @ThirdPartyFirewallFirewallPolicies@ element contains the firewall
    -- policy name and ID.
    ListThirdPartyFirewallFirewallPoliciesResponse
-> Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies :: Prelude.Maybe [ThirdPartyFirewallFirewallPolicy],
    -- | The response's http status code.
    ListThirdPartyFirewallFirewallPoliciesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListThirdPartyFirewallFirewallPoliciesResponse
-> ListThirdPartyFirewallFirewallPoliciesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListThirdPartyFirewallFirewallPoliciesResponse
-> ListThirdPartyFirewallFirewallPoliciesResponse -> Bool
$c/= :: ListThirdPartyFirewallFirewallPoliciesResponse
-> ListThirdPartyFirewallFirewallPoliciesResponse -> Bool
== :: ListThirdPartyFirewallFirewallPoliciesResponse
-> ListThirdPartyFirewallFirewallPoliciesResponse -> Bool
$c== :: ListThirdPartyFirewallFirewallPoliciesResponse
-> ListThirdPartyFirewallFirewallPoliciesResponse -> Bool
Prelude.Eq, ReadPrec [ListThirdPartyFirewallFirewallPoliciesResponse]
ReadPrec ListThirdPartyFirewallFirewallPoliciesResponse
Int -> ReadS ListThirdPartyFirewallFirewallPoliciesResponse
ReadS [ListThirdPartyFirewallFirewallPoliciesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListThirdPartyFirewallFirewallPoliciesResponse]
$creadListPrec :: ReadPrec [ListThirdPartyFirewallFirewallPoliciesResponse]
readPrec :: ReadPrec ListThirdPartyFirewallFirewallPoliciesResponse
$creadPrec :: ReadPrec ListThirdPartyFirewallFirewallPoliciesResponse
readList :: ReadS [ListThirdPartyFirewallFirewallPoliciesResponse]
$creadList :: ReadS [ListThirdPartyFirewallFirewallPoliciesResponse]
readsPrec :: Int -> ReadS ListThirdPartyFirewallFirewallPoliciesResponse
$creadsPrec :: Int -> ReadS ListThirdPartyFirewallFirewallPoliciesResponse
Prelude.Read, Int -> ListThirdPartyFirewallFirewallPoliciesResponse -> ShowS
[ListThirdPartyFirewallFirewallPoliciesResponse] -> ShowS
ListThirdPartyFirewallFirewallPoliciesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListThirdPartyFirewallFirewallPoliciesResponse] -> ShowS
$cshowList :: [ListThirdPartyFirewallFirewallPoliciesResponse] -> ShowS
show :: ListThirdPartyFirewallFirewallPoliciesResponse -> String
$cshow :: ListThirdPartyFirewallFirewallPoliciesResponse -> String
showsPrec :: Int -> ListThirdPartyFirewallFirewallPoliciesResponse -> ShowS
$cshowsPrec :: Int -> ListThirdPartyFirewallFirewallPoliciesResponse -> ShowS
Prelude.Show, forall x.
Rep ListThirdPartyFirewallFirewallPoliciesResponse x
-> ListThirdPartyFirewallFirewallPoliciesResponse
forall x.
ListThirdPartyFirewallFirewallPoliciesResponse
-> Rep ListThirdPartyFirewallFirewallPoliciesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListThirdPartyFirewallFirewallPoliciesResponse x
-> ListThirdPartyFirewallFirewallPoliciesResponse
$cfrom :: forall x.
ListThirdPartyFirewallFirewallPoliciesResponse
-> Rep ListThirdPartyFirewallFirewallPoliciesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListThirdPartyFirewallFirewallPoliciesResponse' 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', 'listThirdPartyFirewallFirewallPoliciesResponse_nextToken' - The value that you will use for @NextToken@ in the next
-- @ListThirdPartyFirewallFirewallPolicies@ request.
--
-- 'thirdPartyFirewallFirewallPolicies', 'listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies' - A list that contains one @ThirdPartyFirewallFirewallPolicies@ element
-- for each third-party firewall policies that the specified third-party
-- firewall vendor is associated with. Each
-- @ThirdPartyFirewallFirewallPolicies@ element contains the firewall
-- policy name and ID.
--
-- 'httpStatus', 'listThirdPartyFirewallFirewallPoliciesResponse_httpStatus' - The response's http status code.
newListThirdPartyFirewallFirewallPoliciesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListThirdPartyFirewallFirewallPoliciesResponse
newListThirdPartyFirewallFirewallPoliciesResponse :: Int -> ListThirdPartyFirewallFirewallPoliciesResponse
newListThirdPartyFirewallFirewallPoliciesResponse
  Int
pHttpStatus_ =
    ListThirdPartyFirewallFirewallPoliciesResponse'
      { $sel:nextToken:ListThirdPartyFirewallFirewallPoliciesResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:thirdPartyFirewallFirewallPolicies:ListThirdPartyFirewallFirewallPoliciesResponse' :: Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListThirdPartyFirewallFirewallPoliciesResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The value that you will use for @NextToken@ in the next
-- @ListThirdPartyFirewallFirewallPolicies@ request.
listThirdPartyFirewallFirewallPoliciesResponse_nextToken :: Lens.Lens' ListThirdPartyFirewallFirewallPoliciesResponse (Prelude.Maybe Prelude.Text)
listThirdPartyFirewallFirewallPoliciesResponse_nextToken :: Lens' ListThirdPartyFirewallFirewallPoliciesResponse (Maybe Text)
listThirdPartyFirewallFirewallPoliciesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPoliciesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListThirdPartyFirewallFirewallPoliciesResponse' :: ListThirdPartyFirewallFirewallPoliciesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListThirdPartyFirewallFirewallPoliciesResponse
s@ListThirdPartyFirewallFirewallPoliciesResponse' {} Maybe Text
a -> ListThirdPartyFirewallFirewallPoliciesResponse
s {$sel:nextToken:ListThirdPartyFirewallFirewallPoliciesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListThirdPartyFirewallFirewallPoliciesResponse)

-- | A list that contains one @ThirdPartyFirewallFirewallPolicies@ element
-- for each third-party firewall policies that the specified third-party
-- firewall vendor is associated with. Each
-- @ThirdPartyFirewallFirewallPolicies@ element contains the firewall
-- policy name and ID.
listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies :: Lens.Lens' ListThirdPartyFirewallFirewallPoliciesResponse (Prelude.Maybe [ThirdPartyFirewallFirewallPolicy])
listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies :: Lens'
  ListThirdPartyFirewallFirewallPoliciesResponse
  (Maybe [ThirdPartyFirewallFirewallPolicy])
listThirdPartyFirewallFirewallPoliciesResponse_thirdPartyFirewallFirewallPolicies = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPoliciesResponse' {Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies :: Maybe [ThirdPartyFirewallFirewallPolicy]
$sel:thirdPartyFirewallFirewallPolicies:ListThirdPartyFirewallFirewallPoliciesResponse' :: ListThirdPartyFirewallFirewallPoliciesResponse
-> Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies} -> Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies) (\s :: ListThirdPartyFirewallFirewallPoliciesResponse
s@ListThirdPartyFirewallFirewallPoliciesResponse' {} Maybe [ThirdPartyFirewallFirewallPolicy]
a -> ListThirdPartyFirewallFirewallPoliciesResponse
s {$sel:thirdPartyFirewallFirewallPolicies:ListThirdPartyFirewallFirewallPoliciesResponse' :: Maybe [ThirdPartyFirewallFirewallPolicy]
thirdPartyFirewallFirewallPolicies = Maybe [ThirdPartyFirewallFirewallPolicy]
a} :: ListThirdPartyFirewallFirewallPoliciesResponse) 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.
listThirdPartyFirewallFirewallPoliciesResponse_httpStatus :: Lens.Lens' ListThirdPartyFirewallFirewallPoliciesResponse Prelude.Int
listThirdPartyFirewallFirewallPoliciesResponse_httpStatus :: Lens' ListThirdPartyFirewallFirewallPoliciesResponse Int
listThirdPartyFirewallFirewallPoliciesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListThirdPartyFirewallFirewallPoliciesResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListThirdPartyFirewallFirewallPoliciesResponse' :: ListThirdPartyFirewallFirewallPoliciesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListThirdPartyFirewallFirewallPoliciesResponse
s@ListThirdPartyFirewallFirewallPoliciesResponse' {} Int
a -> ListThirdPartyFirewallFirewallPoliciesResponse
s {$sel:httpStatus:ListThirdPartyFirewallFirewallPoliciesResponse' :: Int
httpStatus = Int
a} :: ListThirdPartyFirewallFirewallPoliciesResponse)

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