{-# 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.SSM.DescribePatchGroupState
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns high-level aggregated patch compliance state information for a
-- patch group.
module Amazonka.SSM.DescribePatchGroupState
  ( -- * Creating a Request
    DescribePatchGroupState (..),
    newDescribePatchGroupState,

    -- * Request Lenses
    describePatchGroupState_patchGroup,

    -- * Destructuring the Response
    DescribePatchGroupStateResponse (..),
    newDescribePatchGroupStateResponse,

    -- * Response Lenses
    describePatchGroupStateResponse_instancesWithMissingPatches,
    describePatchGroupStateResponse_instancesWithInstalledOtherPatches,
    describePatchGroupStateResponse_instancesWithNotApplicablePatches,
    describePatchGroupStateResponse_instancesWithInstalledPatches,
    describePatchGroupStateResponse_instancesWithCriticalNonCompliantPatches,
    describePatchGroupStateResponse_instancesWithSecurityNonCompliantPatches,
    describePatchGroupStateResponse_instancesWithInstalledRejectedPatches,
    describePatchGroupStateResponse_instancesWithInstalledPendingRebootPatches,
    describePatchGroupStateResponse_instancesWithOtherNonCompliantPatches,
    describePatchGroupStateResponse_instancesWithUnreportedNotApplicablePatches,
    describePatchGroupStateResponse_instances,
    describePatchGroupStateResponse_instancesWithFailedPatches,
    describePatchGroupStateResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SSM.Types

-- | /See:/ 'newDescribePatchGroupState' smart constructor.
data DescribePatchGroupState = DescribePatchGroupState'
  { -- | The name of the patch group whose patch snapshot should be retrieved.
    DescribePatchGroupState -> Text
patchGroup :: Prelude.Text
  }
  deriving (DescribePatchGroupState -> DescribePatchGroupState -> Bool
(DescribePatchGroupState -> DescribePatchGroupState -> Bool)
-> (DescribePatchGroupState -> DescribePatchGroupState -> Bool)
-> Eq DescribePatchGroupState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePatchGroupState -> DescribePatchGroupState -> Bool
$c/= :: DescribePatchGroupState -> DescribePatchGroupState -> Bool
== :: DescribePatchGroupState -> DescribePatchGroupState -> Bool
$c== :: DescribePatchGroupState -> DescribePatchGroupState -> Bool
Prelude.Eq, ReadPrec [DescribePatchGroupState]
ReadPrec DescribePatchGroupState
Int -> ReadS DescribePatchGroupState
ReadS [DescribePatchGroupState]
(Int -> ReadS DescribePatchGroupState)
-> ReadS [DescribePatchGroupState]
-> ReadPrec DescribePatchGroupState
-> ReadPrec [DescribePatchGroupState]
-> Read DescribePatchGroupState
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePatchGroupState]
$creadListPrec :: ReadPrec [DescribePatchGroupState]
readPrec :: ReadPrec DescribePatchGroupState
$creadPrec :: ReadPrec DescribePatchGroupState
readList :: ReadS [DescribePatchGroupState]
$creadList :: ReadS [DescribePatchGroupState]
readsPrec :: Int -> ReadS DescribePatchGroupState
$creadsPrec :: Int -> ReadS DescribePatchGroupState
Prelude.Read, Int -> DescribePatchGroupState -> ShowS
[DescribePatchGroupState] -> ShowS
DescribePatchGroupState -> String
(Int -> DescribePatchGroupState -> ShowS)
-> (DescribePatchGroupState -> String)
-> ([DescribePatchGroupState] -> ShowS)
-> Show DescribePatchGroupState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePatchGroupState] -> ShowS
$cshowList :: [DescribePatchGroupState] -> ShowS
show :: DescribePatchGroupState -> String
$cshow :: DescribePatchGroupState -> String
showsPrec :: Int -> DescribePatchGroupState -> ShowS
$cshowsPrec :: Int -> DescribePatchGroupState -> ShowS
Prelude.Show, (forall x.
 DescribePatchGroupState -> Rep DescribePatchGroupState x)
-> (forall x.
    Rep DescribePatchGroupState x -> DescribePatchGroupState)
-> Generic DescribePatchGroupState
forall x. Rep DescribePatchGroupState x -> DescribePatchGroupState
forall x. DescribePatchGroupState -> Rep DescribePatchGroupState x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePatchGroupState x -> DescribePatchGroupState
$cfrom :: forall x. DescribePatchGroupState -> Rep DescribePatchGroupState x
Prelude.Generic)

