{-# 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.ResourceViolation
-- 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.ResourceViolation 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.AwsEc2InstanceViolation
import Amazonka.FMS.Types.AwsEc2NetworkInterfaceViolation
import Amazonka.FMS.Types.AwsVPCSecurityGroupViolation
import Amazonka.FMS.Types.DnsDuplicateRuleGroupViolation
import Amazonka.FMS.Types.DnsRuleGroupLimitExceededViolation
import Amazonka.FMS.Types.DnsRuleGroupPriorityConflictViolation
import Amazonka.FMS.Types.FirewallSubnetIsOutOfScopeViolation
import Amazonka.FMS.Types.FirewallSubnetMissingVPCEndpointViolation
import Amazonka.FMS.Types.NetworkFirewallBlackHoleRouteDetectedViolation
import Amazonka.FMS.Types.NetworkFirewallInternetTrafficNotInspectedViolation
import Amazonka.FMS.Types.NetworkFirewallInvalidRouteConfigurationViolation
import Amazonka.FMS.Types.NetworkFirewallMissingExpectedRTViolation
import Amazonka.FMS.Types.NetworkFirewallMissingExpectedRoutesViolation
import Amazonka.FMS.Types.NetworkFirewallMissingFirewallViolation
import Amazonka.FMS.Types.NetworkFirewallMissingSubnetViolation
import Amazonka.FMS.Types.NetworkFirewallPolicyModifiedViolation
import Amazonka.FMS.Types.NetworkFirewallUnexpectedFirewallRoutesViolation
import Amazonka.FMS.Types.NetworkFirewallUnexpectedGatewayRoutesViolation
import Amazonka.FMS.Types.PossibleRemediationActions
import Amazonka.FMS.Types.RouteHasOutOfScopeEndpointViolation
import Amazonka.FMS.Types.ThirdPartyFirewallMissingExpectedRouteTableViolation
import Amazonka.FMS.Types.ThirdPartyFirewallMissingFirewallViolation
import Amazonka.FMS.Types.ThirdPartyFirewallMissingSubnetViolation
import qualified Amazonka.Prelude as Prelude

-- | Violation detail based on resource type.
--
-- /See:/ 'newResourceViolation' smart constructor.
data ResourceViolation = ResourceViolation'
  { -- | Violation detail for an EC2 instance.
    ResourceViolation -> Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation :: Prelude.Maybe AwsEc2InstanceViolation,
    -- | Violation detail for a network interface.
    ResourceViolation -> Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation :: Prelude.Maybe AwsEc2NetworkInterfaceViolation,
    -- | Violation detail for security groups.
    ResourceViolation -> Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation :: Prelude.Maybe AwsVPCSecurityGroupViolation,
    -- | Violation detail for a DNS Firewall policy that indicates that a rule
    -- group that Firewall Manager tried to associate with a VPC is already
    -- associated with the VPC and can\'t be associated again.
    ResourceViolation -> Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation :: Prelude.Maybe DnsDuplicateRuleGroupViolation,
    -- | Violation detail for a DNS Firewall policy that indicates that the VPC
    -- reached the limit for associated DNS Firewall rule groups. Firewall
    -- Manager tried to associate another rule group with the VPC and failed.
    ResourceViolation -> Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation :: Prelude.Maybe DnsRuleGroupLimitExceededViolation,
    -- | Violation detail for a DNS Firewall policy that indicates that a rule
    -- group that Firewall Manager tried to associate with a VPC has the same
    -- priority as a rule group that\'s already associated.
    ResourceViolation -> Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation :: Prelude.Maybe DnsRuleGroupPriorityConflictViolation,
    -- | Contains details about the firewall subnet that violates the policy
    -- scope.
    ResourceViolation -> Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation :: Prelude.Maybe FirewallSubnetIsOutOfScopeViolation,
    -- | The violation details for a third-party firewall\'s VPC endpoint subnet
    -- that was deleted.
    ResourceViolation
-> Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation :: Prelude.Maybe FirewallSubnetMissingVPCEndpointViolation,
    ResourceViolation
-> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation :: Prelude.Maybe NetworkFirewallBlackHoleRouteDetectedViolation,
    -- | Violation detail for the subnet for which internet traffic hasn\'t been
    -- inspected.
    ResourceViolation
-> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation :: Prelude.Maybe NetworkFirewallInternetTrafficNotInspectedViolation,
    -- | The route configuration is invalid.
    ResourceViolation
-> Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation :: Prelude.Maybe NetworkFirewallInvalidRouteConfigurationViolation,
    -- | Violation detail for an Network Firewall policy that indicates that a
    -- subnet is not associated with the expected Firewall Manager managed
    -- route table.
    ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation :: Prelude.Maybe NetworkFirewallMissingExpectedRTViolation,
    -- | Expected routes are missing from Network Firewall.
    ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation :: Prelude.Maybe NetworkFirewallMissingExpectedRoutesViolation,
    -- | Violation detail for an Network Firewall policy that indicates that a
    -- subnet has no Firewall Manager managed firewall in its VPC.
    ResourceViolation -> Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation :: Prelude.Maybe NetworkFirewallMissingFirewallViolation,
    -- | Violation detail for an Network Firewall policy that indicates that an
    -- Availability Zone is missing the expected Firewall Manager managed
    -- subnet.
    ResourceViolation -> Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation :: Prelude.Maybe NetworkFirewallMissingSubnetViolation,
    -- | Violation detail for an Network Firewall policy that indicates that a
    -- firewall policy in an individual account has been modified in a way that
    -- makes it noncompliant. For example, the individual account owner might
    -- have deleted a rule group, changed the priority of a stateless rule
    -- group, or changed a policy default action.
    ResourceViolation -> Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation :: Prelude.Maybe NetworkFirewallPolicyModifiedViolation,
    -- | There\'s an unexpected firewall route.
    ResourceViolation
-> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation :: Prelude.Maybe NetworkFirewallUnexpectedFirewallRoutesViolation,
    -- | There\'s an unexpected gateway route.
    ResourceViolation
-> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation :: Prelude.Maybe NetworkFirewallUnexpectedGatewayRoutesViolation,
    -- | A list of possible remediation action lists. Each individual possible
    -- remediation action is a list of individual remediation actions.
    ResourceViolation -> Maybe PossibleRemediationActions
possibleRemediationActions :: Prelude.Maybe PossibleRemediationActions,
    -- | Contains details about the route endpoint that violates the policy
    -- scope.
    ResourceViolation -> Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation :: Prelude.Maybe RouteHasOutOfScopeEndpointViolation,
    -- | The violation details for a third-party firewall that has the Firewall
    -- Manager managed route table that was associated with the third-party
    -- firewall has been deleted.
    ResourceViolation
-> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation :: Prelude.Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation,
    -- | The violation details for a third-party firewall that\'s been deleted.
    ResourceViolation
-> Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation :: Prelude.Maybe ThirdPartyFirewallMissingFirewallViolation,
    -- | The violation details for a third-party firewall\'s subnet that\'s been
    -- deleted.
    ResourceViolation -> Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation :: Prelude.Maybe ThirdPartyFirewallMissingSubnetViolation
  }
  deriving (ResourceViolation -> ResourceViolation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResourceViolation -> ResourceViolation -> Bool
$c/= :: ResourceViolation -> ResourceViolation -> Bool
== :: ResourceViolation -> ResourceViolation -> Bool
$c== :: ResourceViolation -> ResourceViolation -> Bool
Prelude.Eq, ReadPrec [ResourceViolation]
ReadPrec ResourceViolation
Int -> ReadS ResourceViolation
ReadS [ResourceViolation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ResourceViolation]
$creadListPrec :: ReadPrec [ResourceViolation]
readPrec :: ReadPrec ResourceViolation
$creadPrec :: ReadPrec ResourceViolation
readList :: ReadS [ResourceViolation]
$creadList :: ReadS [ResourceViolation]
readsPrec :: Int -> ReadS ResourceViolation
$creadsPrec :: Int -> ReadS ResourceViolation
Prelude.Read, Int -> ResourceViolation -> ShowS
[ResourceViolation] -> ShowS
ResourceViolation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResourceViolation] -> ShowS
$cshowList :: [ResourceViolation] -> ShowS
show :: ResourceViolation -> String
$cshow :: ResourceViolation -> String
showsPrec :: Int -> ResourceViolation -> ShowS
$cshowsPrec :: Int -> ResourceViolation -> ShowS
Prelude.Show, forall x. Rep ResourceViolation x -> ResourceViolation
forall x. ResourceViolation -> Rep ResourceViolation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ResourceViolation x -> ResourceViolation
$cfrom :: forall x. ResourceViolation -> Rep ResourceViolation x
Prelude.Generic)

