{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.EC2.ModifyTrafficMirrorFilterRule
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies the specified Traffic Mirror rule.
--
-- @DestinationCidrBlock@ and @SourceCidrBlock@ must both be an IPv4 range
-- or an IPv6 range.
module Amazonka.EC2.ModifyTrafficMirrorFilterRule
  ( -- * Creating a Request
    ModifyTrafficMirrorFilterRule (..),
    newModifyTrafficMirrorFilterRule,

    -- * Request Lenses
    modifyTrafficMirrorFilterRule_description,
    modifyTrafficMirrorFilterRule_destinationCidrBlock,
    modifyTrafficMirrorFilterRule_destinationPortRange,
    modifyTrafficMirrorFilterRule_dryRun,
    modifyTrafficMirrorFilterRule_protocol,
    modifyTrafficMirrorFilterRule_removeFields,
    modifyTrafficMirrorFilterRule_ruleAction,
    modifyTrafficMirrorFilterRule_ruleNumber,
    modifyTrafficMirrorFilterRule_sourceCidrBlock,
    modifyTrafficMirrorFilterRule_sourcePortRange,
    modifyTrafficMirrorFilterRule_trafficDirection,
    modifyTrafficMirrorFilterRule_trafficMirrorFilterRuleId,

    -- * Destructuring the Response
    ModifyTrafficMirrorFilterRuleResponse (..),
    newModifyTrafficMirrorFilterRuleResponse,

    -- * Response Lenses
    modifyTrafficMirrorFilterRuleResponse_trafficMirrorFilterRule,
    modifyTrafficMirrorFilterRuleResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newModifyTrafficMirrorFilterRule' smart constructor.
data ModifyTrafficMirrorFilterRule = ModifyTrafficMirrorFilterRule'
  { -- | The description to assign to the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The destination CIDR block to assign to the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule -> Maybe Text
destinationCidrBlock :: Prelude.Maybe Prelude.Text,
    -- | The destination ports that are associated with the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
destinationPortRange :: Prelude.Maybe TrafficMirrorPortRangeRequest,
    -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    ModifyTrafficMirrorFilterRule -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The protocol, for example TCP, to assign to the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule -> Maybe Int
protocol :: Prelude.Maybe Prelude.Int,
    -- | The properties that you want to remove from the Traffic Mirror filter
    -- rule.
    --
    -- When you remove a property from a Traffic Mirror filter rule, the
    -- property is set to the default.
    ModifyTrafficMirrorFilterRule
-> Maybe [TrafficMirrorFilterRuleField]
removeFields :: Prelude.Maybe [TrafficMirrorFilterRuleField],
    -- | The action to assign to the rule.
    ModifyTrafficMirrorFilterRule -> Maybe TrafficMirrorRuleAction
ruleAction :: Prelude.Maybe TrafficMirrorRuleAction,
    -- | The number of the Traffic Mirror rule. This number must be unique for
    -- each Traffic Mirror rule in a given direction. The rules are processed
    -- in ascending order by rule number.
    ModifyTrafficMirrorFilterRule -> Maybe Int
ruleNumber :: Prelude.Maybe Prelude.Int,
    -- | The source CIDR block to assign to the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule -> Maybe Text
sourceCidrBlock :: Prelude.Maybe Prelude.Text,
    -- | The port range to assign to the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
sourcePortRange :: Prelude.Maybe TrafficMirrorPortRangeRequest,
    -- | The type of traffic to assign to the rule.
    ModifyTrafficMirrorFilterRule -> Maybe TrafficDirection
trafficDirection :: Prelude.Maybe TrafficDirection,
    -- | The ID of the Traffic Mirror rule.
    ModifyTrafficMirrorFilterRule -> Text
trafficMirrorFilterRuleId :: Prelude.Text
  }
  deriving (ModifyTrafficMirrorFilterRule
-> ModifyTrafficMirrorFilterRule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyTrafficMirrorFilterRule
-> ModifyTrafficMirrorFilterRule -> Bool
$c/= :: ModifyTrafficMirrorFilterRule
-> ModifyTrafficMirrorFilterRule -> Bool
== :: ModifyTrafficMirrorFilterRule
-> ModifyTrafficMirrorFilterRule -> Bool
$c== :: ModifyTrafficMirrorFilterRule
-> ModifyTrafficMirrorFilterRule -> Bool
Prelude.Eq, ReadPrec [ModifyTrafficMirrorFilterRule]
ReadPrec ModifyTrafficMirrorFilterRule
Int -> ReadS ModifyTrafficMirrorFilterRule
ReadS [ModifyTrafficMirrorFilterRule]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyTrafficMirrorFilterRule]
$creadListPrec :: ReadPrec [ModifyTrafficMirrorFilterRule]
readPrec :: ReadPrec ModifyTrafficMirrorFilterRule
$creadPrec :: ReadPrec ModifyTrafficMirrorFilterRule
readList :: ReadS [ModifyTrafficMirrorFilterRule]
$creadList :: ReadS [ModifyTrafficMirrorFilterRule]
readsPrec :: Int -> ReadS ModifyTrafficMirrorFilterRule
$creadsPrec :: Int -> ReadS ModifyTrafficMirrorFilterRule
Prelude.Read, Int -> ModifyTrafficMirrorFilterRule -> ShowS
[ModifyTrafficMirrorFilterRule] -> ShowS
ModifyTrafficMirrorFilterRule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyTrafficMirrorFilterRule] -> ShowS
$cshowList :: [ModifyTrafficMirrorFilterRule] -> ShowS
show :: ModifyTrafficMirrorFilterRule -> String
$cshow :: ModifyTrafficMirrorFilterRule -> String
showsPrec :: Int -> ModifyTrafficMirrorFilterRule -> ShowS
$cshowsPrec :: Int -> ModifyTrafficMirrorFilterRule -> ShowS
Prelude.Show, forall x.
Rep ModifyTrafficMirrorFilterRule x
-> ModifyTrafficMirrorFilterRule
forall x.
ModifyTrafficMirrorFilterRule
-> Rep ModifyTrafficMirrorFilterRule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyTrafficMirrorFilterRule x
-> ModifyTrafficMirrorFilterRule
$cfrom :: forall x.
ModifyTrafficMirrorFilterRule
-> Rep ModifyTrafficMirrorFilterRule x
Prelude.Generic)

