{-# 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.GetThirdPartyFirewallAssociationStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- The onboarding status of a Firewall Manager admin account to third-party
-- firewall vendor tenant.
module Amazonka.FMS.GetThirdPartyFirewallAssociationStatus
  ( -- * Creating a Request
    GetThirdPartyFirewallAssociationStatus (..),
    newGetThirdPartyFirewallAssociationStatus,

    -- * Request Lenses
    getThirdPartyFirewallAssociationStatus_thirdPartyFirewall,

    -- * Destructuring the Response
    GetThirdPartyFirewallAssociationStatusResponse (..),
    newGetThirdPartyFirewallAssociationStatusResponse,

    -- * Response Lenses
    getThirdPartyFirewallAssociationStatusResponse_marketplaceOnboardingStatus,
    getThirdPartyFirewallAssociationStatusResponse_thirdPartyFirewallStatus,
    getThirdPartyFirewallAssociationStatusResponse_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:/ 'newGetThirdPartyFirewallAssociationStatus' smart constructor.
data GetThirdPartyFirewallAssociationStatus = GetThirdPartyFirewallAssociationStatus'
  { -- | The name of the third-party firewall vendor.
    GetThirdPartyFirewallAssociationStatus -> ThirdPartyFirewall
thirdPartyFirewall :: ThirdPartyFirewall
  }
  deriving (GetThirdPartyFirewallAssociationStatus
-> GetThirdPartyFirewallAssociationStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetThirdPartyFirewallAssociationStatus
-> GetThirdPartyFirewallAssociationStatus -> Bool
$c/= :: GetThirdPartyFirewallAssociationStatus
-> GetThirdPartyFirewallAssociationStatus -> Bool
== :: GetThirdPartyFirewallAssociationStatus
-> GetThirdPartyFirewallAssociationStatus -> Bool
$c== :: GetThirdPartyFirewallAssociationStatus
-> GetThirdPartyFirewallAssociationStatus -> Bool
Prelude.Eq, ReadPrec [GetThirdPartyFirewallAssociationStatus]
ReadPrec GetThirdPartyFirewallAssociationStatus
Int -> ReadS GetThirdPartyFirewallAssociationStatus
ReadS [GetThirdPartyFirewallAssociationStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetThirdPartyFirewallAssociationStatus]
$creadListPrec :: ReadPrec [GetThirdPartyFirewallAssociationStatus]
readPrec :: ReadPrec GetThirdPartyFirewallAssociationStatus
$creadPrec :: ReadPrec GetThirdPartyFirewallAssociationStatus
readList :: ReadS [GetThirdPartyFirewallAssociationStatus]
$creadList :: ReadS [GetThirdPartyFirewallAssociationStatus]
readsPrec :: Int -> ReadS GetThirdPartyFirewallAssociationStatus
$creadsPrec :: Int -> ReadS GetThirdPartyFirewallAssociationStatus
Prelude.Read, Int -> GetThirdPartyFirewallAssociationStatus -> ShowS
[GetThirdPartyFirewallAssociationStatus] -> ShowS
GetThirdPartyFirewallAssociationStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetThirdPartyFirewallAssociationStatus] -> ShowS
$cshowList :: [GetThirdPartyFirewallAssociationStatus] -> ShowS
show :: GetThirdPartyFirewallAssociationStatus -> String
$cshow :: GetThirdPartyFirewallAssociationStatus -> String
showsPrec :: Int -> GetThirdPartyFirewallAssociationStatus -> ShowS
$cshowsPrec :: Int -> GetThirdPartyFirewallAssociationStatus -> ShowS
Prelude.Show, forall x.
Rep GetThirdPartyFirewallAssociationStatus x
-> GetThirdPartyFirewallAssociationStatus
forall x.
GetThirdPartyFirewallAssociationStatus
-> Rep GetThirdPartyFirewallAssociationStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetThirdPartyFirewallAssociationStatus x
-> GetThirdPartyFirewallAssociationStatus
$cfrom :: forall x.
GetThirdPartyFirewallAssociationStatus
-> Rep GetThirdPartyFirewallAssociationStatus x
Prelude.Generic)

-- |
-- Create a value of 'GetThirdPartyFirewallAssociationStatus' 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:
--
-- 'thirdPartyFirewall', 'getThirdPartyFirewallAssociationStatus_thirdPartyFirewall' - The name of the third-party firewall vendor.
newGetThirdPartyFirewallAssociationStatus ::
  -- | 'thirdPartyFirewall'
  ThirdPartyFirewall ->
  GetThirdPartyFirewallAssociationStatus
newGetThirdPartyFirewallAssociationStatus :: ThirdPartyFirewall -> GetThirdPartyFirewallAssociationStatus
newGetThirdPartyFirewallAssociationStatus
  ThirdPartyFirewall
pThirdPartyFirewall_ =
    GetThirdPartyFirewallAssociationStatus'
      { $sel:thirdPartyFirewall:GetThirdPartyFirewallAssociationStatus' :: ThirdPartyFirewall
thirdPartyFirewall =
          ThirdPartyFirewall
pThirdPartyFirewall_
      }

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

instance
  Core.AWSRequest
    GetThirdPartyFirewallAssociationStatus
  where
  type
    AWSResponse
      GetThirdPartyFirewallAssociationStatus =
      GetThirdPartyFirewallAssociationStatusResponse
  request :: (Service -> Service)
-> GetThirdPartyFirewallAssociationStatus
-> Request GetThirdPartyFirewallAssociationStatus
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 GetThirdPartyFirewallAssociationStatus
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse GetThirdPartyFirewallAssociationStatus)))
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 MarketplaceSubscriptionOnboardingStatus
-> Maybe ThirdPartyFirewallAssociationStatus
-> Int
-> GetThirdPartyFirewallAssociationStatusResponse
GetThirdPartyFirewallAssociationStatusResponse'
            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
