{-# 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.ResilienceHub.Types.AppAssessmentSummary
-- 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.ResilienceHub.Types.AppAssessmentSummary 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
import Amazonka.ResilienceHub.Types.AssessmentInvoker
import Amazonka.ResilienceHub.Types.AssessmentStatus
import Amazonka.ResilienceHub.Types.ComplianceStatus
import Amazonka.ResilienceHub.Types.Cost

-- | Defines an application assessment summary.
--
-- /See:/ 'newAppAssessmentSummary' smart constructor.
data AppAssessmentSummary = AppAssessmentSummary'
  { -- | The Amazon Resource Name (ARN) of the application. The format for this
    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    AppAssessmentSummary -> Maybe Text
appArn :: Prelude.Maybe Prelude.Text,
    -- | The version of the application.
    AppAssessmentSummary -> Maybe Text
appVersion :: Prelude.Maybe Prelude.Text,
    -- | The name of the assessment.
    AppAssessmentSummary -> Maybe Text
assessmentName :: Prelude.Maybe Prelude.Text,
    -- | The current status of compliance for the resiliency policy.
    AppAssessmentSummary -> Maybe ComplianceStatus
complianceStatus :: Prelude.Maybe ComplianceStatus,
    -- | The cost for the application.
    AppAssessmentSummary -> Maybe Cost
cost :: Prelude.Maybe Cost,
    -- | The end time for the action.
    AppAssessmentSummary -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | The entity that invoked the assessment.
    AppAssessmentSummary -> Maybe AssessmentInvoker
invoker :: Prelude.Maybe AssessmentInvoker,
    -- | The message from the assessment run.
    AppAssessmentSummary -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
    -- | The current resiliency score for the application.
    AppAssessmentSummary -> Maybe Double
resiliencyScore :: Prelude.Maybe Prelude.Double,
    -- | The starting time for the action.
    AppAssessmentSummary -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the assessment. The format for this
    -- ARN is:
    -- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    AppAssessmentSummary -> Text
assessmentArn :: Prelude.Text,
    -- | The current status of the assessment for the resiliency policy.
    AppAssessmentSummary -> AssessmentStatus
assessmentStatus :: AssessmentStatus
  }
  deriving (AppAssessmentSummary -> AppAssessmentSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppAssessmentSummary -> AppAssessmentSummary -> Bool
$c/= :: AppAssessmentSummary -> AppAssessmentSummary -> Bool
== :: AppAssessmentSummary -> AppAssessmentSummary -> Bool
$c== :: AppAssessmentSummary -> AppAssessmentSummary -> Bool
Prelude.Eq, ReadPrec [AppAssessmentSummary]
ReadPrec AppAssessmentSummary
Int -> ReadS AppAssessmentSummary
ReadS [AppAssessmentSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AppAssessmentSummary]
$creadListPrec :: ReadPrec [AppAssessmentSummary]
readPrec :: ReadPrec AppAssessmentSummary
$creadPrec :: ReadPrec AppAssessmentSummary
readList :: ReadS [AppAssessmentSummary]
$creadList :: ReadS [AppAssessmentSummary]
readsPrec :: Int -> ReadS AppAssessmentSummary
$creadsPrec :: Int -> ReadS AppAssessmentSummary
Prelude.Read, Int -> AppAssessmentSummary -> ShowS
[AppAssessmentSummary] -> ShowS
AppAssessmentSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppAssessmentSummary] -> ShowS
$cshowList :: [AppAssessmentSummary] -> ShowS
show :: AppAssessmentSummary -> String
$cshow :: AppAssessmentSummary -> String
showsPrec :: Int -> AppAssessmentSummary -> ShowS
$cshowsPrec :: Int -> AppAssessmentSummary -> ShowS
Prelude.Show, forall x. Rep AppAssessmentSummary x -> AppAssessmentSummary
forall x. AppAssessmentSummary -> Rep AppAssessmentSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AppAssessmentSummary x -> AppAssessmentSummary
$cfrom :: forall x. AppAssessmentSummary -> Rep AppAssessmentSummary x
Prelude.Generic)