-- |
-- Create a value of 'ModifyTrafficMirrorFilterRule' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'description', 'modifyTrafficMirrorFilterRule_description' - The description to assign to the Traffic Mirror rule.
--
-- 'destinationCidrBlock', 'modifyTrafficMirrorFilterRule_destinationCidrBlock' - The destination CIDR block to assign to the Traffic Mirror rule.
--
-- 'destinationPortRange', 'modifyTrafficMirrorFilterRule_destinationPortRange' - The destination ports that are associated with the Traffic Mirror rule.
--
-- 'dryRun', 'modifyTrafficMirrorFilterRule_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'protocol', 'modifyTrafficMirrorFilterRule_protocol' - The protocol, for example TCP, to assign to the Traffic Mirror rule.
--
-- 'removeFields', 'modifyTrafficMirrorFilterRule_removeFields' - The properties that you want to remove from the Traffic Mirror filter
-- rule.
--
-- When you remove a property from a Traffic Mirror filter rule, the
-- property is set to the default.
--
-- 'ruleAction', 'modifyTrafficMirrorFilterRule_ruleAction' - The action to assign to the rule.
--
-- 'ruleNumber', 'modifyTrafficMirrorFilterRule_ruleNumber' - The number of the Traffic Mirror rule. This number must be unique for
-- each Traffic Mirror rule in a given direction. The rules are processed
-- in ascending order by rule number.
--
-- 'sourceCidrBlock', 'modifyTrafficMirrorFilterRule_sourceCidrBlock' - The source CIDR block to assign to the Traffic Mirror rule.
--
-- 'sourcePortRange', 'modifyTrafficMirrorFilterRule_sourcePortRange' - The port range to assign to the Traffic Mirror rule.
--
-- 'trafficDirection', 'modifyTrafficMirrorFilterRule_trafficDirection' - The type of traffic to assign to the rule.
--
-- 'trafficMirrorFilterRuleId', 'modifyTrafficMirrorFilterRule_trafficMirrorFilterRuleId' - The ID of the Traffic Mirror rule.
newModifyTrafficMirrorFilterRule ::
  -- | 'trafficMirrorFilterRuleId'
  Prelude.Text ->
  ModifyTrafficMirrorFilterRule
