module Stratosphere.FMS.Policy.NetworkAclEntrySetProperty (
        module Exports, NetworkAclEntrySetProperty(..),
        mkNetworkAclEntrySetProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.FMS.Policy.NetworkAclEntryProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data NetworkAclEntrySetProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkaclentryset.html>
    NetworkAclEntrySetProperty {NetworkAclEntrySetProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkaclentryset.html#cfn-fms-policy-networkaclentryset-firstentries>
                                NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
firstEntries :: (Prelude.Maybe [NetworkAclEntryProperty]),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkaclentryset.html#cfn-fms-policy-networkaclentryset-forceremediateforfirstentries>
                                NetworkAclEntrySetProperty -> Value Bool
forceRemediateForFirstEntries :: (Value Prelude.Bool),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkaclentryset.html#cfn-fms-policy-networkaclentryset-forceremediateforlastentries>
                                NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: (Value Prelude.Bool),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkaclentryset.html#cfn-fms-policy-networkaclentryset-lastentries>
                                NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
lastEntries :: (Prelude.Maybe [NetworkAclEntryProperty])}
  deriving stock (NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool
(NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool)
-> (NetworkAclEntrySetProperty
    -> NetworkAclEntrySetProperty -> Bool)
-> Eq NetworkAclEntrySetProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool
== :: NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool
$c/= :: NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool
/= :: NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty -> Bool
Prelude.Eq, Int -> NetworkAclEntrySetProperty -> ShowS
[NetworkAclEntrySetProperty] -> ShowS
NetworkAclEntrySetProperty -> String
(Int -> NetworkAclEntrySetProperty -> ShowS)
-> (NetworkAclEntrySetProperty -> String)
-> ([NetworkAclEntrySetProperty] -> ShowS)
-> Show NetworkAclEntrySetProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkAclEntrySetProperty -> ShowS
showsPrec :: Int -> NetworkAclEntrySetProperty -> ShowS
$cshow :: NetworkAclEntrySetProperty -> String
show :: NetworkAclEntrySetProperty -> String
$cshowList :: [NetworkAclEntrySetProperty] -> ShowS
showList :: [NetworkAclEntrySetProperty] -> ShowS
Prelude.Show)
mkNetworkAclEntrySetProperty ::
  Value Prelude.Bool
  -> Value Prelude.Bool -> NetworkAclEntrySetProperty
mkNetworkAclEntrySetProperty :: Value Bool -> Value Bool -> NetworkAclEntrySetProperty
mkNetworkAclEntrySetProperty
  Value Bool
forceRemediateForFirstEntries
  Value Bool
forceRemediateForLastEntries
  = NetworkAclEntrySetProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       forceRemediateForFirstEntries :: Value Bool
forceRemediateForFirstEntries = Value Bool
forceRemediateForFirstEntries,
       forceRemediateForLastEntries :: Value Bool
forceRemediateForLastEntries = Value Bool
forceRemediateForLastEntries,
       firstEntries :: Maybe [NetworkAclEntryProperty]
firstEntries = Maybe [NetworkAclEntryProperty]
forall a. Maybe a
Prelude.Nothing, lastEntries :: Maybe [NetworkAclEntryProperty]
lastEntries = Maybe [NetworkAclEntryProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties NetworkAclEntrySetProperty where
  toResourceProperties :: NetworkAclEntrySetProperty -> ResourceProperties
toResourceProperties NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::FMS::Policy.NetworkAclEntrySet",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"ForceRemediateForFirstEntries"
                              Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
forceRemediateForFirstEntries,
                            Key
"ForceRemediateForLastEntries"
                              Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
forceRemediateForLastEntries]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> [NetworkAclEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FirstEntries" ([NetworkAclEntryProperty] -> (Key, Value))
-> Maybe [NetworkAclEntryProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [NetworkAclEntryProperty]
firstEntries,
                               Key -> [NetworkAclEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LastEntries" ([NetworkAclEntryProperty] -> (Key, Value))
-> Maybe [NetworkAclEntryProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [NetworkAclEntryProperty]
lastEntries]))}
instance JSON.ToJSON NetworkAclEntrySetProperty where
  toJSON :: NetworkAclEntrySetProperty -> Value
toJSON NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"ForceRemediateForFirstEntries"
                 Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
forceRemediateForFirstEntries,
               Key
"ForceRemediateForLastEntries"
                 Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
forceRemediateForLastEntries]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> [NetworkAclEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FirstEntries" ([NetworkAclEntryProperty] -> (Key, Value))
-> Maybe [NetworkAclEntryProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [NetworkAclEntryProperty]
firstEntries,
                  Key -> [NetworkAclEntryProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LastEntries" ([NetworkAclEntryProperty] -> (Key, Value))
-> Maybe [NetworkAclEntryProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [NetworkAclEntryProperty]
lastEntries])))
instance Property "FirstEntries" NetworkAclEntrySetProperty where
  type PropertyType "FirstEntries" NetworkAclEntrySetProperty = [NetworkAclEntryProperty]
  set :: PropertyType "FirstEntries" NetworkAclEntrySetProperty
-> NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty
set PropertyType "FirstEntries" NetworkAclEntrySetProperty
newValue NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = NetworkAclEntrySetProperty
        {firstEntries :: Maybe [NetworkAclEntryProperty]
firstEntries = [NetworkAclEntryProperty] -> Maybe [NetworkAclEntryProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [NetworkAclEntryProperty]
PropertyType "FirstEntries" NetworkAclEntrySetProperty
newValue, Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: ()
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
instance Property "ForceRemediateForFirstEntries" NetworkAclEntrySetProperty where
  type PropertyType "ForceRemediateForFirstEntries" NetworkAclEntrySetProperty = Value Prelude.Bool
  set :: PropertyType
  "ForceRemediateForFirstEntries" NetworkAclEntrySetProperty
-> NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty
set PropertyType
  "ForceRemediateForFirstEntries" NetworkAclEntrySetProperty
newValue NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = NetworkAclEntrySetProperty
        {forceRemediateForFirstEntries :: Value Bool
forceRemediateForFirstEntries = PropertyType
  "ForceRemediateForFirstEntries" NetworkAclEntrySetProperty
Value Bool
newValue, Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
instance Property "ForceRemediateForLastEntries" NetworkAclEntrySetProperty where
  type PropertyType "ForceRemediateForLastEntries" NetworkAclEntrySetProperty = Value Prelude.Bool
  set :: PropertyType
  "ForceRemediateForLastEntries" NetworkAclEntrySetProperty
-> NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty
set PropertyType
  "ForceRemediateForLastEntries" NetworkAclEntrySetProperty
newValue NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = NetworkAclEntrySetProperty
        {forceRemediateForLastEntries :: Value Bool
forceRemediateForLastEntries = PropertyType
  "ForceRemediateForLastEntries" NetworkAclEntrySetProperty
Value Bool
newValue, Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
instance Property "LastEntries" NetworkAclEntrySetProperty where
  type PropertyType "LastEntries" NetworkAclEntrySetProperty = [NetworkAclEntryProperty]
  set :: PropertyType "LastEntries" NetworkAclEntrySetProperty
-> NetworkAclEntrySetProperty -> NetworkAclEntrySetProperty
set PropertyType "LastEntries" NetworkAclEntrySetProperty
newValue NetworkAclEntrySetProperty {Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: NetworkAclEntrySetProperty -> ()
firstEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: NetworkAclEntrySetProperty -> Value Bool
forceRemediateForLastEntries :: NetworkAclEntrySetProperty -> Value Bool
lastEntries :: NetworkAclEntrySetProperty -> Maybe [NetworkAclEntryProperty]
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
lastEntries :: Maybe [NetworkAclEntryProperty]
..}
    = NetworkAclEntrySetProperty
        {lastEntries :: Maybe [NetworkAclEntryProperty]
lastEntries = [NetworkAclEntryProperty] -> Maybe [NetworkAclEntryProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [NetworkAclEntryProperty]
PropertyType "LastEntries" NetworkAclEntrySetProperty
newValue, Maybe [NetworkAclEntryProperty]
()
Value Bool
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
haddock_workaround_ :: ()
firstEntries :: Maybe [NetworkAclEntryProperty]
forceRemediateForFirstEntries :: Value Bool
forceRemediateForLastEntries :: Value Bool
..}