{-# 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.NetworkFirewall.Types.ResourceManagedType
-- 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.NetworkFirewall.Types.ResourceManagedType
  ( ResourceManagedType
      ( ..,
        ResourceManagedType_AWS_MANAGED_DOMAIN_LISTS,
        ResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES
      ),
  )
where

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

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

pattern ResourceManagedType_AWS_MANAGED_DOMAIN_LISTS :: ResourceManagedType
pattern $bResourceManagedType_AWS_MANAGED_DOMAIN_LISTS :: ResourceManagedType
$mResourceManagedType_AWS_MANAGED_DOMAIN_LISTS :: forall {r}.
ResourceManagedType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceManagedType_AWS_MANAGED_DOMAIN_LISTS = ResourceManagedType' "AWS_MANAGED_DOMAIN_LISTS"

pattern ResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES :: ResourceManagedType
pattern $bResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES :: ResourceManagedType
$mResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES :: forall {r}.
ResourceManagedType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES = ResourceManagedType' "AWS_MANAGED_THREAT_SIGNATURES"

{-# COMPLETE
  ResourceManagedType_AWS_MANAGED_DOMAIN_LISTS,
  ResourceManagedType_AWS_MANAGED_THREAT_SIGNATURES,
  ResourceManagedType'
  #-}