{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

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

-- |
-- Module      : Amazonka.FMS.Types.ViolationReason
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.FMS.Types.ViolationReason
  ( ViolationReason
      ( ..,
        ViolationReason_BLACK_HOLE_ROUTE_DETECTED,
        ViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET,
        ViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE,
        ViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED,
        ViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE,
        ViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED,
        ViolationReason_INVALID_ROUTE_CONFIGURATION,
        ViolationReason_MISSING_EXPECTED_ROUTE_TABLE,
        ViolationReason_MISSING_FIREWALL,
        ViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ,
        ViolationReason_MISSING_TARGET_GATEWAY,
        ViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED,
        ViolationReason_RESOURCE_INCORRECT_WEB_ACL,
        ViolationReason_RESOURCE_MISSING_DNS_FIREWALL,
        ViolationReason_RESOURCE_MISSING_SECURITY_GROUP,
        ViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION,
        ViolationReason_RESOURCE_MISSING_WEB_ACL,
        ViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION,
        ViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP,
        ViolationReason_SECURITY_GROUP_REDUNDANT,
        ViolationReason_SECURITY_GROUP_UNUSED,
        ViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY,
        ViolationReason_UNEXPECTED_FIREWALL_ROUTES,
        ViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES,
        ViolationReason_WEB_ACL_MISSING_RULE_GROUP
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype ViolationReason = ViolationReason'
  { ViolationReason -> Text
fromViolationReason ::
      Core.Text
  }
  deriving stock
    ( Int -> ViolationReason -> ShowS
[ViolationReason] -> ShowS
ViolationReason -> String
(Int -> ViolationReason -> ShowS)
-> (ViolationReason -> String)
-> ([ViolationReason] -> ShowS)
-> Show ViolationReason
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ViolationReason] -> ShowS
$cshowList :: [ViolationReason] -> ShowS
show :: ViolationReason -> String
$cshow :: ViolationReason -> String
showsPrec :: Int -> ViolationReason -> ShowS
$cshowsPrec :: Int -> ViolationReason -> ShowS
Prelude.Show,
      ReadPrec [ViolationReason]
ReadPrec ViolationReason
Int -> ReadS ViolationReason
ReadS [ViolationReason]
(Int -> ReadS ViolationReason)
-> ReadS [ViolationReason]
-> ReadPrec ViolationReason
-> ReadPrec [ViolationReason]
-> Read ViolationReason
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ViolationReason]
$creadListPrec :: ReadPrec [ViolationReason]
readPrec :: ReadPrec ViolationReason
$creadPrec :: ReadPrec ViolationReason
readList :: ReadS [ViolationReason]
$creadList :: ReadS [ViolationReason]
readsPrec :: Int -> ReadS ViolationReason
$creadsPrec :: Int -> ReadS ViolationReason
Prelude.Read,
      ViolationReason -> ViolationReason -> Bool
(ViolationReason -> ViolationReason -> Bool)
-> (ViolationReason -> ViolationReason -> Bool)
-> Eq ViolationReason
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ViolationReason -> ViolationReason -> Bool
$c/= :: ViolationReason -> ViolationReason -> Bool
== :: ViolationReason -> ViolationReason -> Bool
$c== :: ViolationReason -> ViolationReason -> Bool
Prelude.Eq,
      Eq ViolationReason
Eq ViolationReason
-> (ViolationReason -> ViolationReason -> Ordering)
-> (ViolationReason -> ViolationReason -> Bool)
-> (ViolationReason -> ViolationReason -> Bool)
-> (ViolationReason -> ViolationReason -> Bool)
-> (ViolationReason -> ViolationReason -> Bool)
-> (ViolationReason -> ViolationReason -> ViolationReason)
-> (ViolationReason -> ViolationReason -> ViolationReason)
-> Ord ViolationReason
ViolationReason -> ViolationReason -> Bool
ViolationReason -> ViolationReason -> Ordering
ViolationReason -> ViolationReason -> ViolationReason
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ViolationReason -> ViolationReason -> ViolationReason
$cmin :: ViolationReason -> ViolationReason -> ViolationReason
max :: ViolationReason -> ViolationReason -> ViolationReason
$cmax :: ViolationReason -> ViolationReason -> ViolationReason
>= :: ViolationReason -> ViolationReason -> Bool
$c>= :: ViolationReason -> ViolationReason -> Bool
> :: ViolationReason -> ViolationReason -> Bool
$c> :: ViolationReason -> ViolationReason -> Bool
<= :: ViolationReason -> ViolationReason -> Bool
$c<= :: ViolationReason -> ViolationReason -> Bool
< :: ViolationReason -> ViolationReason -> Bool
$c< :: ViolationReason -> ViolationReason -> Bool
compare :: ViolationReason -> ViolationReason -> Ordering
$ccompare :: ViolationReason -> ViolationReason -> Ordering
$cp1Ord :: Eq ViolationReason
Prelude.Ord,
      (forall x. ViolationReason -> Rep ViolationReason x)
-> (forall x. Rep ViolationReason x -> ViolationReason)
-> Generic ViolationReason
forall x. Rep ViolationReason x -> ViolationReason
forall x. ViolationReason -> Rep ViolationReason x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ViolationReason x -> ViolationReason
$cfrom :: forall x. ViolationReason -> Rep ViolationReason x
Prelude.Generic
    )
  deriving newtype
    ( Int -> ViolationReason -> Int
ViolationReason -> Int
(Int -> ViolationReason -> Int)
-> (ViolationReason -> Int) -> Hashable ViolationReason
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: ViolationReason -> Int
$chash :: ViolationReason -> Int
hashWithSalt :: Int -> ViolationReason -> Int
$chashWithSalt :: Int -> ViolationReason -> Int
Prelude.Hashable,
      ViolationReason -> ()
(ViolationReason -> ()) -> NFData ViolationReason
forall a. (a -> ()) -> NFData a
rnf :: ViolationReason -> ()
$crnf :: ViolationReason -> ()
Prelude.NFData,
      Text -> Either String ViolationReason
(Text -> Either String ViolationReason) -> FromText ViolationReason
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String ViolationReason
$cfromText :: Text -> Either String ViolationReason
Core.FromText,
      ViolationReason -> Text
(ViolationReason -> Text) -> ToText ViolationReason
forall a. (a -> Text) -> ToText a
toText :: ViolationReason -> Text
$ctoText :: ViolationReason -> Text
Core.ToText,
      ViolationReason -> ByteString
(ViolationReason -> ByteString) -> ToByteString ViolationReason
forall a. (a -> ByteString) -> ToByteString a
toBS :: ViolationReason -> ByteString
$ctoBS :: ViolationReason -> ByteString
Core.ToByteString,
      ViolationReason -> ByteStringBuilder
(ViolationReason -> ByteStringBuilder) -> ToLog ViolationReason
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: ViolationReason -> ByteStringBuilder
$cbuild :: ViolationReason -> ByteStringBuilder
Core.ToLog,
      HeaderName -> ViolationReason -> [Header]
(HeaderName -> ViolationReason -> [Header])
-> ToHeader ViolationReason
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> ViolationReason -> [Header]
$ctoHeader :: HeaderName -> ViolationReason -> [Header]
Core.ToHeader,
      ViolationReason -> QueryString
(ViolationReason -> QueryString) -> ToQuery ViolationReason
forall a. (a -> QueryString) -> ToQuery a
toQuery :: ViolationReason -> QueryString
$ctoQuery :: ViolationReason -> QueryString
Core.ToQuery,
      Value -> Parser [ViolationReason]
Value -> Parser ViolationReason
(Value -> Parser ViolationReason)
-> (Value -> Parser [ViolationReason]) -> FromJSON ViolationReason
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ViolationReason]
$cparseJSONList :: Value -> Parser [ViolationReason]
parseJSON :: Value -> Parser ViolationReason
$cparseJSON :: Value -> Parser ViolationReason
Core.FromJSON,
      FromJSONKeyFunction [ViolationReason]
FromJSONKeyFunction ViolationReason
FromJSONKeyFunction ViolationReason
-> FromJSONKeyFunction [ViolationReason]
-> FromJSONKey ViolationReason
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [ViolationReason]
$cfromJSONKeyList :: FromJSONKeyFunction [ViolationReason]
fromJSONKey :: FromJSONKeyFunction ViolationReason
$cfromJSONKey :: FromJSONKeyFunction ViolationReason
Core.FromJSONKey,
      [ViolationReason] -> Encoding
[ViolationReason] -> Value
ViolationReason -> Encoding
ViolationReason -> Value
(ViolationReason -> Value)
-> (ViolationReason -> Encoding)
-> ([ViolationReason] -> Value)
-> ([ViolationReason] -> Encoding)
-> ToJSON ViolationReason
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ViolationReason] -> Encoding
$ctoEncodingList :: [ViolationReason] -> Encoding
toJSONList :: [ViolationReason] -> Value
$ctoJSONList :: [ViolationReason] -> Value
toEncoding :: ViolationReason -> Encoding
$ctoEncoding :: ViolationReason -> Encoding
toJSON :: ViolationReason -> Value
$ctoJSON :: ViolationReason -> Value
Core.ToJSON,
      ToJSONKeyFunction [ViolationReason]