-- |
-- Create a value of 'ResourceViolation' 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:
--
-- 'awsEc2InstanceViolation', 'resourceViolation_awsEc2InstanceViolation' - Violation detail for an EC2 instance.
--
-- 'awsEc2NetworkInterfaceViolation', 'resourceViolation_awsEc2NetworkInterfaceViolation' - Violation detail for a network interface.
--
-- 'awsVPCSecurityGroupViolation', 'resourceViolation_awsVPCSecurityGroupViolation' - Violation detail for security groups.
--
-- 'dnsDuplicateRuleGroupViolation', 'resourceViolation_dnsDuplicateRuleGroupViolation' - Violation detail for a DNS Firewall policy that indicates that a rule
-- group that Firewall Manager tried to associate with a VPC is already
-- associated with the VPC and can\'t be associated again.
--
-- 'dnsRuleGroupLimitExceededViolation', 'resourceViolation_dnsRuleGroupLimitExceededViolation' - Violation detail for a DNS Firewall policy that indicates that the VPC
-- reached the limit for associated DNS Firewall rule groups. Firewall
-- Manager tried to associate another rule group with the VPC and failed.
--
-- 'dnsRuleGroupPriorityConflictViolation', 'resourceViolation_dnsRuleGroupPriorityConflictViolation' - Violation detail for a DNS Firewall policy that indicates that a rule
-- group that Firewall Manager tried to associate with a VPC has the same
-- priority as a rule group that\'s already associated.
--
-- 'firewallSubnetIsOutOfScopeViolation', 'resourceViolation_firewallSubnetIsOutOfScopeViolation' - Contains details about the firewall subnet that violates the policy
-- scope.
--
-- 'firewallSubnetMissingVPCEndpointViolation', 'resourceViolation_firewallSubnetMissingVPCEndpointViolation' - The violation details for a third-party firewall\'s VPC endpoint subnet
-- that was deleted.
--
-- 'networkFirewallBlackHoleRouteDetectedViolation', 'resourceViolation_networkFirewallBlackHoleRouteDetectedViolation' - Undocumented member.
--
-- 'networkFirewallInternetTrafficNotInspectedViolation', 'resourceViolation_networkFirewallInternetTrafficNotInspectedViolation' - Violation detail for the subnet for which internet traffic hasn\'t been
-- inspected.
--
-- 'networkFirewallInvalidRouteConfigurationViolation', 'resourceViolation_networkFirewallInvalidRouteConfigurationViolation' - The route configuration is invalid.
--
-- 'networkFirewallMissingExpectedRTViolation', 'resourceViolation_networkFirewallMissingExpectedRTViolation' - Violation detail for an Network Firewall policy that indicates that a
-- subnet is not associated with the expected Firewall Manager managed
-- route table.
--
-- 'networkFirewallMissingExpectedRoutesViolation', 'resourceViolation_networkFirewallMissingExpectedRoutesViolation' - Expected routes are missing from Network Firewall.
--
-- 'networkFirewallMissingFirewallViolation', 'resourceViolation_networkFirewallMissingFirewallViolation' - Violation detail for an Network Firewall policy that indicates that a
-- subnet has no Firewall Manager managed firewall in its VPC.
--
-- 'networkFirewallMissingSubnetViolation', 'resourceViolation_networkFirewallMissingSubnetViolation' - Violation detail for an Network Firewall policy that indicates that an
-- Availability Zone is missing the expected Firewall Manager managed
-- subnet.
--
-- 'networkFirewallPolicyModifiedViolation', 'resourceViolation_networkFirewallPolicyModifiedViolation' - Violation detail for an Network Firewall policy that indicates that a
-- firewall policy in an individual account has been modified in a way that
-- makes it noncompliant. For example, the individual account owner might
-- have deleted a rule group, changed the priority of a stateless rule
-- group, or changed a policy default action.
--
-- 'networkFirewallUnexpectedFirewallRoutesViolation', 'resourceViolation_networkFirewallUnexpectedFirewallRoutesViolation' - There\'s an unexpected firewall route.
--
-- 'networkFirewallUnexpectedGatewayRoutesViolation', 'resourceViolation_networkFirewallUnexpectedGatewayRoutesViolation' - There\'s an unexpected gateway route.
--
-- 'possibleRemediationActions', 'resourceViolation_possibleRemediationActions' - A list of possible remediation action lists. Each individual possible
-- remediation action is a list of individual remediation actions.
--
-- 'routeHasOutOfScopeEndpointViolation', 'resourceViolation_routeHasOutOfScopeEndpointViolation' - Contains details about the route endpoint that violates the policy
-- scope.
--
-- 'thirdPartyFirewallMissingExpectedRouteTableViolation', 'resourceViolation_thirdPartyFirewallMissingExpectedRouteTableViolation' - The violation details for a third-party firewall that has the Firewall
-- Manager managed route table that was associated with the third-party
-- firewall has been deleted.
--
-- 'thirdPartyFirewallMissingFirewallViolation', 'resourceViolation_thirdPartyFirewallMissingFirewallViolation' - The violation details for a third-party firewall that\'s been deleted.
--
-- 'thirdPartyFirewallMissingSubnetViolation', 'resourceViolation_thirdPartyFirewallMissingSubnetViolation' - The violation details for a third-party firewall\'s subnet that\'s been
-- deleted.
newResourceViolation ::
  ResourceViolation
