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

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

-- |
-- Module      : Amazonka.FMS.Types.RemediationAction
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.FMS.Types.RemediationAction where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FMS.Types.EC2AssociateRouteTableAction
import Amazonka.FMS.Types.EC2CopyRouteTableAction
import Amazonka.FMS.Types.EC2CreateRouteAction
import Amazonka.FMS.Types.EC2CreateRouteTableAction
import Amazonka.FMS.Types.EC2DeleteRouteAction
import Amazonka.FMS.Types.EC2ReplaceRouteAction
import Amazonka.FMS.Types.EC2ReplaceRouteTableAssociationAction
import Amazonka.FMS.Types.FMSPolicyUpdateFirewallCreationConfigAction
import qualified Amazonka.Prelude as Prelude

-- | Information about an individual action you can take to remediate a
-- violation.
--
-- /See:/ 'newRemediationAction' smart constructor.
data RemediationAction = RemediationAction'
  { -- | A description of a remediation action.
    RemediationAction -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Information about the AssociateRouteTable action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction :: Prelude.Maybe EC2AssociateRouteTableAction,
    -- | Information about the CopyRouteTable action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction :: Prelude.Maybe EC2CopyRouteTableAction,
    -- | Information about the CreateRoute action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2CreateRouteAction
eC2CreateRouteAction :: Prelude.Maybe EC2CreateRouteAction,
    -- | Information about the CreateRouteTable action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction :: Prelude.Maybe EC2CreateRouteTableAction,
    -- | Information about the DeleteRoute action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2DeleteRouteAction
eC2DeleteRouteAction :: Prelude.Maybe EC2DeleteRouteAction,
    -- | Information about the ReplaceRoute action in the Amazon EC2 API.
    RemediationAction -> Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction :: Prelude.Maybe EC2ReplaceRouteAction,
    -- | Information about the ReplaceRouteTableAssociation action in the Amazon
    -- EC2 API.
    RemediationAction -> Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction :: Prelude.Maybe EC2ReplaceRouteTableAssociationAction,
    -- | The remedial action to take when updating a firewall configuration.
    RemediationAction
-> Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction :: Prelude.Maybe FMSPolicyUpdateFirewallCreationConfigAction
  }
  deriving (RemediationAction -> RemediationAction -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RemediationAction -> RemediationAction -> Bool
$c/= :: RemediationAction -> RemediationAction -> Bool
== :: RemediationAction -> RemediationAction -> Bool
$c== :: RemediationAction -> RemediationAction -> Bool
Prelude.Eq, ReadPrec [RemediationAction]
ReadPrec RemediationAction
Int -> ReadS RemediationAction
ReadS [RemediationAction]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RemediationAction]
$creadListPrec :: ReadPrec [RemediationAction]
readPrec :: ReadPrec RemediationAction
$creadPrec :: ReadPrec RemediationAction
readList :: ReadS [RemediationAction]
$creadList :: ReadS [RemediationAction]
readsPrec :: Int -> ReadS RemediationAction
$creadsPrec :: Int -> ReadS RemediationAction
Prelude.Read, Int -> RemediationAction -> ShowS
[RemediationAction] -> ShowS
RemediationAction -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RemediationAction] -> ShowS
$cshowList :: [RemediationAction] -> ShowS
show :: RemediationAction -> String
$cshow :: RemediationAction -> String
showsPrec :: Int -> RemediationAction -> ShowS
$cshowsPrec :: Int -> RemediationAction -> ShowS
Prelude.Show, forall x. Rep RemediationAction x -> RemediationAction
forall x. RemediationAction -> Rep RemediationAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RemediationAction x -> RemediationAction
$cfrom :: forall x. RemediationAction -> Rep RemediationAction x
Prelude.Generic)

-- |
-- Create a value of 'RemediationAction' 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', 'remediationAction_description' - A description of a remediation action.
--
-- 'eC2AssociateRouteTableAction', 'remediationAction_eC2AssociateRouteTableAction' - Information about the AssociateRouteTable action in the Amazon EC2 API.
--
-- 'eC2CopyRouteTableAction', 'remediationAction_eC2CopyRouteTableAction' - Information about the CopyRouteTable action in the Amazon EC2 API.
--
-- 'eC2CreateRouteAction', 'remediationAction_eC2CreateRouteAction' - Information about the CreateRoute action in the Amazon EC2 API.
--
-- 'eC2CreateRouteTableAction', 'remediationAction_eC2CreateRouteTableAction' - Information about the CreateRouteTable action in the Amazon EC2 API.
--
-- 'eC2DeleteRouteAction', 'remediationAction_eC2DeleteRouteAction' - Information about the DeleteRoute action in the Amazon EC2 API.
--
-- 'eC2ReplaceRouteAction', 'remediationAction_eC2ReplaceRouteAction' - Information about the ReplaceRoute action in the Amazon EC2 API.
--
-- 'eC2ReplaceRouteTableAssociationAction', 'remediationAction_eC2ReplaceRouteTableAssociationAction' - Information about the ReplaceRouteTableAssociation action in the Amazon
-- EC2 API.
--
-- 'fMSPolicyUpdateFirewallCreationConfigAction', 'remediationAction_fMSPolicyUpdateFirewallCreationConfigAction' - The remedial action to take when updating a firewall configuration.
newRemediationAction ::
  RemediationAction