"MarketplaceOnboardingStatus")
            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
"ThirdPartyFirewallStatus")
            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
    GetThirdPartyFirewallAssociationStatus
  where
  hashWithSalt :: Int -> GetThirdPartyFirewallAssociationStatus -> Int
hashWithSalt
    Int
_salt
    GetThirdPartyFirewallAssociationStatus' {ThirdPartyFirewall
thirdPartyFirewall :: ThirdPartyFirewall
$sel:thirdPartyFirewall:GetThirdPartyFirewallAssociationStatus' :: GetThirdPartyFirewallAssociationStatus -> ThirdPartyFirewall
..} =
      Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ThirdPartyFirewall
thirdPartyFirewall

instance
  Prelude.NFData
    GetThirdPartyFirewallAssociationStatus
  where
  rnf :: GetThirdPartyFirewallAssociationStatus -> ()
rnf GetThirdPartyFirewallAssociationStatus' {ThirdPartyFirewall
thirdPartyFirewall :: ThirdPartyFirewall
$sel:thirdPartyFirewall:GetThirdPartyFirewallAssociationStatus' :: GetThirdPartyFirewallAssociationStatus -> ThirdPartyFirewall
..} =
    forall a. NFData a => a -> ()
Prelude.rnf ThirdPartyFirewall
thirdPartyFirewall

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

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

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

