{-# 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.DevOpsGuru.DescribeOrganizationHealth
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns active insights, predictive insights, and resource hours
-- analyzed in last hour.
module Amazonka.DevOpsGuru.DescribeOrganizationHealth
  ( -- * Creating a Request
    DescribeOrganizationHealth (..),
    newDescribeOrganizationHealth,

    -- * Request Lenses
    describeOrganizationHealth_accountIds,
    describeOrganizationHealth_organizationalUnitIds,

    -- * Destructuring the Response
    DescribeOrganizationHealthResponse (..),
    newDescribeOrganizationHealthResponse,

    -- * Response Lenses
    describeOrganizationHealthResponse_httpStatus,
    describeOrganizationHealthResponse_openReactiveInsights,
    describeOrganizationHealthResponse_openProactiveInsights,
    describeOrganizationHealthResponse_metricsAnalyzed,
    describeOrganizationHealthResponse_resourceHours,
  )
where

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

-- | /See:/ 'newDescribeOrganizationHealth' smart constructor.
data DescribeOrganizationHealth = DescribeOrganizationHealth'
  { -- | The ID of the Amazon Web Services account.
    DescribeOrganizationHealth -> Maybe [Text]
accountIds :: Prelude.Maybe [Prelude.Text],
    -- | The ID of the organizational unit.
    DescribeOrganizationHealth -> Maybe [Text]
organizationalUnitIds :: Prelude.Maybe [Prelude.Text]
  }
  deriving (DescribeOrganizationHealth -> DescribeOrganizationHealth -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeOrganizationHealth -> DescribeOrganizationHealth -> Bool
$c/= :: DescribeOrganizationHealth -> DescribeOrganizationHealth -> Bool
== :: DescribeOrganizationHealth -> DescribeOrganizationHealth -> Bool
$c== :: DescribeOrganizationHealth -> DescribeOrganizationHealth -> Bool
Prelude.Eq, ReadPrec [DescribeOrganizationHealth]
ReadPrec DescribeOrganizationHealth
Int -> ReadS DescribeOrganizationHealth
ReadS [DescribeOrganizationHealth]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeOrganizationHealth]
$creadListPrec :: ReadPrec [DescribeOrganizationHealth]
readPrec :: ReadPrec DescribeOrganizationHealth
$creadPrec :: ReadPrec DescribeOrganizationHealth
readList :: ReadS [DescribeOrganizationHealth]
$creadList :: ReadS [DescribeOrganizationHealth]
readsPrec :: Int -> ReadS DescribeOrganizationHealth
$creadsPrec :: Int -> ReadS DescribeOrganizationHealth
Prelude.Read, Int -> DescribeOrganizationHealth -> ShowS
[DescribeOrganizationHealth] -> ShowS
DescribeOrganizationHealth -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeOrganizationHealth] -> ShowS
$cshowList :: [DescribeOrganizationHealth] -> ShowS
show :: DescribeOrganizationHealth -> String
$cshow :: DescribeOrganizationHealth -> String
showsPrec :: Int -> DescribeOrganizationHealth -> ShowS
$cshowsPrec :: Int -> DescribeOrganizationHealth -> ShowS
Prelude.Show, forall x.
Rep DescribeOrganizationHealth x -> DescribeOrganizationHealth
forall x.
DescribeOrganizationHealth -> Rep DescribeOrganizationHealth x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeOrganizationHealth x -> DescribeOrganizationHealth
$cfrom :: forall x.
DescribeOrganizationHealth -> Rep DescribeOrganizationHealth x
Prelude.Generic)

-- |
-- Create a value of 'DescribeOrganizationHealth' 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:
--
-- 'accountIds', 'describeOrganizationHealth_accountIds' - The ID of the Amazon Web Services account.
--
-- 'organizationalUnitIds', 'describeOrganizationHealth_organizationalUnitIds' - The ID of the organizational unit.
newDescribeOrganizationHealth ::
  DescribeOrganizationHealth
newDescribeOrganizationHealth :: DescribeOrganizationHealth
newDescribeOrganizationHealth =
  DescribeOrganizationHealth'
    { $sel:accountIds:DescribeOrganizationHealth' :: Maybe [Text]
accountIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:organizationalUnitIds:DescribeOrganizationHealth' :: Maybe [Text]
organizationalUnitIds = forall a. Maybe a
Prelude.Nothing
    }

