{-# 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.Config.GetResourceEvaluationSummary
-- 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 a summary of resource evaluation for the specified resource
-- evaluation ID from the proactive rules that were run. The results
-- indicate which evaluation context was used to evaluate the rules, which
-- resource details were evaluated, the evaluation mode that was run, and
-- whether the resource details comply with the configuration of the
-- proactive rules.
module Amazonka.Config.GetResourceEvaluationSummary
  ( -- * Creating a Request
    GetResourceEvaluationSummary (..),
    newGetResourceEvaluationSummary,

    -- * Request Lenses
    getResourceEvaluationSummary_resourceEvaluationId,

    -- * Destructuring the Response
    GetResourceEvaluationSummaryResponse (..),
    newGetResourceEvaluationSummaryResponse,

    -- * Response Lenses
    getResourceEvaluationSummaryResponse_compliance,
    getResourceEvaluationSummaryResponse_evaluationContext,
    getResourceEvaluationSummaryResponse_evaluationMode,
    getResourceEvaluationSummaryResponse_evaluationStartTimestamp,
    getResourceEvaluationSummaryResponse_evaluationStatus,
    getResourceEvaluationSummaryResponse_resourceDetails,
    getResourceEvaluationSummaryResponse_resourceEvaluationId,
    getResourceEvaluationSummaryResponse_httpStatus,
  )
where

import Amazonka.Config.Types
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
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetResourceEvaluationSummary' smart constructor.
data GetResourceEvaluationSummary = GetResourceEvaluationSummary'
  { -- | The unique @ResourceEvaluationId@ of Amazon Web Services resource
    -- execution for which you want to retrieve the evaluation summary.
    GetResourceEvaluationSummary -> Text
resourceEvaluationId :: Prelude.Text
  }
  deriving (GetResourceEvaluationSummary
-> GetResourceEvaluationSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetResourceEvaluationSummary
-> GetResourceEvaluationSummary -> Bool
$c/= :: GetResourceEvaluationSummary
-> GetResourceEvaluationSummary -> Bool
== :: GetResourceEvaluationSummary
-> GetResourceEvaluationSummary -> Bool
$c== :: GetResourceEvaluationSummary
-> GetResourceEvaluationSummary -> Bool
Prelude.Eq, ReadPrec [GetResourceEvaluationSummary]
ReadPrec GetResourceEvaluationSummary
Int -> ReadS GetResourceEvaluationSummary
ReadS [GetResourceEvaluationSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetResourceEvaluationSummary]
$creadListPrec :: ReadPrec [GetResourceEvaluationSummary]
readPrec :: ReadPrec GetResourceEvaluationSummary
$creadPrec :: ReadPrec GetResourceEvaluationSummary
readList :: ReadS [GetResourceEvaluationSummary]
$creadList :: ReadS [GetResourceEvaluationSummary]
readsPrec :: Int -> ReadS GetResourceEvaluationSummary
$creadsPrec :: Int -> ReadS GetResourceEvaluationSummary
Prelude.Read, Int -> GetResourceEvaluationSummary -> ShowS
[GetResourceEvaluationSummary] -> ShowS
GetResourceEvaluationSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetResourceEvaluationSummary] -> ShowS
$cshowList :: [GetResourceEvaluationSummary] -> ShowS
show :: GetResourceEvaluationSummary -> String
$cshow :: GetResourceEvaluationSummary -> String
showsPrec :: Int -> GetResourceEvaluationSummary -> ShowS
$cshowsPrec :: Int -> GetResourceEvaluationSummary -> ShowS
Prelude.Show, forall x.
Rep GetResourceEvaluationSummary x -> GetResourceEvaluationSummary
forall x.
GetResourceEvaluationSummary -> Rep GetResourceEvaluationSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetResourceEvaluationSummary x -> GetResourceEvaluationSummary
$cfrom :: forall x.
GetResourceEvaluationSummary -> Rep GetResourceEvaluationSummary x
Prelude.Generic)

-- |
-- Create a value of 'GetResourceEvaluationSummary' 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:
--
-- 'resourceEvaluationId', 'getResourceEvaluationSummary_resourceEvaluationId' - The unique @ResourceEvaluationId@ of Amazon Web Services resource
-- execution for which you want to retrieve the evaluation summary.
newGetResourceEvaluationSummary ::
  -- | 'resourceEvaluationId'
  Prelude.Text ->
  GetResourceEvaluationSummary
