{-# 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.AssessmentControlSet where
import Amazonka.AuditManager.Types.AssessmentControl
import Amazonka.AuditManager.Types.ControlSetStatus
import Amazonka.AuditManager.Types.Delegation
import Amazonka.AuditManager.Types.Role
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 AssessmentControlSet = AssessmentControlSet'
{
AssessmentControlSet -> Maybe [AssessmentControl]
controls :: Prelude.Maybe [AssessmentControl],
AssessmentControlSet -> Maybe [Delegation]
delegations :: Prelude.Maybe [Delegation],
AssessmentControlSet -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
AssessmentControlSet -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
AssessmentControlSet -> Maybe Int
manualEvidenceCount :: Prelude.Maybe Prelude.Int,
AssessmentControlSet -> Maybe [Role]
roles :: Prelude.Maybe [Role],
AssessmentControlSet -> Maybe ControlSetStatus
status :: Prelude.Maybe ControlSetStatus,
AssessmentControlSet -> Maybe Int
systemEvidenceCount :: Prelude.Maybe Prelude.Int
}
deriving (AssessmentControlSet -> AssessmentControlSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssessmentControlSet -> AssessmentControlSet -> Bool
$c/= :: AssessmentControlSet -> AssessmentControlSet -> Bool
== :: AssessmentControlSet -> AssessmentControlSet -> Bool
$c== :: AssessmentControlSet -> AssessmentControlSet -> Bool
Prelude.Eq, ReadPrec [AssessmentControlSet]
ReadPrec AssessmentControlSet
Int -> ReadS AssessmentControlSet
ReadS [AssessmentControlSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssessmentControlSet]
$creadListPrec :: ReadPrec [AssessmentControlSet]
readPrec :: ReadPrec AssessmentControlSet
$creadPrec :: ReadPrec AssessmentControlSet
readList :: ReadS [AssessmentControlSet]
$creadList :: ReadS [AssessmentControlSet]
readsPrec :: Int -> ReadS AssessmentControlSet
$creadsPrec :: Int -> ReadS AssessmentControlSet
Prelude.Read, Int -> AssessmentControlSet -> ShowS
[AssessmentControlSet] -> ShowS
AssessmentControlSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssessmentControlSet] -> ShowS
$cshowList :: [AssessmentControlSet] -> ShowS
show :: AssessmentControlSet -> String
$cshow :: AssessmentControlSet -> String
showsPrec :: Int -> AssessmentControlSet -> ShowS
$cshowsPrec :: Int -> AssessmentControlSet -> ShowS
Prelude.Show, forall x. Rep AssessmentControlSet x -> AssessmentControlSet
forall x. AssessmentControlSet -> Rep AssessmentControlSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssessmentControlSet x -> AssessmentControlSet
$cfrom :: forall x. AssessmentControlSet -> Rep AssessmentControlSet x
Prelude.Generic)
newAssessmentControlSet ::
AssessmentControlSet
newAssessmentControlSet :: AssessmentControlSet
newAssessmentControlSet =
AssessmentControlSet'
{ $sel:controls:AssessmentControlSet' :: Maybe [AssessmentControl]
controls = forall a. Maybe a
Prelude.Nothing,
$sel:delegations:AssessmentControlSet' :: Maybe [Delegation]
delegations = forall a. Maybe a
Prelude.Nothing,
$sel:description:AssessmentControlSet' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:id:AssessmentControlSet' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
$sel:manualEvidenceCount:AssessmentControlSet' :: Maybe Int
manualEvidenceCount = forall a. Maybe a
Prelude.Nothing,
$sel:roles:AssessmentControlSet' :: Maybe [Role]
roles = forall a. Maybe a
Prelude.Nothing,
$sel:status:AssessmentControlSet' :: Maybe ControlSetStatus
status = forall a. Maybe a
Prelude.Nothing,
$sel:systemEvidenceCount:AssessmentControlSet' :: Maybe Int
systemEvidenceCount = forall a. Maybe a
Prelude.Nothing
}
assessmentControlSet_controls :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [AssessmentControl])
assessmentControlSet_controls :: Lens' AssessmentControlSet (Maybe [AssessmentControl])
assessmentControlSet_controls = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe [AssessmentControl]
controls :: Maybe [AssessmentControl]
$sel:controls:AssessmentControlSet' :: AssessmentControlSet -> Maybe [AssessmentControl]
controls} -> Maybe [AssessmentControl]
controls) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe [AssessmentControl]
a -> AssessmentControlSet
s {$sel:controls:AssessmentControlSet' :: Maybe [AssessmentControl]
controls = Maybe [AssessmentControl]
a} :: AssessmentControlSet) 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
assessmentControlSet_delegations :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [Delegation])
assessmentControlSet_delegations :: Lens' AssessmentControlSet (Maybe [Delegation])
assessmentControlSet_delegations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe [Delegation]
delegations :: Maybe [Delegation]
$sel:delegations:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Delegation]
delegations} -> Maybe [Delegation]
delegations) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe [Delegation]
a -> AssessmentControlSet
s {$sel:delegations:AssessmentControlSet' :: Maybe [Delegation]
delegations = Maybe [Delegation]
a} :: AssessmentControlSet) 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
assessmentControlSet_description :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Text)
assessmentControlSet_description :: Lens' AssessmentControlSet (Maybe Text)
assessmentControlSet_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe Text
description :: Maybe Text
$sel:description:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
description} -> Maybe Text
description) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe Text
a -> AssessmentControlSet
s {$sel:description:AssessmentControlSet' :: Maybe Text
description = Maybe Text
a} :: AssessmentControlSet)
assessmentControlSet_id :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Text)
assessmentControlSet_id :: Lens' AssessmentControlSet (Maybe Text)
assessmentControlSet_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe Text
id :: Maybe Text
$sel:id:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
id} -> Maybe Text
id) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe Text
a -> AssessmentControlSet
s {$sel:id:AssessmentControlSet' :: Maybe Text
id = Maybe Text
a} :: AssessmentControlSet)
assessmentControlSet_manualEvidenceCount :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Int)
assessmentControlSet_manualEvidenceCount :: Lens' AssessmentControlSet (Maybe Int)
assessmentControlSet_manualEvidenceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe Int
manualEvidenceCount :: Maybe Int
$sel:manualEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
manualEvidenceCount} -> Maybe Int
manualEvidenceCount) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe Int
a -> AssessmentControlSet
s {$sel:manualEvidenceCount:AssessmentControlSet' :: Maybe Int
manualEvidenceCount = Maybe Int
a} :: AssessmentControlSet)
assessmentControlSet_roles :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [Role])
assessmentControlSet_roles :: Lens' AssessmentControlSet (Maybe [Role])
assessmentControlSet_roles = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe [Role]
roles :: Maybe [Role]
$sel:roles:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Role]
roles} -> Maybe [Role]
roles) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe [Role]
a -> AssessmentControlSet
s {$sel:roles:AssessmentControlSet' :: Maybe [Role]
roles = Maybe [Role]
a} :: AssessmentControlSet) 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
assessmentControlSet_status :: Lens.Lens' AssessmentControlSet (Prelude.Maybe ControlSetStatus)
assessmentControlSet_status :: Lens' AssessmentControlSet (Maybe ControlSetStatus)
assessmentControlSet_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe ControlSetStatus
status :: Maybe ControlSetStatus
$sel:status:AssessmentControlSet' :: AssessmentControlSet -> Maybe ControlSetStatus
status} -> Maybe ControlSetStatus
status) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe ControlSetStatus
a -> AssessmentControlSet
s {$sel:status:AssessmentControlSet' :: Maybe ControlSetStatus
status = Maybe ControlSetStatus
a} :: AssessmentControlSet)
assessmentControlSet_systemEvidenceCount :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Int)
assessmentControlSet_systemEvidenceCount :: Lens' AssessmentControlSet (Maybe Int)
assessmentControlSet_systemEvidenceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentControlSet' {Maybe Int
systemEvidenceCount :: Maybe Int
$sel:systemEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
systemEvidenceCount} -> Maybe Int
systemEvidenceCount) (\s :: AssessmentControlSet
s@AssessmentControlSet' {} Maybe Int
a -> AssessmentControlSet
s {$sel:systemEvidenceCount:AssessmentControlSet' :: Maybe Int
systemEvidenceCount = Maybe Int
a} :: AssessmentControlSet)
instance Data.FromJSON AssessmentControlSet where
parseJSON :: Value -> Parser AssessmentControlSet
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AssessmentControlSet"
( \Object
x ->
Maybe [AssessmentControl]
-> Maybe [Delegation]
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [Role]
-> Maybe ControlSetStatus
-> Maybe Int
-> AssessmentControlSet
AssessmentControlSet'
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
"controls" 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
"delegations" 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
"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
"manualEvidenceCount")
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
"roles" 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
"status")
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
"systemEvidenceCount")
)
instance Prelude.Hashable AssessmentControlSet where
hashWithSalt :: Int -> AssessmentControlSet -> Int
hashWithSalt Int
_salt AssessmentControlSet' {Maybe Int
Maybe [AssessmentControl]
Maybe [Role]
Maybe [Delegation]
Maybe Text
Maybe ControlSetStatus
systemEvidenceCount :: Maybe Int
status :: Maybe ControlSetStatus
roles :: Maybe [Role]
manualEvidenceCount :: Maybe Int
id :: Maybe Text
description :: Maybe Text
delegations :: Maybe [Delegation]
controls :: Maybe [AssessmentControl]
$sel:systemEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
$sel:status:AssessmentControlSet' :: AssessmentControlSet -> Maybe ControlSetStatus
$sel:roles:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Role]
$sel:manualEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
$sel:id:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
$sel:description:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
$sel:delegations:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Delegation]
$sel:controls:AssessmentControlSet' :: AssessmentControlSet -> Maybe [AssessmentControl]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AssessmentControl]
controls
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Delegation]
delegations
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
manualEvidenceCount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Role]
roles
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ControlSetStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
systemEvidenceCount
instance Prelude.NFData AssessmentControlSet where
rnf :: AssessmentControlSet -> ()
rnf AssessmentControlSet' {Maybe Int
Maybe [AssessmentControl]
Maybe [Role]
Maybe [Delegation]
Maybe Text
Maybe ControlSetStatus
systemEvidenceCount :: Maybe Int
status :: Maybe ControlSetStatus
roles :: Maybe [Role]
manualEvidenceCount :: Maybe Int
id :: Maybe Text
description :: Maybe Text
delegations :: Maybe [Delegation]
controls :: Maybe [AssessmentControl]
$sel:systemEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
$sel:status:AssessmentControlSet' :: AssessmentControlSet -> Maybe ControlSetStatus
$sel:roles:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Role]
$sel:manualEvidenceCount:AssessmentControlSet' :: AssessmentControlSet -> Maybe Int
$sel:id:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
$sel:description:AssessmentControlSet' :: AssessmentControlSet -> Maybe Text
$sel:delegations:AssessmentControlSet' :: AssessmentControlSet -> Maybe [Delegation]
$sel:controls:AssessmentControlSet' :: AssessmentControlSet -> Maybe [AssessmentControl]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [AssessmentControl]
controls
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Delegation]
delegations
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 Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
manualEvidenceCount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Role]
roles
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ControlSetStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
systemEvidenceCount