ToJSONKeyFunction ViolationReason
ToJSONKeyFunction ViolationReason
-> ToJSONKeyFunction [ViolationReason] -> ToJSONKey ViolationReason
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [ViolationReason]
$ctoJSONKeyList :: ToJSONKeyFunction [ViolationReason]
toJSONKey :: ToJSONKeyFunction ViolationReason
$ctoJSONKey :: ToJSONKeyFunction ViolationReason
Core.ToJSONKey,
      [Node] -> Either String ViolationReason
([Node] -> Either String ViolationReason)
-> FromXML ViolationReason
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String ViolationReason
$cparseXML :: [Node] -> Either String ViolationReason
Core.FromXML,
      ViolationReason -> XML
(ViolationReason -> XML) -> ToXML ViolationReason
forall a. (a -> XML) -> ToXML a
toXML :: ViolationReason -> XML
$ctoXML :: ViolationReason -> XML
Core.ToXML
    )

pattern ViolationReason_BLACK_HOLE_ROUTE_DETECTED :: ViolationReason
pattern $bViolationReason_BLACK_HOLE_ROUTE_DETECTED :: ViolationReason
$mViolationReason_BLACK_HOLE_ROUTE_DETECTED :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_BLACK_HOLE_ROUTE_DETECTED = ViolationReason' "BLACK_HOLE_ROUTE_DETECTED"