newGetResourceEvaluationSummary :: Text -> GetResourceEvaluationSummary
newGetResourceEvaluationSummary
  Text
pResourceEvaluationId_ =
    GetResourceEvaluationSummary'
      { $sel:resourceEvaluationId:GetResourceEvaluationSummary' :: Text
resourceEvaluationId =
          Text
pResourceEvaluationId_
      }

-- | The unique @ResourceEvaluationId@ of Amazon Web Services resource
-- execution for which you want to retrieve the evaluation summary.
getResourceEvaluationSummary_resourceEvaluationId :: Lens.Lens' GetResourceEvaluationSummary Prelude.Text
getResourceEvaluationSummary_resourceEvaluationId :: Lens' GetResourceEvaluationSummary Text
getResourceEvaluationSummary_resourceEvaluationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummary' {Text
resourceEvaluationId :: Text
$sel:resourceEvaluationId:GetResourceEvaluationSummary' :: GetResourceEvaluationSummary -> Text
resourceEvaluationId} -> Text
resourceEvaluationId) (\s :: GetResourceEvaluationSummary
s@GetResourceEvaluationSummary' {} Text
a -> GetResourceEvaluationSummary
s {$sel:resourceEvaluationId:GetResourceEvaluationSummary' :: Text
resourceEvaluationId = Text
a} :: GetResourceEvaluationSummary)

instance Core.AWSRequest GetResourceEvaluationSummary where
  type
    AWSResponse GetResourceEvaluationSummary =
      GetResourceEvaluationSummaryResponse
  request :: (Service -> Service)
-> GetResourceEvaluationSummary
-> Request GetResourceEvaluationSummary
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 GetResourceEvaluationSummary
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetResourceEvaluationSummary)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe ComplianceType
-> Maybe EvaluationContext
-> Maybe EvaluationMode
-> Maybe POSIX
-> Maybe EvaluationStatus
-> Maybe ResourceDetails
-> Maybe Text
-> Int
-> GetResourceEvaluationSummaryResponse
GetResourceEvaluationSummaryResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Compliance")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EvaluationContext")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EvaluationMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EvaluationStartTimestamp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EvaluationStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResourceDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResourceEvaluationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    GetResourceEvaluationSummary
  where
  hashWithSalt :: Int -> GetResourceEvaluationSummary -> Int
hashWithSalt Int
_salt GetResourceEvaluationSummary' {Text
resourceEvaluationId :: Text
$sel:resourceEvaluationId:GetResourceEvaluationSummary' :: GetResourceEvaluationSummary -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceEvaluationId

instance Prelude.NFData GetResourceEvaluationSummary where
  rnf :: GetResourceEvaluationSummary -> ()
rnf GetResourceEvaluationSummary' {Text
resourceEvaluationId :: Text
$sel:resourceEvaluationId:GetResourceEvaluationSummary' :: GetResourceEvaluationSummary -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
resourceEvaluationId

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

instance Data.ToJSON GetResourceEvaluationSummary where
  toJSON :: GetResourceEvaluationSummary -> Value
toJSON GetResourceEvaluationSummary' {Text
resourceEvaluationId :: Text
$sel:resourceEvaluationId:GetResourceEvaluationSummary' :: GetResourceEvaluationSummary -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"ResourceEvaluationId"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceEvaluationId
              )
          ]
      )

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

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

