module Stratosphere.AppMesh.Mesh.EgressFilterProperty (
        EgressFilterProperty(..), mkEgressFilterProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data EgressFilterProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html>
    EgressFilterProperty {EgressFilterProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html#cfn-appmesh-mesh-egressfilter-type>
                          EgressFilterProperty -> Value Text
type' :: (Value Prelude.Text)}
  deriving stock (EgressFilterProperty -> EgressFilterProperty -> Bool
(EgressFilterProperty -> EgressFilterProperty -> Bool)
-> (EgressFilterProperty -> EgressFilterProperty -> Bool)
-> Eq EgressFilterProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EgressFilterProperty -> EgressFilterProperty -> Bool
== :: EgressFilterProperty -> EgressFilterProperty -> Bool
$c/= :: EgressFilterProperty -> EgressFilterProperty -> Bool
/= :: EgressFilterProperty -> EgressFilterProperty -> Bool
Prelude.Eq, Int -> EgressFilterProperty -> ShowS
[EgressFilterProperty] -> ShowS
EgressFilterProperty -> String
(Int -> EgressFilterProperty -> ShowS)
-> (EgressFilterProperty -> String)
-> ([EgressFilterProperty] -> ShowS)
-> Show EgressFilterProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EgressFilterProperty -> ShowS
showsPrec :: Int -> EgressFilterProperty -> ShowS
$cshow :: EgressFilterProperty -> String
show :: EgressFilterProperty -> String
$cshowList :: [EgressFilterProperty] -> ShowS
showList :: [EgressFilterProperty] -> ShowS
Prelude.Show)
mkEgressFilterProperty ::
  Value Prelude.Text -> EgressFilterProperty
mkEgressFilterProperty :: Value Text -> EgressFilterProperty
mkEgressFilterProperty Value Text
type'
  = EgressFilterProperty {haddock_workaround_ :: ()
haddock_workaround_ = (), type' :: Value Text
type' = Value Text
type'}
instance ToResourceProperties EgressFilterProperty where
  toResourceProperties :: EgressFilterProperty -> ResourceProperties
toResourceProperties EgressFilterProperty {()
Value Text
haddock_workaround_ :: EgressFilterProperty -> ()
type' :: EgressFilterProperty -> Value Text
haddock_workaround_ :: ()
type' :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AppMesh::Mesh.EgressFilter",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False, properties :: Object
properties = [Key
"Type" 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
type']}
instance JSON.ToJSON EgressFilterProperty where
  toJSON :: EgressFilterProperty -> Value
toJSON EgressFilterProperty {()
Value Text
haddock_workaround_ :: EgressFilterProperty -> ()
type' :: EgressFilterProperty -> Value Text
haddock_workaround_ :: ()
type' :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Type" 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
type']
instance Property "Type" EgressFilterProperty where
  type PropertyType "Type" EgressFilterProperty = Value Prelude.Text
  set :: PropertyType "Type" EgressFilterProperty
-> EgressFilterProperty -> EgressFilterProperty
set PropertyType "Type" EgressFilterProperty
newValue EgressFilterProperty {()
Value Text
haddock_workaround_ :: EgressFilterProperty -> ()
type' :: EgressFilterProperty -> Value Text
haddock_workaround_ :: ()
type' :: Value Text
..}
    = EgressFilterProperty {type' :: Value Text
type' = PropertyType "Type" EgressFilterProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}