newResourceViolation :: ResourceViolation
newResourceViolation =
  ResourceViolation'
    { $sel:awsEc2InstanceViolation:ResourceViolation' :: Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:awsEc2NetworkInterfaceViolation:ResourceViolation' :: Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation = forall a. Maybe a
Prelude.Nothing,
      $sel:awsVPCSecurityGroupViolation:ResourceViolation' :: Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsDuplicateRuleGroupViolation:ResourceViolation' :: Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsRuleGroupLimitExceededViolation:ResourceViolation' :: Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsRuleGroupPriorityConflictViolation:ResourceViolation' :: Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:firewallSubnetIsOutOfScopeViolation:ResourceViolation' :: Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:firewallSubnetMissingVPCEndpointViolation:ResourceViolation' :: Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallBlackHoleRouteDetectedViolation:ResourceViolation' :: Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallInternetTrafficNotInspectedViolation:ResourceViolation' :: Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallInvalidRouteConfigurationViolation:ResourceViolation' :: Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallMissingExpectedRTViolation:ResourceViolation' :: Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallMissingExpectedRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallMissingFirewallViolation:ResourceViolation' :: Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallMissingSubnetViolation:ResourceViolation' :: Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallPolicyModifiedViolation:ResourceViolation' :: Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallUnexpectedFirewallRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:networkFirewallUnexpectedGatewayRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:possibleRemediationActions:ResourceViolation' :: Maybe PossibleRemediationActions
possibleRemediationActions = forall a. Maybe a
Prelude.Nothing,
      $sel:routeHasOutOfScopeEndpointViolation:ResourceViolation' :: Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:thirdPartyFirewallMissingExpectedRouteTableViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:thirdPartyFirewallMissingFirewallViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:thirdPartyFirewallMissingSubnetViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation =
        forall a. Maybe a
Prelude.Nothing
    }

-- | Violation detail for an EC2 instance.
resourceViolation_awsEc2InstanceViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe AwsEc2InstanceViolation)
resourceViolation_awsEc2InstanceViolation :: Lens' ResourceViolation (Maybe AwsEc2InstanceViolation)
resourceViolation_awsEc2InstanceViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation :: Maybe AwsEc2InstanceViolation
$sel:awsEc2InstanceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation} -> Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe AwsEc2InstanceViolation
a -> ResourceViolation
s {$sel:awsEc2InstanceViolation:ResourceViolation' :: Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation = Maybe AwsEc2InstanceViolation
a} :: ResourceViolation)

-- | Violation detail for a network interface.
resourceViolation_awsEc2NetworkInterfaceViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe AwsEc2NetworkInterfaceViolation)
resourceViolation_awsEc2NetworkInterfaceViolation :: Lens' ResourceViolation (Maybe AwsEc2NetworkInterfaceViolation)
resourceViolation_awsEc2NetworkInterfaceViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation :: Maybe AwsEc2NetworkInterfaceViolation
$sel:awsEc2NetworkInterfaceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation} -> Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe AwsEc2NetworkInterfaceViolation
a -> ResourceViolation
s {$sel:awsEc2NetworkInterfaceViolation:ResourceViolation' :: Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation = Maybe AwsEc2NetworkInterfaceViolation
a} :: ResourceViolation)

-- | Violation detail for security groups.
resourceViolation_awsVPCSecurityGroupViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe AwsVPCSecurityGroupViolation)
resourceViolation_awsVPCSecurityGroupViolation :: Lens' ResourceViolation (Maybe AwsVPCSecurityGroupViolation)
resourceViolation_awsVPCSecurityGroupViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation :: Maybe AwsVPCSecurityGroupViolation
$sel:awsVPCSecurityGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation} -> Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe AwsVPCSecurityGroupViolation
a -> ResourceViolation
s {$sel:awsVPCSecurityGroupViolation:ResourceViolation' :: Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation = Maybe AwsVPCSecurityGroupViolation
a} :: ResourceViolation)

-- | Violation detail for a DNS Firewall policy that indicates that a rule
-- group that Firewall Manager tried to associate with a VPC is already
-- associated with the VPC and can\'t be associated again.
resourceViolation_dnsDuplicateRuleGroupViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe DnsDuplicateRuleGroupViolation)
resourceViolation_dnsDuplicateRuleGroupViolation :: Lens' ResourceViolation (Maybe DnsDuplicateRuleGroupViolation)
resourceViolation_dnsDuplicateRuleGroupViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation :: Maybe DnsDuplicateRuleGroupViolation
$sel:dnsDuplicateRuleGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation} -> Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe DnsDuplicateRuleGroupViolation
a -> ResourceViolation
s {$sel:dnsDuplicateRuleGroupViolation:ResourceViolation' :: Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation = Maybe DnsDuplicateRuleGroupViolation
a} :: ResourceViolation)