-- |
-- Create a value of 'DescribePatchGroupState' 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:
--
-- 'patchGroup', 'describePatchGroupState_patchGroup' - The name of the patch group whose patch snapshot should be retrieved.
newDescribePatchGroupState ::
  -- | 'patchGroup'
  Prelude.Text ->
  DescribePatchGroupState
newDescribePatchGroupState :: Text -> DescribePatchGroupState
newDescribePatchGroupState Text
pPatchGroup_ =
  DescribePatchGroupState' :: Text -> DescribePatchGroupState
DescribePatchGroupState' {$sel:patchGroup:DescribePatchGroupState' :: Text
patchGroup = Text
pPatchGroup_}

-- | The name of the patch group whose patch snapshot should be retrieved.
describePatchGroupState_patchGroup :: Lens.Lens' DescribePatchGroupState Prelude.Text
describePatchGroupState_patchGroup :: (Text -> f Text)
-> DescribePatchGroupState -> f DescribePatchGroupState
describePatchGroupState_patchGroup = (DescribePatchGroupState -> Text)
-> (DescribePatchGroupState -> Text -> DescribePatchGroupState)
-> Lens DescribePatchGroupState DescribePatchGroupState Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupState' {Text
patchGroup :: Text
$sel:patchGroup:DescribePatchGroupState' :: DescribePatchGroupState -> Text
patchGroup} -> Text
patchGroup) (\s :: DescribePatchGroupState
s@DescribePatchGroupState' {} Text
a -> DescribePatchGroupState
s {$sel:patchGroup:DescribePatchGroupState' :: Text
patchGroup = Text
a} :: DescribePatchGroupState)

instance Core.AWSRequest DescribePatchGroupState where
  type
    AWSResponse DescribePatchGroupState =
      DescribePatchGroupStateResponse
  request :: DescribePatchGroupState -> Request DescribePatchGroupState
request = Service
-> DescribePatchGroupState -> Request DescribePatchGroupState
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribePatchGroupState
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribePatchGroupState)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribePatchGroupState))
-> Logger
-> Service
-> Proxy DescribePatchGroupState
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribePatchGroupState)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Int
-> DescribePatchGroupStateResponse
DescribePatchGroupStateResponse'
            (Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Int
 -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithMissingPatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithInstalledOtherPatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithNotApplicablePatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithInstalledPatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithCriticalNonCompliantPatches"
                        )
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithSecurityNonCompliantPatches"
                        )
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithInstalledRejectedPatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithInstalledPendingRebootPatches"
                        )
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Int
      -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithOtherNonCompliantPatches")
            Either
  String
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Int
   -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Int -> Maybe Int -> Int -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithUnreportedNotApplicablePatches"
                        )
            Either
  String
  (Maybe Int -> Maybe Int -> Int -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either
     String (Maybe Int -> Int -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Instances")
            Either String (Maybe Int -> Int -> DescribePatchGroupStateResponse)
-> Either String (Maybe Int)
-> Either String (Int -> DescribePatchGroupStateResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InstancesWithFailedPatches")
            Either String (Int -> DescribePatchGroupStateResponse)
-> Either String Int
-> Either String DescribePatchGroupStateResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribePatchGroupState

instance Prelude.NFData DescribePatchGroupState

instance Core.ToHeaders DescribePatchGroupState where
  toHeaders :: DescribePatchGroupState -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribePatchGroupState -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"AmazonSSM.DescribePatchGroupState" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON DescribePatchGroupState where
  toJSON :: DescribePatchGroupState -> Value
toJSON DescribePatchGroupState' {Text
patchGroup :: Text
$sel:patchGroup:DescribePatchGroupState' :: DescribePatchGroupState -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"PatchGroup" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
patchGroup)]
      )

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

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