-- | /See:/ 'newGetThirdPartyFirewallAssociationStatusResponse' smart constructor.
data GetThirdPartyFirewallAssociationStatusResponse = GetThirdPartyFirewallAssociationStatusResponse'
  { -- | The status for subscribing to the third-party firewall vendor in the
    -- Amazon Web Services Marketplace.
    --
    -- -   @NO_SUBSCRIPTION@ - The Firewall Manager policy administrator isn\'t
    --     subscribed to the third-party firewall service in the Amazon Web
    --     Services Marketplace.
    --
    -- -   @NOT_COMPLETE@ - The Firewall Manager policy administrator is in the
    --     process of subscribing to the third-party firewall service in the
    --     Amazon Web Services Marketplace, but doesn\'t yet have an active
    --     subscription.
    --
    -- -   @COMPLETE@ - The Firewall Manager policy administrator has an active
    --     subscription to the third-party firewall service in the Amazon Web
    --     Services Marketplace.
    GetThirdPartyFirewallAssociationStatusResponse
-> Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus :: Prelude.Maybe MarketplaceSubscriptionOnboardingStatus,
    -- | The current status for setting a Firewall Manager policy administrators
    -- account as an administrator of the third-party firewall tenant.
    --
    -- -   @ONBOARDING@ - The Firewall Manager policy administrator is being
    --     designated as a tenant administrator.
    --
    -- -   @ONBOARD_COMPLETE@ - The Firewall Manager policy administrator is
    --     designated as a tenant administrator.
    --
    -- -   @OFFBOARDING@ - The Firewall Manager policy administrator is being
    --     removed as a tenant administrator.
    --
    -- -   @OFFBOARD_COMPLETE@ - The Firewall Manager policy administrator has
    --     been removed as a tenant administrator.
    --
    -- -   @NOT_EXIST@ - The Firewall Manager policy administrator doesn\'t
    --     exist as a tenant administrator.
    GetThirdPartyFirewallAssociationStatusResponse
-> Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus :: Prelude.Maybe ThirdPartyFirewallAssociationStatus,
    -- | The response's http status code.
    GetThirdPartyFirewallAssociationStatusResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetThirdPartyFirewallAssociationStatusResponse
-> GetThirdPartyFirewallAssociationStatusResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetThirdPartyFirewallAssociationStatusResponse
-> GetThirdPartyFirewallAssociationStatusResponse -> Bool
$c/= :: GetThirdPartyFirewallAssociationStatusResponse
-> GetThirdPartyFirewallAssociationStatusResponse -> Bool
== :: GetThirdPartyFirewallAssociationStatusResponse
-> GetThirdPartyFirewallAssociationStatusResponse -> Bool
$c== :: GetThirdPartyFirewallAssociationStatusResponse
-> GetThirdPartyFirewallAssociationStatusResponse -> Bool
Prelude.Eq, ReadPrec [GetThirdPartyFirewallAssociationStatusResponse]
ReadPrec GetThirdPartyFirewallAssociationStatusResponse
Int -> ReadS GetThirdPartyFirewallAssociationStatusResponse
ReadS [GetThirdPartyFirewallAssociationStatusResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetThirdPartyFirewallAssociationStatusResponse]
$creadListPrec :: ReadPrec [GetThirdPartyFirewallAssociationStatusResponse]
readPrec :: ReadPrec GetThirdPartyFirewallAssociationStatusResponse
$creadPrec :: ReadPrec GetThirdPartyFirewallAssociationStatusResponse
readList :: ReadS [GetThirdPartyFirewallAssociationStatusResponse]
$creadList :: ReadS [GetThirdPartyFirewallAssociationStatusResponse]
readsPrec :: Int -> ReadS GetThirdPartyFirewallAssociationStatusResponse
$creadsPrec :: Int -> ReadS GetThirdPartyFirewallAssociationStatusResponse
Prelude.Read, Int -> GetThirdPartyFirewallAssociationStatusResponse -> ShowS
[GetThirdPartyFirewallAssociationStatusResponse] -> ShowS
GetThirdPartyFirewallAssociationStatusResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetThirdPartyFirewallAssociationStatusResponse] -> ShowS
$cshowList :: [GetThirdPartyFirewallAssociationStatusResponse] -> ShowS
show :: GetThirdPartyFirewallAssociationStatusResponse -> String
$cshow :: GetThirdPartyFirewallAssociationStatusResponse -> String
showsPrec :: Int -> GetThirdPartyFirewallAssociationStatusResponse -> ShowS
$cshowsPrec :: Int -> GetThirdPartyFirewallAssociationStatusResponse -> ShowS
Prelude.Show, forall x.
Rep GetThirdPartyFirewallAssociationStatusResponse x
-> GetThirdPartyFirewallAssociationStatusResponse
forall x.
GetThirdPartyFirewallAssociationStatusResponse
-> Rep GetThirdPartyFirewallAssociationStatusResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetThirdPartyFirewallAssociationStatusResponse x
-> GetThirdPartyFirewallAssociationStatusResponse
$cfrom :: forall x.
GetThirdPartyFirewallAssociationStatusResponse
-> Rep GetThirdPartyFirewallAssociationStatusResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetThirdPartyFirewallAssociationStatusResponse' 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:
--
-- 'marketplaceOnboardingStatus', 'getThirdPartyFirewallAssociationStatusResponse_marketplaceOnboardingStatus' - The status for subscribing to the third-party firewall vendor in the
-- Amazon Web Services Marketplace.
--
-- -   @NO_SUBSCRIPTION@ - The Firewall Manager policy administrator isn\'t
--     subscribed to the third-party firewall service in the Amazon Web
--     Services Marketplace.
--
-- -   @NOT_COMPLETE@ - The Firewall Manager policy administrator is in the
--     process of subscribing to the third-party firewall service in the
--     Amazon Web Services Marketplace, but doesn\'t yet have an active
--     subscription.
--
-- -   @COMPLETE@ - The Firewall Manager policy administrator has an active
--     subscription to the third-party firewall service in the Amazon Web
--     Services Marketplace.
--
-- 'thirdPartyFirewallStatus', 'getThirdPartyFirewallAssociationStatusResponse_thirdPartyFirewallStatus' - The current status for setting a Firewall Manager policy administrators
-- account as an administrator of the third-party firewall tenant.
--
-- -   @ONBOARDING@ - The Firewall Manager policy administrator is being
--     designated as a tenant administrator.
--
-- -   @ONBOARD_COMPLETE@ - The Firewall Manager policy administrator is
--     designated as a tenant administrator.
--
-- -   @OFFBOARDING@ - The Firewall Manager policy administrator is being
--     removed as a tenant administrator.
--
-- -   @OFFBOARD_COMPLETE@ - The Firewall Manager policy administrator has
--     been removed as a tenant administrator.
--
-- -   @NOT_EXIST@ - The Firewall Manager policy administrator doesn\'t
--     exist as a tenant administrator.
--
-- 'httpStatus', 'getThirdPartyFirewallAssociationStatusResponse_httpStatus' - The response's http status code.
newGetThirdPartyFirewallAssociationStatusResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetThirdPartyFirewallAssociationStatusResponse
newGetThirdPartyFirewallAssociationStatusResponse :: Int -> GetThirdPartyFirewallAssociationStatusResponse
newGetThirdPartyFirewallAssociationStatusResponse
  Int