-- | The ID of the Amazon Web Services account.
describeOrganizationHealth_accountIds :: Lens.Lens' DescribeOrganizationHealth (Prelude.Maybe [Prelude.Text])
describeOrganizationHealth_accountIds :: Lens' DescribeOrganizationHealth (Maybe [Text])
describeOrganizationHealth_accountIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealth' {Maybe [Text]
accountIds :: Maybe [Text]
$sel:accountIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
accountIds} -> Maybe [Text]
accountIds) (\s :: DescribeOrganizationHealth
s@DescribeOrganizationHealth' {} Maybe [Text]
a -> DescribeOrganizationHealth
s {$sel:accountIds:DescribeOrganizationHealth' :: Maybe [Text]
accountIds = Maybe [Text]
a} :: DescribeOrganizationHealth) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ID of the organizational unit.
describeOrganizationHealth_organizationalUnitIds :: Lens.Lens' DescribeOrganizationHealth (Prelude.Maybe [Prelude.Text])
describeOrganizationHealth_organizationalUnitIds :: Lens' DescribeOrganizationHealth (Maybe [Text])
describeOrganizationHealth_organizationalUnitIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealth' {Maybe [Text]
organizationalUnitIds :: Maybe [Text]
$sel:organizationalUnitIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
organizationalUnitIds} -> Maybe [Text]
organizationalUnitIds) (\s :: DescribeOrganizationHealth
s@DescribeOrganizationHealth' {} Maybe [Text]
a -> DescribeOrganizationHealth
s {$sel:organizationalUnitIds:DescribeOrganizationHealth' :: Maybe [Text]
organizationalUnitIds = Maybe [Text]
a} :: DescribeOrganizationHealth) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest DescribeOrganizationHealth where
  type
    AWSResponse DescribeOrganizationHealth =
      DescribeOrganizationHealthResponse
  request :: (Service -> Service)
-> DescribeOrganizationHealth -> Request DescribeOrganizationHealth
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 DescribeOrganizationHealth
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeOrganizationHealth)))
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 ->
          Int
-> Int
-> Int
-> Int
-> Integer
-> DescribeOrganizationHealthResponse
DescribeOrganizationHealthResponse'
            forall (f :: * -> *) a b. Functor 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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"OpenReactiveInsights")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"OpenProactiveInsights")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"MetricsAnalyzed")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ResourceHours")
      )

instance Prelude.Hashable DescribeOrganizationHealth where
  hashWithSalt :: Int -> DescribeOrganizationHealth -> Int
hashWithSalt Int
_salt DescribeOrganizationHealth' {Maybe [Text]
organizationalUnitIds :: Maybe [Text]
accountIds :: Maybe [Text]
$sel:organizationalUnitIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
$sel:accountIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
accountIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
organizationalUnitIds

instance Prelude.NFData DescribeOrganizationHealth where
  rnf :: DescribeOrganizationHealth -> ()
rnf DescribeOrganizationHealth' {Maybe [Text]
organizationalUnitIds :: Maybe [Text]
accountIds :: Maybe [Text]
$sel:organizationalUnitIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
$sel:accountIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
accountIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
organizationalUnitIds

instance Data.ToHeaders DescribeOrganizationHealth where
  toHeaders :: DescribeOrganizationHealth -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeOrganizationHealth where
  toJSON :: DescribeOrganizationHealth -> Value
toJSON DescribeOrganizationHealth' {Maybe [Text]
organizationalUnitIds :: Maybe [Text]
accountIds :: Maybe [Text]
$sel:organizationalUnitIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
$sel:accountIds:DescribeOrganizationHealth' :: DescribeOrganizationHealth -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AccountIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
accountIds,
            (Key
"OrganizationalUnitIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
organizationalUnitIds
          ]
      )

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

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