-- | /See:/ 'newDescribePatchGroupStateResponse' smart constructor.
data DescribePatchGroupStateResponse = DescribePatchGroupStateResponse'
  { -- | The number of instances with missing patches from the patch baseline.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithMissingPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches installed that aren\'t defined in
    -- the patch baseline.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledOtherPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches that aren\'t applicable.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithNotApplicablePatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with installed patches.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances where patches that are specified as @Critical@
    -- for compliance reporting in the patch baseline aren\'t installed. These
    -- patches might be missing, have failed installation, were rejected, or
    -- were installed but awaiting a required instance reboot. The status of
    -- these instances is @NON_COMPLIANT@.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithCriticalNonCompliantPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances where patches that are specified as @Security@
    -- in a patch advisory aren\'t installed. These patches might be missing,
    -- have failed installation, were rejected, or were installed but awaiting
    -- a required instance reboot. The status of these instances is
    -- @NON_COMPLIANT@.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithSecurityNonCompliantPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches installed that are specified in a
    -- @RejectedPatches@ list. Patches with a status of @INSTALLED_REJECTED@
    -- were typically installed before they were added to a @RejectedPatches@
    -- list.
    --
    -- If @ALLOW_AS_DEPENDENCY@ is the specified option for
    -- @RejectedPatchesAction@, the value of
    -- @InstancesWithInstalledRejectedPatches@ will always be @0@ (zero).
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledRejectedPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches installed by Patch Manager that
    -- haven\'t been rebooted after the patch installation. The status of these
    -- instances is @NON_COMPLIANT@.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledPendingRebootPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches installed that are specified as
    -- other than @Critical@ or @Security@ but aren\'t compliant with the patch
    -- baseline. The status of these instances is @NON_COMPLIANT@.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithOtherNonCompliantPatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with @NotApplicable@ patches beyond the
    -- supported limit, which aren\'t reported by name to Inventory. Inventory
    -- is a capability of Amazon Web Services Systems Manager.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithUnreportedNotApplicablePatches :: Prelude.Maybe Prelude.Int,
    -- | The number of instances in the patch group.
    DescribePatchGroupStateResponse -> Maybe Int
instances :: Prelude.Maybe Prelude.Int,
    -- | The number of instances with patches from the patch baseline that failed
    -- to install.
    DescribePatchGroupStateResponse -> Maybe Int
instancesWithFailedPatches :: Prelude.Maybe Prelude.Int,
    -- | The response's http status code.
    DescribePatchGroupStateResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribePatchGroupStateResponse
-> DescribePatchGroupStateResponse -> Bool
(DescribePatchGroupStateResponse
 -> DescribePatchGroupStateResponse -> Bool)
-> (DescribePatchGroupStateResponse
    -> DescribePatchGroupStateResponse -> Bool)
-> Eq DescribePatchGroupStateResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePatchGroupStateResponse
-> DescribePatchGroupStateResponse -> Bool
$c/= :: DescribePatchGroupStateResponse
-> DescribePatchGroupStateResponse -> Bool
== :: DescribePatchGroupStateResponse
-> DescribePatchGroupStateResponse -> Bool
$c== :: DescribePatchGroupStateResponse
-> DescribePatchGroupStateResponse -> Bool
Prelude.Eq, ReadPrec [DescribePatchGroupStateResponse]
ReadPrec DescribePatchGroupStateResponse
Int -> ReadS DescribePatchGroupStateResponse
ReadS [DescribePatchGroupStateResponse]
(Int -> ReadS DescribePatchGroupStateResponse)
-> ReadS [DescribePatchGroupStateResponse]
-> ReadPrec DescribePatchGroupStateResponse
-> ReadPrec [DescribePatchGroupStateResponse]
-> Read DescribePatchGroupStateResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePatchGroupStateResponse]
$creadListPrec :: ReadPrec [DescribePatchGroupStateResponse]
readPrec :: ReadPrec DescribePatchGroupStateResponse
$creadPrec :: ReadPrec DescribePatchGroupStateResponse
readList :: ReadS [DescribePatchGroupStateResponse]
$creadList :: ReadS [DescribePatchGroupStateResponse]
readsPrec :: Int -> ReadS DescribePatchGroupStateResponse
$creadsPrec :: Int -> ReadS DescribePatchGroupStateResponse
Prelude.Read, Int -> DescribePatchGroupStateResponse -> ShowS
[DescribePatchGroupStateResponse] -> ShowS
DescribePatchGroupStateResponse -> String
(Int -> DescribePatchGroupStateResponse -> ShowS)
-> (DescribePatchGroupStateResponse -> String)
-> ([DescribePatchGroupStateResponse] -> ShowS)
-> Show DescribePatchGroupStateResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePatchGroupStateResponse] -> ShowS
$cshowList :: [DescribePatchGroupStateResponse] -> ShowS
show :: DescribePatchGroupStateResponse -> String
$cshow :: DescribePatchGroupStateResponse -> String
showsPrec :: Int -> DescribePatchGroupStateResponse -> ShowS
$cshowsPrec :: Int -> DescribePatchGroupStateResponse -> ShowS
Prelude.Show, (forall x.
 DescribePatchGroupStateResponse
 -> Rep DescribePatchGroupStateResponse x)