-- | Violation detail for a DNS Firewall policy that indicates that the VPC
-- reached the limit for associated DNS Firewall rule groups. Firewall
-- Manager tried to associate another rule group with the VPC and failed.
resourceViolation_dnsRuleGroupLimitExceededViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe DnsRuleGroupLimitExceededViolation)
resourceViolation_dnsRuleGroupLimitExceededViolation :: Lens' ResourceViolation (Maybe DnsRuleGroupLimitExceededViolation)
resourceViolation_dnsRuleGroupLimitExceededViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation :: Maybe DnsRuleGroupLimitExceededViolation
$sel:dnsRuleGroupLimitExceededViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation} -> Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe DnsRuleGroupLimitExceededViolation
a -> ResourceViolation
s {$sel:dnsRuleGroupLimitExceededViolation:ResourceViolation' :: Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation = Maybe DnsRuleGroupLimitExceededViolation
a} :: ResourceViolation)

-- | Violation detail for a DNS Firewall policy that indicates that a rule
-- group that Firewall Manager tried to associate with a VPC has the same
-- priority as a rule group that\'s already associated.
resourceViolation_dnsRuleGroupPriorityConflictViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe DnsRuleGroupPriorityConflictViolation)
resourceViolation_dnsRuleGroupPriorityConflictViolation :: Lens'
  ResourceViolation (Maybe DnsRuleGroupPriorityConflictViolation)
resourceViolation_dnsRuleGroupPriorityConflictViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation :: Maybe DnsRuleGroupPriorityConflictViolation
$sel:dnsRuleGroupPriorityConflictViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation} -> Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe DnsRuleGroupPriorityConflictViolation
a -> ResourceViolation
s {$sel:dnsRuleGroupPriorityConflictViolation:ResourceViolation' :: Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation = Maybe DnsRuleGroupPriorityConflictViolation
a} :: ResourceViolation)

-- | Contains details about the firewall subnet that violates the policy
-- scope.
resourceViolation_firewallSubnetIsOutOfScopeViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe FirewallSubnetIsOutOfScopeViolation)
resourceViolation_firewallSubnetIsOutOfScopeViolation :: Lens' ResourceViolation (Maybe FirewallSubnetIsOutOfScopeViolation)
resourceViolation_firewallSubnetIsOutOfScopeViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation :: Maybe FirewallSubnetIsOutOfScopeViolation
$sel:firewallSubnetIsOutOfScopeViolation:ResourceViolation' :: ResourceViolation -> Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation} -> Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe FirewallSubnetIsOutOfScopeViolation
a -> ResourceViolation
s {$sel:firewallSubnetIsOutOfScopeViolation:ResourceViolation' :: Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation = Maybe FirewallSubnetIsOutOfScopeViolation
a} :: ResourceViolation)

-- | The violation details for a third-party firewall\'s VPC endpoint subnet
-- that was deleted.
resourceViolation_firewallSubnetMissingVPCEndpointViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe FirewallSubnetMissingVPCEndpointViolation)
resourceViolation_firewallSubnetMissingVPCEndpointViolation :: Lens'
  ResourceViolation (Maybe FirewallSubnetMissingVPCEndpointViolation)
resourceViolation_firewallSubnetMissingVPCEndpointViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation :: Maybe FirewallSubnetMissingVPCEndpointViolation
$sel:firewallSubnetMissingVPCEndpointViolation:ResourceViolation' :: ResourceViolation
-> Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation} -> Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe FirewallSubnetMissingVPCEndpointViolation
a -> ResourceViolation
s {$sel:firewallSubnetMissingVPCEndpointViolation:ResourceViolation' :: Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation = Maybe FirewallSubnetMissingVPCEndpointViolation
a} :: ResourceViolation)

-- | Undocumented member.
resourceViolation_networkFirewallBlackHoleRouteDetectedViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallBlackHoleRouteDetectedViolation)
resourceViolation_networkFirewallBlackHoleRouteDetectedViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallBlackHoleRouteDetectedViolation)
resourceViolation_networkFirewallBlackHoleRouteDetectedViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation :: Maybe NetworkFirewallBlackHoleRouteDetectedViolation
$sel:networkFirewallBlackHoleRouteDetectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation} -> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallBlackHoleRouteDetectedViolation
a -> ResourceViolation
s {$sel:networkFirewallBlackHoleRouteDetectedViolation:ResourceViolation' :: Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation = Maybe NetworkFirewallBlackHoleRouteDetectedViolation
a} :: ResourceViolation)

-- | Violation detail for the subnet for which internet traffic hasn\'t been
-- inspected.
resourceViolation_networkFirewallInternetTrafficNotInspectedViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallInternetTrafficNotInspectedViolation)
resourceViolation_networkFirewallInternetTrafficNotInspectedViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallInternetTrafficNotInspectedViolation)
resourceViolation_networkFirewallInternetTrafficNotInspectedViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation :: Maybe NetworkFirewallInternetTrafficNotInspectedViolation
$sel:networkFirewallInternetTrafficNotInspectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation} -> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallInternetTrafficNotInspectedViolation
a -> ResourceViolation
s {$sel:networkFirewallInternetTrafficNotInspectedViolation:ResourceViolation' :: Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation = Maybe NetworkFirewallInternetTrafficNotInspectedViolation
a} :: ResourceViolation)

-- | The route configuration is invalid.
resourceViolation_networkFirewallInvalidRouteConfigurationViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallInvalidRouteConfigurationViolation)
resourceViolation_networkFirewallInvalidRouteConfigurationViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallInvalidRouteConfigurationViolation)
resourceViolation_networkFirewallInvalidRouteConfigurationViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation :: Maybe NetworkFirewallInvalidRouteConfigurationViolation
$sel:networkFirewallInvalidRouteConfigurationViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation} -> Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallInvalidRouteConfigurationViolation
a -> ResourceViolation
s {$sel:networkFirewallInvalidRouteConfigurationViolation:ResourceViolation' :: Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation = Maybe NetworkFirewallInvalidRouteConfigurationViolation
a} :: ResourceViolation)