newModifyTrafficMirrorFilterRule :: Text -> ModifyTrafficMirrorFilterRule
newModifyTrafficMirrorFilterRule
  Text
pTrafficMirrorFilterRuleId_ =
    ModifyTrafficMirrorFilterRule'
      { $sel:description:ModifyTrafficMirrorFilterRule' :: Maybe Text
description =
          forall a. Maybe a
Prelude.Nothing,
        $sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: Maybe Text
destinationCidrBlock = forall a. Maybe a
Prelude.Nothing,
        $sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorPortRangeRequest
destinationPortRange = forall a. Maybe a
Prelude.Nothing,
        $sel:dryRun:ModifyTrafficMirrorFilterRule' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
        $sel:protocol:ModifyTrafficMirrorFilterRule' :: Maybe Int
protocol = forall a. Maybe a
Prelude.Nothing,
        $sel:removeFields:ModifyTrafficMirrorFilterRule' :: Maybe [TrafficMirrorFilterRuleField]
removeFields = forall a. Maybe a
Prelude.Nothing,
        $sel:ruleAction:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorRuleAction
ruleAction = forall a. Maybe a
Prelude.Nothing,
        $sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: Maybe Int
ruleNumber = forall a. Maybe a
Prelude.Nothing,
        $sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: Maybe Text
sourceCidrBlock = forall a. Maybe a
Prelude.Nothing,
        $sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorPortRangeRequest
sourcePortRange = forall a. Maybe a
Prelude.Nothing,
        $sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: Maybe TrafficDirection
trafficDirection = forall a. Maybe a
Prelude.Nothing,
        $sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: Text
trafficMirrorFilterRuleId =
          Text
pTrafficMirrorFilterRuleId_
      }

-- | The description to assign to the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_description :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Text)
modifyTrafficMirrorFilterRule_description :: Lens' ModifyTrafficMirrorFilterRule (Maybe Text)
modifyTrafficMirrorFilterRule_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Text
description :: Maybe Text
$sel:description:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
description} -> Maybe Text
description) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Text
a -> ModifyTrafficMirrorFilterRule
s {$sel:description:ModifyTrafficMirrorFilterRule' :: Maybe Text
description = Maybe Text
a} :: ModifyTrafficMirrorFilterRule)

-- | The destination CIDR block to assign to the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_destinationCidrBlock :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Text)
modifyTrafficMirrorFilterRule_destinationCidrBlock :: Lens' ModifyTrafficMirrorFilterRule (Maybe Text)
modifyTrafficMirrorFilterRule_destinationCidrBlock = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Text
destinationCidrBlock :: Maybe Text
$sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
destinationCidrBlock} -> Maybe Text
destinationCidrBlock) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Text
a -> ModifyTrafficMirrorFilterRule
s {$sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: Maybe Text
destinationCidrBlock = Maybe Text
a} :: ModifyTrafficMirrorFilterRule)

-- | The destination ports that are associated with the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_destinationPortRange :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe TrafficMirrorPortRangeRequest)
modifyTrafficMirrorFilterRule_destinationPortRange :: Lens'
  ModifyTrafficMirrorFilterRule (Maybe TrafficMirrorPortRangeRequest)
modifyTrafficMirrorFilterRule_destinationPortRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe TrafficMirrorPortRangeRequest
destinationPortRange :: Maybe TrafficMirrorPortRangeRequest
$sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
destinationPortRange} -> Maybe TrafficMirrorPortRangeRequest
destinationPortRange) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe TrafficMirrorPortRangeRequest
a -> ModifyTrafficMirrorFilterRule
s {$sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorPortRangeRequest
destinationPortRange = Maybe TrafficMirrorPortRangeRequest
a} :: ModifyTrafficMirrorFilterRule)

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
modifyTrafficMirrorFilterRule_dryRun :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Bool)
modifyTrafficMirrorFilterRule_dryRun :: Lens' ModifyTrafficMirrorFilterRule (Maybe Bool)
modifyTrafficMirrorFilterRule_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Bool
a -> ModifyTrafficMirrorFilterRule
s {$sel:dryRun:ModifyTrafficMirrorFilterRule' :: Maybe Bool
dryRun = Maybe Bool
a} :: ModifyTrafficMirrorFilterRule)