-> (forall x.
    Rep DescribePatchGroupStateResponse x
    -> DescribePatchGroupStateResponse)
-> Generic DescribePatchGroupStateResponse
forall x.
Rep DescribePatchGroupStateResponse x
-> DescribePatchGroupStateResponse
forall x.
DescribePatchGroupStateResponse
-> Rep DescribePatchGroupStateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePatchGroupStateResponse x
-> DescribePatchGroupStateResponse
$cfrom :: forall x.
DescribePatchGroupStateResponse
-> Rep DescribePatchGroupStateResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribePatchGroupStateResponse' 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:
--
-- 'instancesWithMissingPatches', 'describePatchGroupStateResponse_instancesWithMissingPatches' - The number of instances with missing patches from the patch baseline.
--
-- 'instancesWithInstalledOtherPatches', 'describePatchGroupStateResponse_instancesWithInstalledOtherPatches' - The number of instances with patches installed that aren\'t defined in
-- the patch baseline.
--
-- 'instancesWithNotApplicablePatches', 'describePatchGroupStateResponse_instancesWithNotApplicablePatches' - The number of instances with patches that aren\'t applicable.
--
-- 'instancesWithInstalledPatches', 'describePatchGroupStateResponse_instancesWithInstalledPatches' - The number of instances with installed patches.
--
-- 'instancesWithCriticalNonCompliantPatches', 'describePatchGroupStateResponse_instancesWithCriticalNonCompliantPatches' - The number of instances where patches that are specified as @Critical@
-- for compliance reporting in the patch baseline aren\'t installed. These
-- patches might be missing, have failed installation, were rejected, or
-- were installed but awaiting a required instance reboot. The status of
-- these instances is @NON_COMPLIANT@.
--
-- 'instancesWithSecurityNonCompliantPatches', 'describePatchGroupStateResponse_instancesWithSecurityNonCompliantPatches' - The number of instances where patches that are specified as @Security@
-- in a patch advisory aren\'t installed. These patches might be missing,
-- have failed installation, were rejected, or were installed but awaiting
-- a required instance reboot. The status of these instances is
-- @NON_COMPLIANT@.
--
-- 'instancesWithInstalledRejectedPatches', 'describePatchGroupStateResponse_instancesWithInstalledRejectedPatches' - The number of instances with patches installed that are specified in a
-- @RejectedPatches@ list. Patches with a status of @INSTALLED_REJECTED@
-- were typically installed before they were added to a @RejectedPatches@
-- list.
--
-- If @ALLOW_AS_DEPENDENCY@ is the specified option for
-- @RejectedPatchesAction@, the value of
-- @InstancesWithInstalledRejectedPatches@ will always be @0@ (zero).
--
-- 'instancesWithInstalledPendingRebootPatches', 'describePatchGroupStateResponse_instancesWithInstalledPendingRebootPatches' - The number of instances with patches installed by Patch Manager that
-- haven\'t been rebooted after the patch installation. The status of these
-- instances is @NON_COMPLIANT@.
--
-- 'instancesWithOtherNonCompliantPatches', 'describePatchGroupStateResponse_instancesWithOtherNonCompliantPatches' - The number of instances with patches installed that are specified as
-- other than @Critical@ or @Security@ but aren\'t compliant with the patch
-- baseline. The status of these instances is @NON_COMPLIANT@.
--
-- 'instancesWithUnreportedNotApplicablePatches', 'describePatchGroupStateResponse_instancesWithUnreportedNotApplicablePatches' - The number of instances with @NotApplicable@ patches beyond the
-- supported limit, which aren\'t reported by name to Inventory. Inventory
-- is a capability of Amazon Web Services Systems Manager.
--
-- 'instances', 'describePatchGroupStateResponse_instances' - The number of instances in the patch group.
--
-- 'instancesWithFailedPatches', 'describePatchGroupStateResponse_instancesWithFailedPatches' - The number of instances with patches from the patch baseline that failed
-- to install.
--
-- 'httpStatus', 'describePatchGroupStateResponse_httpStatus' - The response's http status code.
newDescribePatchGroupStateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribePatchGroupStateResponse
newDescribePatchGroupStateResponse :: Int -> DescribePatchGroupStateResponse
newDescribePatchGroupStateResponse Int
pHttpStatus_ =
  DescribePatchGroupStateResponse' :: Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Int
-> DescribePatchGroupStateResponse
DescribePatchGroupStateResponse'
    { $sel:instancesWithMissingPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithMissingPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithInstalledOtherPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledOtherPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithNotApplicablePatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithNotApplicablePatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithInstalledPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithCriticalNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithCriticalNonCompliantPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithSecurityNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithSecurityNonCompliantPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithInstalledRejectedPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledRejectedPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithInstalledPendingRebootPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledPendingRebootPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithOtherNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithOtherNonCompliantPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithUnreportedNotApplicablePatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithUnreportedNotApplicablePatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instances:DescribePatchGroupStateResponse' :: Maybe Int
instances = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:instancesWithFailedPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithFailedPatches =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribePatchGroupStateResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The number of instances with missing patches from the patch baseline.
describePatchGroupStateResponse_instancesWithMissingPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithMissingPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithMissingPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithMissingPatches :: Maybe Int
$sel:instancesWithMissingPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithMissingPatches} -> Maybe Int
instancesWithMissingPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithMissingPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithMissingPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches installed that aren\'t defined in
-- the patch baseline.
describePatchGroupStateResponse_instancesWithInstalledOtherPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithInstalledOtherPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithInstalledOtherPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithInstalledOtherPatches :: Maybe Int
$sel:instancesWithInstalledOtherPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledOtherPatches} -> Maybe Int
instancesWithInstalledOtherPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithInstalledOtherPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledOtherPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches that aren\'t applicable.
describePatchGroupStateResponse_instancesWithNotApplicablePatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithNotApplicablePatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithNotApplicablePatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithNotApplicablePatches :: Maybe Int
$sel:instancesWithNotApplicablePatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithNotApplicablePatches} -> Maybe Int
instancesWithNotApplicablePatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithNotApplicablePatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithNotApplicablePatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with installed patches.
describePatchGroupStateResponse_instancesWithInstalledPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithInstalledPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithInstalledPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithInstalledPatches :: Maybe Int
$sel:instancesWithInstalledPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledPatches} -> Maybe Int
instancesWithInstalledPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithInstalledPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances where patches that are specified as @Critical@
-- for compliance reporting in the patch baseline aren\'t installed. These
-- patches might be missing, have failed installation, were rejected, or
-- were installed but awaiting a required instance reboot. The status of
-- these instances is @NON_COMPLIANT@.
describePatchGroupStateResponse_instancesWithCriticalNonCompliantPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithCriticalNonCompliantPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithCriticalNonCompliantPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithCriticalNonCompliantPatches :: Maybe Int
$sel:instancesWithCriticalNonCompliantPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithCriticalNonCompliantPatches} -> Maybe Int
instancesWithCriticalNonCompliantPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithCriticalNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithCriticalNonCompliantPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances where patches that are specified as @Security@
-- in a patch advisory aren\'t installed. These patches might be missing,
-- have failed installation, were rejected, or were installed but awaiting
-- a required instance reboot. The status of these instances is
-- @NON_COMPLIANT@.
describePatchGroupStateResponse_instancesWithSecurityNonCompliantPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithSecurityNonCompliantPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithSecurityNonCompliantPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithSecurityNonCompliantPatches :: Maybe Int
$sel:instancesWithSecurityNonCompliantPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithSecurityNonCompliantPatches} -> Maybe Int
instancesWithSecurityNonCompliantPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithSecurityNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithSecurityNonCompliantPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches installed that are specified in a
-- @RejectedPatches@ list. Patches with a status of @INSTALLED_REJECTED@
-- were typically installed before they were added to a @RejectedPatches@
-- list.
--
-- If @ALLOW_AS_DEPENDENCY@ is the specified option for
-- @RejectedPatchesAction@, the value of
-- @InstancesWithInstalledRejectedPatches@ will always be @0@ (zero).
describePatchGroupStateResponse_instancesWithInstalledRejectedPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithInstalledRejectedPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithInstalledRejectedPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithInstalledRejectedPatches :: Maybe Int
$sel:instancesWithInstalledRejectedPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledRejectedPatches} -> Maybe Int
instancesWithInstalledRejectedPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithInstalledRejectedPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledRejectedPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches installed by Patch Manager that
-- haven\'t been rebooted after the patch installation. The status of these
-- instances is @NON_COMPLIANT@.
describePatchGroupStateResponse_instancesWithInstalledPendingRebootPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithInstalledPendingRebootPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithInstalledPendingRebootPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithInstalledPendingRebootPatches :: Maybe Int
$sel:instancesWithInstalledPendingRebootPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithInstalledPendingRebootPatches} -> Maybe Int
instancesWithInstalledPendingRebootPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithInstalledPendingRebootPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithInstalledPendingRebootPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches installed that are specified as
-- other than @Critical@ or @Security@ but aren\'t compliant with the patch
-- baseline. The status of these instances is @NON_COMPLIANT@.
describePatchGroupStateResponse_instancesWithOtherNonCompliantPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithOtherNonCompliantPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithOtherNonCompliantPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithOtherNonCompliantPatches :: Maybe Int
$sel:instancesWithOtherNonCompliantPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithOtherNonCompliantPatches} -> Maybe Int
instancesWithOtherNonCompliantPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithOtherNonCompliantPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithOtherNonCompliantPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with @NotApplicable@ patches beyond the
-- supported limit, which aren\'t reported by name to Inventory. Inventory
-- is a capability of Amazon Web Services Systems Manager.
describePatchGroupStateResponse_instancesWithUnreportedNotApplicablePatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithUnreportedNotApplicablePatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithUnreportedNotApplicablePatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithUnreportedNotApplicablePatches :: Maybe Int
$sel:instancesWithUnreportedNotApplicablePatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithUnreportedNotApplicablePatches} -> Maybe Int
instancesWithUnreportedNotApplicablePatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithUnreportedNotApplicablePatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithUnreportedNotApplicablePatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances in the patch group.
describePatchGroupStateResponse_instances :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instances :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instances = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instances :: Maybe Int
$sel:instances:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instances} -> Maybe Int
instances) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instances:DescribePatchGroupStateResponse' :: Maybe Int
instances = Maybe Int
a} :: DescribePatchGroupStateResponse)

-- | The number of instances with patches from the patch baseline that failed
-- to install.
describePatchGroupStateResponse_instancesWithFailedPatches :: Lens.Lens' DescribePatchGroupStateResponse (Prelude.Maybe Prelude.Int)
describePatchGroupStateResponse_instancesWithFailedPatches :: (Maybe Int -> f (Maybe Int))
-> DescribePatchGroupStateResponse
-> f DescribePatchGroupStateResponse
describePatchGroupStateResponse_instancesWithFailedPatches = (DescribePatchGroupStateResponse -> Maybe Int)
-> (DescribePatchGroupStateResponse
    -> Maybe Int -> DescribePatchGroupStateResponse)
-> Lens
     DescribePatchGroupStateResponse
     DescribePatchGroupStateResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePatchGroupStateResponse' {Maybe Int
instancesWithFailedPatches :: Maybe Int
$sel:instancesWithFailedPatches:DescribePatchGroupStateResponse' :: DescribePatchGroupStateResponse -> Maybe Int
instancesWithFailedPatches} -> Maybe Int
instancesWithFailedPatches) (\s :: DescribePatchGroupStateResponse
s@DescribePatchGroupStateResponse' {} Maybe Int
a -> DescribePatchGroupStateResponse
s {$sel:instancesWithFailedPatches:DescribePatchGroupStateResponse' :: Maybe Int
instancesWithFailedPatches = Maybe Int
a} :: DescribePatchGroupStateResponse)

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

instance
  Prelude.NFData
    DescribePatchGroupStateResponse