-- | /See:/ 'newGetResourceEvaluationSummaryResponse' smart constructor.
data GetResourceEvaluationSummaryResponse = GetResourceEvaluationSummaryResponse'
  { -- | The compliance status of the resource evaluation summary.
    GetResourceEvaluationSummaryResponse -> Maybe ComplianceType
compliance :: Prelude.Maybe ComplianceType,
    -- | Returns an @EvaluationContext@ object.
    GetResourceEvaluationSummaryResponse -> Maybe EvaluationContext
evaluationContext :: Prelude.Maybe EvaluationContext,
    -- | Lists results of the mode that you requested to retrieve the resource
    -- evaluation summary. The valid values are Detective or Proactive.
    GetResourceEvaluationSummaryResponse -> Maybe EvaluationMode
evaluationMode :: Prelude.Maybe EvaluationMode,
    -- | The start timestamp when Config rule starts evaluating compliance for
    -- the provided resource details.
    GetResourceEvaluationSummaryResponse -> Maybe POSIX
evaluationStartTimestamp :: Prelude.Maybe Data.POSIX,
    -- | Returns an @EvaluationStatus@ object.
    GetResourceEvaluationSummaryResponse -> Maybe EvaluationStatus
evaluationStatus :: Prelude.Maybe EvaluationStatus,
    -- | Returns a @ResourceDetails@ object.
    GetResourceEvaluationSummaryResponse -> Maybe ResourceDetails
resourceDetails :: Prelude.Maybe ResourceDetails,
    -- | The unique @ResourceEvaluationId@ of Amazon Web Services resource
    -- execution for which you want to retrieve the evaluation summary.
    GetResourceEvaluationSummaryResponse -> Maybe Text
resourceEvaluationId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetResourceEvaluationSummaryResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetResourceEvaluationSummaryResponse
-> GetResourceEvaluationSummaryResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetResourceEvaluationSummaryResponse
-> GetResourceEvaluationSummaryResponse -> Bool
$c/= :: GetResourceEvaluationSummaryResponse
-> GetResourceEvaluationSummaryResponse -> Bool
== :: GetResourceEvaluationSummaryResponse
-> GetResourceEvaluationSummaryResponse -> Bool
$c== :: GetResourceEvaluationSummaryResponse
-> GetResourceEvaluationSummaryResponse -> Bool
Prelude.Eq, ReadPrec [GetResourceEvaluationSummaryResponse]
ReadPrec GetResourceEvaluationSummaryResponse
Int -> ReadS GetResourceEvaluationSummaryResponse
ReadS [GetResourceEvaluationSummaryResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetResourceEvaluationSummaryResponse]
$creadListPrec :: ReadPrec [GetResourceEvaluationSummaryResponse]
readPrec :: ReadPrec GetResourceEvaluationSummaryResponse
$creadPrec :: ReadPrec GetResourceEvaluationSummaryResponse
readList :: ReadS [GetResourceEvaluationSummaryResponse]
$creadList :: ReadS [GetResourceEvaluationSummaryResponse]
readsPrec :: Int -> ReadS GetResourceEvaluationSummaryResponse
$creadsPrec :: Int -> ReadS GetResourceEvaluationSummaryResponse
Prelude.Read, Int -> GetResourceEvaluationSummaryResponse -> ShowS
[GetResourceEvaluationSummaryResponse] -> ShowS
GetResourceEvaluationSummaryResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetResourceEvaluationSummaryResponse] -> ShowS
$cshowList :: [GetResourceEvaluationSummaryResponse] -> ShowS
show :: GetResourceEvaluationSummaryResponse -> String
$cshow :: GetResourceEvaluationSummaryResponse -> String
showsPrec :: Int -> GetResourceEvaluationSummaryResponse -> ShowS
$cshowsPrec :: Int -> GetResourceEvaluationSummaryResponse -> ShowS
Prelude.Show, forall x.
Rep GetResourceEvaluationSummaryResponse x
-> GetResourceEvaluationSummaryResponse
forall x.
GetResourceEvaluationSummaryResponse
-> Rep GetResourceEvaluationSummaryResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetResourceEvaluationSummaryResponse x
-> GetResourceEvaluationSummaryResponse
$cfrom :: forall x.
GetResourceEvaluationSummaryResponse
-> Rep GetResourceEvaluationSummaryResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetResourceEvaluationSummaryResponse' 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:
--
-- 'compliance', 'getResourceEvaluationSummaryResponse_compliance' - The compliance status of the resource evaluation summary.
--
-- 'evaluationContext', 'getResourceEvaluationSummaryResponse_evaluationContext' - Returns an @EvaluationContext@ object.
--
-- 'evaluationMode', 'getResourceEvaluationSummaryResponse_evaluationMode' - Lists results of the mode that you requested to retrieve the resource
-- evaluation summary. The valid values are Detective or Proactive.
--
-- 'evaluationStartTimestamp', 'getResourceEvaluationSummaryResponse_evaluationStartTimestamp' - The start timestamp when Config rule starts evaluating compliance for
-- the provided resource details.
--
-- 'evaluationStatus', 'getResourceEvaluationSummaryResponse_evaluationStatus' - Returns an @EvaluationStatus@ object.
--
-- 'resourceDetails', 'getResourceEvaluationSummaryResponse_resourceDetails' - Returns a @ResourceDetails@ object.
--
-- 'resourceEvaluationId', 'getResourceEvaluationSummaryResponse_resourceEvaluationId' - The unique @ResourceEvaluationId@ of Amazon Web Services resource
-- execution for which you want to retrieve the evaluation summary.
--
-- 'httpStatus', 'getResourceEvaluationSummaryResponse_httpStatus' - The response's http status code.
newGetResourceEvaluationSummaryResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetResourceEvaluationSummaryResponse
newGetResourceEvaluationSummaryResponse :: Int -> GetResourceEvaluationSummaryResponse
newGetResourceEvaluationSummaryResponse Int
pHttpStatus_ =
  GetResourceEvaluationSummaryResponse'
    { $sel:compliance:GetResourceEvaluationSummaryResponse' :: Maybe ComplianceType
compliance =
        forall a. Maybe a
Prelude.Nothing,
      $sel:evaluationContext:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationContext
evaluationContext = forall a. Maybe a
Prelude.Nothing,
      $sel:evaluationMode:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationMode
evaluationMode = forall a. Maybe a
Prelude.Nothing,
      $sel:evaluationStartTimestamp:GetResourceEvaluationSummaryResponse' :: Maybe POSIX
evaluationStartTimestamp =
        forall a. Maybe a
Prelude.Nothing,
      $sel:evaluationStatus:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationStatus
evaluationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceDetails:GetResourceEvaluationSummaryResponse' :: Maybe ResourceDetails
resourceDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceEvaluationId:GetResourceEvaluationSummaryResponse' :: Maybe Text
resourceEvaluationId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetResourceEvaluationSummaryResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The compliance status of the resource evaluation summary.
getResourceEvaluationSummaryResponse_compliance :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe ComplianceType)
getResourceEvaluationSummaryResponse_compliance :: Lens' GetResourceEvaluationSummaryResponse (Maybe ComplianceType)
getResourceEvaluationSummaryResponse_compliance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe ComplianceType
compliance :: Maybe ComplianceType
$sel:compliance:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe ComplianceType
compliance} -> Maybe ComplianceType
compliance) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe ComplianceType
a -> GetResourceEvaluationSummaryResponse
s {$sel:compliance:GetResourceEvaluationSummaryResponse' :: Maybe ComplianceType
compliance = Maybe ComplianceType
a} :: GetResourceEvaluationSummaryResponse)

