amazonka-migrationhubstrategy-2.0: gen/Amazonka/MigrationHubStrategy/Types/AssessmentSummary.hs
{-# 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.MigrationHubStrategy.Types.AssessmentSummary
-- 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.MigrationHubStrategy.Types.AssessmentSummary where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubStrategy.Types.AntipatternReportStatus
import Amazonka.MigrationHubStrategy.Types.AntipatternSeveritySummary
import Amazonka.MigrationHubStrategy.Types.ApplicationComponentStatusSummary
import Amazonka.MigrationHubStrategy.Types.ApplicationComponentSummary
import Amazonka.MigrationHubStrategy.Types.S3Object
import Amazonka.MigrationHubStrategy.Types.ServerStatusSummary
import Amazonka.MigrationHubStrategy.Types.ServerSummary
import Amazonka.MigrationHubStrategy.Types.StrategySummary
import qualified Amazonka.Prelude as Prelude
-- | Contains the summary of the assessment results.
--
-- /See:/ 'newAssessmentSummary' smart constructor.
data AssessmentSummary = AssessmentSummary'
{ -- | The Amazon S3 object containing the anti-pattern report.
antipatternReportS3Object :: Prelude.Maybe S3Object,
-- | The status of the anti-pattern report.
antipatternReportStatus :: Prelude.Maybe AntipatternReportStatus,
-- | The status message of the anti-pattern report.
antipatternReportStatusMessage :: Prelude.Maybe Prelude.Text,
-- | The time the assessment was performed.
lastAnalyzedTimestamp :: Prelude.Maybe Data.POSIX,
-- | List of AntipatternSeveritySummary.
listAntipatternSeveritySummary :: Prelude.Maybe [AntipatternSeveritySummary],
-- | List of status summaries of the analyzed application components.
listApplicationComponentStatusSummary :: Prelude.Maybe [ApplicationComponentStatusSummary],
-- | List of ApplicationComponentStrategySummary.
listApplicationComponentStrategySummary :: Prelude.Maybe [StrategySummary],
-- | List of ApplicationComponentSummary.
listApplicationComponentSummary :: Prelude.Maybe [ApplicationComponentSummary],
-- | List of status summaries of the analyzed servers.
listServerStatusSummary :: Prelude.Maybe [ServerStatusSummary],
-- | List of ServerStrategySummary.
listServerStrategySummary :: Prelude.Maybe [StrategySummary],
-- | List of ServerSummary.
listServerSummary :: Prelude.Maybe [ServerSummary]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'AssessmentSummary' 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:
--
-- 'antipatternReportS3Object', 'assessmentSummary_antipatternReportS3Object' - The Amazon S3 object containing the anti-pattern report.
--
-- 'antipatternReportStatus', 'assessmentSummary_antipatternReportStatus' - The status of the anti-pattern report.
--
-- 'antipatternReportStatusMessage', 'assessmentSummary_antipatternReportStatusMessage' - The status message of the anti-pattern report.
--
-- 'lastAnalyzedTimestamp', 'assessmentSummary_lastAnalyzedTimestamp' - The time the assessment was performed.
--
-- 'listAntipatternSeveritySummary', 'assessmentSummary_listAntipatternSeveritySummary' - List of AntipatternSeveritySummary.
--
-- 'listApplicationComponentStatusSummary', 'assessmentSummary_listApplicationComponentStatusSummary' - List of status summaries of the analyzed application components.
--
-- 'listApplicationComponentStrategySummary', 'assessmentSummary_listApplicationComponentStrategySummary' - List of ApplicationComponentStrategySummary.
--
-- 'listApplicationComponentSummary', 'assessmentSummary_listApplicationComponentSummary' - List of ApplicationComponentSummary.
--
-- 'listServerStatusSummary', 'assessmentSummary_listServerStatusSummary' - List of status summaries of the analyzed servers.
--
-- 'listServerStrategySummary', 'assessmentSummary_listServerStrategySummary' - List of ServerStrategySummary.
--
-- 'listServerSummary', 'assessmentSummary_listServerSummary' - List of ServerSummary.
newAssessmentSummary ::
AssessmentSummary
newAssessmentSummary =
AssessmentSummary'
{ antipatternReportS3Object =
Prelude.Nothing,
antipatternReportStatus = Prelude.Nothing,
antipatternReportStatusMessage = Prelude.Nothing,
lastAnalyzedTimestamp = Prelude.Nothing,
listAntipatternSeveritySummary = Prelude.Nothing,
listApplicationComponentStatusSummary =
Prelude.Nothing,
listApplicationComponentStrategySummary =
Prelude.Nothing,
listApplicationComponentSummary = Prelude.Nothing,
listServerStatusSummary = Prelude.Nothing,
listServerStrategySummary = Prelude.Nothing,
listServerSummary = Prelude.Nothing
}
-- | The Amazon S3 object containing the anti-pattern report.
assessmentSummary_antipatternReportS3Object :: Lens.Lens' AssessmentSummary (Prelude.Maybe S3Object)
assessmentSummary_antipatternReportS3Object = Lens.lens (\AssessmentSummary' {antipatternReportS3Object} -> antipatternReportS3Object) (\s@AssessmentSummary' {} a -> s {antipatternReportS3Object = a} :: AssessmentSummary)
-- | The status of the anti-pattern report.
assessmentSummary_antipatternReportStatus :: Lens.Lens' AssessmentSummary (Prelude.Maybe AntipatternReportStatus)
assessmentSummary_antipatternReportStatus = Lens.lens (\AssessmentSummary' {antipatternReportStatus} -> antipatternReportStatus) (\s@AssessmentSummary' {} a -> s {antipatternReportStatus = a} :: AssessmentSummary)
-- | The status message of the anti-pattern report.
assessmentSummary_antipatternReportStatusMessage :: Lens.Lens' AssessmentSummary (Prelude.Maybe Prelude.Text)
assessmentSummary_antipatternReportStatusMessage = Lens.lens (\AssessmentSummary' {antipatternReportStatusMessage} -> antipatternReportStatusMessage) (\s@AssessmentSummary' {} a -> s {antipatternReportStatusMessage = a} :: AssessmentSummary)
-- | The time the assessment was performed.
assessmentSummary_lastAnalyzedTimestamp :: Lens.Lens' AssessmentSummary (Prelude.Maybe Prelude.UTCTime)
assessmentSummary_lastAnalyzedTimestamp = Lens.lens (\AssessmentSummary' {lastAnalyzedTimestamp} -> lastAnalyzedTimestamp) (\s@AssessmentSummary' {} a -> s {lastAnalyzedTimestamp = a} :: AssessmentSummary) Prelude.. Lens.mapping Data._Time
-- | List of AntipatternSeveritySummary.
assessmentSummary_listAntipatternSeveritySummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [AntipatternSeveritySummary])
assessmentSummary_listAntipatternSeveritySummary = Lens.lens (\AssessmentSummary' {listAntipatternSeveritySummary} -> listAntipatternSeveritySummary) (\s@AssessmentSummary' {} a -> s {listAntipatternSeveritySummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of status summaries of the analyzed application components.
assessmentSummary_listApplicationComponentStatusSummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [ApplicationComponentStatusSummary])
assessmentSummary_listApplicationComponentStatusSummary = Lens.lens (\AssessmentSummary' {listApplicationComponentStatusSummary} -> listApplicationComponentStatusSummary) (\s@AssessmentSummary' {} a -> s {listApplicationComponentStatusSummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of ApplicationComponentStrategySummary.
assessmentSummary_listApplicationComponentStrategySummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [StrategySummary])
assessmentSummary_listApplicationComponentStrategySummary = Lens.lens (\AssessmentSummary' {listApplicationComponentStrategySummary} -> listApplicationComponentStrategySummary) (\s@AssessmentSummary' {} a -> s {listApplicationComponentStrategySummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of ApplicationComponentSummary.
assessmentSummary_listApplicationComponentSummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [ApplicationComponentSummary])
assessmentSummary_listApplicationComponentSummary = Lens.lens (\AssessmentSummary' {listApplicationComponentSummary} -> listApplicationComponentSummary) (\s@AssessmentSummary' {} a -> s {listApplicationComponentSummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of status summaries of the analyzed servers.
assessmentSummary_listServerStatusSummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [ServerStatusSummary])
assessmentSummary_listServerStatusSummary = Lens.lens (\AssessmentSummary' {listServerStatusSummary} -> listServerStatusSummary) (\s@AssessmentSummary' {} a -> s {listServerStatusSummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of ServerStrategySummary.
assessmentSummary_listServerStrategySummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [StrategySummary])
assessmentSummary_listServerStrategySummary = Lens.lens (\AssessmentSummary' {listServerStrategySummary} -> listServerStrategySummary) (\s@AssessmentSummary' {} a -> s {listServerStrategySummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
-- | List of ServerSummary.
assessmentSummary_listServerSummary :: Lens.Lens' AssessmentSummary (Prelude.Maybe [ServerSummary])
assessmentSummary_listServerSummary = Lens.lens (\AssessmentSummary' {listServerSummary} -> listServerSummary) (\s@AssessmentSummary' {} a -> s {listServerSummary = a} :: AssessmentSummary) Prelude.. Lens.mapping Lens.coerced
instance Data.FromJSON AssessmentSummary where
parseJSON =
Data.withObject
"AssessmentSummary"
( \x ->
AssessmentSummary'
Prelude.<$> (x Data..:? "antipatternReportS3Object")
Prelude.<*> (x Data..:? "antipatternReportStatus")
Prelude.<*> (x Data..:? "antipatternReportStatusMessage")
Prelude.<*> (x Data..:? "lastAnalyzedTimestamp")
Prelude.<*> ( x
Data..:? "listAntipatternSeveritySummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listApplicationComponentStatusSummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listApplicationComponentStrategySummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listApplicationComponentSummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listServerStatusSummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listServerStrategySummary"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "listServerSummary"
Data..!= Prelude.mempty
)
)
instance Prelude.Hashable AssessmentSummary where
hashWithSalt _salt AssessmentSummary' {..} =
_salt
`Prelude.hashWithSalt` antipatternReportS3Object
`Prelude.hashWithSalt` antipatternReportStatus
`Prelude.hashWithSalt` antipatternReportStatusMessage
`Prelude.hashWithSalt` lastAnalyzedTimestamp
`Prelude.hashWithSalt` listAntipatternSeveritySummary
`Prelude.hashWithSalt` listApplicationComponentStatusSummary
`Prelude.hashWithSalt` listApplicationComponentStrategySummary
`Prelude.hashWithSalt` listApplicationComponentSummary
`Prelude.hashWithSalt` listServerStatusSummary
`Prelude.hashWithSalt` listServerStrategySummary
`Prelude.hashWithSalt` listServerSummary
instance Prelude.NFData AssessmentSummary where
rnf AssessmentSummary' {..} =
Prelude.rnf antipatternReportS3Object
`Prelude.seq` Prelude.rnf antipatternReportStatus
`Prelude.seq` Prelude.rnf antipatternReportStatusMessage
`Prelude.seq` Prelude.rnf lastAnalyzedTimestamp
`Prelude.seq` Prelude.rnf listAntipatternSeveritySummary
`Prelude.seq` Prelude.rnf listApplicationComponentStatusSummary
`Prelude.seq` Prelude.rnf listApplicationComponentStrategySummary
`Prelude.seq` Prelude.rnf listApplicationComponentSummary
`Prelude.seq` Prelude.rnf listServerStatusSummary
`Prelude.seq` Prelude.rnf listServerStrategySummary
`Prelude.seq` Prelude.rnf listServerSummary