-- | /See:/ 'newDescribeOrganizationHealthResponse' smart constructor.
data DescribeOrganizationHealthResponse = DescribeOrganizationHealthResponse'
  { -- | The response's http status code.
    DescribeOrganizationHealthResponse -> Int
httpStatus :: Prelude.Int,
    -- | An integer that specifies the number of open reactive insights in your
    -- Amazon Web Services account.
    DescribeOrganizationHealthResponse -> Int
openReactiveInsights :: Prelude.Int,
    -- | An integer that specifies the number of open proactive insights in your
    -- Amazon Web Services account.
    DescribeOrganizationHealthResponse -> Int
openProactiveInsights :: Prelude.Int,
    -- | An integer that specifies the number of metrics that have been analyzed
    -- in your organization.
    DescribeOrganizationHealthResponse -> Int
metricsAnalyzed :: Prelude.Int,
    -- | The number of Amazon DevOps Guru resource analysis hours billed to the
    -- current Amazon Web Services account in the last hour.
    DescribeOrganizationHealthResponse -> Integer
resourceHours :: Prelude.Integer
  }
  deriving (DescribeOrganizationHealthResponse
-> DescribeOrganizationHealthResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeOrganizationHealthResponse
-> DescribeOrganizationHealthResponse -> Bool
$c/= :: DescribeOrganizationHealthResponse
-> DescribeOrganizationHealthResponse -> Bool
== :: DescribeOrganizationHealthResponse
-> DescribeOrganizationHealthResponse -> Bool
$c== :: DescribeOrganizationHealthResponse
-> DescribeOrganizationHealthResponse -> Bool
Prelude.Eq, ReadPrec [DescribeOrganizationHealthResponse]
ReadPrec DescribeOrganizationHealthResponse
Int -> ReadS DescribeOrganizationHealthResponse
ReadS [DescribeOrganizationHealthResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeOrganizationHealthResponse]
$creadListPrec :: ReadPrec [DescribeOrganizationHealthResponse]
readPrec :: ReadPrec DescribeOrganizationHealthResponse
$creadPrec :: ReadPrec DescribeOrganizationHealthResponse
readList :: ReadS [DescribeOrganizationHealthResponse]
$creadList :: ReadS [DescribeOrganizationHealthResponse]
readsPrec :: Int -> ReadS DescribeOrganizationHealthResponse
$creadsPrec :: Int -> ReadS DescribeOrganizationHealthResponse
Prelude.Read, Int -> DescribeOrganizationHealthResponse -> ShowS
[DescribeOrganizationHealthResponse] -> ShowS
DescribeOrganizationHealthResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeOrganizationHealthResponse] -> ShowS
$cshowList :: [DescribeOrganizationHealthResponse] -> ShowS
show :: DescribeOrganizationHealthResponse -> String
$cshow :: DescribeOrganizationHealthResponse -> String
showsPrec :: Int -> DescribeOrganizationHealthResponse -> ShowS
$cshowsPrec :: Int -> DescribeOrganizationHealthResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeOrganizationHealthResponse x
-> DescribeOrganizationHealthResponse
forall x.
DescribeOrganizationHealthResponse
-> Rep DescribeOrganizationHealthResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeOrganizationHealthResponse x
-> DescribeOrganizationHealthResponse
$cfrom :: forall x.
DescribeOrganizationHealthResponse
-> Rep DescribeOrganizationHealthResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeOrganizationHealthResponse' 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:
--
-- 'httpStatus', 'describeOrganizationHealthResponse_httpStatus' - The response's http status code.
--
-- 'openReactiveInsights', 'describeOrganizationHealthResponse_openReactiveInsights' - An integer that specifies the number of open reactive insights in your
-- Amazon Web Services account.
--
-- 'openProactiveInsights', 'describeOrganizationHealthResponse_openProactiveInsights' - An integer that specifies the number of open proactive insights in your
-- Amazon Web Services account.
--
-- 'metricsAnalyzed', 'describeOrganizationHealthResponse_metricsAnalyzed' - An integer that specifies the number of metrics that have been analyzed
-- in your organization.
--
-- 'resourceHours', 'describeOrganizationHealthResponse_resourceHours' - The number of Amazon DevOps Guru resource analysis hours billed to the
-- current Amazon Web Services account in the last hour.
newDescribeOrganizationHealthResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'openReactiveInsights'
  Prelude.Int ->
  -- | 'openProactiveInsights'
  Prelude.Int ->
  -- | 'metricsAnalyzed'
  Prelude.Int ->
  -- | 'resourceHours'
  Prelude.Integer ->
  DescribeOrganizationHealthResponse
newDescribeOrganizationHealthResponse :: Int
-> Int
-> Int
-> Int
-> Integer
-> DescribeOrganizationHealthResponse
newDescribeOrganizationHealthResponse
  Int
pHttpStatus_
  Int
pOpenReactiveInsights_
  Int
pOpenProactiveInsights_
  Int
pMetricsAnalyzed_
  Integer