pHttpStatus_ =
    GetThirdPartyFirewallAssociationStatusResponse'
      { $sel:marketplaceOnboardingStatus:GetThirdPartyFirewallAssociationStatusResponse' :: Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus =
          forall a. Maybe a
Prelude.Nothing,
        $sel:thirdPartyFirewallStatus:GetThirdPartyFirewallAssociationStatusResponse' :: Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetThirdPartyFirewallAssociationStatusResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The status for subscribing to the third-party firewall vendor in the
-- Amazon Web Services Marketplace.
--
-- -   @NO_SUBSCRIPTION@ - The Firewall Manager policy administrator isn\'t
--     subscribed to the third-party firewall service in the Amazon Web
--     Services Marketplace.
--
-- -   @NOT_COMPLETE@ - The Firewall Manager policy administrator is in the
--     process of subscribing to the third-party firewall service in the
--     Amazon Web Services Marketplace, but doesn\'t yet have an active
--     subscription.
--
-- -   @COMPLETE@ - The Firewall Manager policy administrator has an active
--     subscription to the third-party firewall service in the Amazon Web
--     Services Marketplace.
getThirdPartyFirewallAssociationStatusResponse_marketplaceOnboardingStatus :: Lens.Lens' GetThirdPartyFirewallAssociationStatusResponse (Prelude.Maybe MarketplaceSubscriptionOnboardingStatus)
getThirdPartyFirewallAssociationStatusResponse_marketplaceOnboardingStatus :: Lens'
  GetThirdPartyFirewallAssociationStatusResponse
  (Maybe MarketplaceSubscriptionOnboardingStatus)
getThirdPartyFirewallAssociationStatusResponse_marketplaceOnboardingStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetThirdPartyFirewallAssociationStatusResponse' {Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus :: Maybe MarketplaceSubscriptionOnboardingStatus
$sel:marketplaceOnboardingStatus:GetThirdPartyFirewallAssociationStatusResponse' :: GetThirdPartyFirewallAssociationStatusResponse
-> Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus} -> Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus) (\s :: GetThirdPartyFirewallAssociationStatusResponse
s@GetThirdPartyFirewallAssociationStatusResponse' {} Maybe MarketplaceSubscriptionOnboardingStatus
a -> GetThirdPartyFirewallAssociationStatusResponse
s {$sel:marketplaceOnboardingStatus:GetThirdPartyFirewallAssociationStatusResponse' :: Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus = Maybe MarketplaceSubscriptionOnboardingStatus
a} :: GetThirdPartyFirewallAssociationStatusResponse)

