{-# 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.AssessmentMetadataItem where
import Amazonka.AuditManager.Types.AssessmentStatus
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 AssessmentMetadataItem = AssessmentMetadataItem'
{
AssessmentMetadataItem -> Maybe Text
complianceType :: Prelude.Maybe Prelude.Text,
AssessmentMetadataItem -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
AssessmentMetadataItem -> Maybe [Delegation]
delegations :: Prelude.Maybe [Delegation],
AssessmentMetadataItem -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
AssessmentMetadataItem -> Maybe POSIX
lastUpdated :: Prelude.Maybe Data.POSIX,
AssessmentMetadataItem -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
AssessmentMetadataItem -> Maybe [Role]
roles :: Prelude.Maybe [Role],
AssessmentMetadataItem -> Maybe AssessmentStatus
status :: Prelude.Maybe AssessmentStatus
}
deriving (AssessmentMetadataItem -> AssessmentMetadataItem -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssessmentMetadataItem -> AssessmentMetadataItem -> Bool
$c/= :: AssessmentMetadataItem -> AssessmentMetadataItem -> Bool
== :: AssessmentMetadataItem -> AssessmentMetadataItem -> Bool
$c== :: AssessmentMetadataItem -> AssessmentMetadataItem -> Bool
Prelude.Eq, ReadPrec [AssessmentMetadataItem]
ReadPrec AssessmentMetadataItem
Int -> ReadS AssessmentMetadataItem
ReadS [AssessmentMetadataItem]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssessmentMetadataItem]
$creadListPrec :: ReadPrec [AssessmentMetadataItem]
readPrec :: ReadPrec AssessmentMetadataItem
$creadPrec :: ReadPrec AssessmentMetadataItem
readList :: ReadS [AssessmentMetadataItem]
$creadList :: ReadS [AssessmentMetadataItem]
readsPrec :: Int -> ReadS AssessmentMetadataItem
$creadsPrec :: Int -> ReadS AssessmentMetadataItem
Prelude.Read, Int -> AssessmentMetadataItem -> ShowS
[AssessmentMetadataItem] -> ShowS
AssessmentMetadataItem -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssessmentMetadataItem] -> ShowS
$cshowList :: [AssessmentMetadataItem] -> ShowS
show :: AssessmentMetadataItem -> String
$cshow :: AssessmentMetadataItem -> String
showsPrec :: Int -> AssessmentMetadataItem -> ShowS
$cshowsPrec :: Int -> AssessmentMetadataItem -> ShowS
Prelude.Show, forall x. Rep AssessmentMetadataItem x -> AssessmentMetadataItem
forall x. AssessmentMetadataItem -> Rep AssessmentMetadataItem x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssessmentMetadataItem x -> AssessmentMetadataItem
$cfrom :: forall x. AssessmentMetadataItem -> Rep AssessmentMetadataItem x
Prelude.Generic)
newAssessmentMetadataItem ::
AssessmentMetadataItem
newAssessmentMetadataItem :: AssessmentMetadataItem
newAssessmentMetadataItem =
AssessmentMetadataItem'
{ $sel:complianceType:AssessmentMetadataItem' :: Maybe Text
complianceType =
forall a. Maybe a
Prelude.Nothing,
$sel:creationTime:AssessmentMetadataItem' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
$sel:delegations:AssessmentMetadataItem' :: Maybe [Delegation]
delegations = forall a. Maybe a
Prelude.Nothing,
$sel:id:AssessmentMetadataItem' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
$sel:lastUpdated:AssessmentMetadataItem' :: Maybe POSIX
lastUpdated = forall a. Maybe a
Prelude.Nothing,
$sel:name:AssessmentMetadataItem' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:roles:AssessmentMetadataItem' :: Maybe [Role]
roles = forall a. Maybe a
Prelude.Nothing,
$sel:status:AssessmentMetadataItem' :: Maybe AssessmentStatus
status = forall a. Maybe a
Prelude.Nothing
}
assessmentMetadataItem_complianceType :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
assessmentMetadataItem_complianceType :: Lens' AssessmentMetadataItem (Maybe Text)
assessmentMetadataItem_complianceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe Text
complianceType :: Maybe Text
$sel:complianceType:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
complianceType} -> Maybe Text
complianceType) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe Text
a -> AssessmentMetadataItem
s {$sel:complianceType:AssessmentMetadataItem' :: Maybe Text
complianceType = Maybe Text
a} :: AssessmentMetadataItem)
assessmentMetadataItem_creationTime :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.UTCTime)
assessmentMetadataItem_creationTime :: Lens' AssessmentMetadataItem (Maybe UTCTime)
assessmentMetadataItem_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe POSIX
a -> AssessmentMetadataItem
s {$sel:creationTime:AssessmentMetadataItem' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: AssessmentMetadataItem) 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
assessmentMetadataItem_delegations :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe [Delegation])
assessmentMetadataItem_delegations :: Lens' AssessmentMetadataItem (Maybe [Delegation])
assessmentMetadataItem_delegations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe [Delegation]
delegations :: Maybe [Delegation]
$sel:delegations:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Delegation]
delegations} -> Maybe [Delegation]
delegations) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe [Delegation]
a -> AssessmentMetadataItem
s {$sel:delegations:AssessmentMetadataItem' :: Maybe [Delegation]
delegations = Maybe [Delegation]
a} :: AssessmentMetadataItem) 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
assessmentMetadataItem_id :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
assessmentMetadataItem_id :: Lens' AssessmentMetadataItem (Maybe Text)
assessmentMetadataItem_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe Text
id :: Maybe Text
$sel:id:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
id} -> Maybe Text
id) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe Text
a -> AssessmentMetadataItem
s {$sel:id:AssessmentMetadataItem' :: Maybe Text
id = Maybe Text
a} :: AssessmentMetadataItem)
assessmentMetadataItem_lastUpdated :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.UTCTime)
assessmentMetadataItem_lastUpdated :: Lens' AssessmentMetadataItem (Maybe UTCTime)
assessmentMetadataItem_lastUpdated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe POSIX
lastUpdated :: Maybe POSIX
$sel:lastUpdated:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
lastUpdated} -> Maybe POSIX
lastUpdated) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe POSIX
a -> AssessmentMetadataItem
s {$sel:lastUpdated:AssessmentMetadataItem' :: Maybe POSIX
lastUpdated = Maybe POSIX
a} :: AssessmentMetadataItem) 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
assessmentMetadataItem_name :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
assessmentMetadataItem_name :: Lens' AssessmentMetadataItem (Maybe Text)
assessmentMetadataItem_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe Text
name :: Maybe Text
$sel:name:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
name} -> Maybe Text
name) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe Text
a -> AssessmentMetadataItem
s {$sel:name:AssessmentMetadataItem' :: Maybe Text
name = Maybe Text
a} :: AssessmentMetadataItem)
assessmentMetadataItem_roles :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe [Role])
assessmentMetadataItem_roles :: Lens' AssessmentMetadataItem (Maybe [Role])
assessmentMetadataItem_roles = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe [Role]
roles :: Maybe [Role]
$sel:roles:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Role]
roles} -> Maybe [Role]
roles) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe [Role]
a -> AssessmentMetadataItem
s {$sel:roles:AssessmentMetadataItem' :: Maybe [Role]
roles = Maybe [Role]
a} :: AssessmentMetadataItem) 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
assessmentMetadataItem_status :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe AssessmentStatus)
assessmentMetadataItem_status :: Lens' AssessmentMetadataItem (Maybe AssessmentStatus)
assessmentMetadataItem_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentMetadataItem' {Maybe AssessmentStatus
status :: Maybe AssessmentStatus
$sel:status:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe AssessmentStatus
status} -> Maybe AssessmentStatus
status) (\s :: AssessmentMetadataItem
s@AssessmentMetadataItem' {} Maybe AssessmentStatus
a -> AssessmentMetadataItem
s {$sel:status:AssessmentMetadataItem' :: Maybe AssessmentStatus
status = Maybe AssessmentStatus
a} :: AssessmentMetadataItem)
instance Data.FromJSON AssessmentMetadataItem where
parseJSON :: Value -> Parser AssessmentMetadataItem
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AssessmentMetadataItem"
( \Object
x ->
Maybe Text
-> Maybe POSIX
-> Maybe [Delegation]
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe [Role]
-> Maybe AssessmentStatus
-> AssessmentMetadataItem
AssessmentMetadataItem'
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
"complianceType")
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
"creationTime")
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
"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
"lastUpdated")
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
"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")
)
instance Prelude.Hashable AssessmentMetadataItem where
hashWithSalt :: Int -> AssessmentMetadataItem -> Int
hashWithSalt Int
_salt AssessmentMetadataItem' {Maybe [Role]
Maybe [Delegation]
Maybe Text
Maybe POSIX
Maybe AssessmentStatus
status :: Maybe AssessmentStatus
roles :: Maybe [Role]
name :: Maybe Text
lastUpdated :: Maybe POSIX
id :: Maybe Text
delegations :: Maybe [Delegation]
creationTime :: Maybe POSIX
complianceType :: Maybe Text
$sel:status:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe AssessmentStatus
$sel:roles:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Role]
$sel:name:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
$sel:lastUpdated:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
$sel:id:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
$sel:delegations:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Delegation]
$sel:creationTime:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
$sel:complianceType:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
complianceType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Delegation]
delegations
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdated
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Role]
roles
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssessmentStatus
status
instance Prelude.NFData AssessmentMetadataItem where
rnf :: AssessmentMetadataItem -> ()
rnf AssessmentMetadataItem' {Maybe [Role]
Maybe [Delegation]
Maybe Text
Maybe POSIX
Maybe AssessmentStatus
status :: Maybe AssessmentStatus
roles :: Maybe [Role]
name :: Maybe Text
lastUpdated :: Maybe POSIX
id :: Maybe Text
delegations :: Maybe [Delegation]
creationTime :: Maybe POSIX
complianceType :: Maybe Text
$sel:status:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe AssessmentStatus
$sel:roles:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Role]
$sel:name:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
$sel:lastUpdated:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
$sel:id:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
$sel:delegations:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe [Delegation]
$sel:creationTime:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe POSIX
$sel:complianceType:AssessmentMetadataItem' :: AssessmentMetadataItem -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
complianceType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
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
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdated
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 [Role]
roles
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssessmentStatus
status