-- | Violation detail for an Network Firewall policy that indicates that a
-- subnet is not associated with the expected Firewall Manager managed
-- route table.
resourceViolation_networkFirewallMissingExpectedRTViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallMissingExpectedRTViolation)
resourceViolation_networkFirewallMissingExpectedRTViolation :: Lens'
  ResourceViolation (Maybe NetworkFirewallMissingExpectedRTViolation)
resourceViolation_networkFirewallMissingExpectedRTViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation :: Maybe NetworkFirewallMissingExpectedRTViolation
$sel:networkFirewallMissingExpectedRTViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation} -> Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallMissingExpectedRTViolation
a -> ResourceViolation
s {$sel:networkFirewallMissingExpectedRTViolation:ResourceViolation' :: Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation = Maybe NetworkFirewallMissingExpectedRTViolation
a} :: ResourceViolation)

-- | Expected routes are missing from Network Firewall.
resourceViolation_networkFirewallMissingExpectedRoutesViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallMissingExpectedRoutesViolation)
resourceViolation_networkFirewallMissingExpectedRoutesViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallMissingExpectedRoutesViolation)
resourceViolation_networkFirewallMissingExpectedRoutesViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation :: Maybe NetworkFirewallMissingExpectedRoutesViolation
$sel:networkFirewallMissingExpectedRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation} -> Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallMissingExpectedRoutesViolation
a -> ResourceViolation
s {$sel:networkFirewallMissingExpectedRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation = Maybe NetworkFirewallMissingExpectedRoutesViolation
a} :: ResourceViolation)

-- | Violation detail for an Network Firewall policy that indicates that a
-- subnet has no Firewall Manager managed firewall in its VPC.
resourceViolation_networkFirewallMissingFirewallViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallMissingFirewallViolation)
resourceViolation_networkFirewallMissingFirewallViolation :: Lens'
  ResourceViolation (Maybe NetworkFirewallMissingFirewallViolation)
resourceViolation_networkFirewallMissingFirewallViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation :: Maybe NetworkFirewallMissingFirewallViolation
$sel:networkFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation} -> Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallMissingFirewallViolation
a -> ResourceViolation
s {$sel:networkFirewallMissingFirewallViolation:ResourceViolation' :: Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation = Maybe NetworkFirewallMissingFirewallViolation
a} :: ResourceViolation)

-- | Violation detail for an Network Firewall policy that indicates that an
-- Availability Zone is missing the expected Firewall Manager managed
-- subnet.
resourceViolation_networkFirewallMissingSubnetViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallMissingSubnetViolation)
resourceViolation_networkFirewallMissingSubnetViolation :: Lens'
  ResourceViolation (Maybe NetworkFirewallMissingSubnetViolation)
resourceViolation_networkFirewallMissingSubnetViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation :: Maybe NetworkFirewallMissingSubnetViolation
$sel:networkFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation} -> Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallMissingSubnetViolation
a -> ResourceViolation
s {$sel:networkFirewallMissingSubnetViolation:ResourceViolation' :: Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation = Maybe NetworkFirewallMissingSubnetViolation
a} :: ResourceViolation)

-- | Violation detail for an Network Firewall policy that indicates that a
-- firewall policy in an individual account has been modified in a way that
-- makes it noncompliant. For example, the individual account owner might
-- have deleted a rule group, changed the priority of a stateless rule
-- group, or changed a policy default action.
resourceViolation_networkFirewallPolicyModifiedViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallPolicyModifiedViolation)
resourceViolation_networkFirewallPolicyModifiedViolation :: Lens'
  ResourceViolation (Maybe NetworkFirewallPolicyModifiedViolation)
resourceViolation_networkFirewallPolicyModifiedViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation :: Maybe NetworkFirewallPolicyModifiedViolation
$sel:networkFirewallPolicyModifiedViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation} -> Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallPolicyModifiedViolation
a -> ResourceViolation
s {$sel:networkFirewallPolicyModifiedViolation:ResourceViolation' :: Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation = Maybe NetworkFirewallPolicyModifiedViolation
a} :: ResourceViolation)

-- | There\'s an unexpected firewall route.
resourceViolation_networkFirewallUnexpectedFirewallRoutesViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallUnexpectedFirewallRoutesViolation)
resourceViolation_networkFirewallUnexpectedFirewallRoutesViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallUnexpectedFirewallRoutesViolation)
resourceViolation_networkFirewallUnexpectedFirewallRoutesViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation :: Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
$sel:networkFirewallUnexpectedFirewallRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation} -> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
a -> ResourceViolation
s {$sel:networkFirewallUnexpectedFirewallRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation = Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
a} :: ResourceViolation)

-- | There\'s an unexpected gateway route.
resourceViolation_networkFirewallUnexpectedGatewayRoutesViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe NetworkFirewallUnexpectedGatewayRoutesViolation)
resourceViolation_networkFirewallUnexpectedGatewayRoutesViolation :: Lens'
  ResourceViolation
  (Maybe NetworkFirewallUnexpectedGatewayRoutesViolation)
resourceViolation_networkFirewallUnexpectedGatewayRoutesViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation :: Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
$sel:networkFirewallUnexpectedGatewayRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation} -> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
a -> ResourceViolation
s {$sel:networkFirewallUnexpectedGatewayRoutesViolation:ResourceViolation' :: Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation = Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
a} :: ResourceViolation)

-- | A list of possible remediation action lists. Each individual possible
-- remediation action is a list of individual remediation actions.
resourceViolation_possibleRemediationActions :: Lens.Lens' ResourceViolation (Prelude.Maybe PossibleRemediationActions)
resourceViolation_possibleRemediationActions :: Lens' ResourceViolation (Maybe PossibleRemediationActions)
resourceViolation_possibleRemediationActions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe PossibleRemediationActions
possibleRemediationActions :: Maybe PossibleRemediationActions
$sel:possibleRemediationActions:ResourceViolation' :: ResourceViolation -> Maybe PossibleRemediationActions
possibleRemediationActions} -> Maybe PossibleRemediationActions
possibleRemediationActions) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe PossibleRemediationActions
a -> ResourceViolation
s {$sel:possibleRemediationActions:ResourceViolation' :: Maybe PossibleRemediationActions
possibleRemediationActions = Maybe PossibleRemediationActions
a} :: ResourceViolation)

