module Stratosphere.IoTSiteWise.AccessPolicy.AccessPolicyResourceProperty (
module Exports, AccessPolicyResourceProperty(..),
mkAccessPolicyResourceProperty
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTSiteWise.AccessPolicy.PortalProperty as Exports
import {-# SOURCE #-} Stratosphere.IoTSiteWise.AccessPolicy.ProjectProperty as Exports
import Stratosphere.ResourceProperties
data AccessPolicyResourceProperty
=
AccessPolicyResourceProperty {AccessPolicyResourceProperty -> ()
haddock_workaround_ :: (),
AccessPolicyResourceProperty -> Maybe PortalProperty
portal :: (Prelude.Maybe PortalProperty),
AccessPolicyResourceProperty -> Maybe ProjectProperty
project :: (Prelude.Maybe ProjectProperty)}
deriving stock (AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool
(AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool)
-> (AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool)
-> Eq AccessPolicyResourceProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool
== :: AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool
$c/= :: AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool
/= :: AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> Bool
Prelude.Eq, Int -> AccessPolicyResourceProperty -> ShowS
[AccessPolicyResourceProperty] -> ShowS
AccessPolicyResourceProperty -> String
(Int -> AccessPolicyResourceProperty -> ShowS)
-> (AccessPolicyResourceProperty -> String)
-> ([AccessPolicyResourceProperty] -> ShowS)
-> Show AccessPolicyResourceProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessPolicyResourceProperty -> ShowS
showsPrec :: Int -> AccessPolicyResourceProperty -> ShowS
$cshow :: AccessPolicyResourceProperty -> String
show :: AccessPolicyResourceProperty -> String
$cshowList :: [AccessPolicyResourceProperty] -> ShowS
showList :: [AccessPolicyResourceProperty] -> ShowS
Prelude.Show)
mkAccessPolicyResourceProperty :: AccessPolicyResourceProperty
mkAccessPolicyResourceProperty :: AccessPolicyResourceProperty
mkAccessPolicyResourceProperty
= AccessPolicyResourceProperty
{haddock_workaround_ :: ()
haddock_workaround_ = (), portal :: Maybe PortalProperty
portal = Maybe PortalProperty
forall a. Maybe a
Prelude.Nothing,
project :: Maybe ProjectProperty
project = Maybe ProjectProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AccessPolicyResourceProperty where
toResourceProperties :: AccessPolicyResourceProperty -> ResourceProperties
toResourceProperties AccessPolicyResourceProperty {Maybe PortalProperty
Maybe ProjectProperty
()
haddock_workaround_ :: AccessPolicyResourceProperty -> ()
portal :: AccessPolicyResourceProperty -> Maybe PortalProperty
project :: AccessPolicyResourceProperty -> Maybe ProjectProperty
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
project :: Maybe ProjectProperty
..}
= ResourceProperties
{awsType :: Text
awsType = Text
"AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource",
supportsTags :: Bool
supportsTags = Bool
Prelude.False,
properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
[Key -> PortalProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Portal" (PortalProperty -> (Key, Value))
-> Maybe PortalProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PortalProperty
portal,
Key -> ProjectProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Project" (ProjectProperty -> (Key, Value))
-> Maybe ProjectProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProjectProperty
project])}
instance JSON.ToJSON AccessPolicyResourceProperty where
toJSON :: AccessPolicyResourceProperty -> Value
toJSON AccessPolicyResourceProperty {Maybe PortalProperty
Maybe ProjectProperty
()
haddock_workaround_ :: AccessPolicyResourceProperty -> ()
portal :: AccessPolicyResourceProperty -> Maybe PortalProperty
project :: AccessPolicyResourceProperty -> Maybe ProjectProperty
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
project :: Maybe ProjectProperty
..}
= [(Key, Value)] -> Value
JSON.object
([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
[Key -> PortalProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Portal" (PortalProperty -> (Key, Value))
-> Maybe PortalProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PortalProperty
portal,
Key -> ProjectProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Project" (ProjectProperty -> (Key, Value))
-> Maybe ProjectProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProjectProperty
project]))
instance Property "Portal" AccessPolicyResourceProperty where
type PropertyType "Portal" AccessPolicyResourceProperty = PortalProperty
set :: PropertyType "Portal" AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> AccessPolicyResourceProperty
set PropertyType "Portal" AccessPolicyResourceProperty
newValue AccessPolicyResourceProperty {Maybe PortalProperty
Maybe ProjectProperty
()
haddock_workaround_ :: AccessPolicyResourceProperty -> ()
portal :: AccessPolicyResourceProperty -> Maybe PortalProperty
project :: AccessPolicyResourceProperty -> Maybe ProjectProperty
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
project :: Maybe ProjectProperty
..}
= AccessPolicyResourceProperty {portal :: Maybe PortalProperty
portal = PortalProperty -> Maybe PortalProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Portal" AccessPolicyResourceProperty
PortalProperty
newValue, Maybe ProjectProperty
()
haddock_workaround_ :: ()
project :: Maybe ProjectProperty
haddock_workaround_ :: ()
project :: Maybe ProjectProperty
..}
instance Property "Project" AccessPolicyResourceProperty where
type PropertyType "Project" AccessPolicyResourceProperty = ProjectProperty
set :: PropertyType "Project" AccessPolicyResourceProperty
-> AccessPolicyResourceProperty -> AccessPolicyResourceProperty
set PropertyType "Project" AccessPolicyResourceProperty
newValue AccessPolicyResourceProperty {Maybe PortalProperty
Maybe ProjectProperty
()
haddock_workaround_ :: AccessPolicyResourceProperty -> ()
portal :: AccessPolicyResourceProperty -> Maybe PortalProperty
project :: AccessPolicyResourceProperty -> Maybe ProjectProperty
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
project :: Maybe ProjectProperty
..}
= AccessPolicyResourceProperty
{project :: Maybe ProjectProperty
project = ProjectProperty -> Maybe ProjectProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Project" AccessPolicyResourceProperty
ProjectProperty
newValue, Maybe PortalProperty
()
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
haddock_workaround_ :: ()
portal :: Maybe PortalProperty
..}