-- | The current status for setting a Firewall Manager policy administrators
-- account as an administrator of the third-party firewall tenant.
--
-- -   @ONBOARDING@ - The Firewall Manager policy administrator is being
--     designated as a tenant administrator.
--
-- -   @ONBOARD_COMPLETE@ - The Firewall Manager policy administrator is
--     designated as a tenant administrator.
--
-- -   @OFFBOARDING@ - The Firewall Manager policy administrator is being
--     removed as a tenant administrator.
--
-- -   @OFFBOARD_COMPLETE@ - The Firewall Manager policy administrator has
--     been removed as a tenant administrator.
--
-- -   @NOT_EXIST@ - The Firewall Manager policy administrator doesn\'t
--     exist as a tenant administrator.
getThirdPartyFirewallAssociationStatusResponse_thirdPartyFirewallStatus :: Lens.Lens' GetThirdPartyFirewallAssociationStatusResponse (Prelude.Maybe ThirdPartyFirewallAssociationStatus)
getThirdPartyFirewallAssociationStatusResponse_thirdPartyFirewallStatus :: Lens'
  GetThirdPartyFirewallAssociationStatusResponse
  (Maybe ThirdPartyFirewallAssociationStatus)
getThirdPartyFirewallAssociationStatusResponse_thirdPartyFirewallStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetThirdPartyFirewallAssociationStatusResponse' {Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus :: Maybe ThirdPartyFirewallAssociationStatus
$sel:thirdPartyFirewallStatus:GetThirdPartyFirewallAssociationStatusResponse' :: GetThirdPartyFirewallAssociationStatusResponse
-> Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus} -> Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus) (\s :: GetThirdPartyFirewallAssociationStatusResponse
s@GetThirdPartyFirewallAssociationStatusResponse' {} Maybe ThirdPartyFirewallAssociationStatus
a -> GetThirdPartyFirewallAssociationStatusResponse
s {$sel:thirdPartyFirewallStatus:GetThirdPartyFirewallAssociationStatusResponse' :: Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus = Maybe ThirdPartyFirewallAssociationStatus
a} :: GetThirdPartyFirewallAssociationStatusResponse)

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

instance
  Prelude.NFData
    GetThirdPartyFirewallAssociationStatusResponse
  where
  rnf :: GetThirdPartyFirewallAssociationStatusResponse -> ()
rnf
    GetThirdPartyFirewallAssociationStatusResponse' {Int
Maybe MarketplaceSubscriptionOnboardingStatus
Maybe ThirdPartyFirewallAssociationStatus
httpStatus :: Int
thirdPartyFirewallStatus :: Maybe ThirdPartyFirewallAssociationStatus
marketplaceOnboardingStatus :: Maybe MarketplaceSubscriptionOnboardingStatus
$sel:httpStatus:GetThirdPartyFirewallAssociationStatusResponse' :: GetThirdPartyFirewallAssociationStatusResponse -> Int
$sel:thirdPartyFirewallStatus:GetThirdPartyFirewallAssociationStatusResponse' :: GetThirdPartyFirewallAssociationStatusResponse
-> Maybe ThirdPartyFirewallAssociationStatus
$sel:marketplaceOnboardingStatus:GetThirdPartyFirewallAssociationStatusResponse' :: GetThirdPartyFirewallAssociationStatusResponse
-> Maybe MarketplaceSubscriptionOnboardingStatus
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe MarketplaceSubscriptionOnboardingStatus
marketplaceOnboardingStatus
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ThirdPartyFirewallAssociationStatus
thirdPartyFirewallStatus
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus