{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Discovery.Types.CustomerAgentlessCollectorInfo
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Discovery.Types.CustomerAgentlessCollectorInfo where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | /See:/ 'newCustomerAgentlessCollectorInfo' smart constructor.
data CustomerAgentlessCollectorInfo = CustomerAgentlessCollectorInfo'
  { CustomerAgentlessCollectorInfo -> Int
activeAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
healthyAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
denyListedAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
shutdownAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
unhealthyAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
totalAgentlessCollectors :: Prelude.Int,
    CustomerAgentlessCollectorInfo -> Int
unknownAgentlessCollectors :: Prelude.Int
  }
  deriving (CustomerAgentlessCollectorInfo
-> CustomerAgentlessCollectorInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerAgentlessCollectorInfo
-> CustomerAgentlessCollectorInfo -> Bool
$c/= :: CustomerAgentlessCollectorInfo
-> CustomerAgentlessCollectorInfo -> Bool
== :: CustomerAgentlessCollectorInfo
-> CustomerAgentlessCollectorInfo -> Bool
$c== :: CustomerAgentlessCollectorInfo
-> CustomerAgentlessCollectorInfo -> Bool
Prelude.Eq, ReadPrec [CustomerAgentlessCollectorInfo]
ReadPrec CustomerAgentlessCollectorInfo
Int -> ReadS CustomerAgentlessCollectorInfo
ReadS [CustomerAgentlessCollectorInfo]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CustomerAgentlessCollectorInfo]
$creadListPrec :: ReadPrec [CustomerAgentlessCollectorInfo]
readPrec :: ReadPrec CustomerAgentlessCollectorInfo
$creadPrec :: ReadPrec CustomerAgentlessCollectorInfo
readList :: ReadS [CustomerAgentlessCollectorInfo]
$creadList :: ReadS [CustomerAgentlessCollectorInfo]
readsPrec :: Int -> ReadS CustomerAgentlessCollectorInfo
$creadsPrec :: Int -> ReadS CustomerAgentlessCollectorInfo
Prelude.Read, Int -> CustomerAgentlessCollectorInfo -> ShowS
[CustomerAgentlessCollectorInfo] -> ShowS
CustomerAgentlessCollectorInfo -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerAgentlessCollectorInfo] -> ShowS
$cshowList :: [CustomerAgentlessCollectorInfo] -> ShowS
show :: CustomerAgentlessCollectorInfo -> String
$cshow :: CustomerAgentlessCollectorInfo -> String
showsPrec :: Int -> CustomerAgentlessCollectorInfo -> ShowS
$cshowsPrec :: Int -> CustomerAgentlessCollectorInfo -> ShowS
Prelude.Show, forall x.
Rep CustomerAgentlessCollectorInfo x
-> CustomerAgentlessCollectorInfo
forall x.
CustomerAgentlessCollectorInfo
-> Rep CustomerAgentlessCollectorInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CustomerAgentlessCollectorInfo x
-> CustomerAgentlessCollectorInfo
$cfrom :: forall x.
CustomerAgentlessCollectorInfo
-> Rep CustomerAgentlessCollectorInfo x
Prelude.Generic)

-- |
-- Create a value of 'CustomerAgentlessCollectorInfo' 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:
--
-- 'activeAgentlessCollectors', 'customerAgentlessCollectorInfo_activeAgentlessCollectors' - Undocumented member.
--
-- 'healthyAgentlessCollectors', 'customerAgentlessCollectorInfo_healthyAgentlessCollectors' - Undocumented member.
--
-- 'denyListedAgentlessCollectors', 'customerAgentlessCollectorInfo_denyListedAgentlessCollectors' - Undocumented member.
--
-- 'shutdownAgentlessCollectors', 'customerAgentlessCollectorInfo_shutdownAgentlessCollectors' - Undocumented member.
--
-- 'unhealthyAgentlessCollectors', 'customerAgentlessCollectorInfo_unhealthyAgentlessCollectors' - Undocumented member.
--
-- 'totalAgentlessCollectors', 'customerAgentlessCollectorInfo_totalAgentlessCollectors' - Undocumented member.
--
-- 'unknownAgentlessCollectors', 'customerAgentlessCollectorInfo_unknownAgentlessCollectors' - Undocumented member.
newCustomerAgentlessCollectorInfo ::
  -- | 'activeAgentlessCollectors'
  Prelude.Int ->
  -- | 'healthyAgentlessCollectors'
  Prelude.Int ->
  -- | 'denyListedAgentlessCollectors'
  Prelude.Int ->
  -- | 'shutdownAgentlessCollectors'
  Prelude.Int ->
  -- | 'unhealthyAgentlessCollectors'
  Prelude.Int ->
  -- | 'totalAgentlessCollectors'
  Prelude.Int ->
  -- | 'unknownAgentlessCollectors'
  Prelude.Int ->
  CustomerAgentlessCollectorInfo
newCustomerAgentlessCollectorInfo :: Int
-> Int
-> Int
-> Int
-> Int
-> Int
-> Int
-> CustomerAgentlessCollectorInfo
newCustomerAgentlessCollectorInfo
  Int
pActiveAgentlessCollectors_
  Int
pHealthyAgentlessCollectors_
  Int
pDenyListedAgentlessCollectors_
  Int
pShutdownAgentlessCollectors_
  Int
pUnhealthyAgentlessCollectors_
  Int
pTotalAgentlessCollectors_
  Int
pUnknownAgentlessCollectors_ =
    CustomerAgentlessCollectorInfo'
      { $sel:activeAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
activeAgentlessCollectors =
          Int
pActiveAgentlessCollectors_,
        $sel:healthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
healthyAgentlessCollectors =
          Int
pHealthyAgentlessCollectors_,
        $sel:denyListedAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
denyListedAgentlessCollectors =
          Int
pDenyListedAgentlessCollectors_,
        $sel:shutdownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
shutdownAgentlessCollectors =
          Int
pShutdownAgentlessCollectors_,
        $sel:unhealthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
unhealthyAgentlessCollectors =
          Int
pUnhealthyAgentlessCollectors_,
        $sel:totalAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
totalAgentlessCollectors =
          Int
pTotalAgentlessCollectors_,
        $sel:unknownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
unknownAgentlessCollectors =
          Int
pUnknownAgentlessCollectors_
      }

-- | Undocumented member.
customerAgentlessCollectorInfo_activeAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_activeAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_activeAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
activeAgentlessCollectors :: Int
$sel:activeAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
activeAgentlessCollectors} -> Int
activeAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:activeAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
activeAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_healthyAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_healthyAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_healthyAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
healthyAgentlessCollectors :: Int
$sel:healthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
healthyAgentlessCollectors} -> Int
healthyAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:healthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
healthyAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_denyListedAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_denyListedAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_denyListedAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
denyListedAgentlessCollectors :: Int
$sel:denyListedAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
denyListedAgentlessCollectors} -> Int
denyListedAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:denyListedAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
denyListedAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_shutdownAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_shutdownAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_shutdownAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
shutdownAgentlessCollectors :: Int
$sel:shutdownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
shutdownAgentlessCollectors} -> Int
shutdownAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:shutdownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
shutdownAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_unhealthyAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_unhealthyAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_unhealthyAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
unhealthyAgentlessCollectors :: Int
$sel:unhealthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
unhealthyAgentlessCollectors} -> Int
unhealthyAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:unhealthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
unhealthyAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_totalAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_totalAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_totalAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
totalAgentlessCollectors :: Int
$sel:totalAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
totalAgentlessCollectors} -> Int
totalAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:totalAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
totalAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

-- | Undocumented member.
customerAgentlessCollectorInfo_unknownAgentlessCollectors :: Lens.Lens' CustomerAgentlessCollectorInfo Prelude.Int
customerAgentlessCollectorInfo_unknownAgentlessCollectors :: Lens' CustomerAgentlessCollectorInfo Int
customerAgentlessCollectorInfo_unknownAgentlessCollectors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CustomerAgentlessCollectorInfo' {Int
unknownAgentlessCollectors :: Int
$sel:unknownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
unknownAgentlessCollectors} -> Int
unknownAgentlessCollectors) (\s :: CustomerAgentlessCollectorInfo
s@CustomerAgentlessCollectorInfo' {} Int
a -> CustomerAgentlessCollectorInfo
s {$sel:unknownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: Int
unknownAgentlessCollectors = Int
a} :: CustomerAgentlessCollectorInfo)

instance Data.FromJSON CustomerAgentlessCollectorInfo where
  parseJSON :: Value -> Parser CustomerAgentlessCollectorInfo
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"CustomerAgentlessCollectorInfo"
      ( \Object
x ->
          Int
-> Int
-> Int
-> Int
-> Int
-> Int
-> Int
-> CustomerAgentlessCollectorInfo
CustomerAgentlessCollectorInfo'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"activeAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"healthyAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"denyListedAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"shutdownAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"unhealthyAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"totalAgentlessCollectors")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"unknownAgentlessCollectors")
      )

instance
  Prelude.Hashable
    CustomerAgentlessCollectorInfo
  where
  hashWithSalt :: Int -> CustomerAgentlessCollectorInfo -> Int
hashWithSalt
    Int
_salt
    CustomerAgentlessCollectorInfo' {Int
unknownAgentlessCollectors :: Int
totalAgentlessCollectors :: Int
unhealthyAgentlessCollectors :: Int
shutdownAgentlessCollectors :: Int
denyListedAgentlessCollectors :: Int
healthyAgentlessCollectors :: Int
activeAgentlessCollectors :: Int
$sel:unknownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:totalAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:unhealthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:shutdownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:denyListedAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:healthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:activeAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
activeAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
healthyAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
denyListedAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
shutdownAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
unhealthyAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
totalAgentlessCollectors
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
unknownAgentlessCollectors

instance
  Prelude.NFData
    CustomerAgentlessCollectorInfo
  where
  rnf :: CustomerAgentlessCollectorInfo -> ()
rnf CustomerAgentlessCollectorInfo' {Int
unknownAgentlessCollectors :: Int
totalAgentlessCollectors :: Int
unhealthyAgentlessCollectors :: Int
shutdownAgentlessCollectors :: Int
denyListedAgentlessCollectors :: Int
healthyAgentlessCollectors :: Int
activeAgentlessCollectors :: Int
$sel:unknownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:totalAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:unhealthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:shutdownAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:denyListedAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:healthyAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
$sel:activeAgentlessCollectors:CustomerAgentlessCollectorInfo' :: CustomerAgentlessCollectorInfo -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
activeAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
healthyAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
denyListedAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
shutdownAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
unhealthyAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
totalAgentlessCollectors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
unknownAgentlessCollectors