{-# 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.XRay.Types.InsightCategory
-- 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.XRay.Types.InsightCategory
  ( InsightCategory
      ( ..,
        InsightCategory_FAULT
      ),
  )
where

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

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

pattern InsightCategory_FAULT :: InsightCategory
pattern $bInsightCategory_FAULT :: InsightCategory
$mInsightCategory_FAULT :: forall r. InsightCategory -> (Void# -> r) -> (Void# -> r) -> r
InsightCategory_FAULT = InsightCategory' "FAULT"

{-# COMPLETE
  InsightCategory_FAULT,
  InsightCategory'
  #-}