-- | Returns an @EvaluationContext@ object.
getResourceEvaluationSummaryResponse_evaluationContext :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe EvaluationContext)
getResourceEvaluationSummaryResponse_evaluationContext :: Lens'
  GetResourceEvaluationSummaryResponse (Maybe EvaluationContext)
getResourceEvaluationSummaryResponse_evaluationContext = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe EvaluationContext
evaluationContext :: Maybe EvaluationContext
$sel:evaluationContext:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationContext
evaluationContext} -> Maybe EvaluationContext
evaluationContext) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe EvaluationContext
a -> GetResourceEvaluationSummaryResponse
s {$sel:evaluationContext:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationContext
evaluationContext = Maybe EvaluationContext
a} :: GetResourceEvaluationSummaryResponse)

-- | Lists results of the mode that you requested to retrieve the resource
-- evaluation summary. The valid values are Detective or Proactive.
getResourceEvaluationSummaryResponse_evaluationMode :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe EvaluationMode)
getResourceEvaluationSummaryResponse_evaluationMode :: Lens' GetResourceEvaluationSummaryResponse (Maybe EvaluationMode)
getResourceEvaluationSummaryResponse_evaluationMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe EvaluationMode
evaluationMode :: Maybe EvaluationMode
$sel:evaluationMode:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationMode
evaluationMode} -> Maybe EvaluationMode
evaluationMode) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe EvaluationMode
a -> GetResourceEvaluationSummaryResponse
s {$sel:evaluationMode:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationMode
evaluationMode = Maybe EvaluationMode
a} :: GetResourceEvaluationSummaryResponse)