-- | The protocol, for example TCP, to assign to the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_protocol :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Int)
modifyTrafficMirrorFilterRule_protocol :: Lens' ModifyTrafficMirrorFilterRule (Maybe Int)
modifyTrafficMirrorFilterRule_protocol = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Int
protocol :: Maybe Int
$sel:protocol:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
protocol} -> Maybe Int
protocol) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Int
a -> ModifyTrafficMirrorFilterRule
s {$sel:protocol:ModifyTrafficMirrorFilterRule' :: Maybe Int
protocol = Maybe Int
a} :: ModifyTrafficMirrorFilterRule)

-- | The properties that you want to remove from the Traffic Mirror filter
-- rule.
--
-- When you remove a property from a Traffic Mirror filter rule, the
-- property is set to the default.
modifyTrafficMirrorFilterRule_removeFields :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe [TrafficMirrorFilterRuleField])
modifyTrafficMirrorFilterRule_removeFields :: Lens'
  ModifyTrafficMirrorFilterRule
  (Maybe [TrafficMirrorFilterRuleField])
modifyTrafficMirrorFilterRule_removeFields = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe [TrafficMirrorFilterRuleField]
removeFields :: Maybe [TrafficMirrorFilterRuleField]
$sel:removeFields:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe [TrafficMirrorFilterRuleField]
removeFields} -> Maybe [TrafficMirrorFilterRuleField]
removeFields) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe [TrafficMirrorFilterRuleField]
a -> ModifyTrafficMirrorFilterRule
s {$sel:removeFields:ModifyTrafficMirrorFilterRule' :: Maybe [TrafficMirrorFilterRuleField]
removeFields = Maybe [TrafficMirrorFilterRuleField]
a} :: ModifyTrafficMirrorFilterRule) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The action to assign to the rule.
modifyTrafficMirrorFilterRule_ruleAction :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe TrafficMirrorRuleAction)
modifyTrafficMirrorFilterRule_ruleAction :: Lens' ModifyTrafficMirrorFilterRule (Maybe TrafficMirrorRuleAction)
modifyTrafficMirrorFilterRule_ruleAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe TrafficMirrorRuleAction
ruleAction :: Maybe TrafficMirrorRuleAction
$sel:ruleAction:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficMirrorRuleAction
ruleAction} -> Maybe TrafficMirrorRuleAction
ruleAction) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe TrafficMirrorRuleAction
a -> ModifyTrafficMirrorFilterRule
s {$sel:ruleAction:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorRuleAction
ruleAction = Maybe TrafficMirrorRuleAction
a} :: ModifyTrafficMirrorFilterRule)

-- | The number of the Traffic Mirror rule. This number must be unique for
-- each Traffic Mirror rule in a given direction. The rules are processed
-- in ascending order by rule number.
modifyTrafficMirrorFilterRule_ruleNumber :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Int)
modifyTrafficMirrorFilterRule_ruleNumber :: Lens' ModifyTrafficMirrorFilterRule (Maybe Int)
modifyTrafficMirrorFilterRule_ruleNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Int
ruleNumber :: Maybe Int
$sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
ruleNumber} -> Maybe Int
ruleNumber) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Int
a -> ModifyTrafficMirrorFilterRule
s {$sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: Maybe Int
ruleNumber = Maybe Int
a} :: ModifyTrafficMirrorFilterRule)

-- | The source CIDR block to assign to the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_sourceCidrBlock :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe Prelude.Text)
modifyTrafficMirrorFilterRule_sourceCidrBlock :: Lens' ModifyTrafficMirrorFilterRule (Maybe Text)
modifyTrafficMirrorFilterRule_sourceCidrBlock = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe Text
sourceCidrBlock :: Maybe Text
$sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
sourceCidrBlock} -> Maybe Text
sourceCidrBlock) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe Text
a -> ModifyTrafficMirrorFilterRule
s {$sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: Maybe Text
sourceCidrBlock = Maybe Text
a} :: ModifyTrafficMirrorFilterRule)

-- | The port range to assign to the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_sourcePortRange :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe TrafficMirrorPortRangeRequest)
modifyTrafficMirrorFilterRule_sourcePortRange :: Lens'
  ModifyTrafficMirrorFilterRule (Maybe TrafficMirrorPortRangeRequest)
modifyTrafficMirrorFilterRule_sourcePortRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe TrafficMirrorPortRangeRequest
sourcePortRange :: Maybe TrafficMirrorPortRangeRequest
$sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
sourcePortRange} -> Maybe TrafficMirrorPortRangeRequest
sourcePortRange) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe TrafficMirrorPortRangeRequest
a -> ModifyTrafficMirrorFilterRule
s {$sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: Maybe TrafficMirrorPortRangeRequest
sourcePortRange = Maybe TrafficMirrorPortRangeRequest
a} :: ModifyTrafficMirrorFilterRule)

-- | The type of traffic to assign to the rule.
modifyTrafficMirrorFilterRule_trafficDirection :: Lens.Lens' ModifyTrafficMirrorFilterRule (Prelude.Maybe TrafficDirection)
modifyTrafficMirrorFilterRule_trafficDirection :: Lens' ModifyTrafficMirrorFilterRule (Maybe TrafficDirection)
modifyTrafficMirrorFilterRule_trafficDirection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Maybe TrafficDirection
trafficDirection :: Maybe TrafficDirection
$sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficDirection
trafficDirection} -> Maybe TrafficDirection
trafficDirection) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Maybe TrafficDirection
a -> ModifyTrafficMirrorFilterRule
s {$sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: Maybe TrafficDirection
trafficDirection = Maybe TrafficDirection
a} :: ModifyTrafficMirrorFilterRule)

-- | The ID of the Traffic Mirror rule.
modifyTrafficMirrorFilterRule_trafficMirrorFilterRuleId :: Lens.Lens' ModifyTrafficMirrorFilterRule Prelude.Text
modifyTrafficMirrorFilterRule_trafficMirrorFilterRuleId :: Lens' ModifyTrafficMirrorFilterRule Text
modifyTrafficMirrorFilterRule_trafficMirrorFilterRuleId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRule' {Text
trafficMirrorFilterRuleId :: Text
$sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Text
trafficMirrorFilterRuleId} -> Text
trafficMirrorFilterRuleId) (\s :: ModifyTrafficMirrorFilterRule
s@ModifyTrafficMirrorFilterRule' {} Text
a -> ModifyTrafficMirrorFilterRule
s {$sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: Text
trafficMirrorFilterRuleId = Text
a} :: ModifyTrafficMirrorFilterRule)

instance
  Core.AWSRequest
    ModifyTrafficMirrorFilterRule
  where
  type
    AWSResponse ModifyTrafficMirrorFilterRule =
      ModifyTrafficMirrorFilterRuleResponse
  request :: (Service -> Service)
-> ModifyTrafficMirrorFilterRule
-> Request ModifyTrafficMirrorFilterRule
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ModifyTrafficMirrorFilterRule
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ModifyTrafficMirrorFilterRule)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe TrafficMirrorFilterRule
-> Int -> ModifyTrafficMirrorFilterRuleResponse
ModifyTrafficMirrorFilterRuleResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"trafficMirrorFilterRule")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    ModifyTrafficMirrorFilterRule
  where
  hashWithSalt :: Int -> ModifyTrafficMirrorFilterRule -> Int
hashWithSalt Int
_salt ModifyTrafficMirrorFilterRule' {Maybe Bool
Maybe Int
Maybe [TrafficMirrorFilterRuleField]
Maybe Text
Maybe TrafficDirection
Maybe TrafficMirrorPortRangeRequest
Maybe TrafficMirrorRuleAction
Text
trafficMirrorFilterRuleId :: Text
trafficDirection :: Maybe TrafficDirection
sourcePortRange :: Maybe TrafficMirrorPortRangeRequest
sourceCidrBlock :: Maybe Text
ruleNumber :: Maybe Int
ruleAction :: Maybe TrafficMirrorRuleAction
removeFields :: Maybe [TrafficMirrorFilterRuleField]
protocol :: Maybe Int
dryRun :: Maybe Bool
destinationPortRange :: Maybe TrafficMirrorPortRangeRequest
destinationCidrBlock :: Maybe Text
description :: Maybe Text
$sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Text
$sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficDirection
$sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:ruleAction:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficMirrorRuleAction
$sel:removeFields:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe [TrafficMirrorFilterRuleField]
$sel:protocol:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:dryRun:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Bool
$sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:description:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationCidrBlock
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrafficMirrorPortRangeRequest
destinationPortRange
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
protocol
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TrafficMirrorFilterRuleField]
removeFields
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrafficMirrorRuleAction
ruleAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
ruleNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceCidrBlock
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrafficMirrorPortRangeRequest
sourcePortRange
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrafficDirection
trafficDirection
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
trafficMirrorFilterRuleId