newRemediationAction :: RemediationAction
newRemediationAction =
  RemediationAction'
    { $sel:description:RemediationAction' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2AssociateRouteTableAction:RemediationAction' :: Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2CopyRouteTableAction:RemediationAction' :: Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2CreateRouteAction:RemediationAction' :: Maybe EC2CreateRouteAction
eC2CreateRouteAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2CreateRouteTableAction:RemediationAction' :: Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2DeleteRouteAction:RemediationAction' :: Maybe EC2DeleteRouteAction
eC2DeleteRouteAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2ReplaceRouteAction:RemediationAction' :: Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction = forall a. Maybe a
Prelude.Nothing,
      $sel:eC2ReplaceRouteTableAssociationAction:RemediationAction' :: Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction =
        forall a. Maybe a
Prelude.Nothing,
      $sel:fMSPolicyUpdateFirewallCreationConfigAction:RemediationAction' :: Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction =
        forall a. Maybe a
Prelude.Nothing
    }

-- | A description of a remediation action.
remediationAction_description :: Lens.Lens' RemediationAction (Prelude.Maybe Prelude.Text)
remediationAction_description :: Lens' RemediationAction (Maybe Text)
remediationAction_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe Text
description :: Maybe Text
$sel:description:RemediationAction' :: RemediationAction -> Maybe Text
description} -> Maybe Text
description) (\s :: RemediationAction
s@RemediationAction' {} Maybe Text
a -> RemediationAction
s {$sel:description:RemediationAction' :: Maybe Text
description = Maybe Text
a} :: RemediationAction)

-- | Information about the AssociateRouteTable action in the Amazon EC2 API.
remediationAction_eC2AssociateRouteTableAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2AssociateRouteTableAction)
remediationAction_eC2AssociateRouteTableAction :: Lens' RemediationAction (Maybe EC2AssociateRouteTableAction)
remediationAction_eC2AssociateRouteTableAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction :: Maybe EC2AssociateRouteTableAction
$sel:eC2AssociateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction} -> Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2AssociateRouteTableAction
a -> RemediationAction
s {$sel:eC2AssociateRouteTableAction:RemediationAction' :: Maybe EC2AssociateRouteTableAction
eC2AssociateRouteTableAction = Maybe EC2AssociateRouteTableAction
a} :: RemediationAction)

-- | Information about the CopyRouteTable action in the Amazon EC2 API.
remediationAction_eC2CopyRouteTableAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2CopyRouteTableAction)
remediationAction_eC2CopyRouteTableAction :: Lens' RemediationAction (Maybe EC2CopyRouteTableAction)
remediationAction_eC2CopyRouteTableAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction :: Maybe EC2CopyRouteTableAction
$sel:eC2CopyRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction} -> Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2CopyRouteTableAction
a -> RemediationAction
s {$sel:eC2CopyRouteTableAction:RemediationAction' :: Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction = Maybe EC2CopyRouteTableAction
a} :: RemediationAction)

-- | Information about the CreateRoute action in the Amazon EC2 API.
remediationAction_eC2CreateRouteAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2CreateRouteAction)
remediationAction_eC2CreateRouteAction :: Lens' RemediationAction (Maybe EC2CreateRouteAction)
remediationAction_eC2CreateRouteAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2CreateRouteAction
eC2CreateRouteAction :: Maybe EC2CreateRouteAction
$sel:eC2CreateRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteAction
eC2CreateRouteAction} -> Maybe EC2CreateRouteAction
eC2CreateRouteAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2CreateRouteAction
a -> RemediationAction
s {$sel:eC2CreateRouteAction:RemediationAction' :: Maybe EC2CreateRouteAction
eC2CreateRouteAction = Maybe EC2CreateRouteAction
a} :: RemediationAction)

