packages feed

stratosphere-ec2-1.0.0: gen/Stratosphere/EC2/TrafficMirrorSession.hs

module Stratosphere.EC2.TrafficMirrorSession (
        TrafficMirrorSession(..), mkTrafficMirrorSession
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data TrafficMirrorSession
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html>
    TrafficMirrorSession {haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-description>
                          description :: (Prelude.Maybe (Value Prelude.Text)),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-networkinterfaceid>
                          networkInterfaceId :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-ownerid>
                          ownerId :: (Prelude.Maybe (Value Prelude.Text)),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-packetlength>
                          packetLength :: (Prelude.Maybe (Value Prelude.Integer)),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-sessionnumber>
                          sessionNumber :: (Value Prelude.Integer),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-tags>
                          tags :: (Prelude.Maybe [Tag]),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-trafficmirrorfilterid>
                          trafficMirrorFilterId :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-trafficmirrortargetid>
                          trafficMirrorTargetId :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-virtualnetworkid>
                          virtualNetworkId :: (Prelude.Maybe (Value Prelude.Integer))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkTrafficMirrorSession ::
  Value Prelude.Text
  -> Value Prelude.Integer
     -> Value Prelude.Text -> Value Prelude.Text -> TrafficMirrorSession
mkTrafficMirrorSession
  networkInterfaceId
  sessionNumber
  trafficMirrorFilterId
  trafficMirrorTargetId
  = TrafficMirrorSession
      {haddock_workaround_ = (), networkInterfaceId = networkInterfaceId,
       sessionNumber = sessionNumber,
       trafficMirrorFilterId = trafficMirrorFilterId,
       trafficMirrorTargetId = trafficMirrorTargetId,
       description = Prelude.Nothing, ownerId = Prelude.Nothing,
       packetLength = Prelude.Nothing, tags = Prelude.Nothing,
       virtualNetworkId = Prelude.Nothing}
instance ToResourceProperties TrafficMirrorSession where
  toResourceProperties TrafficMirrorSession {..}
    = ResourceProperties
        {awsType = "AWS::EC2::TrafficMirrorSession",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["NetworkInterfaceId" JSON..= networkInterfaceId,
                            "SessionNumber" JSON..= sessionNumber,
                            "TrafficMirrorFilterId" JSON..= trafficMirrorFilterId,
                            "TrafficMirrorTargetId" JSON..= trafficMirrorTargetId]
                           (Prelude.catMaybes
                              [(JSON..=) "Description" Prelude.<$> description,
                               (JSON..=) "OwnerId" Prelude.<$> ownerId,
                               (JSON..=) "PacketLength" Prelude.<$> packetLength,
                               (JSON..=) "Tags" Prelude.<$> tags,
                               (JSON..=) "VirtualNetworkId" Prelude.<$> virtualNetworkId]))}
instance JSON.ToJSON TrafficMirrorSession where
  toJSON TrafficMirrorSession {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["NetworkInterfaceId" JSON..= networkInterfaceId,
               "SessionNumber" JSON..= sessionNumber,
               "TrafficMirrorFilterId" JSON..= trafficMirrorFilterId,
               "TrafficMirrorTargetId" JSON..= trafficMirrorTargetId]
              (Prelude.catMaybes
                 [(JSON..=) "Description" Prelude.<$> description,
                  (JSON..=) "OwnerId" Prelude.<$> ownerId,
                  (JSON..=) "PacketLength" Prelude.<$> packetLength,
                  (JSON..=) "Tags" Prelude.<$> tags,
                  (JSON..=) "VirtualNetworkId" Prelude.<$> virtualNetworkId])))
instance Property "Description" TrafficMirrorSession where
  type PropertyType "Description" TrafficMirrorSession = Value Prelude.Text
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {description = Prelude.pure newValue, ..}
instance Property "NetworkInterfaceId" TrafficMirrorSession where
  type PropertyType "NetworkInterfaceId" TrafficMirrorSession = Value Prelude.Text
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {networkInterfaceId = newValue, ..}
instance Property "OwnerId" TrafficMirrorSession where
  type PropertyType "OwnerId" TrafficMirrorSession = Value Prelude.Text
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {ownerId = Prelude.pure newValue, ..}
instance Property "PacketLength" TrafficMirrorSession where
  type PropertyType "PacketLength" TrafficMirrorSession = Value Prelude.Integer
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {packetLength = Prelude.pure newValue, ..}
instance Property "SessionNumber" TrafficMirrorSession where
  type PropertyType "SessionNumber" TrafficMirrorSession = Value Prelude.Integer
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {sessionNumber = newValue, ..}
instance Property "Tags" TrafficMirrorSession where
  type PropertyType "Tags" TrafficMirrorSession = [Tag]
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {tags = Prelude.pure newValue, ..}
instance Property "TrafficMirrorFilterId" TrafficMirrorSession where
  type PropertyType "TrafficMirrorFilterId" TrafficMirrorSession = Value Prelude.Text
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {trafficMirrorFilterId = newValue, ..}
instance Property "TrafficMirrorTargetId" TrafficMirrorSession where
  type PropertyType "TrafficMirrorTargetId" TrafficMirrorSession = Value Prelude.Text
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession {trafficMirrorTargetId = newValue, ..}
instance Property "VirtualNetworkId" TrafficMirrorSession where
  type PropertyType "VirtualNetworkId" TrafficMirrorSession = Value Prelude.Integer
  set newValue TrafficMirrorSession {..}
    = TrafficMirrorSession
        {virtualNetworkId = Prelude.pure newValue, ..}