instance Prelude.NFData ModifyTrafficMirrorFilterRule where
  rnf :: ModifyTrafficMirrorFilterRule -> ()
rnf ModifyTrafficMirrorFilterRule' {Maybe Bool
Maybe Int
Maybe [TrafficMirrorFilterRuleField]
Maybe Text
Maybe TrafficDirection
Maybe TrafficMirrorPortRangeRequest
Maybe TrafficMirrorRuleAction
Text
trafficMirrorFilterRuleId :: Text
trafficDirection :: Maybe TrafficDirection
sourcePortRange :: Maybe TrafficMirrorPortRangeRequest
sourceCidrBlock :: Maybe Text
ruleNumber :: Maybe Int
ruleAction :: Maybe TrafficMirrorRuleAction
removeFields :: Maybe [TrafficMirrorFilterRuleField]
protocol :: Maybe Int
dryRun :: Maybe Bool
destinationPortRange :: Maybe TrafficMirrorPortRangeRequest
destinationCidrBlock :: Maybe Text
description :: Maybe Text
$sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Text
$sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficDirection
$sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:ruleAction:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficMirrorRuleAction
$sel:removeFields:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe [TrafficMirrorFilterRuleField]
$sel:protocol:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:dryRun:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Bool
$sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:description:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationCidrBlock
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrafficMirrorPortRangeRequest
destinationPortRange
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
protocol
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TrafficMirrorFilterRuleField]
removeFields
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrafficMirrorRuleAction
ruleAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
ruleNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceCidrBlock
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrafficMirrorPortRangeRequest
sourcePortRange
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrafficDirection
trafficDirection
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
trafficMirrorFilterRuleId

instance Data.ToHeaders ModifyTrafficMirrorFilterRule where
  toHeaders :: ModifyTrafficMirrorFilterRule -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath ModifyTrafficMirrorFilterRule where
  toPath :: ModifyTrafficMirrorFilterRule -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery ModifyTrafficMirrorFilterRule where
  toQuery :: ModifyTrafficMirrorFilterRule -> QueryString
toQuery ModifyTrafficMirrorFilterRule' {Maybe Bool
Maybe Int
Maybe [TrafficMirrorFilterRuleField]
Maybe Text
Maybe TrafficDirection
Maybe TrafficMirrorPortRangeRequest
Maybe TrafficMirrorRuleAction
Text
trafficMirrorFilterRuleId :: Text
trafficDirection :: Maybe TrafficDirection
sourcePortRange :: Maybe TrafficMirrorPortRangeRequest
sourceCidrBlock :: Maybe Text
ruleNumber :: Maybe Int
ruleAction :: Maybe TrafficMirrorRuleAction
removeFields :: Maybe [TrafficMirrorFilterRuleField]
protocol :: Maybe Int
dryRun :: Maybe Bool
destinationPortRange :: Maybe TrafficMirrorPortRangeRequest
destinationCidrBlock :: Maybe Text
description :: Maybe Text
$sel:trafficMirrorFilterRuleId:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Text
$sel:trafficDirection:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficDirection
$sel:sourcePortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:sourceCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:ruleNumber:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:ruleAction:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe TrafficMirrorRuleAction
$sel:removeFields:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe [TrafficMirrorFilterRuleField]
$sel:protocol:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Int
$sel:dryRun:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Bool
$sel:destinationPortRange:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule
-> Maybe TrafficMirrorPortRangeRequest
$sel:destinationCidrBlock:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
$sel:description:ModifyTrafficMirrorFilterRule' :: ModifyTrafficMirrorFilterRule -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"ModifyTrafficMirrorFilterRule" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"Description" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
description,
        ByteString
