module Stratosphere.NetworkFirewall.RuleGroup.RulesSourceListProperty (
        RulesSourceListProperty(..), mkRulesSourceListProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RulesSourceListProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html>
    RulesSourceListProperty {RulesSourceListProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-generatedrulestype>
                             RulesSourceListProperty -> Value Text
generatedRulesType :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targettypes>
                             RulesSourceListProperty -> ValueList Text
targetTypes :: (ValueList Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html#cfn-networkfirewall-rulegroup-rulessourcelist-targets>
                             RulesSourceListProperty -> ValueList Text
targets :: (ValueList Prelude.Text)}
  deriving stock (RulesSourceListProperty -> RulesSourceListProperty -> Bool
(RulesSourceListProperty -> RulesSourceListProperty -> Bool)
-> (RulesSourceListProperty -> RulesSourceListProperty -> Bool)
-> Eq RulesSourceListProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RulesSourceListProperty -> RulesSourceListProperty -> Bool
== :: RulesSourceListProperty -> RulesSourceListProperty -> Bool
$c/= :: RulesSourceListProperty -> RulesSourceListProperty -> Bool
/= :: RulesSourceListProperty -> RulesSourceListProperty -> Bool
Prelude.Eq, Int -> RulesSourceListProperty -> ShowS
[RulesSourceListProperty] -> ShowS
RulesSourceListProperty -> String
(Int -> RulesSourceListProperty -> ShowS)
-> (RulesSourceListProperty -> String)
-> ([RulesSourceListProperty] -> ShowS)
-> Show RulesSourceListProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RulesSourceListProperty -> ShowS
showsPrec :: Int -> RulesSourceListProperty -> ShowS
$cshow :: RulesSourceListProperty -> String
show :: RulesSourceListProperty -> String
$cshowList :: [RulesSourceListProperty] -> ShowS
showList :: [RulesSourceListProperty] -> ShowS
Prelude.Show)
mkRulesSourceListProperty ::
  Value Prelude.Text
  -> ValueList Prelude.Text
     -> ValueList Prelude.Text -> RulesSourceListProperty
mkRulesSourceListProperty :: Value Text
-> ValueList Text -> ValueList Text -> RulesSourceListProperty
mkRulesSourceListProperty Value Text
generatedRulesType ValueList Text
targetTypes ValueList Text
targets
  = RulesSourceListProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), generatedRulesType :: Value Text
generatedRulesType = Value Text
generatedRulesType,
       targetTypes :: ValueList Text
targetTypes = ValueList Text
targetTypes, targets :: ValueList Text
targets = ValueList Text
targets}
instance ToResourceProperties RulesSourceListProperty where
  toResourceProperties :: RulesSourceListProperty -> ResourceProperties
toResourceProperties RulesSourceListProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RulesSourceListProperty -> ()
generatedRulesType :: RulesSourceListProperty -> Value Text
targetTypes :: RulesSourceListProperty -> ValueList Text
targets :: RulesSourceListProperty -> ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
targets :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::NetworkFirewall::RuleGroup.RulesSourceList",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"GeneratedRulesType" 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
generatedRulesType,
                       Key
"TargetTypes" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
targetTypes, Key
"Targets" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
targets]}
instance JSON.ToJSON RulesSourceListProperty where
  toJSON :: RulesSourceListProperty -> Value
toJSON RulesSourceListProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RulesSourceListProperty -> ()
generatedRulesType :: RulesSourceListProperty -> Value Text
targetTypes :: RulesSourceListProperty -> ValueList Text
targets :: RulesSourceListProperty -> ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
targets :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"GeneratedRulesType" 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
generatedRulesType,
         Key
"TargetTypes" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
targetTypes, Key
"Targets" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
targets]
instance Property "GeneratedRulesType" RulesSourceListProperty where
  type PropertyType "GeneratedRulesType" RulesSourceListProperty = Value Prelude.Text
  set :: PropertyType "GeneratedRulesType" RulesSourceListProperty
-> RulesSourceListProperty -> RulesSourceListProperty
set PropertyType "GeneratedRulesType" RulesSourceListProperty
newValue RulesSourceListProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RulesSourceListProperty -> ()
generatedRulesType :: RulesSourceListProperty -> Value Text
targetTypes :: RulesSourceListProperty -> ValueList Text
targets :: RulesSourceListProperty -> ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
targets :: ValueList Text
..}
    = RulesSourceListProperty {generatedRulesType :: Value Text
generatedRulesType = PropertyType "GeneratedRulesType" RulesSourceListProperty
Value Text
newValue, ()
ValueList Text
haddock_workaround_ :: ()
targetTypes :: ValueList Text
targets :: ValueList Text
haddock_workaround_ :: ()
targetTypes :: ValueList Text
targets :: ValueList Text
..}
instance Property "TargetTypes" RulesSourceListProperty where
  type PropertyType "TargetTypes" RulesSourceListProperty = ValueList Prelude.Text
  set :: PropertyType "TargetTypes" RulesSourceListProperty
-> RulesSourceListProperty -> RulesSourceListProperty
set PropertyType "TargetTypes" RulesSourceListProperty
newValue RulesSourceListProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RulesSourceListProperty -> ()
generatedRulesType :: RulesSourceListProperty -> Value Text
targetTypes :: RulesSourceListProperty -> ValueList Text
targets :: RulesSourceListProperty -> ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
targets :: ValueList Text
..}
    = RulesSourceListProperty {targetTypes :: ValueList Text
targetTypes = PropertyType "TargetTypes" RulesSourceListProperty
ValueList Text
newValue, ()
ValueList Text
Value Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targets :: ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targets :: ValueList Text
..}
instance Property "Targets" RulesSourceListProperty where
  type PropertyType "Targets" RulesSourceListProperty = ValueList Prelude.Text
  set :: PropertyType "Targets" RulesSourceListProperty
-> RulesSourceListProperty -> RulesSourceListProperty
set PropertyType "Targets" RulesSourceListProperty
newValue RulesSourceListProperty {()
ValueList Text
Value Text
haddock_workaround_ :: RulesSourceListProperty -> ()
generatedRulesType :: RulesSourceListProperty -> Value Text
targetTypes :: RulesSourceListProperty -> ValueList Text
targets :: RulesSourceListProperty -> ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
targets :: ValueList Text
..}
    = RulesSourceListProperty {targets :: ValueList Text
targets = PropertyType "Targets" RulesSourceListProperty
ValueList Text
newValue, ()
ValueList Text
Value Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
haddock_workaround_ :: ()
generatedRulesType :: Value Text
targetTypes :: ValueList Text
..}