module Stratosphere.GuardDuty.MalwareProtectionPlan.CFNProtectedResourceProperty (
        module Exports, CFNProtectedResourceProperty(..),
        mkCFNProtectedResourceProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.GuardDuty.MalwareProtectionPlan.S3BucketProperty as Exports
import Stratosphere.ResourceProperties
data CFNProtectedResourceProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-malwareprotectionplan-cfnprotectedresource.html>
    CFNProtectedResourceProperty {CFNProtectedResourceProperty -> ()
haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-malwareprotectionplan-cfnprotectedresource.html#cfn-guardduty-malwareprotectionplan-cfnprotectedresource-s3bucket>
                                  CFNProtectedResourceProperty -> S3BucketProperty
s3Bucket :: S3BucketProperty}
  deriving stock (CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> Bool
(CFNProtectedResourceProperty
 -> CFNProtectedResourceProperty -> Bool)
-> (CFNProtectedResourceProperty
    -> CFNProtectedResourceProperty -> Bool)
-> Eq CFNProtectedResourceProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> Bool
== :: CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> Bool
$c/= :: CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> Bool
/= :: CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> Bool
Prelude.Eq, Int -> CFNProtectedResourceProperty -> ShowS
[CFNProtectedResourceProperty] -> ShowS
CFNProtectedResourceProperty -> String
(Int -> CFNProtectedResourceProperty -> ShowS)
-> (CFNProtectedResourceProperty -> String)
-> ([CFNProtectedResourceProperty] -> ShowS)
-> Show CFNProtectedResourceProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CFNProtectedResourceProperty -> ShowS
showsPrec :: Int -> CFNProtectedResourceProperty -> ShowS
$cshow :: CFNProtectedResourceProperty -> String
show :: CFNProtectedResourceProperty -> String
$cshowList :: [CFNProtectedResourceProperty] -> ShowS
showList :: [CFNProtectedResourceProperty] -> ShowS
Prelude.Show)
mkCFNProtectedResourceProperty ::
  S3BucketProperty -> CFNProtectedResourceProperty
mkCFNProtectedResourceProperty :: S3BucketProperty -> CFNProtectedResourceProperty
mkCFNProtectedResourceProperty S3BucketProperty
s3Bucket
  = CFNProtectedResourceProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), s3Bucket :: S3BucketProperty
s3Bucket = S3BucketProperty
s3Bucket}
instance ToResourceProperties CFNProtectedResourceProperty where
  toResourceProperties :: CFNProtectedResourceProperty -> ResourceProperties
toResourceProperties CFNProtectedResourceProperty {()
S3BucketProperty
haddock_workaround_ :: CFNProtectedResourceProperty -> ()
s3Bucket :: CFNProtectedResourceProperty -> S3BucketProperty
haddock_workaround_ :: ()
s3Bucket :: S3BucketProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::GuardDuty::MalwareProtectionPlan.CFNProtectedResource",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"S3Bucket" Key -> S3BucketProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= S3BucketProperty
s3Bucket]}
instance JSON.ToJSON CFNProtectedResourceProperty where
  toJSON :: CFNProtectedResourceProperty -> Value
toJSON CFNProtectedResourceProperty {()
S3BucketProperty
haddock_workaround_ :: CFNProtectedResourceProperty -> ()
s3Bucket :: CFNProtectedResourceProperty -> S3BucketProperty
haddock_workaround_ :: ()
s3Bucket :: S3BucketProperty
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"S3Bucket" Key -> S3BucketProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= S3BucketProperty
s3Bucket]
instance Property "S3Bucket" CFNProtectedResourceProperty where
  type PropertyType "S3Bucket" CFNProtectedResourceProperty = S3BucketProperty
  set :: PropertyType "S3Bucket" CFNProtectedResourceProperty
-> CFNProtectedResourceProperty -> CFNProtectedResourceProperty
set PropertyType "S3Bucket" CFNProtectedResourceProperty
newValue CFNProtectedResourceProperty {()
S3BucketProperty
haddock_workaround_ :: CFNProtectedResourceProperty -> ()
s3Bucket :: CFNProtectedResourceProperty -> S3BucketProperty
haddock_workaround_ :: ()
s3Bucket :: S3BucketProperty
..}
    = CFNProtectedResourceProperty {s3Bucket :: S3BucketProperty
s3Bucket = PropertyType "S3Bucket" CFNProtectedResourceProperty
S3BucketProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}