"DestinationCidrBlock" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
destinationCidrBlock,
        ByteString
"DestinationPortRange" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TrafficMirrorPortRangeRequest
destinationPortRange,
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"Protocol" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
protocol,
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"RemoveField"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [TrafficMirrorFilterRuleField]
removeFields
          ),
        ByteString
"RuleAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TrafficMirrorRuleAction
ruleAction,
        ByteString
"RuleNumber" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
ruleNumber,
        ByteString
"SourceCidrBlock" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
sourceCidrBlock,
        ByteString
"SourcePortRange" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TrafficMirrorPortRangeRequest
sourcePortRange,
        ByteString
"TrafficDirection" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe TrafficDirection
trafficDirection,
        ByteString
"TrafficMirrorFilterRuleId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
trafficMirrorFilterRuleId
      ]

-- | /See:/ 'newModifyTrafficMirrorFilterRuleResponse' smart constructor.
data ModifyTrafficMirrorFilterRuleResponse = ModifyTrafficMirrorFilterRuleResponse'
  { -- | Modifies a Traffic Mirror rule.
    ModifyTrafficMirrorFilterRuleResponse
-> Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule :: Prelude.Maybe TrafficMirrorFilterRule,
    -- | The response's http status code.
    ModifyTrafficMirrorFilterRuleResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ModifyTrafficMirrorFilterRuleResponse
-> ModifyTrafficMirrorFilterRuleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyTrafficMirrorFilterRuleResponse
-> ModifyTrafficMirrorFilterRuleResponse -> Bool
$c/= :: ModifyTrafficMirrorFilterRuleResponse
-> ModifyTrafficMirrorFilterRuleResponse -> Bool
== :: ModifyTrafficMirrorFilterRuleResponse
-> ModifyTrafficMirrorFilterRuleResponse -> Bool
$c== :: ModifyTrafficMirrorFilterRuleResponse
-> ModifyTrafficMirrorFilterRuleResponse -> Bool
Prelude.Eq, ReadPrec [ModifyTrafficMirrorFilterRuleResponse]
ReadPrec ModifyTrafficMirrorFilterRuleResponse
Int -> ReadS ModifyTrafficMirrorFilterRuleResponse
ReadS [ModifyTrafficMirrorFilterRuleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyTrafficMirrorFilterRuleResponse]
$creadListPrec :: ReadPrec [ModifyTrafficMirrorFilterRuleResponse]
readPrec :: ReadPrec ModifyTrafficMirrorFilterRuleResponse
$creadPrec :: ReadPrec ModifyTrafficMirrorFilterRuleResponse
readList :: ReadS [ModifyTrafficMirrorFilterRuleResponse]
$creadList :: ReadS [ModifyTrafficMirrorFilterRuleResponse]
readsPrec :: Int -> ReadS ModifyTrafficMirrorFilterRuleResponse
$creadsPrec :: Int -> ReadS ModifyTrafficMirrorFilterRuleResponse
Prelude.Read, Int -> ModifyTrafficMirrorFilterRuleResponse -> ShowS
[ModifyTrafficMirrorFilterRuleResponse] -> ShowS
ModifyTrafficMirrorFilterRuleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyTrafficMirrorFilterRuleResponse] -> ShowS
$cshowList :: [ModifyTrafficMirrorFilterRuleResponse] -> ShowS
show :: ModifyTrafficMirrorFilterRuleResponse -> String
$cshow :: ModifyTrafficMirrorFilterRuleResponse -> String
showsPrec :: Int -> ModifyTrafficMirrorFilterRuleResponse -> ShowS
$cshowsPrec :: Int -> ModifyTrafficMirrorFilterRuleResponse -> ShowS
Prelude.Show, forall x.
Rep ModifyTrafficMirrorFilterRuleResponse x
-> ModifyTrafficMirrorFilterRuleResponse
forall x.
ModifyTrafficMirrorFilterRuleResponse
-> Rep ModifyTrafficMirrorFilterRuleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ModifyTrafficMirrorFilterRuleResponse x
-> ModifyTrafficMirrorFilterRuleResponse
$cfrom :: forall x.
ModifyTrafficMirrorFilterRuleResponse
-> Rep ModifyTrafficMirrorFilterRuleResponse x
Prelude.Generic)