-- | The start timestamp when Config rule starts evaluating compliance for
-- the provided resource details.
getResourceEvaluationSummaryResponse_evaluationStartTimestamp :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe Prelude.UTCTime)
getResourceEvaluationSummaryResponse_evaluationStartTimestamp :: Lens' GetResourceEvaluationSummaryResponse (Maybe UTCTime)
getResourceEvaluationSummaryResponse_evaluationStartTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe POSIX
evaluationStartTimestamp :: Maybe POSIX
$sel:evaluationStartTimestamp:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe POSIX
evaluationStartTimestamp} -> Maybe POSIX
evaluationStartTimestamp) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe POSIX
a -> GetResourceEvaluationSummaryResponse
s {$sel:evaluationStartTimestamp:GetResourceEvaluationSummaryResponse' :: Maybe POSIX
evaluationStartTimestamp = Maybe POSIX
a} :: GetResourceEvaluationSummaryResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Returns an @EvaluationStatus@ object.
getResourceEvaluationSummaryResponse_evaluationStatus :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe EvaluationStatus)
getResourceEvaluationSummaryResponse_evaluationStatus :: Lens' GetResourceEvaluationSummaryResponse (Maybe EvaluationStatus)
getResourceEvaluationSummaryResponse_evaluationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe EvaluationStatus
evaluationStatus :: Maybe EvaluationStatus
$sel:evaluationStatus:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationStatus
evaluationStatus} -> Maybe EvaluationStatus
evaluationStatus) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe EvaluationStatus
a -> GetResourceEvaluationSummaryResponse
s {$sel:evaluationStatus:GetResourceEvaluationSummaryResponse' :: Maybe EvaluationStatus
evaluationStatus = Maybe EvaluationStatus
a} :: GetResourceEvaluationSummaryResponse)

-- | Returns a @ResourceDetails@ object.
getResourceEvaluationSummaryResponse_resourceDetails :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe ResourceDetails)
getResourceEvaluationSummaryResponse_resourceDetails :: Lens' GetResourceEvaluationSummaryResponse (Maybe ResourceDetails)
getResourceEvaluationSummaryResponse_resourceDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe ResourceDetails
resourceDetails :: Maybe ResourceDetails
$sel:resourceDetails:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe ResourceDetails
resourceDetails} -> Maybe ResourceDetails
resourceDetails) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe ResourceDetails
a -> GetResourceEvaluationSummaryResponse
s {$sel:resourceDetails:GetResourceEvaluationSummaryResponse' :: Maybe ResourceDetails
resourceDetails = Maybe ResourceDetails
a} :: GetResourceEvaluationSummaryResponse)

-- | The unique @ResourceEvaluationId@ of Amazon Web Services resource
-- execution for which you want to retrieve the evaluation summary.
getResourceEvaluationSummaryResponse_resourceEvaluationId :: Lens.Lens' GetResourceEvaluationSummaryResponse (Prelude.Maybe Prelude.Text)
getResourceEvaluationSummaryResponse_resourceEvaluationId :: Lens' GetResourceEvaluationSummaryResponse (Maybe Text)
getResourceEvaluationSummaryResponse_resourceEvaluationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceEvaluationSummaryResponse' {Maybe Text
resourceEvaluationId :: Maybe Text
$sel:resourceEvaluationId:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe Text
resourceEvaluationId} -> Maybe Text
resourceEvaluationId) (\s :: GetResourceEvaluationSummaryResponse
s@GetResourceEvaluationSummaryResponse' {} Maybe Text
a -> GetResourceEvaluationSummaryResponse
s {$sel:resourceEvaluationId:GetResourceEvaluationSummaryResponse' :: Maybe Text
resourceEvaluationId = Maybe Text
a} :: GetResourceEvaluationSummaryResponse)

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

instance
  Prelude.NFData
    GetResourceEvaluationSummaryResponse
  where
  rnf :: GetResourceEvaluationSummaryResponse -> ()
rnf GetResourceEvaluationSummaryResponse' {Int
Maybe Text
Maybe POSIX
Maybe ComplianceType
Maybe EvaluationContext
Maybe EvaluationMode
Maybe ResourceDetails
Maybe EvaluationStatus
httpStatus :: Int
resourceEvaluationId :: Maybe Text
resourceDetails :: Maybe ResourceDetails
evaluationStatus :: Maybe EvaluationStatus
evaluationStartTimestamp :: Maybe POSIX
evaluationMode :: Maybe EvaluationMode
evaluationContext :: Maybe EvaluationContext
compliance :: Maybe ComplianceType
$sel:httpStatus:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Int
$sel:resourceEvaluationId:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe Text
$sel:resourceDetails:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe ResourceDetails
$sel:evaluationStatus:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationStatus
$sel:evaluationStartTimestamp:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe POSIX
$sel:evaluationMode:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationMode
$sel:evaluationContext:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe EvaluationContext
$sel:compliance:GetResourceEvaluationSummaryResponse' :: GetResourceEvaluationSummaryResponse -> Maybe ComplianceType
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ComplianceType
compliance
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EvaluationContext
evaluationContext
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EvaluationMode
evaluationMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
evaluationStartTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EvaluationStatus
evaluationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceDetails
resourceDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceEvaluationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus