amazonka-securityhub-2.0: gen/Amazonka/SecurityHub/Types/ClassificationResult.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.SecurityHub.Types.ClassificationResult
-- 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.SecurityHub.Types.ClassificationResult 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.SecurityHub.Types.ClassificationStatus
import Amazonka.SecurityHub.Types.CustomDataIdentifiersResult
import Amazonka.SecurityHub.Types.SensitiveDataResult
-- | Details about the sensitive data that was detected on the resource.
--
-- /See:/ 'newClassificationResult' smart constructor.
data ClassificationResult = ClassificationResult'
{ -- | Indicates whether there are additional occurrences of sensitive data
-- that are not included in the finding. This occurs when the number of
-- occurrences exceeds the maximum that can be included.
additionalOccurrences :: Prelude.Maybe Prelude.Bool,
-- | Provides details about sensitive data that was identified based on
-- customer-defined configuration.
customDataIdentifiers :: Prelude.Maybe CustomDataIdentifiersResult,
-- | The type of content that the finding applies to.
mimeType :: Prelude.Maybe Prelude.Text,
-- | Provides details about sensitive data that was identified based on
-- built-in configuration.
sensitiveData :: Prelude.Maybe [SensitiveDataResult],
-- | The total size in bytes of the affected data.
sizeClassified :: Prelude.Maybe Prelude.Integer,
-- | The current status of the sensitive data detection.
status :: Prelude.Maybe ClassificationStatus
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ClassificationResult' 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:
--
-- 'additionalOccurrences', 'classificationResult_additionalOccurrences' - Indicates whether there are additional occurrences of sensitive data
-- that are not included in the finding. This occurs when the number of
-- occurrences exceeds the maximum that can be included.
--
-- 'customDataIdentifiers', 'classificationResult_customDataIdentifiers' - Provides details about sensitive data that was identified based on
-- customer-defined configuration.
--
-- 'mimeType', 'classificationResult_mimeType' - The type of content that the finding applies to.
--
-- 'sensitiveData', 'classificationResult_sensitiveData' - Provides details about sensitive data that was identified based on
-- built-in configuration.
--
-- 'sizeClassified', 'classificationResult_sizeClassified' - The total size in bytes of the affected data.
--
-- 'status', 'classificationResult_status' - The current status of the sensitive data detection.
newClassificationResult ::
ClassificationResult
newClassificationResult =
ClassificationResult'
{ additionalOccurrences =
Prelude.Nothing,
customDataIdentifiers = Prelude.Nothing,
mimeType = Prelude.Nothing,
sensitiveData = Prelude.Nothing,
sizeClassified = Prelude.Nothing,
status = Prelude.Nothing
}
-- | Indicates whether there are additional occurrences of sensitive data
-- that are not included in the finding. This occurs when the number of
-- occurrences exceeds the maximum that can be included.
classificationResult_additionalOccurrences :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Bool)
classificationResult_additionalOccurrences = Lens.lens (\ClassificationResult' {additionalOccurrences} -> additionalOccurrences) (\s@ClassificationResult' {} a -> s {additionalOccurrences = a} :: ClassificationResult)
-- | Provides details about sensitive data that was identified based on
-- customer-defined configuration.
classificationResult_customDataIdentifiers :: Lens.Lens' ClassificationResult (Prelude.Maybe CustomDataIdentifiersResult)
classificationResult_customDataIdentifiers = Lens.lens (\ClassificationResult' {customDataIdentifiers} -> customDataIdentifiers) (\s@ClassificationResult' {} a -> s {customDataIdentifiers = a} :: ClassificationResult)
-- | The type of content that the finding applies to.
classificationResult_mimeType :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Text)
classificationResult_mimeType = Lens.lens (\ClassificationResult' {mimeType} -> mimeType) (\s@ClassificationResult' {} a -> s {mimeType = a} :: ClassificationResult)
-- | Provides details about sensitive data that was identified based on
-- built-in configuration.
classificationResult_sensitiveData :: Lens.Lens' ClassificationResult (Prelude.Maybe [SensitiveDataResult])
classificationResult_sensitiveData = Lens.lens (\ClassificationResult' {sensitiveData} -> sensitiveData) (\s@ClassificationResult' {} a -> s {sensitiveData = a} :: ClassificationResult) Prelude.. Lens.mapping Lens.coerced
-- | The total size in bytes of the affected data.
classificationResult_sizeClassified :: Lens.Lens' ClassificationResult (Prelude.Maybe Prelude.Integer)
classificationResult_sizeClassified = Lens.lens (\ClassificationResult' {sizeClassified} -> sizeClassified) (\s@ClassificationResult' {} a -> s {sizeClassified = a} :: ClassificationResult)
-- | The current status of the sensitive data detection.
classificationResult_status :: Lens.Lens' ClassificationResult (Prelude.Maybe ClassificationStatus)
classificationResult_status = Lens.lens (\ClassificationResult' {status} -> status) (\s@ClassificationResult' {} a -> s {status = a} :: ClassificationResult)
instance Data.FromJSON ClassificationResult where
parseJSON =
Data.withObject
"ClassificationResult"
( \x ->
ClassificationResult'
Prelude.<$> (x Data..:? "AdditionalOccurrences")
Prelude.<*> (x Data..:? "CustomDataIdentifiers")
Prelude.<*> (x Data..:? "MimeType")
Prelude.<*> (x Data..:? "SensitiveData" Data..!= Prelude.mempty)
Prelude.<*> (x Data..:? "SizeClassified")
Prelude.<*> (x Data..:? "Status")
)
instance Prelude.Hashable ClassificationResult where
hashWithSalt _salt ClassificationResult' {..} =
_salt
`Prelude.hashWithSalt` additionalOccurrences
`Prelude.hashWithSalt` customDataIdentifiers
`Prelude.hashWithSalt` mimeType
`Prelude.hashWithSalt` sensitiveData
`Prelude.hashWithSalt` sizeClassified
`Prelude.hashWithSalt` status
instance Prelude.NFData ClassificationResult where
rnf ClassificationResult' {..} =
Prelude.rnf additionalOccurrences
`Prelude.seq` Prelude.rnf customDataIdentifiers
`Prelude.seq` Prelude.rnf mimeType
`Prelude.seq` Prelude.rnf sensitiveData
`Prelude.seq` Prelude.rnf sizeClassified
`Prelude.seq` Prelude.rnf status
instance Data.ToJSON ClassificationResult where
toJSON ClassificationResult' {..} =
Data.object
( Prelude.catMaybes
[ ("AdditionalOccurrences" Data..=)
Prelude.<$> additionalOccurrences,
("CustomDataIdentifiers" Data..=)
Prelude.<$> customDataIdentifiers,
("MimeType" Data..=) Prelude.<$> mimeType,
("SensitiveData" Data..=) Prelude.<$> sensitiveData,
("SizeClassified" Data..=)
Prelude.<$> sizeClassified,
("Status" Data..=) Prelude.<$> status
]
)