-- |
-- Create a value of 'ModifyTrafficMirrorFilterRuleResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'trafficMirrorFilterRule', 'modifyTrafficMirrorFilterRuleResponse_trafficMirrorFilterRule' - Modifies a Traffic Mirror rule.
--
-- 'httpStatus', 'modifyTrafficMirrorFilterRuleResponse_httpStatus' - The response's http status code.
newModifyTrafficMirrorFilterRuleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyTrafficMirrorFilterRuleResponse
newModifyTrafficMirrorFilterRuleResponse :: Int -> ModifyTrafficMirrorFilterRuleResponse
newModifyTrafficMirrorFilterRuleResponse Int
pHttpStatus_ =
  ModifyTrafficMirrorFilterRuleResponse'
    { $sel:trafficMirrorFilterRule:ModifyTrafficMirrorFilterRuleResponse' :: Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ModifyTrafficMirrorFilterRuleResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Modifies a Traffic Mirror rule.
modifyTrafficMirrorFilterRuleResponse_trafficMirrorFilterRule :: Lens.Lens' ModifyTrafficMirrorFilterRuleResponse (Prelude.Maybe TrafficMirrorFilterRule)
modifyTrafficMirrorFilterRuleResponse_trafficMirrorFilterRule :: Lens'
  ModifyTrafficMirrorFilterRuleResponse
  (Maybe TrafficMirrorFilterRule)
modifyTrafficMirrorFilterRuleResponse_trafficMirrorFilterRule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRuleResponse' {Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule :: Maybe TrafficMirrorFilterRule
$sel:trafficMirrorFilterRule:ModifyTrafficMirrorFilterRuleResponse' :: ModifyTrafficMirrorFilterRuleResponse
-> Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule} -> Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule) (\s :: ModifyTrafficMirrorFilterRuleResponse
s@ModifyTrafficMirrorFilterRuleResponse' {} Maybe TrafficMirrorFilterRule
a -> ModifyTrafficMirrorFilterRuleResponse
s {$sel:trafficMirrorFilterRule:ModifyTrafficMirrorFilterRuleResponse' :: Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule = Maybe TrafficMirrorFilterRule
a} :: ModifyTrafficMirrorFilterRuleResponse)

-- | The response's http status code.
modifyTrafficMirrorFilterRuleResponse_httpStatus :: Lens.Lens' ModifyTrafficMirrorFilterRuleResponse Prelude.Int
modifyTrafficMirrorFilterRuleResponse_httpStatus :: Lens' ModifyTrafficMirrorFilterRuleResponse Int
modifyTrafficMirrorFilterRuleResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyTrafficMirrorFilterRuleResponse' {Int
httpStatus :: Int
$sel:httpStatus:ModifyTrafficMirrorFilterRuleResponse' :: ModifyTrafficMirrorFilterRuleResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ModifyTrafficMirrorFilterRuleResponse
s@ModifyTrafficMirrorFilterRuleResponse' {} Int
a -> ModifyTrafficMirrorFilterRuleResponse
s {$sel:httpStatus:ModifyTrafficMirrorFilterRuleResponse' :: Int
httpStatus = Int
a} :: ModifyTrafficMirrorFilterRuleResponse)

instance
  Prelude.NFData
    ModifyTrafficMirrorFilterRuleResponse
  where
  rnf :: ModifyTrafficMirrorFilterRuleResponse -> ()
rnf ModifyTrafficMirrorFilterRuleResponse' {Int
Maybe TrafficMirrorFilterRule
httpStatus :: Int
trafficMirrorFilterRule :: Maybe TrafficMirrorFilterRule
$sel:httpStatus:ModifyTrafficMirrorFilterRuleResponse' :: ModifyTrafficMirrorFilterRuleResponse -> Int
$sel:trafficMirrorFilterRule:ModifyTrafficMirrorFilterRuleResponse' :: ModifyTrafficMirrorFilterRuleResponse
-> Maybe TrafficMirrorFilterRule
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe TrafficMirrorFilterRule
trafficMirrorFilterRule
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus