module Stratosphere.CloudFormation.GuardHook.TargetFiltersProperty (
        module Exports, TargetFiltersProperty(..), mkTargetFiltersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFormation.GuardHook.HookTargetProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data TargetFiltersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html>
    TargetFiltersProperty {TargetFiltersProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-actions>
                           TargetFiltersProperty -> Maybe (ValueList Text)
actions :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-invocationpoints>
                           TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-targetnames>
                           TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-guardhook-targetfilters.html#cfn-cloudformation-guardhook-targetfilters-targets>
                           TargetFiltersProperty -> Maybe [HookTargetProperty]
targets :: (Prelude.Maybe [HookTargetProperty])}
  deriving stock (TargetFiltersProperty -> TargetFiltersProperty -> Bool
(TargetFiltersProperty -> TargetFiltersProperty -> Bool)
-> (TargetFiltersProperty -> TargetFiltersProperty -> Bool)
-> Eq TargetFiltersProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TargetFiltersProperty -> TargetFiltersProperty -> Bool
== :: TargetFiltersProperty -> TargetFiltersProperty -> Bool
$c/= :: TargetFiltersProperty -> TargetFiltersProperty -> Bool
/= :: TargetFiltersProperty -> TargetFiltersProperty -> Bool
Prelude.Eq, Int -> TargetFiltersProperty -> ShowS
[TargetFiltersProperty] -> ShowS
TargetFiltersProperty -> String
(Int -> TargetFiltersProperty -> ShowS)
-> (TargetFiltersProperty -> String)
-> ([TargetFiltersProperty] -> ShowS)
-> Show TargetFiltersProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TargetFiltersProperty -> ShowS
showsPrec :: Int -> TargetFiltersProperty -> ShowS
$cshow :: TargetFiltersProperty -> String
show :: TargetFiltersProperty -> String
$cshowList :: [TargetFiltersProperty] -> ShowS
showList :: [TargetFiltersProperty] -> ShowS
Prelude.Show)
mkTargetFiltersProperty :: TargetFiltersProperty
mkTargetFiltersProperty :: TargetFiltersProperty
mkTargetFiltersProperty
  = TargetFiltersProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), actions :: Maybe (ValueList Text)
actions = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       invocationPoints :: Maybe (ValueList Text)
invocationPoints = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing, targetNames :: Maybe (ValueList Text)
targetNames = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       targets :: Maybe [HookTargetProperty]
targets = Maybe [HookTargetProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties TargetFiltersProperty where
  toResourceProperties :: TargetFiltersProperty -> ResourceProperties
toResourceProperties TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CloudFormation::GuardHook.TargetFilters",
         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 -> 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..=) Key
"Actions" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
actions,
                            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..=) Key
"InvocationPoints" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
invocationPoints,
                            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..=) Key
"TargetNames" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
targetNames,
                            Key -> [HookTargetProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Targets" ([HookTargetProperty] -> (Key, Value))
-> Maybe [HookTargetProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [HookTargetProperty]
targets])}
instance JSON.ToJSON TargetFiltersProperty where
  toJSON :: TargetFiltersProperty -> Value
toJSON TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = [(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 -> 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..=) Key
"Actions" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
actions,
               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..=) Key
"InvocationPoints" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
invocationPoints,
               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..=) Key
"TargetNames" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
targetNames,
               Key -> [HookTargetProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Targets" ([HookTargetProperty] -> (Key, Value))
-> Maybe [HookTargetProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [HookTargetProperty]
targets]))
instance Property "Actions" TargetFiltersProperty where
  type PropertyType "Actions" TargetFiltersProperty = ValueList Prelude.Text
  set :: PropertyType "Actions" TargetFiltersProperty
-> TargetFiltersProperty -> TargetFiltersProperty
set PropertyType "Actions" TargetFiltersProperty
newValue TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = TargetFiltersProperty {actions :: Maybe (ValueList Text)
actions = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Actions" TargetFiltersProperty
ValueList Text
newValue, Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: ()
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
haddock_workaround_ :: ()
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
instance Property "InvocationPoints" TargetFiltersProperty where
  type PropertyType "InvocationPoints" TargetFiltersProperty = ValueList Prelude.Text
  set :: PropertyType "InvocationPoints" TargetFiltersProperty
-> TargetFiltersProperty -> TargetFiltersProperty
set PropertyType "InvocationPoints" TargetFiltersProperty
newValue TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = TargetFiltersProperty
        {invocationPoints :: Maybe (ValueList Text)
invocationPoints = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "InvocationPoints" TargetFiltersProperty
ValueList Text
newValue, Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
instance Property "TargetNames" TargetFiltersProperty where
  type PropertyType "TargetNames" TargetFiltersProperty = ValueList Prelude.Text
  set :: PropertyType "TargetNames" TargetFiltersProperty
-> TargetFiltersProperty -> TargetFiltersProperty
set PropertyType "TargetNames" TargetFiltersProperty
newValue TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = TargetFiltersProperty {targetNames :: Maybe (ValueList Text)
targetNames = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "TargetNames" TargetFiltersProperty
ValueList Text
newValue, Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
instance Property "Targets" TargetFiltersProperty where
  type PropertyType "Targets" TargetFiltersProperty = [HookTargetProperty]
  set :: PropertyType "Targets" TargetFiltersProperty
-> TargetFiltersProperty -> TargetFiltersProperty
set PropertyType "Targets" TargetFiltersProperty
newValue TargetFiltersProperty {Maybe [HookTargetProperty]
Maybe (ValueList Text)
()
haddock_workaround_ :: TargetFiltersProperty -> ()
actions :: TargetFiltersProperty -> Maybe (ValueList Text)
invocationPoints :: TargetFiltersProperty -> Maybe (ValueList Text)
targetNames :: TargetFiltersProperty -> Maybe (ValueList Text)
targets :: TargetFiltersProperty -> Maybe [HookTargetProperty]
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
targets :: Maybe [HookTargetProperty]
..}
    = TargetFiltersProperty {targets :: Maybe [HookTargetProperty]
targets = [HookTargetProperty] -> Maybe [HookTargetProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [HookTargetProperty]
PropertyType "Targets" TargetFiltersProperty
newValue, Maybe (ValueList Text)
()
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
haddock_workaround_ :: ()
actions :: Maybe (ValueList Text)
invocationPoints :: Maybe (ValueList Text)
targetNames :: Maybe (ValueList Text)
..}