-- |
-- Create a value of 'AppAssessmentSummary' 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:
--
-- 'appArn', 'appAssessmentSummary_appArn' - The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
--
-- 'appVersion', 'appAssessmentSummary_appVersion' - The version of the application.
--
-- 'assessmentName', 'appAssessmentSummary_assessmentName' - The name of the assessment.
--
-- 'complianceStatus', 'appAssessmentSummary_complianceStatus' - The current status of compliance for the resiliency policy.
--
-- 'cost', 'appAssessmentSummary_cost' - The cost for the application.
--
-- 'endTime', 'appAssessmentSummary_endTime' - The end time for the action.
--
-- 'invoker', 'appAssessmentSummary_invoker' - The entity that invoked the assessment.
--
-- 'message', 'appAssessmentSummary_message' - The message from the assessment run.
--
-- 'resiliencyScore', 'appAssessmentSummary_resiliencyScore' - The current resiliency score for the application.
--
-- 'startTime', 'appAssessmentSummary_startTime' - The starting time for the action.
--
-- 'assessmentArn', 'appAssessmentSummary_assessmentArn' - The Amazon Resource Name (ARN) of the assessment. The format for this
-- ARN is:
-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
--
-- 'assessmentStatus', 'appAssessmentSummary_assessmentStatus' - The current status of the assessment for the resiliency policy.
newAppAssessmentSummary ::
  -- | 'assessmentArn'
  Prelude.Text ->
  -- | 'assessmentStatus'
  AssessmentStatus ->
  AppAssessmentSummary
newAppAssessmentSummary :: Text -> AssessmentStatus -> AppAssessmentSummary
newAppAssessmentSummary
  Text
pAssessmentArn_
  AssessmentStatus
pAssessmentStatus_ =
    AppAssessmentSummary'
      { $sel:appArn:AppAssessmentSummary' :: Maybe Text
appArn = forall a. Maybe a
Prelude.Nothing,
        $sel:appVersion:AppAssessmentSummary' :: Maybe Text
appVersion = forall a. Maybe a
Prelude.Nothing,
        $sel:assessmentName:AppAssessmentSummary' :: Maybe Text
assessmentName = forall a. Maybe a
Prelude.Nothing,
        $sel:complianceStatus:AppAssessmentSummary' :: Maybe ComplianceStatus
complianceStatus = forall a. Maybe a
Prelude.Nothing,
        $sel:cost:AppAssessmentSummary' :: Maybe Cost
cost = forall a. Maybe a
Prelude.Nothing,
        $sel:endTime:AppAssessmentSummary' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
        $sel:invoker:AppAssessmentSummary' :: Maybe AssessmentInvoker
invoker = forall a. Maybe a
Prelude.Nothing,
        $sel:message:AppAssessmentSummary' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
        $sel:resiliencyScore:AppAssessmentSummary' :: Maybe Double
resiliencyScore = forall a. Maybe a
Prelude.Nothing,
        $sel:startTime:AppAssessmentSummary' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
        $sel:assessmentArn:AppAssessmentSummary' :: Text
assessmentArn = Text
pAssessmentArn_,
        $sel:assessmentStatus:AppAssessmentSummary' :: AssessmentStatus
assessmentStatus = AssessmentStatus
pAssessmentStatus_
      }

-- | The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
appAssessmentSummary_appArn :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)
appAssessmentSummary_appArn :: Lens' AppAssessmentSummary (Maybe Text)
appAssessmentSummary_appArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Text
appArn :: Maybe Text
$sel:appArn:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
appArn} -> Maybe Text
appArn) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Text
a -> AppAssessmentSummary
s {$sel:appArn:AppAssessmentSummary' :: Maybe Text
appArn = Maybe Text
a} :: AppAssessmentSummary)

-- | The version of the application.
appAssessmentSummary_appVersion :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)
appAssessmentSummary_appVersion :: Lens' AppAssessmentSummary (Maybe Text)
appAssessmentSummary_appVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Text
appVersion :: Maybe Text
$sel:appVersion:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
appVersion} -> Maybe Text
appVersion) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Text
a -> AppAssessmentSummary
s {$sel:appVersion:AppAssessmentSummary' :: Maybe Text
appVersion = Maybe Text
a} :: AppAssessmentSummary)

-- | The name of the assessment.
appAssessmentSummary_assessmentName :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)
appAssessmentSummary_assessmentName :: Lens' AppAssessmentSummary (Maybe Text)
appAssessmentSummary_assessmentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Text
assessmentName :: Maybe Text
$sel:assessmentName:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
assessmentName} -> Maybe Text
assessmentName) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Text
a -> AppAssessmentSummary
s {$sel:assessmentName:AppAssessmentSummary' :: Maybe Text
assessmentName = Maybe Text
a} :: AppAssessmentSummary)

-- | The current status of compliance for the resiliency policy.
appAssessmentSummary_complianceStatus :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe ComplianceStatus)
appAssessmentSummary_complianceStatus :: Lens' AppAssessmentSummary (Maybe ComplianceStatus)
appAssessmentSummary_complianceStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe ComplianceStatus
complianceStatus :: Maybe ComplianceStatus
$sel:complianceStatus:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe ComplianceStatus
complianceStatus} -> Maybe ComplianceStatus
complianceStatus) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe ComplianceStatus
a -> AppAssessmentSummary
s {$sel:complianceStatus:AppAssessmentSummary' :: Maybe ComplianceStatus
complianceStatus = Maybe ComplianceStatus
a} :: AppAssessmentSummary)

-- | The cost for the application.
appAssessmentSummary_cost :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Cost)
appAssessmentSummary_cost :: Lens' AppAssessmentSummary (Maybe Cost)
appAssessmentSummary_cost = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Cost
cost :: Maybe Cost
$sel:cost:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Cost
cost} -> Maybe Cost
cost) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Cost
a -> AppAssessmentSummary
s {$sel:cost:AppAssessmentSummary' :: Maybe Cost
cost = Maybe Cost
a} :: AppAssessmentSummary)

-- | The end time for the action.
appAssessmentSummary_endTime :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.UTCTime)
appAssessmentSummary_endTime :: Lens' AppAssessmentSummary (Maybe UTCTime)
appAssessmentSummary_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe POSIX
a -> AppAssessmentSummary
s {$sel:endTime:AppAssessmentSummary' :: Maybe POSIX
endTime = Maybe POSIX
a} :: AppAssessmentSummary) 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

-- | The entity that invoked the assessment.
appAssessmentSummary_invoker :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe AssessmentInvoker)
appAssessmentSummary_invoker :: Lens' AppAssessmentSummary (Maybe AssessmentInvoker)
appAssessmentSummary_invoker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe AssessmentInvoker
invoker :: Maybe AssessmentInvoker
$sel:invoker:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe AssessmentInvoker
invoker} -> Maybe AssessmentInvoker
invoker) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe AssessmentInvoker
a -> AppAssessmentSummary
s {$sel:invoker:AppAssessmentSummary' :: Maybe AssessmentInvoker
invoker = Maybe AssessmentInvoker
a} :: AppAssessmentSummary)

-- | The message from the assessment run.
appAssessmentSummary_message :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Text)
appAssessmentSummary_message :: Lens' AppAssessmentSummary (Maybe Text)
appAssessmentSummary_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Text
message :: Maybe Text
$sel:message:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
message} -> Maybe Text
message) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Text
a -> AppAssessmentSummary
s {$sel:message:AppAssessmentSummary' :: Maybe Text
message = Maybe Text
a} :: AppAssessmentSummary)

-- | The current resiliency score for the application.
appAssessmentSummary_resiliencyScore :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.Double)
appAssessmentSummary_resiliencyScore :: Lens' AppAssessmentSummary (Maybe Double)
appAssessmentSummary_resiliencyScore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe Double
resiliencyScore :: Maybe Double
$sel:resiliencyScore:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Double
resiliencyScore} -> Maybe Double
resiliencyScore) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe Double
a -> AppAssessmentSummary
s {$sel:resiliencyScore:AppAssessmentSummary' :: Maybe Double
resiliencyScore = Maybe Double
a} :: AppAssessmentSummary)

-- | The starting time for the action.
appAssessmentSummary_startTime :: Lens.Lens' AppAssessmentSummary (Prelude.Maybe Prelude.UTCTime)
appAssessmentSummary_startTime :: Lens' AppAssessmentSummary (Maybe UTCTime)
appAssessmentSummary_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Maybe POSIX
a -> AppAssessmentSummary
s {$sel:startTime:AppAssessmentSummary' :: Maybe POSIX
startTime = Maybe POSIX
a} :: AppAssessmentSummary) 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

-- | The Amazon Resource Name (ARN) of the assessment. The format for this
-- ARN is:
-- arn:@partition@:resiliencehub:@region@:@account@:app-assessment\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
appAssessmentSummary_assessmentArn :: Lens.Lens' AppAssessmentSummary Prelude.Text
appAssessmentSummary_assessmentArn :: Lens' AppAssessmentSummary Text
appAssessmentSummary_assessmentArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {Text
assessmentArn :: Text
$sel:assessmentArn:AppAssessmentSummary' :: AppAssessmentSummary -> Text
assessmentArn} -> Text
assessmentArn) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} Text
a -> AppAssessmentSummary
s {$sel:assessmentArn:AppAssessmentSummary' :: Text
assessmentArn = Text
a} :: AppAssessmentSummary)

-- | The current status of the assessment for the resiliency policy.
appAssessmentSummary_assessmentStatus :: Lens.Lens' AppAssessmentSummary AssessmentStatus
appAssessmentSummary_assessmentStatus :: Lens' AppAssessmentSummary AssessmentStatus
appAssessmentSummary_assessmentStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppAssessmentSummary' {AssessmentStatus
assessmentStatus :: AssessmentStatus
$sel:assessmentStatus:AppAssessmentSummary' :: AppAssessmentSummary -> AssessmentStatus
assessmentStatus} -> AssessmentStatus
assessmentStatus) (\s :: AppAssessmentSummary
s@AppAssessmentSummary' {} AssessmentStatus
a -> AppAssessmentSummary
s {$sel:assessmentStatus:AppAssessmentSummary' :: AssessmentStatus
assessmentStatus = AssessmentStatus
a} :: AppAssessmentSummary)

instance Data.FromJSON AppAssessmentSummary where
  parseJSON :: Value -> Parser AppAssessmentSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"AppAssessmentSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ComplianceStatus
-> Maybe Cost
-> Maybe POSIX
-> Maybe AssessmentInvoker
-> Maybe Text
-> Maybe Double
-> Maybe POSIX
-> Text
-> AssessmentStatus
-> AppAssessmentSummary
AppAssessmentSummary'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"appArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"appVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"assessmentName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"complianceStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"cost")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"endTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"invoker")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"message")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"resiliencyScore")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"startTime")
            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
"assessmentArn")
            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
"assessmentStatus")
      )

instance Prelude.Hashable AppAssessmentSummary where
  hashWithSalt :: Int -> AppAssessmentSummary -> Int
hashWithSalt Int
_salt AppAssessmentSummary' {Maybe Double
Maybe Text
Maybe POSIX
Maybe AssessmentInvoker
Maybe ComplianceStatus
Maybe Cost
Text
AssessmentStatus
assessmentStatus :: AssessmentStatus
assessmentArn :: Text
startTime :: Maybe POSIX
resiliencyScore :: Maybe Double
message :: Maybe Text
invoker :: Maybe AssessmentInvoker
endTime :: Maybe POSIX
cost :: Maybe Cost
complianceStatus :: Maybe ComplianceStatus
assessmentName :: Maybe Text
appVersion :: Maybe Text
appArn :: Maybe Text
$sel:assessmentStatus:AppAssessmentSummary' :: AppAssessmentSummary -> AssessmentStatus
$sel:assessmentArn:AppAssessmentSummary' :: AppAssessmentSummary -> Text
$sel:startTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
$sel:resiliencyScore:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Double
$sel:message:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:invoker:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe AssessmentInvoker
$sel:endTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
$sel:cost:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Cost
$sel:complianceStatus:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe ComplianceStatus
$sel:assessmentName:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:appVersion:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:appArn:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
assessmentName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComplianceStatus
complianceStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Cost
cost
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssessmentInvoker
invoker
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
message
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
resiliencyScore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assessmentArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AssessmentStatus
assessmentStatus

instance Prelude.NFData AppAssessmentSummary where
  rnf :: AppAssessmentSummary -> ()
rnf AppAssessmentSummary' {Maybe Double
Maybe Text
Maybe POSIX
Maybe AssessmentInvoker
Maybe ComplianceStatus
Maybe Cost
Text
AssessmentStatus
assessmentStatus :: AssessmentStatus
assessmentArn :: Text
startTime :: Maybe POSIX
resiliencyScore :: Maybe Double
message :: Maybe Text
invoker :: Maybe AssessmentInvoker
endTime :: Maybe POSIX
cost :: Maybe Cost
complianceStatus :: Maybe ComplianceStatus
assessmentName :: Maybe Text
appVersion :: Maybe Text
appArn :: Maybe Text
$sel:assessmentStatus:AppAssessmentSummary' :: AppAssessmentSummary -> AssessmentStatus
$sel:assessmentArn:AppAssessmentSummary' :: AppAssessmentSummary -> Text
$sel:startTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
$sel:resiliencyScore:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Double
$sel:message:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:invoker:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe AssessmentInvoker
$sel:endTime:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe POSIX
$sel:cost:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Cost
$sel:complianceStatus:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe ComplianceStatus
$sel:assessmentName:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:appVersion:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
$sel:appArn:AppAssessmentSummary' :: AppAssessmentSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
assessmentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComplianceStatus
complianceStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Cost
cost
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssessmentInvoker
invoker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
resiliencyScore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assessmentArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AssessmentStatus
assessmentStatus