{-# 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.IoTSiteWise.Types.AccessPolicySummary where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTSiteWise.Types.Identity
import Amazonka.IoTSiteWise.Types.Permission
import Amazonka.IoTSiteWise.Types.Resource
import qualified Amazonka.Prelude as Prelude
data AccessPolicySummary = AccessPolicySummary'
{
AccessPolicySummary -> Maybe POSIX
creationDate :: Prelude.Maybe Data.POSIX,
AccessPolicySummary -> Maybe POSIX
lastUpdateDate :: Prelude.Maybe Data.POSIX,
AccessPolicySummary -> Text
id :: Prelude.Text,
AccessPolicySummary -> Identity
identity :: Identity,
AccessPolicySummary -> Resource
resource :: Resource,
AccessPolicySummary -> Permission
permission :: Permission
}
deriving (AccessPolicySummary -> AccessPolicySummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessPolicySummary -> AccessPolicySummary -> Bool
$c/= :: AccessPolicySummary -> AccessPolicySummary -> Bool
== :: AccessPolicySummary -> AccessPolicySummary -> Bool
$c== :: AccessPolicySummary -> AccessPolicySummary -> Bool
Prelude.Eq, ReadPrec [AccessPolicySummary]
ReadPrec AccessPolicySummary
Int -> ReadS AccessPolicySummary
ReadS [AccessPolicySummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AccessPolicySummary]
$creadListPrec :: ReadPrec [AccessPolicySummary]
readPrec :: ReadPrec AccessPolicySummary
$creadPrec :: ReadPrec AccessPolicySummary
readList :: ReadS [AccessPolicySummary]
$creadList :: ReadS [AccessPolicySummary]
readsPrec :: Int -> ReadS AccessPolicySummary
$creadsPrec :: Int -> ReadS AccessPolicySummary
Prelude.Read, Int -> AccessPolicySummary -> ShowS
[AccessPolicySummary] -> ShowS
AccessPolicySummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AccessPolicySummary] -> ShowS
$cshowList :: [AccessPolicySummary] -> ShowS
show :: AccessPolicySummary -> String
$cshow :: AccessPolicySummary -> String
showsPrec :: Int -> AccessPolicySummary -> ShowS
$cshowsPrec :: Int -> AccessPolicySummary -> ShowS
Prelude.Show, forall x. Rep AccessPolicySummary x -> AccessPolicySummary
forall x. AccessPolicySummary -> Rep AccessPolicySummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AccessPolicySummary x -> AccessPolicySummary
$cfrom :: forall x. AccessPolicySummary -> Rep AccessPolicySummary x
Prelude.Generic)
newAccessPolicySummary ::
Prelude.Text ->
Identity ->
Resource ->
Permission ->
AccessPolicySummary
newAccessPolicySummary :: Text -> Identity -> Resource -> Permission -> AccessPolicySummary
newAccessPolicySummary
Text
pId_
Identity
pIdentity_
Resource
pResource_
Permission
pPermission_ =
AccessPolicySummary'
{ $sel:creationDate:AccessPolicySummary' :: Maybe POSIX
creationDate =
forall a. Maybe a
Prelude.Nothing,
$sel:lastUpdateDate:AccessPolicySummary' :: Maybe POSIX
lastUpdateDate = forall a. Maybe a
Prelude.Nothing,
$sel:id:AccessPolicySummary' :: Text
id = Text
pId_,
$sel:identity:AccessPolicySummary' :: Identity
identity = Identity
pIdentity_,
$sel:resource:AccessPolicySummary' :: Resource
resource = Resource
pResource_,
$sel:permission:AccessPolicySummary' :: Permission
permission = Permission
pPermission_
}
accessPolicySummary_creationDate :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.UTCTime)
accessPolicySummary_creationDate :: Lens' AccessPolicySummary (Maybe UTCTime)
accessPolicySummary_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Maybe POSIX
creationDate :: Maybe POSIX
$sel:creationDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
creationDate} -> Maybe POSIX
creationDate) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Maybe POSIX
a -> AccessPolicySummary
s {$sel:creationDate:AccessPolicySummary' :: Maybe POSIX
creationDate = Maybe POSIX
a} :: AccessPolicySummary) 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
accessPolicySummary_lastUpdateDate :: Lens.Lens' AccessPolicySummary (Prelude.Maybe Prelude.UTCTime)
accessPolicySummary_lastUpdateDate :: Lens' AccessPolicySummary (Maybe UTCTime)
accessPolicySummary_lastUpdateDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Maybe POSIX
lastUpdateDate :: Maybe POSIX
$sel:lastUpdateDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
lastUpdateDate} -> Maybe POSIX
lastUpdateDate) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Maybe POSIX
a -> AccessPolicySummary
s {$sel:lastUpdateDate:AccessPolicySummary' :: Maybe POSIX
lastUpdateDate = Maybe POSIX
a} :: AccessPolicySummary) 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
accessPolicySummary_id :: Lens.Lens' AccessPolicySummary Prelude.Text
accessPolicySummary_id :: Lens' AccessPolicySummary Text
accessPolicySummary_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Text
id :: Text
$sel:id:AccessPolicySummary' :: AccessPolicySummary -> Text
id} -> Text
id) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Text
a -> AccessPolicySummary
s {$sel:id:AccessPolicySummary' :: Text
id = Text
a} :: AccessPolicySummary)
accessPolicySummary_identity :: Lens.Lens' AccessPolicySummary Identity
accessPolicySummary_identity :: Lens' AccessPolicySummary Identity
accessPolicySummary_identity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Identity
identity :: Identity
$sel:identity:AccessPolicySummary' :: AccessPolicySummary -> Identity
identity} -> Identity
identity) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Identity
a -> AccessPolicySummary
s {$sel:identity:AccessPolicySummary' :: Identity
identity = Identity
a} :: AccessPolicySummary)
accessPolicySummary_resource :: Lens.Lens' AccessPolicySummary Resource
accessPolicySummary_resource :: Lens' AccessPolicySummary Resource
accessPolicySummary_resource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Resource
resource :: Resource
$sel:resource:AccessPolicySummary' :: AccessPolicySummary -> Resource
resource} -> Resource
resource) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Resource
a -> AccessPolicySummary
s {$sel:resource:AccessPolicySummary' :: Resource
resource = Resource
a} :: AccessPolicySummary)
accessPolicySummary_permission :: Lens.Lens' AccessPolicySummary Permission
accessPolicySummary_permission :: Lens' AccessPolicySummary Permission
accessPolicySummary_permission = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AccessPolicySummary' {Permission
permission :: Permission
$sel:permission:AccessPolicySummary' :: AccessPolicySummary -> Permission
permission} -> Permission
permission) (\s :: AccessPolicySummary
s@AccessPolicySummary' {} Permission
a -> AccessPolicySummary
s {$sel:permission:AccessPolicySummary' :: Permission
permission = Permission
a} :: AccessPolicySummary)
instance Data.FromJSON AccessPolicySummary where
parseJSON :: Value -> Parser AccessPolicySummary
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AccessPolicySummary"
( \Object
x ->
Maybe POSIX
-> Maybe POSIX
-> Text
-> Identity
-> Resource
-> Permission
-> AccessPolicySummary
AccessPolicySummary'
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
"creationDate")
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
"lastUpdateDate")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser 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 a
Data..: Key
"identity")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"resource")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"permission")
)
instance Prelude.Hashable AccessPolicySummary where
hashWithSalt :: Int -> AccessPolicySummary -> Int
hashWithSalt Int
_salt AccessPolicySummary' {Maybe POSIX
Text
Permission
Resource
Identity
permission :: Permission
resource :: Resource
identity :: Identity
id :: Text
lastUpdateDate :: Maybe POSIX
creationDate :: Maybe POSIX
$sel:permission:AccessPolicySummary' :: AccessPolicySummary -> Permission
$sel:resource:AccessPolicySummary' :: AccessPolicySummary -> Resource
$sel:identity:AccessPolicySummary' :: AccessPolicySummary -> Identity
$sel:id:AccessPolicySummary' :: AccessPolicySummary -> Text
$sel:lastUpdateDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
$sel:creationDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationDate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdateDate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Identity
identity
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Resource
resource
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Permission
permission
instance Prelude.NFData AccessPolicySummary where
rnf :: AccessPolicySummary -> ()
rnf AccessPolicySummary' {Maybe POSIX
Text
Permission
Resource
Identity
permission :: Permission
resource :: Resource
identity :: Identity
id :: Text
lastUpdateDate :: Maybe POSIX
creationDate :: Maybe POSIX
$sel:permission:AccessPolicySummary' :: AccessPolicySummary -> Permission
$sel:resource:AccessPolicySummary' :: AccessPolicySummary -> Resource
$sel:identity:AccessPolicySummary' :: AccessPolicySummary -> Identity
$sel:id:AccessPolicySummary' :: AccessPolicySummary -> Text
$sel:lastUpdateDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
$sel:creationDate:AccessPolicySummary' :: AccessPolicySummary -> Maybe POSIX
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdateDate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Identity
identity
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Resource
resource
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Permission
permission