module Stratosphere.NetworkFirewall.RuleGroup.HeaderProperty (
        HeaderProperty(..), mkHeaderProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data HeaderProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html>
    HeaderProperty {HeaderProperty -> ()
haddock_workaround_ :: (),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destination>
                    HeaderProperty -> Value Text
destination :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-destinationport>
                    HeaderProperty -> Value Text
destinationPort :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-direction>
                    HeaderProperty -> Value Text
direction :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-protocol>
                    HeaderProperty -> Value Text
protocol :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-source>
                    HeaderProperty -> Value Text
source :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html#cfn-networkfirewall-rulegroup-header-sourceport>
                    HeaderProperty -> Value Text
sourcePort :: (Value Prelude.Text)}
  deriving stock (HeaderProperty -> HeaderProperty -> Bool
(HeaderProperty -> HeaderProperty -> Bool)
-> (HeaderProperty -> HeaderProperty -> Bool) -> Eq HeaderProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HeaderProperty -> HeaderProperty -> Bool
== :: HeaderProperty -> HeaderProperty -> Bool
$c/= :: HeaderProperty -> HeaderProperty -> Bool
/= :: HeaderProperty -> HeaderProperty -> Bool
Prelude.Eq, Int -> HeaderProperty -> ShowS
[HeaderProperty] -> ShowS
HeaderProperty -> String
(Int -> HeaderProperty -> ShowS)
-> (HeaderProperty -> String)
-> ([HeaderProperty] -> ShowS)
-> Show HeaderProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HeaderProperty -> ShowS
showsPrec :: Int -> HeaderProperty -> ShowS
$cshow :: HeaderProperty -> String
show :: HeaderProperty -> String
$cshowList :: [HeaderProperty] -> ShowS
showList :: [HeaderProperty] -> ShowS
Prelude.Show)
mkHeaderProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Text
           -> Value Prelude.Text -> Value Prelude.Text -> HeaderProperty
mkHeaderProperty :: Value Text
-> Value Text
-> Value Text
-> Value Text
-> Value Text
-> Value Text
-> HeaderProperty
mkHeaderProperty
  Value Text
destination
  Value Text
destinationPort
  Value Text
direction
  Value Text
protocol
  Value Text
source
  Value Text
sourcePort
  = HeaderProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), destination :: Value Text
destination = Value Text
destination,
       destinationPort :: Value Text
destinationPort = Value Text
destinationPort, direction :: Value Text
direction = Value Text
direction,
       protocol :: Value Text
protocol = Value Text
protocol, source :: Value Text
source = Value Text
source, sourcePort :: Value Text
sourcePort = Value Text
sourcePort}
instance ToResourceProperties HeaderProperty where
  toResourceProperties :: HeaderProperty -> ResourceProperties
toResourceProperties HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::NetworkFirewall::RuleGroup.Header",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Destination" 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
destination,
                       Key
"DestinationPort" 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
destinationPort,
                       Key
"Direction" 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
direction, Key
"Protocol" 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
protocol,
                       Key
"Source" 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
source, Key
"SourcePort" 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
sourcePort]}
instance JSON.ToJSON HeaderProperty where
  toJSON :: HeaderProperty -> Value
toJSON HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Destination" 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
destination,
         Key
"DestinationPort" 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
destinationPort,
         Key
"Direction" 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
direction, Key
"Protocol" 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
protocol,
         Key
"Source" 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
source, Key
"SourcePort" 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
sourcePort]
instance Property "Destination" HeaderProperty where
  type PropertyType "Destination" HeaderProperty = Value Prelude.Text
  set :: PropertyType "Destination" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "Destination" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {destination :: Value Text
destination = PropertyType "Destination" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
haddock_workaround_ :: ()
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
instance Property "DestinationPort" HeaderProperty where
  type PropertyType "DestinationPort" HeaderProperty = Value Prelude.Text
  set :: PropertyType "DestinationPort" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "DestinationPort" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {destinationPort :: Value Text
destinationPort = PropertyType "DestinationPort" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destination :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
haddock_workaround_ :: ()
destination :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
instance Property "Direction" HeaderProperty where
  type PropertyType "Direction" HeaderProperty = Value Prelude.Text
  set :: PropertyType "Direction" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "Direction" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {direction :: Value Text
direction = PropertyType "Direction" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
instance Property "Protocol" HeaderProperty where
  type PropertyType "Protocol" HeaderProperty = Value Prelude.Text
  set :: PropertyType "Protocol" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "Protocol" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {protocol :: Value Text
protocol = PropertyType "Protocol" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
source :: Value Text
sourcePort :: Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
instance Property "Source" HeaderProperty where
  type PropertyType "Source" HeaderProperty = Value Prelude.Text
  set :: PropertyType "Source" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "Source" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {source :: Value Text
source = PropertyType "Source" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
sourcePort :: Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
sourcePort :: Value Text
..}
instance Property "SourcePort" HeaderProperty where
  type PropertyType "SourcePort" HeaderProperty = Value Prelude.Text
  set :: PropertyType "SourcePort" HeaderProperty
-> HeaderProperty -> HeaderProperty
set PropertyType "SourcePort" HeaderProperty
newValue HeaderProperty {()
Value Text
haddock_workaround_ :: HeaderProperty -> ()
destination :: HeaderProperty -> Value Text
destinationPort :: HeaderProperty -> Value Text
direction :: HeaderProperty -> Value Text
protocol :: HeaderProperty -> Value Text
source :: HeaderProperty -> Value Text
sourcePort :: HeaderProperty -> Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
sourcePort :: Value Text
..}
    = HeaderProperty {sourcePort :: Value Text
sourcePort = PropertyType "SourcePort" HeaderProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
haddock_workaround_ :: ()
destination :: Value Text
destinationPort :: Value Text
direction :: Value Text
protocol :: Value Text
source :: Value Text
..}