pResourceHours_ =
    DescribeOrganizationHealthResponse'
      { $sel:httpStatus:DescribeOrganizationHealthResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:openReactiveInsights:DescribeOrganizationHealthResponse' :: Int
openReactiveInsights =
          Int
pOpenReactiveInsights_,
        $sel:openProactiveInsights:DescribeOrganizationHealthResponse' :: Int
openProactiveInsights =
          Int
pOpenProactiveInsights_,
        $sel:metricsAnalyzed:DescribeOrganizationHealthResponse' :: Int
metricsAnalyzed = Int
pMetricsAnalyzed_,
        $sel:resourceHours:DescribeOrganizationHealthResponse' :: Integer
resourceHours = Integer
pResourceHours_
      }

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

-- | An integer that specifies the number of open reactive insights in your
-- Amazon Web Services account.
describeOrganizationHealthResponse_openReactiveInsights :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int
describeOrganizationHealthResponse_openReactiveInsights :: Lens' DescribeOrganizationHealthResponse Int
describeOrganizationHealthResponse_openReactiveInsights = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealthResponse' {Int
openReactiveInsights :: Int
$sel:openReactiveInsights:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
openReactiveInsights} -> Int
openReactiveInsights) (\s :: DescribeOrganizationHealthResponse
s@DescribeOrganizationHealthResponse' {} Int
a -> DescribeOrganizationHealthResponse
s {$sel:openReactiveInsights:DescribeOrganizationHealthResponse' :: Int
openReactiveInsights = Int
a} :: DescribeOrganizationHealthResponse)

-- | An integer that specifies the number of open proactive insights in your
-- Amazon Web Services account.
describeOrganizationHealthResponse_openProactiveInsights :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int
describeOrganizationHealthResponse_openProactiveInsights :: Lens' DescribeOrganizationHealthResponse Int
describeOrganizationHealthResponse_openProactiveInsights = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealthResponse' {Int
openProactiveInsights :: Int
$sel:openProactiveInsights:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
openProactiveInsights} -> Int
openProactiveInsights) (\s :: DescribeOrganizationHealthResponse
s@DescribeOrganizationHealthResponse' {} Int
a -> DescribeOrganizationHealthResponse
s {$sel:openProactiveInsights:DescribeOrganizationHealthResponse' :: Int
openProactiveInsights = Int
a} :: DescribeOrganizationHealthResponse)

-- | An integer that specifies the number of metrics that have been analyzed
-- in your organization.
describeOrganizationHealthResponse_metricsAnalyzed :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Int
describeOrganizationHealthResponse_metricsAnalyzed :: Lens' DescribeOrganizationHealthResponse Int
describeOrganizationHealthResponse_metricsAnalyzed = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealthResponse' {Int
metricsAnalyzed :: Int
$sel:metricsAnalyzed:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
metricsAnalyzed} -> Int
metricsAnalyzed) (\s :: DescribeOrganizationHealthResponse
s@DescribeOrganizationHealthResponse' {} Int
a -> DescribeOrganizationHealthResponse
s {$sel:metricsAnalyzed:DescribeOrganizationHealthResponse' :: Int
metricsAnalyzed = Int
a} :: DescribeOrganizationHealthResponse)

-- | The number of Amazon DevOps Guru resource analysis hours billed to the
-- current Amazon Web Services account in the last hour.
describeOrganizationHealthResponse_resourceHours :: Lens.Lens' DescribeOrganizationHealthResponse Prelude.Integer
describeOrganizationHealthResponse_resourceHours :: Lens' DescribeOrganizationHealthResponse Integer
describeOrganizationHealthResponse_resourceHours = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeOrganizationHealthResponse' {Integer
resourceHours :: Integer
$sel:resourceHours:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Integer
resourceHours} -> Integer
resourceHours) (\s :: DescribeOrganizationHealthResponse
s@DescribeOrganizationHealthResponse' {} Integer
a -> DescribeOrganizationHealthResponse
s {$sel:resourceHours:DescribeOrganizationHealthResponse' :: Integer
resourceHours = Integer
a} :: DescribeOrganizationHealthResponse)

instance
  Prelude.NFData
    DescribeOrganizationHealthResponse
  where
  rnf :: DescribeOrganizationHealthResponse -> ()
rnf DescribeOrganizationHealthResponse' {Int
Integer
resourceHours :: Integer
metricsAnalyzed :: Int
openProactiveInsights :: Int
openReactiveInsights :: Int
httpStatus :: Int
$sel:resourceHours:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Integer
$sel:metricsAnalyzed:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
$sel:openProactiveInsights:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
$sel:openReactiveInsights:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
$sel:httpStatus:DescribeOrganizationHealthResponse' :: DescribeOrganizationHealthResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
openReactiveInsights
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
openProactiveInsights
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
metricsAnalyzed
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Integer
resourceHours