pattern ViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET :: ViolationReason
pattern $bViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET :: ViolationReason
$mViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET = ViolationReason' "BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET"

pattern ViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE :: ViolationReason
pattern $bViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE :: ViolationReason
$mViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE = ViolationReason' "FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE"

pattern ViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED :: ViolationReason
pattern $bViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED :: ViolationReason
$mViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED = ViolationReason' "FMS_CREATED_SECURITY_GROUP_EDITED"

pattern ViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE :: ViolationReason
pattern $bViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE :: ViolationReason
$mViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE = ViolationReason' "INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE"

pattern ViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED :: ViolationReason
pattern $bViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED :: ViolationReason
$mViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED = ViolationReason' "INTERNET_TRAFFIC_NOT_INSPECTED"

pattern ViolationReason_INVALID_ROUTE_CONFIGURATION :: ViolationReason
pattern $bViolationReason_INVALID_ROUTE_CONFIGURATION :: ViolationReason
$mViolationReason_INVALID_ROUTE_CONFIGURATION :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_INVALID_ROUTE_CONFIGURATION = ViolationReason' "INVALID_ROUTE_CONFIGURATION"

pattern ViolationReason_MISSING_EXPECTED_ROUTE_TABLE :: ViolationReason
pattern $bViolationReason_MISSING_EXPECTED_ROUTE_TABLE :: ViolationReason
$mViolationReason_MISSING_EXPECTED_ROUTE_TABLE :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_MISSING_EXPECTED_ROUTE_TABLE = ViolationReason' "MISSING_EXPECTED_ROUTE_TABLE"

pattern ViolationReason_MISSING_FIREWALL :: ViolationReason
pattern $bViolationReason_MISSING_FIREWALL :: ViolationReason
$mViolationReason_MISSING_FIREWALL :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_MISSING_FIREWALL = ViolationReason' "MISSING_FIREWALL"

pattern ViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ :: ViolationReason
pattern $bViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ :: ViolationReason
$mViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ = ViolationReason' "MISSING_FIREWALL_SUBNET_IN_AZ"

pattern ViolationReason_MISSING_TARGET_GATEWAY :: ViolationReason
pattern $bViolationReason_MISSING_TARGET_GATEWAY :: ViolationReason
$mViolationReason_MISSING_TARGET_GATEWAY :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_MISSING_TARGET_GATEWAY = ViolationReason' "MISSING_TARGET_GATEWAY"

pattern ViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED :: ViolationReason
pattern $bViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED :: ViolationReason
$mViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED = ViolationReason' "NETWORK_FIREWALL_POLICY_MODIFIED"

pattern ViolationReason_RESOURCE_INCORRECT_WEB_ACL :: ViolationReason
pattern $bViolationReason_RESOURCE_INCORRECT_WEB_ACL :: ViolationReason
$mViolationReason_RESOURCE_INCORRECT_WEB_ACL :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_INCORRECT_WEB_ACL = ViolationReason' "RESOURCE_INCORRECT_WEB_ACL"

pattern ViolationReason_RESOURCE_MISSING_DNS_FIREWALL :: ViolationReason
pattern $bViolationReason_RESOURCE_MISSING_DNS_FIREWALL :: ViolationReason
$mViolationReason_RESOURCE_MISSING_DNS_FIREWALL :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_MISSING_DNS_FIREWALL = ViolationReason' "RESOURCE_MISSING_DNS_FIREWALL"

pattern ViolationReason_RESOURCE_MISSING_SECURITY_GROUP :: ViolationReason
pattern $bViolationReason_RESOURCE_MISSING_SECURITY_GROUP :: ViolationReason
$mViolationReason_RESOURCE_MISSING_SECURITY_GROUP :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_MISSING_SECURITY_GROUP = ViolationReason' "RESOURCE_MISSING_SECURITY_GROUP"

pattern ViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION :: ViolationReason
pattern $bViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION :: ViolationReason
$mViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION = ViolationReason' "RESOURCE_MISSING_SHIELD_PROTECTION"

pattern ViolationReason_RESOURCE_MISSING_WEB_ACL :: ViolationReason
pattern $bViolationReason_RESOURCE_MISSING_WEB_ACL :: ViolationReason
$mViolationReason_RESOURCE_MISSING_WEB_ACL :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_MISSING_WEB_ACL = ViolationReason' "RESOURCE_MISSING_WEB_ACL"

pattern ViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION :: ViolationReason
pattern $bViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION :: ViolationReason
$mViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION = ViolationReason' "RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION"

pattern ViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP :: ViolationReason
pattern $bViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP :: ViolationReason
$mViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP = ViolationReason' "RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP"

pattern ViolationReason_SECURITY_GROUP_REDUNDANT :: ViolationReason
pattern $bViolationReason_SECURITY_GROUP_REDUNDANT :: ViolationReason
$mViolationReason_SECURITY_GROUP_REDUNDANT :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_SECURITY_GROUP_REDUNDANT = ViolationReason' "SECURITY_GROUP_REDUNDANT"