-- | Contains details about the route endpoint that violates the policy
-- scope.
resourceViolation_routeHasOutOfScopeEndpointViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe RouteHasOutOfScopeEndpointViolation)
resourceViolation_routeHasOutOfScopeEndpointViolation :: Lens' ResourceViolation (Maybe RouteHasOutOfScopeEndpointViolation)
resourceViolation_routeHasOutOfScopeEndpointViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation :: Maybe RouteHasOutOfScopeEndpointViolation
$sel:routeHasOutOfScopeEndpointViolation:ResourceViolation' :: ResourceViolation -> Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation} -> Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe RouteHasOutOfScopeEndpointViolation
a -> ResourceViolation
s {$sel:routeHasOutOfScopeEndpointViolation:ResourceViolation' :: Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation = Maybe RouteHasOutOfScopeEndpointViolation
a} :: ResourceViolation)

-- | The violation details for a third-party firewall that has the Firewall
-- Manager managed route table that was associated with the third-party
-- firewall has been deleted.
resourceViolation_thirdPartyFirewallMissingExpectedRouteTableViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation)
resourceViolation_thirdPartyFirewallMissingExpectedRouteTableViolation :: Lens'
  ResourceViolation
  (Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation)
resourceViolation_thirdPartyFirewallMissingExpectedRouteTableViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation :: Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
$sel:thirdPartyFirewallMissingExpectedRouteTableViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation} -> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
a -> ResourceViolation
s {$sel:thirdPartyFirewallMissingExpectedRouteTableViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation = Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
a} :: ResourceViolation)

-- | The violation details for a third-party firewall that\'s been deleted.
resourceViolation_thirdPartyFirewallMissingFirewallViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe ThirdPartyFirewallMissingFirewallViolation)
resourceViolation_thirdPartyFirewallMissingFirewallViolation :: Lens'
  ResourceViolation
  (Maybe ThirdPartyFirewallMissingFirewallViolation)
resourceViolation_thirdPartyFirewallMissingFirewallViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation :: Maybe ThirdPartyFirewallMissingFirewallViolation
$sel:thirdPartyFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation} -> Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe ThirdPartyFirewallMissingFirewallViolation
a -> ResourceViolation
s {$sel:thirdPartyFirewallMissingFirewallViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation = Maybe ThirdPartyFirewallMissingFirewallViolation
a} :: ResourceViolation)

-- | The violation details for a third-party firewall\'s subnet that\'s been
-- deleted.
resourceViolation_thirdPartyFirewallMissingSubnetViolation :: Lens.Lens' ResourceViolation (Prelude.Maybe ThirdPartyFirewallMissingSubnetViolation)
resourceViolation_thirdPartyFirewallMissingSubnetViolation :: Lens'
  ResourceViolation (Maybe ThirdPartyFirewallMissingSubnetViolation)
resourceViolation_thirdPartyFirewallMissingSubnetViolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceViolation' {Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation :: Maybe ThirdPartyFirewallMissingSubnetViolation
$sel:thirdPartyFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation} -> Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation) (\s :: ResourceViolation
s@ResourceViolation' {} Maybe ThirdPartyFirewallMissingSubnetViolation
a -> ResourceViolation
s {$sel:thirdPartyFirewallMissingSubnetViolation:ResourceViolation' :: Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation = Maybe ThirdPartyFirewallMissingSubnetViolation
a} :: ResourceViolation)

instance Data.FromJSON ResourceViolation where
  parseJSON :: Value -> Parser ResourceViolation
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ResourceViolation"
      ( \Object
x ->
          Maybe AwsEc2InstanceViolation
-> Maybe AwsEc2NetworkInterfaceViolation
-> Maybe AwsVPCSecurityGroupViolation
-> Maybe DnsDuplicateRuleGroupViolation
-> Maybe DnsRuleGroupLimitExceededViolation
-> Maybe DnsRuleGroupPriorityConflictViolation
-> Maybe FirewallSubnetIsOutOfScopeViolation
-> Maybe FirewallSubnetMissingVPCEndpointViolation
-> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
-> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
-> Maybe NetworkFirewallInvalidRouteConfigurationViolation
-> Maybe NetworkFirewallMissingExpectedRTViolation
-> Maybe NetworkFirewallMissingExpectedRoutesViolation
-> Maybe NetworkFirewallMissingFirewallViolation
-> Maybe NetworkFirewallMissingSubnetViolation
-> Maybe NetworkFirewallPolicyModifiedViolation
-> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
-> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
-> Maybe PossibleRemediationActions
-> Maybe RouteHasOutOfScopeEndpointViolation
-> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
-> Maybe ThirdPartyFirewallMissingFirewallViolation
-> Maybe ThirdPartyFirewallMissingSubnetViolation
-> ResourceViolation
ResourceViolation'
            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
"AwsEc2InstanceViolation")
            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
"AwsEc2NetworkInterfaceViolation")
            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
"AwsVPCSecurityGroupViolation")
            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
"DnsDuplicateRuleGroupViolation")
            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
"DnsRuleGroupLimitExceededViolation")
            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
"DnsRuleGroupPriorityConflictViolation")
            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
"FirewallSubnetIsOutOfScopeViolation")
            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
"FirewallSubnetMissingVPCEndpointViolation"
                        )
            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
"NetworkFirewallBlackHoleRouteDetectedViolation"
                        )
            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
"NetworkFirewallInternetTrafficNotInspectedViolation"
                        )
            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
"NetworkFirewallInvalidRouteConfigurationViolation"
                        )
            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
"NetworkFirewallMissingExpectedRTViolation"
                        )
            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
"NetworkFirewallMissingExpectedRoutesViolation"
                        )
            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
"NetworkFirewallMissingFirewallViolation"
                        )
            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
"NetworkFirewallMissingSubnetViolation")
            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
"NetworkFirewallPolicyModifiedViolation")
            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
"NetworkFirewallUnexpectedFirewallRoutesViolation"
                        )
            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
"NetworkFirewallUnexpectedGatewayRoutesViolation"
                        )
            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
"PossibleRemediationActions")
            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
"RouteHasOutOfScopeEndpointViolation")
            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
"ThirdPartyFirewallMissingExpectedRouteTableViolation"
                        )
            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
"ThirdPartyFirewallMissingFirewallViolation"
                        )
            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
"ThirdPartyFirewallMissingSubnetViolation"
                        )
      )

instance Prelude.Hashable ResourceViolation where
  hashWithSalt :: Int -> ResourceViolation -> Int
hashWithSalt Int
_salt ResourceViolation' {Maybe AwsEc2NetworkInterfaceViolation
Maybe AwsEc2InstanceViolation
Maybe DnsDuplicateRuleGroupViolation
Maybe DnsRuleGroupLimitExceededViolation
Maybe DnsRuleGroupPriorityConflictViolation
Maybe FirewallSubnetIsOutOfScopeViolation
Maybe FirewallSubnetMissingVPCEndpointViolation
Maybe NetworkFirewallMissingExpectedRTViolation
Maybe NetworkFirewallMissingExpectedRoutesViolation
Maybe NetworkFirewallMissingFirewallViolation
Maybe NetworkFirewallMissingSubnetViolation
Maybe PossibleRemediationActions
Maybe AwsVPCSecurityGroupViolation
Maybe NetworkFirewallPolicyModifiedViolation
Maybe RouteHasOutOfScopeEndpointViolation
Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
Maybe NetworkFirewallInvalidRouteConfigurationViolation
Maybe NetworkFirewallInternetTrafficNotInspectedViolation
Maybe NetworkFirewallBlackHoleRouteDetectedViolation
Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
Maybe ThirdPartyFirewallMissingFirewallViolation
Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation :: Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingFirewallViolation :: Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingExpectedRouteTableViolation :: Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
routeHasOutOfScopeEndpointViolation :: Maybe RouteHasOutOfScopeEndpointViolation
possibleRemediationActions :: Maybe PossibleRemediationActions
networkFirewallUnexpectedGatewayRoutesViolation :: Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation :: Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallPolicyModifiedViolation :: Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallMissingSubnetViolation :: Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingFirewallViolation :: Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingExpectedRoutesViolation :: Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRTViolation :: Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallInvalidRouteConfigurationViolation :: Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInternetTrafficNotInspectedViolation :: Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallBlackHoleRouteDetectedViolation :: Maybe NetworkFirewallBlackHoleRouteDetectedViolation
firewallSubnetMissingVPCEndpointViolation :: Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetIsOutOfScopeViolation :: Maybe FirewallSubnetIsOutOfScopeViolation
dnsRuleGroupPriorityConflictViolation :: Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupLimitExceededViolation :: Maybe DnsRuleGroupLimitExceededViolation
dnsDuplicateRuleGroupViolation :: Maybe DnsDuplicateRuleGroupViolation
awsVPCSecurityGroupViolation :: Maybe AwsVPCSecurityGroupViolation
awsEc2NetworkInterfaceViolation :: Maybe AwsEc2NetworkInterfaceViolation
awsEc2InstanceViolation :: Maybe AwsEc2InstanceViolation
$sel:thirdPartyFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe ThirdPartyFirewallMissingSubnetViolation
$sel:thirdPartyFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingFirewallViolation
$sel:thirdPartyFirewallMissingExpectedRouteTableViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
$sel:routeHasOutOfScopeEndpointViolation:ResourceViolation' :: ResourceViolation -> Maybe RouteHasOutOfScopeEndpointViolation
$sel:possibleRemediationActions:ResourceViolation' :: ResourceViolation -> Maybe PossibleRemediationActions
$sel:networkFirewallUnexpectedGatewayRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
$sel:networkFirewallUnexpectedFirewallRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
$sel:networkFirewallPolicyModifiedViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallPolicyModifiedViolation
$sel:networkFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingSubnetViolation
$sel:networkFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingFirewallViolation
$sel:networkFirewallMissingExpectedRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRoutesViolation
$sel:networkFirewallMissingExpectedRTViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRTViolation
$sel:networkFirewallInvalidRouteConfigurationViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInvalidRouteConfigurationViolation
$sel:networkFirewallInternetTrafficNotInspectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
$sel:networkFirewallBlackHoleRouteDetectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
$sel:firewallSubnetMissingVPCEndpointViolation:ResourceViolation' :: ResourceViolation
-> Maybe FirewallSubnetMissingVPCEndpointViolation
$sel:firewallSubnetIsOutOfScopeViolation:ResourceViolation' :: ResourceViolation -> Maybe FirewallSubnetIsOutOfScopeViolation
$sel:dnsRuleGroupPriorityConflictViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupPriorityConflictViolation
$sel:dnsRuleGroupLimitExceededViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupLimitExceededViolation
$sel:dnsDuplicateRuleGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsDuplicateRuleGroupViolation
$sel:awsVPCSecurityGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsVPCSecurityGroupViolation
$sel:awsEc2NetworkInterfaceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2NetworkInterfaceViolation
$sel:awsEc2InstanceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2InstanceViolation
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PossibleRemediationActions
possibleRemediationActions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation

instance Prelude.NFData ResourceViolation where
  rnf :: ResourceViolation -> ()
rnf ResourceViolation' {Maybe AwsEc2NetworkInterfaceViolation
Maybe AwsEc2InstanceViolation
Maybe DnsDuplicateRuleGroupViolation
Maybe DnsRuleGroupLimitExceededViolation
Maybe DnsRuleGroupPriorityConflictViolation
Maybe FirewallSubnetIsOutOfScopeViolation
Maybe FirewallSubnetMissingVPCEndpointViolation
Maybe NetworkFirewallMissingExpectedRTViolation
Maybe NetworkFirewallMissingExpectedRoutesViolation
Maybe NetworkFirewallMissingFirewallViolation
Maybe NetworkFirewallMissingSubnetViolation
Maybe PossibleRemediationActions
Maybe AwsVPCSecurityGroupViolation
Maybe NetworkFirewallPolicyModifiedViolation
Maybe RouteHasOutOfScopeEndpointViolation
Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
Maybe NetworkFirewallInvalidRouteConfigurationViolation
Maybe NetworkFirewallInternetTrafficNotInspectedViolation
Maybe NetworkFirewallBlackHoleRouteDetectedViolation
Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
Maybe ThirdPartyFirewallMissingFirewallViolation
Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation :: Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingFirewallViolation :: Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingExpectedRouteTableViolation :: Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
routeHasOutOfScopeEndpointViolation :: Maybe RouteHasOutOfScopeEndpointViolation
possibleRemediationActions :: Maybe PossibleRemediationActions
networkFirewallUnexpectedGatewayRoutesViolation :: Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation :: Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallPolicyModifiedViolation :: Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallMissingSubnetViolation :: Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingFirewallViolation :: Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingExpectedRoutesViolation :: Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRTViolation :: Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallInvalidRouteConfigurationViolation :: Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInternetTrafficNotInspectedViolation :: Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallBlackHoleRouteDetectedViolation :: Maybe NetworkFirewallBlackHoleRouteDetectedViolation
firewallSubnetMissingVPCEndpointViolation :: Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetIsOutOfScopeViolation :: Maybe FirewallSubnetIsOutOfScopeViolation
dnsRuleGroupPriorityConflictViolation :: Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupLimitExceededViolation :: Maybe DnsRuleGroupLimitExceededViolation
dnsDuplicateRuleGroupViolation :: Maybe DnsDuplicateRuleGroupViolation
awsVPCSecurityGroupViolation :: Maybe AwsVPCSecurityGroupViolation
awsEc2NetworkInterfaceViolation :: Maybe AwsEc2NetworkInterfaceViolation
awsEc2InstanceViolation :: Maybe AwsEc2InstanceViolation
$sel:thirdPartyFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe ThirdPartyFirewallMissingSubnetViolation
$sel:thirdPartyFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingFirewallViolation
$sel:thirdPartyFirewallMissingExpectedRouteTableViolation:ResourceViolation' :: ResourceViolation
-> Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
$sel:routeHasOutOfScopeEndpointViolation:ResourceViolation' :: ResourceViolation -> Maybe RouteHasOutOfScopeEndpointViolation
$sel:possibleRemediationActions:ResourceViolation' :: ResourceViolation -> Maybe PossibleRemediationActions
$sel:networkFirewallUnexpectedGatewayRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
$sel:networkFirewallUnexpectedFirewallRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
$sel:networkFirewallPolicyModifiedViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallPolicyModifiedViolation
$sel:networkFirewallMissingSubnetViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingSubnetViolation
$sel:networkFirewallMissingFirewallViolation:ResourceViolation' :: ResourceViolation -> Maybe NetworkFirewallMissingFirewallViolation
$sel:networkFirewallMissingExpectedRoutesViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRoutesViolation
$sel:networkFirewallMissingExpectedRTViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallMissingExpectedRTViolation
$sel:networkFirewallInvalidRouteConfigurationViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInvalidRouteConfigurationViolation
$sel:networkFirewallInternetTrafficNotInspectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallInternetTrafficNotInspectedViolation
$sel:networkFirewallBlackHoleRouteDetectedViolation:ResourceViolation' :: ResourceViolation
-> Maybe NetworkFirewallBlackHoleRouteDetectedViolation
$sel:firewallSubnetMissingVPCEndpointViolation:ResourceViolation' :: ResourceViolation
-> Maybe FirewallSubnetMissingVPCEndpointViolation
$sel:firewallSubnetIsOutOfScopeViolation:ResourceViolation' :: ResourceViolation -> Maybe FirewallSubnetIsOutOfScopeViolation
$sel:dnsRuleGroupPriorityConflictViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupPriorityConflictViolation
$sel:dnsRuleGroupLimitExceededViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsRuleGroupLimitExceededViolation
$sel:dnsDuplicateRuleGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe DnsDuplicateRuleGroupViolation
$sel:awsVPCSecurityGroupViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsVPCSecurityGroupViolation
$sel:awsEc2NetworkInterfaceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2NetworkInterfaceViolation
$sel:awsEc2InstanceViolation:ResourceViolation' :: ResourceViolation -> Maybe AwsEc2InstanceViolation
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AwsEc2InstanceViolation
awsEc2InstanceViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AwsEc2NetworkInterfaceViolation
awsEc2NetworkInterfaceViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AwsVPCSecurityGroupViolation
awsVPCSecurityGroupViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DnsDuplicateRuleGroupViolation
dnsDuplicateRuleGroupViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DnsRuleGroupLimitExceededViolation
dnsRuleGroupLimitExceededViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DnsRuleGroupPriorityConflictViolation
dnsRuleGroupPriorityConflictViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FirewallSubnetIsOutOfScopeViolation
firewallSubnetIsOutOfScopeViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FirewallSubnetMissingVPCEndpointViolation
firewallSubnetMissingVPCEndpointViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallBlackHoleRouteDetectedViolation
networkFirewallBlackHoleRouteDetectedViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallInternetTrafficNotInspectedViolation
networkFirewallInternetTrafficNotInspectedViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallInvalidRouteConfigurationViolation
networkFirewallInvalidRouteConfigurationViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallMissingExpectedRTViolation
networkFirewallMissingExpectedRTViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallMissingExpectedRoutesViolation
networkFirewallMissingExpectedRoutesViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallMissingFirewallViolation
networkFirewallMissingFirewallViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallMissingSubnetViolation
networkFirewallMissingSubnetViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallPolicyModifiedViolation
networkFirewallPolicyModifiedViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallUnexpectedFirewallRoutesViolation
networkFirewallUnexpectedFirewallRoutesViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe NetworkFirewallUnexpectedGatewayRoutesViolation
networkFirewallUnexpectedGatewayRoutesViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe PossibleRemediationActions
possibleRemediationActions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe RouteHasOutOfScopeEndpointViolation
routeHasOutOfScopeEndpointViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ThirdPartyFirewallMissingExpectedRouteTableViolation
thirdPartyFirewallMissingExpectedRouteTableViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ThirdPartyFirewallMissingFirewallViolation
thirdPartyFirewallMissingFirewallViolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ThirdPartyFirewallMissingSubnetViolation
thirdPartyFirewallMissingSubnetViolation