-- | Information about the CreateRouteTable action in the Amazon EC2 API.
remediationAction_eC2CreateRouteTableAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2CreateRouteTableAction)
remediationAction_eC2CreateRouteTableAction :: Lens' RemediationAction (Maybe EC2CreateRouteTableAction)
remediationAction_eC2CreateRouteTableAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction :: Maybe EC2CreateRouteTableAction
$sel:eC2CreateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction} -> Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2CreateRouteTableAction
a -> RemediationAction
s {$sel:eC2CreateRouteTableAction:RemediationAction' :: Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction = Maybe EC2CreateRouteTableAction
a} :: RemediationAction)

-- | Information about the DeleteRoute action in the Amazon EC2 API.
remediationAction_eC2DeleteRouteAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2DeleteRouteAction)
remediationAction_eC2DeleteRouteAction :: Lens' RemediationAction (Maybe EC2DeleteRouteAction)
remediationAction_eC2DeleteRouteAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2DeleteRouteAction
eC2DeleteRouteAction :: Maybe EC2DeleteRouteAction
$sel:eC2DeleteRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2DeleteRouteAction
eC2DeleteRouteAction} -> Maybe EC2DeleteRouteAction
eC2DeleteRouteAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2DeleteRouteAction
a -> RemediationAction
s {$sel:eC2DeleteRouteAction:RemediationAction' :: Maybe EC2DeleteRouteAction
eC2DeleteRouteAction = Maybe EC2DeleteRouteAction
a} :: RemediationAction)

-- | Information about the ReplaceRoute action in the Amazon EC2 API.
remediationAction_eC2ReplaceRouteAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2ReplaceRouteAction)
remediationAction_eC2ReplaceRouteAction :: Lens' RemediationAction (Maybe EC2ReplaceRouteAction)
remediationAction_eC2ReplaceRouteAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction :: Maybe EC2ReplaceRouteAction
$sel:eC2ReplaceRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction} -> Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2ReplaceRouteAction
a -> RemediationAction
s {$sel:eC2ReplaceRouteAction:RemediationAction' :: Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction = Maybe EC2ReplaceRouteAction
a} :: RemediationAction)

-- | Information about the ReplaceRouteTableAssociation action in the Amazon
-- EC2 API.
remediationAction_eC2ReplaceRouteTableAssociationAction :: Lens.Lens' RemediationAction (Prelude.Maybe EC2ReplaceRouteTableAssociationAction)
remediationAction_eC2ReplaceRouteTableAssociationAction :: Lens'
  RemediationAction (Maybe EC2ReplaceRouteTableAssociationAction)
remediationAction_eC2ReplaceRouteTableAssociationAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction :: Maybe EC2ReplaceRouteTableAssociationAction
$sel:eC2ReplaceRouteTableAssociationAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction} -> Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe EC2ReplaceRouteTableAssociationAction
a -> RemediationAction
s {$sel:eC2ReplaceRouteTableAssociationAction:RemediationAction' :: Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction = Maybe EC2ReplaceRouteTableAssociationAction
a} :: RemediationAction)

-- | The remedial action to take when updating a firewall configuration.
remediationAction_fMSPolicyUpdateFirewallCreationConfigAction :: Lens.Lens' RemediationAction (Prelude.Maybe FMSPolicyUpdateFirewallCreationConfigAction)
remediationAction_fMSPolicyUpdateFirewallCreationConfigAction :: Lens'
  RemediationAction
  (Maybe FMSPolicyUpdateFirewallCreationConfigAction)
remediationAction_fMSPolicyUpdateFirewallCreationConfigAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RemediationAction' {Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction :: Maybe FMSPolicyUpdateFirewallCreationConfigAction
$sel:fMSPolicyUpdateFirewallCreationConfigAction:RemediationAction' :: RemediationAction
-> Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction} -> Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction) (\s :: RemediationAction
s@RemediationAction' {} Maybe FMSPolicyUpdateFirewallCreationConfigAction
a -> RemediationAction
s {$sel:fMSPolicyUpdateFirewallCreationConfigAction:RemediationAction' :: Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction = Maybe FMSPolicyUpdateFirewallCreationConfigAction
a} :: RemediationAction)

instance Data.FromJSON RemediationAction where
  parseJSON :: Value -> Parser RemediationAction
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"RemediationAction"
      ( \Object
x ->
          Maybe Text
-> Maybe EC2AssociateRouteTableAction
-> Maybe EC2CopyRouteTableAction
-> Maybe EC2CreateRouteAction
-> Maybe EC2CreateRouteTableAction
-> Maybe EC2DeleteRouteAction
-> Maybe EC2ReplaceRouteAction
-> Maybe EC2ReplaceRouteTableAssociationAction
-> Maybe FMSPolicyUpdateFirewallCreationConfigAction
-> RemediationAction
RemediationAction'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2AssociateRouteTableAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2CopyRouteTableAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2CreateRouteAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2CreateRouteTableAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2DeleteRouteAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2ReplaceRouteAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EC2ReplaceRouteTableAssociationAction")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FMSPolicyUpdateFirewallCreationConfigAction"
                        )
      )

