{-# 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 #-}
module Amazonka.AuditManager.Types.AssessmentControl where
import Amazonka.AuditManager.Types.ControlComment
import Amazonka.AuditManager.Types.ControlResponse
import Amazonka.AuditManager.Types.ControlStatus
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
data AssessmentControl = AssessmentControl'
{
AssessmentControl -> Maybe Int
assessmentReportEvidenceCount :: Prelude.Maybe Prelude.Int,
:: Prelude.Maybe [ControlComment],
AssessmentControl -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
AssessmentControl -> Maybe Int
evidenceCount :: Prelude.Maybe Prelude.Int,
AssessmentControl -> Maybe [Text]
evidenceSources :: Prelude.Maybe [Prelude.Text],
AssessmentControl -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
AssessmentControl -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
AssessmentControl -> Maybe ControlResponse
response :: Prelude.Maybe ControlResponse,
AssessmentControl -> Maybe ControlStatus
status :: Prelude.Maybe ControlStatus
}
deriving (AssessmentControl -> AssessmentControl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssessmentControl -> AssessmentControl -> Bool
$c/= :: AssessmentControl -> AssessmentControl -> Bool
== :: AssessmentControl -> AssessmentControl -> Bool
$c== :: AssessmentControl -> AssessmentControl -> Bool
Prelude.Eq, ReadPrec [AssessmentControl]
ReadPrec AssessmentControl
Int -> ReadS AssessmentControl
ReadS [AssessmentControl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssessmentControl]
$creadListPrec :: ReadPrec [AssessmentControl]
readPrec :: ReadPrec AssessmentControl
$creadPrec :: ReadPrec AssessmentControl
readList :: ReadS [AssessmentControl]
$creadList :: ReadS [AssessmentControl]
readsPrec :: Int -> ReadS AssessmentControl
$creadsPrec :: Int -> ReadS AssessmentControl
Prelude.Read, Int -> AssessmentControl -> ShowS
[AssessmentControl] -> ShowS
AssessmentControl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssessmentControl] -> ShowS
$cshowList :: [AssessmentControl] -> ShowS
show :: AssessmentControl -> String
$cshow :: AssessmentControl -> String
showsPrec :: Int -> AssessmentControl -> ShowS
$cshowsPrec :: Int -> AssessmentControl -> ShowS
Prelude.Show, forall x. Rep AssessmentControl x -> AssessmentControl
forall x. AssessmentControl -> Rep AssessmentControl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssessmentControl x -> AssessmentControl
$cfrom :: forall x. AssessmentControl -> Rep AssessmentControl x
Prelude.Generic)
newAssessmentControl ::
AssessmentControl
newAssessmentControl :: AssessmentControl
newAssessmentControl =
AssessmentControl'
{ $sel:assessmentReportEvidenceCount:AssessmentControl' :: Maybe Int
assessmentReportEvidenceCount =
forall a. Maybe a
Prelude.Nothing,
$sel:comments:AssessmentControl' :: Maybe [ControlComment]
comments = forall a. Maybe a
Prelude.Nothing,
$sel:description:AssessmentControl' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:evidenceCount:AssessmentControl' :: Maybe Int
evidenceCount = forall a. Maybe a
Prelude.Nothing,
$sel:evidenceSources:AssessmentControl' :: Maybe [Text]
evidenceSources = forall a. Maybe a
Prelude.Nothing,
$sel:id:AssessmentControl' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
$sel:name:AssessmentControl' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:response:AssessmentControl' :: Maybe ControlResponse
response = forall a. Maybe a
Prelude.Nothing,
$sel:status:AssessmentControl' :: Maybe ControlStatus
status = forall a. Maybe a
Prelude.Nothing
}
assessmentControl_assessmentReportEvidenceCount :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Int)
assessmentControl_assessmentReportEvidenceCount :: Lens' AssessmentControl (Maybe Int)
assessmentControl_assessmentReportEvidenceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe Int
assessmentReportEvidenceCount :: Maybe Int
$sel:assessmentReportEvidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
assessmentReportEvidenceCount} -> Maybe Int
assessmentReportEvidenceCount) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe Int
a -> AssessmentControl
s {$sel:assessmentReportEvidenceCount:AssessmentControl' :: Maybe Int
assessmentReportEvidenceCount = Maybe Int
a} :: AssessmentControl)
assessmentControl_comments :: Lens.Lens' AssessmentControl (Prelude.Maybe [ControlComment])
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe [ControlComment]
comments :: Maybe [ControlComment]
$sel:comments:AssessmentControl' :: AssessmentControl -> Maybe [ControlComment]
comments} -> Maybe [ControlComment]
comments) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe [ControlComment]
a -> AssessmentControl
s {$sel:comments:AssessmentControl' :: Maybe [ControlComment]
comments = Maybe [ControlComment]
a} :: AssessmentControl) 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
assessmentControl_description :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
assessmentControl_description :: Lens' AssessmentControl (Maybe Text)
assessmentControl_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe Text
description :: Maybe Text
$sel:description:AssessmentControl' :: AssessmentControl -> Maybe Text
description} -> Maybe Text
description) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe Text
a -> AssessmentControl
s {$sel:description:AssessmentControl' :: Maybe Text
description = Maybe Text
a} :: AssessmentControl)
assessmentControl_evidenceCount :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Int)
assessmentControl_evidenceCount :: Lens' AssessmentControl (Maybe Int)
assessmentControl_evidenceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe Int
evidenceCount :: Maybe Int
$sel:evidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
evidenceCount} -> Maybe Int
evidenceCount) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe Int
a -> AssessmentControl
s {$sel:evidenceCount:AssessmentControl' :: Maybe Int
evidenceCount = Maybe Int
a} :: AssessmentControl)
assessmentControl_evidenceSources :: Lens.Lens' AssessmentControl (Prelude.Maybe [Prelude.Text])
assessmentControl_evidenceSources :: Lens' AssessmentControl (Maybe [Text])
assessmentControl_evidenceSources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe [Text]
evidenceSources :: Maybe [Text]
$sel:evidenceSources:AssessmentControl' :: AssessmentControl -> Maybe [Text]
evidenceSources} -> Maybe [Text]
evidenceSources) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe [Text]
a -> AssessmentControl
s {$sel:evidenceSources:AssessmentControl' :: Maybe [Text]
evidenceSources = Maybe [Text]
a} :: AssessmentControl) 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
assessmentControl_id :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
assessmentControl_id :: Lens' AssessmentControl (Maybe Text)
assessmentControl_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe Text
id :: Maybe Text
$sel:id:AssessmentControl' :: AssessmentControl -> Maybe Text
id} -> Maybe Text
id) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe Text
a -> AssessmentControl
s {$sel:id:AssessmentControl' :: Maybe Text
id = Maybe Text
a} :: AssessmentControl)
assessmentControl_name :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
assessmentControl_name :: Lens' AssessmentControl (Maybe Text)
assessmentControl_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe Text
name :: Maybe Text
$sel:name:AssessmentControl' :: AssessmentControl -> Maybe Text
name} -> Maybe Text
name) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe Text
a -> AssessmentControl
s {$sel:name:AssessmentControl' :: Maybe Text
name = Maybe Text
a} :: AssessmentControl)
assessmentControl_response :: Lens.Lens' AssessmentControl (Prelude.Maybe ControlResponse)
assessmentControl_response :: Lens' AssessmentControl (Maybe ControlResponse)
assessmentControl_response = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe ControlResponse
response :: Maybe ControlResponse
$sel:response:AssessmentControl' :: AssessmentControl -> Maybe ControlResponse
response} -> Maybe ControlResponse
response) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe ControlResponse
a -> AssessmentControl
s {$sel:response:AssessmentControl' :: Maybe ControlResponse
response = Maybe ControlResponse
a} :: AssessmentControl)
assessmentControl_status :: Lens.Lens' AssessmentControl (Prelude.Maybe ControlStatus)
assessmentControl_status :: Lens' AssessmentControl (Maybe ControlStatus)
assessmentControl_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControl' {Maybe ControlStatus
status :: Maybe ControlStatus
$sel:status:AssessmentControl' :: AssessmentControl -> Maybe ControlStatus
status} -> Maybe ControlStatus
status) (\s :: AssessmentControl
s@AssessmentControl' {} Maybe ControlStatus
a -> AssessmentControl
s {$sel:status:AssessmentControl' :: Maybe ControlStatus
status = Maybe ControlStatus
a} :: AssessmentControl)
instance Data.FromJSON AssessmentControl where
parseJSON :: Value -> Parser AssessmentControl
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AssessmentControl"
( \Object
x ->
Maybe Int
-> Maybe [ControlComment]
-> Maybe Text
-> Maybe Int
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe ControlResponse
-> Maybe ControlStatus
-> AssessmentControl
AssessmentControl'
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
"assessmentReportEvidenceCount")
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
"comments" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
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
"description")
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
"evidenceCount")
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
"evidenceSources"
forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
)
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
"id")
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
"name")
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
"response")
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
"status")
)
instance Prelude.Hashable AssessmentControl where
hashWithSalt :: Int -> AssessmentControl -> Int
hashWithSalt Int
_salt AssessmentControl' {Maybe Int
Maybe [Text]
Maybe [ControlComment]
Maybe Text
Maybe ControlResponse
Maybe ControlStatus
status :: Maybe ControlStatus
response :: Maybe ControlResponse
name :: Maybe Text
id :: Maybe Text
evidenceSources :: Maybe [Text]
evidenceCount :: Maybe Int
description :: Maybe Text
comments :: Maybe [ControlComment]
assessmentReportEvidenceCount :: Maybe Int
$sel:status:AssessmentControl' :: AssessmentControl -> Maybe ControlStatus
$sel:response:AssessmentControl' :: AssessmentControl -> Maybe ControlResponse
$sel:name:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:id:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:evidenceSources:AssessmentControl' :: AssessmentControl -> Maybe [Text]
$sel:evidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
$sel:description:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:comments:AssessmentControl' :: AssessmentControl -> Maybe [ControlComment]
$sel:assessmentReportEvidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
assessmentReportEvidenceCount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ControlComment]
comments
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
evidenceCount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
evidenceSources
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ControlResponse
response
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ControlStatus
status
instance Prelude.NFData AssessmentControl where
rnf :: AssessmentControl -> ()
rnf AssessmentControl' {Maybe Int
Maybe [Text]
Maybe [ControlComment]
Maybe Text
Maybe ControlResponse
Maybe ControlStatus
status :: Maybe ControlStatus
response :: Maybe ControlResponse
name :: Maybe Text
id :: Maybe Text
evidenceSources :: Maybe [Text]
evidenceCount :: Maybe Int
description :: Maybe Text
comments :: Maybe [ControlComment]
assessmentReportEvidenceCount :: Maybe Int
$sel:status:AssessmentControl' :: AssessmentControl -> Maybe ControlStatus
$sel:response:AssessmentControl' :: AssessmentControl -> Maybe ControlResponse
$sel:name:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:id:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:evidenceSources:AssessmentControl' :: AssessmentControl -> Maybe [Text]
$sel:evidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
$sel:description:AssessmentControl' :: AssessmentControl -> Maybe Text
$sel:comments:AssessmentControl' :: AssessmentControl -> Maybe [ControlComment]
$sel:assessmentReportEvidenceCount:AssessmentControl' :: AssessmentControl -> Maybe Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
assessmentReportEvidenceCount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ControlComment]
comments
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
evidenceCount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
evidenceSources
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ControlResponse
response
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ControlStatus
status