module Stratosphere.IoTSiteWise.AccessPolicy (
        module Exports, AccessPolicy(..), mkAccessPolicy
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTSiteWise.AccessPolicy.AccessPolicyIdentityProperty as Exports
import {-# SOURCE #-} Stratosphere.IoTSiteWise.AccessPolicy.AccessPolicyResourceProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AccessPolicy
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html>
    AccessPolicy {AccessPolicy -> ()
haddock_workaround_ :: (),
                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity>
                  AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyIdentity :: AccessPolicyIdentityProperty,
                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicypermission>
                  AccessPolicy -> Value Text
accessPolicyPermission :: (Value Prelude.Text),
                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicyresource>
                  AccessPolicy -> AccessPolicyResourceProperty
accessPolicyResource :: AccessPolicyResourceProperty}
  deriving stock (AccessPolicy -> AccessPolicy -> Bool
(AccessPolicy -> AccessPolicy -> Bool)
-> (AccessPolicy -> AccessPolicy -> Bool) -> Eq AccessPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessPolicy -> AccessPolicy -> Bool
== :: AccessPolicy -> AccessPolicy -> Bool
$c/= :: AccessPolicy -> AccessPolicy -> Bool
/= :: AccessPolicy -> AccessPolicy -> Bool
Prelude.Eq, Int -> AccessPolicy -> ShowS
[AccessPolicy] -> ShowS
AccessPolicy -> String
(Int -> AccessPolicy -> ShowS)
-> (AccessPolicy -> String)
-> ([AccessPolicy] -> ShowS)
-> Show AccessPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessPolicy -> ShowS
showsPrec :: Int -> AccessPolicy -> ShowS
$cshow :: AccessPolicy -> String
show :: AccessPolicy -> String
$cshowList :: [AccessPolicy] -> ShowS
showList :: [AccessPolicy] -> ShowS
Prelude.Show)
mkAccessPolicy ::
  AccessPolicyIdentityProperty
  -> Value Prelude.Text
     -> AccessPolicyResourceProperty -> AccessPolicy
mkAccessPolicy :: AccessPolicyIdentityProperty
-> Value Text -> AccessPolicyResourceProperty -> AccessPolicy
mkAccessPolicy
  AccessPolicyIdentityProperty
accessPolicyIdentity
  Value Text
accessPolicyPermission
  AccessPolicyResourceProperty
accessPolicyResource
  = AccessPolicy
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyIdentity = AccessPolicyIdentityProperty
accessPolicyIdentity,
       accessPolicyPermission :: Value Text
accessPolicyPermission = Value Text
accessPolicyPermission,
       accessPolicyResource :: AccessPolicyResourceProperty
accessPolicyResource = AccessPolicyResourceProperty
accessPolicyResource}
instance ToResourceProperties AccessPolicy where
  toResourceProperties :: AccessPolicy -> ResourceProperties
toResourceProperties AccessPolicy {()
Value Text
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: AccessPolicy -> ()
accessPolicyIdentity :: AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyPermission :: AccessPolicy -> Value Text
accessPolicyResource :: AccessPolicy -> AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTSiteWise::AccessPolicy",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AccessPolicyIdentity" Key -> AccessPolicyIdentityProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessPolicyIdentityProperty
accessPolicyIdentity,
                       Key
"AccessPolicyPermission" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
accessPolicyPermission,
                       Key
"AccessPolicyResource" Key -> AccessPolicyResourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessPolicyResourceProperty
accessPolicyResource]}
instance JSON.ToJSON AccessPolicy where
  toJSON :: AccessPolicy -> Value
toJSON AccessPolicy {()
Value Text
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: AccessPolicy -> ()
accessPolicyIdentity :: AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyPermission :: AccessPolicy -> Value Text
accessPolicyResource :: AccessPolicy -> AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AccessPolicyIdentity" Key -> AccessPolicyIdentityProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessPolicyIdentityProperty
accessPolicyIdentity,
         Key
"AccessPolicyPermission" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
accessPolicyPermission,
         Key
"AccessPolicyResource" Key -> AccessPolicyResourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessPolicyResourceProperty
accessPolicyResource]
instance Property "AccessPolicyIdentity" AccessPolicy where
  type PropertyType "AccessPolicyIdentity" AccessPolicy = AccessPolicyIdentityProperty
  set :: PropertyType "AccessPolicyIdentity" AccessPolicy
-> AccessPolicy -> AccessPolicy
set PropertyType "AccessPolicyIdentity" AccessPolicy
newValue AccessPolicy {()
Value Text
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: AccessPolicy -> ()
accessPolicyIdentity :: AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyPermission :: AccessPolicy -> Value Text
accessPolicyResource :: AccessPolicy -> AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
    = AccessPolicy {accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyIdentity = PropertyType "AccessPolicyIdentity" AccessPolicy
AccessPolicyIdentityProperty
newValue, ()
Value Text
AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
instance Property "AccessPolicyPermission" AccessPolicy where
  type PropertyType "AccessPolicyPermission" AccessPolicy = Value Prelude.Text
  set :: PropertyType "AccessPolicyPermission" AccessPolicy
-> AccessPolicy -> AccessPolicy
set PropertyType "AccessPolicyPermission" AccessPolicy
newValue AccessPolicy {()
Value Text
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: AccessPolicy -> ()
accessPolicyIdentity :: AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyPermission :: AccessPolicy -> Value Text
accessPolicyResource :: AccessPolicy -> AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
    = AccessPolicy {accessPolicyPermission :: Value Text
accessPolicyPermission = PropertyType "AccessPolicyPermission" AccessPolicy
Value Text
newValue, ()
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyResource :: AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyResource :: AccessPolicyResourceProperty
..}
instance Property "AccessPolicyResource" AccessPolicy where
  type PropertyType "AccessPolicyResource" AccessPolicy = AccessPolicyResourceProperty
  set :: PropertyType "AccessPolicyResource" AccessPolicy
-> AccessPolicy -> AccessPolicy
set PropertyType "AccessPolicyResource" AccessPolicy
newValue AccessPolicy {()
Value Text
AccessPolicyResourceProperty
AccessPolicyIdentityProperty
haddock_workaround_ :: AccessPolicy -> ()
accessPolicyIdentity :: AccessPolicy -> AccessPolicyIdentityProperty
accessPolicyPermission :: AccessPolicy -> Value Text
accessPolicyResource :: AccessPolicy -> AccessPolicyResourceProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
accessPolicyResource :: AccessPolicyResourceProperty
..}
    = AccessPolicy {accessPolicyResource :: AccessPolicyResourceProperty
accessPolicyResource = PropertyType "AccessPolicyResource" AccessPolicy
AccessPolicyResourceProperty
newValue, ()
Value Text
AccessPolicyIdentityProperty
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
haddock_workaround_ :: ()
accessPolicyIdentity :: AccessPolicyIdentityProperty
accessPolicyPermission :: Value Text
..}