module Stratosphere.FMS.Policy.PolicyOptionProperty (
module Exports, PolicyOptionProperty(..), mkPolicyOptionProperty
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.FMS.Policy.NetworkAclCommonPolicyProperty as Exports
import {-# SOURCE #-} Stratosphere.FMS.Policy.NetworkFirewallPolicyProperty as Exports
import {-# SOURCE #-} Stratosphere.FMS.Policy.ThirdPartyFirewallPolicyProperty as Exports
import Stratosphere.ResourceProperties
data PolicyOptionProperty
=
PolicyOptionProperty {PolicyOptionProperty -> ()
haddock_workaround_ :: (),
PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkAclCommonPolicy :: (Prelude.Maybe NetworkAclCommonPolicyProperty),
PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
networkFirewallPolicy :: (Prelude.Maybe NetworkFirewallPolicyProperty),
PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
thirdPartyFirewallPolicy :: (Prelude.Maybe ThirdPartyFirewallPolicyProperty)}
deriving stock (PolicyOptionProperty -> PolicyOptionProperty -> Bool
(PolicyOptionProperty -> PolicyOptionProperty -> Bool)
-> (PolicyOptionProperty -> PolicyOptionProperty -> Bool)
-> Eq PolicyOptionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PolicyOptionProperty -> PolicyOptionProperty -> Bool
== :: PolicyOptionProperty -> PolicyOptionProperty -> Bool
$c/= :: PolicyOptionProperty -> PolicyOptionProperty -> Bool
/= :: PolicyOptionProperty -> PolicyOptionProperty -> Bool
Prelude.Eq, Int -> PolicyOptionProperty -> ShowS
[PolicyOptionProperty] -> ShowS
PolicyOptionProperty -> String
(Int -> PolicyOptionProperty -> ShowS)
-> (PolicyOptionProperty -> String)
-> ([PolicyOptionProperty] -> ShowS)
-> Show PolicyOptionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PolicyOptionProperty -> ShowS
showsPrec :: Int -> PolicyOptionProperty -> ShowS
$cshow :: PolicyOptionProperty -> String
show :: PolicyOptionProperty -> String
$cshowList :: [PolicyOptionProperty] -> ShowS
showList :: [PolicyOptionProperty] -> ShowS
Prelude.Show)
mkPolicyOptionProperty :: PolicyOptionProperty
mkPolicyOptionProperty :: PolicyOptionProperty
mkPolicyOptionProperty
= PolicyOptionProperty
{haddock_workaround_ :: ()
haddock_workaround_ = (),
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkAclCommonPolicy = Maybe NetworkAclCommonPolicyProperty
forall a. Maybe a
Prelude.Nothing,
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
networkFirewallPolicy = Maybe NetworkFirewallPolicyProperty
forall a. Maybe a
Prelude.Nothing,
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
thirdPartyFirewallPolicy = Maybe ThirdPartyFirewallPolicyProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties PolicyOptionProperty where
toResourceProperties :: PolicyOptionProperty -> ResourceProperties
toResourceProperties PolicyOptionProperty {Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: PolicyOptionProperty -> ()
networkAclCommonPolicy :: PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
= ResourceProperties
{awsType :: Text
awsType = Text
"AWS::FMS::Policy.PolicyOption",
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 -> NetworkAclCommonPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NetworkAclCommonPolicy"
(NetworkAclCommonPolicyProperty -> (Key, Value))
-> Maybe NetworkAclCommonPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NetworkAclCommonPolicyProperty
networkAclCommonPolicy,
Key -> NetworkFirewallPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NetworkFirewallPolicy"
(NetworkFirewallPolicyProperty -> (Key, Value))
-> Maybe NetworkFirewallPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NetworkFirewallPolicyProperty
networkFirewallPolicy,
Key -> ThirdPartyFirewallPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ThirdPartyFirewallPolicy"
(ThirdPartyFirewallPolicyProperty -> (Key, Value))
-> Maybe ThirdPartyFirewallPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ThirdPartyFirewallPolicyProperty
thirdPartyFirewallPolicy])}
instance JSON.ToJSON PolicyOptionProperty where
toJSON :: PolicyOptionProperty -> Value
toJSON PolicyOptionProperty {Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: PolicyOptionProperty -> ()
networkAclCommonPolicy :: PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
= [(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 -> NetworkAclCommonPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NetworkAclCommonPolicy"
(NetworkAclCommonPolicyProperty -> (Key, Value))
-> Maybe NetworkAclCommonPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NetworkAclCommonPolicyProperty
networkAclCommonPolicy,
Key -> NetworkFirewallPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NetworkFirewallPolicy"
(NetworkFirewallPolicyProperty -> (Key, Value))
-> Maybe NetworkFirewallPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NetworkFirewallPolicyProperty
networkFirewallPolicy,
Key -> ThirdPartyFirewallPolicyProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ThirdPartyFirewallPolicy"
(ThirdPartyFirewallPolicyProperty -> (Key, Value))
-> Maybe ThirdPartyFirewallPolicyProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ThirdPartyFirewallPolicyProperty
thirdPartyFirewallPolicy]))
instance Property "NetworkAclCommonPolicy" PolicyOptionProperty where
type PropertyType "NetworkAclCommonPolicy" PolicyOptionProperty = NetworkAclCommonPolicyProperty
set :: PropertyType "NetworkAclCommonPolicy" PolicyOptionProperty
-> PolicyOptionProperty -> PolicyOptionProperty
set PropertyType "NetworkAclCommonPolicy" PolicyOptionProperty
newValue PolicyOptionProperty {Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: PolicyOptionProperty -> ()
networkAclCommonPolicy :: PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
= PolicyOptionProperty
{networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkAclCommonPolicy = NetworkAclCommonPolicyProperty
-> Maybe NetworkAclCommonPolicyProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "NetworkAclCommonPolicy" PolicyOptionProperty
NetworkAclCommonPolicyProperty
newValue, Maybe NetworkFirewallPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: ()
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
instance Property "NetworkFirewallPolicy" PolicyOptionProperty where
type PropertyType "NetworkFirewallPolicy" PolicyOptionProperty = NetworkFirewallPolicyProperty
set :: PropertyType "NetworkFirewallPolicy" PolicyOptionProperty
-> PolicyOptionProperty -> PolicyOptionProperty
set PropertyType "NetworkFirewallPolicy" PolicyOptionProperty
newValue PolicyOptionProperty {Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: PolicyOptionProperty -> ()
networkAclCommonPolicy :: PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
= PolicyOptionProperty
{networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
networkFirewallPolicy = NetworkFirewallPolicyProperty
-> Maybe NetworkFirewallPolicyProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "NetworkFirewallPolicy" PolicyOptionProperty
NetworkFirewallPolicyProperty
newValue, Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
instance Property "ThirdPartyFirewallPolicy" PolicyOptionProperty where
type PropertyType "ThirdPartyFirewallPolicy" PolicyOptionProperty = ThirdPartyFirewallPolicyProperty
set :: PropertyType "ThirdPartyFirewallPolicy" PolicyOptionProperty
-> PolicyOptionProperty -> PolicyOptionProperty
set PropertyType "ThirdPartyFirewallPolicy" PolicyOptionProperty
newValue PolicyOptionProperty {Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
Maybe ThirdPartyFirewallPolicyProperty
()
haddock_workaround_ :: PolicyOptionProperty -> ()
networkAclCommonPolicy :: PolicyOptionProperty -> Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: PolicyOptionProperty -> Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: PolicyOptionProperty -> Maybe ThirdPartyFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
..}
= PolicyOptionProperty
{thirdPartyFirewallPolicy :: Maybe ThirdPartyFirewallPolicyProperty
thirdPartyFirewallPolicy = ThirdPartyFirewallPolicyProperty
-> Maybe ThirdPartyFirewallPolicyProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "ThirdPartyFirewallPolicy" PolicyOptionProperty
ThirdPartyFirewallPolicyProperty
newValue, Maybe NetworkFirewallPolicyProperty
Maybe NetworkAclCommonPolicyProperty
()
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
haddock_workaround_ :: ()
networkAclCommonPolicy :: Maybe NetworkAclCommonPolicyProperty
networkFirewallPolicy :: Maybe NetworkFirewallPolicyProperty
..}