pattern ViolationReason_SECURITY_GROUP_UNUSED :: ViolationReason
pattern $bViolationReason_SECURITY_GROUP_UNUSED :: ViolationReason
$mViolationReason_SECURITY_GROUP_UNUSED :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_SECURITY_GROUP_UNUSED = ViolationReason' "SECURITY_GROUP_UNUSED"

pattern ViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY :: ViolationReason
pattern $bViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY :: ViolationReason
$mViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY = ViolationReason' "TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY"

pattern ViolationReason_UNEXPECTED_FIREWALL_ROUTES :: ViolationReason
pattern $bViolationReason_UNEXPECTED_FIREWALL_ROUTES :: ViolationReason
$mViolationReason_UNEXPECTED_FIREWALL_ROUTES :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_UNEXPECTED_FIREWALL_ROUTES = ViolationReason' "UNEXPECTED_FIREWALL_ROUTES"

pattern ViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES :: ViolationReason
pattern $bViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES :: ViolationReason
$mViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES = ViolationReason' "UNEXPECTED_TARGET_GATEWAY_ROUTES"

pattern ViolationReason_WEB_ACL_MISSING_RULE_GROUP :: ViolationReason
pattern $bViolationReason_WEB_ACL_MISSING_RULE_GROUP :: ViolationReason
$mViolationReason_WEB_ACL_MISSING_RULE_GROUP :: forall r. ViolationReason -> (Void# -> r) -> (Void# -> r) -> r
ViolationReason_WEB_ACL_MISSING_RULE_GROUP = ViolationReason' "WEB_ACL_MISSING_RULE_GROUP"

{-# COMPLETE
  ViolationReason_BLACK_HOLE_ROUTE_DETECTED,
  ViolationReason_BLACK_HOLE_ROUTE_DETECTED_IN_FIREWALL_SUBNET,
  ViolationReason_FIREWALL_SUBNET_MISSING_EXPECTED_ROUTE,
  ViolationReason_FMS_CREATED_SECURITY_GROUP_EDITED,
  ViolationReason_INTERNET_GATEWAY_MISSING_EXPECTED_ROUTE,
  ViolationReason_INTERNET_TRAFFIC_NOT_INSPECTED,
  ViolationReason_INVALID_ROUTE_CONFIGURATION,
  ViolationReason_MISSING_EXPECTED_ROUTE_TABLE,
  ViolationReason_MISSING_FIREWALL,
  ViolationReason_MISSING_FIREWALL_SUBNET_IN_AZ,
  ViolationReason_MISSING_TARGET_GATEWAY,
  ViolationReason_NETWORK_FIREWALL_POLICY_MODIFIED,
  ViolationReason_RESOURCE_INCORRECT_WEB_ACL,
  ViolationReason_RESOURCE_MISSING_DNS_FIREWALL,
  ViolationReason_RESOURCE_MISSING_SECURITY_GROUP,
  ViolationReason_RESOURCE_MISSING_SHIELD_PROTECTION,
  ViolationReason_RESOURCE_MISSING_WEB_ACL,
  ViolationReason_RESOURCE_MISSING_WEB_ACL_OR_SHIELD_PROTECTION,
  ViolationReason_RESOURCE_VIOLATES_AUDIT_SECURITY_GROUP,
  ViolationReason_SECURITY_GROUP_REDUNDANT,
  ViolationReason_SECURITY_GROUP_UNUSED,
  ViolationReason_TRAFFIC_INSPECTION_CROSSES_AZ_BOUNDARY,
  ViolationReason_UNEXPECTED_FIREWALL_ROUTES,
  ViolationReason_UNEXPECTED_TARGET_GATEWAY_ROUTES,
  ViolationReason_WEB_ACL_MISSING_RULE_GROUP,
  ViolationReason'
  #-}