instance Prelude.Hashable RemediationAction where
  hashWithSalt :: Int -> RemediationAction -> Int
hashWithSalt Int
_salt RemediationAction' {Maybe Text
Maybe EC2AssociateRouteTableAction
Maybe EC2CopyRouteTableAction
Maybe EC2CreateRouteAction
Maybe EC2CreateRouteTableAction
Maybe EC2DeleteRouteAction
Maybe EC2ReplaceRouteAction
Maybe EC2ReplaceRouteTableAssociationAction
Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction :: Maybe FMSPolicyUpdateFirewallCreationConfigAction
eC2ReplaceRouteTableAssociationAction :: Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteAction :: Maybe EC2ReplaceRouteAction
eC2DeleteRouteAction :: Maybe EC2DeleteRouteAction
eC2CreateRouteTableAction :: Maybe EC2CreateRouteTableAction
eC2CreateRouteAction :: Maybe EC2CreateRouteAction
eC2CopyRouteTableAction :: Maybe EC2CopyRouteTableAction
eC2AssociateRouteTableAction :: Maybe EC2AssociateRouteTableAction
description :: Maybe Text
$sel:fMSPolicyUpdateFirewallCreationConfigAction:RemediationAction' :: RemediationAction
-> Maybe FMSPolicyUpdateFirewallCreationConfigAction
$sel:eC2ReplaceRouteTableAssociationAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteTableAssociationAction
$sel:eC2ReplaceRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteAction
$sel:eC2DeleteRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2DeleteRouteAction
$sel:eC2CreateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteTableAction
$sel:eC2CreateRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteAction
$sel:eC2CopyRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CopyRouteTableAction
$sel:eC2AssociateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2AssociateRouteTableAction
$sel:description:RemediationAction' :: RemediationAction -> 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 EC2AssociateRouteTableAction
eC2AssociateRouteTableAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2CreateRouteAction
eC2CreateRouteAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2DeleteRouteAction
eC2DeleteRouteAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction

instance Prelude.NFData RemediationAction where
  rnf :: RemediationAction -> ()
rnf RemediationAction' {Maybe Text
Maybe EC2AssociateRouteTableAction
Maybe EC2CopyRouteTableAction
Maybe EC2CreateRouteAction
Maybe EC2CreateRouteTableAction
Maybe EC2DeleteRouteAction
Maybe EC2ReplaceRouteAction
Maybe EC2ReplaceRouteTableAssociationAction
Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction :: Maybe FMSPolicyUpdateFirewallCreationConfigAction
eC2ReplaceRouteTableAssociationAction :: Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteAction :: Maybe EC2ReplaceRouteAction
eC2DeleteRouteAction :: Maybe EC2DeleteRouteAction
eC2CreateRouteTableAction :: Maybe EC2CreateRouteTableAction
eC2CreateRouteAction :: Maybe EC2CreateRouteAction
eC2CopyRouteTableAction :: Maybe EC2CopyRouteTableAction
eC2AssociateRouteTableAction :: Maybe EC2AssociateRouteTableAction
description :: Maybe Text
$sel:fMSPolicyUpdateFirewallCreationConfigAction:RemediationAction' :: RemediationAction
-> Maybe FMSPolicyUpdateFirewallCreationConfigAction
$sel:eC2ReplaceRouteTableAssociationAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteTableAssociationAction
$sel:eC2ReplaceRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2ReplaceRouteAction
$sel:eC2DeleteRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2DeleteRouteAction
$sel:eC2CreateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteTableAction
$sel:eC2CreateRouteAction:RemediationAction' :: RemediationAction -> Maybe EC2CreateRouteAction
$sel:eC2CopyRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2CopyRouteTableAction
$sel:eC2AssociateRouteTableAction:RemediationAction' :: RemediationAction -> Maybe EC2AssociateRouteTableAction
$sel:description:RemediationAction' :: RemediationAction -> 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 EC2AssociateRouteTableAction
eC2AssociateRouteTableAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2CopyRouteTableAction
eC2CopyRouteTableAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2CreateRouteAction
eC2CreateRouteAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2CreateRouteTableAction
eC2CreateRouteTableAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2DeleteRouteAction
eC2DeleteRouteAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2ReplaceRouteAction
eC2ReplaceRouteAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2ReplaceRouteTableAssociationAction
eC2ReplaceRouteTableAssociationAction
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe FMSPolicyUpdateFirewallCreationConfigAction
fMSPolicyUpdateFirewallCreationConfigAction