{-# 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.Greengrass.Types.LoggerLevel
-- 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.Greengrass.Types.LoggerLevel
  ( LoggerLevel
      ( ..,
        LoggerLevel_DEBUG,
        LoggerLevel_ERROR,
        LoggerLevel_FATAL,
        LoggerLevel_INFO,
        LoggerLevel_WARN
      ),
  )
where

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

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

pattern LoggerLevel_DEBUG :: LoggerLevel
pattern $bLoggerLevel_DEBUG :: LoggerLevel
$mLoggerLevel_DEBUG :: forall r. LoggerLevel -> (Void# -> r) -> (Void# -> r) -> r
LoggerLevel_DEBUG = LoggerLevel' "DEBUG"

pattern LoggerLevel_ERROR :: LoggerLevel
pattern $bLoggerLevel_ERROR :: LoggerLevel
$mLoggerLevel_ERROR :: forall r. LoggerLevel -> (Void# -> r) -> (Void# -> r) -> r
LoggerLevel_ERROR = LoggerLevel' "ERROR"

pattern LoggerLevel_FATAL :: LoggerLevel
pattern $bLoggerLevel_FATAL :: LoggerLevel
$mLoggerLevel_FATAL :: forall r. LoggerLevel -> (Void# -> r) -> (Void# -> r) -> r
LoggerLevel_FATAL = LoggerLevel' "FATAL"

pattern LoggerLevel_INFO :: LoggerLevel
pattern $bLoggerLevel_INFO :: LoggerLevel
$mLoggerLevel_INFO :: forall r. LoggerLevel -> (Void# -> r) -> (Void# -> r) -> r
LoggerLevel_INFO = LoggerLevel' "INFO"

pattern LoggerLevel_WARN :: LoggerLevel
pattern $bLoggerLevel_WARN :: LoggerLevel
$mLoggerLevel_WARN :: forall r. LoggerLevel -> (Void# -> r) -> (Void# -> r) -> r
LoggerLevel_WARN = LoggerLevel' "WARN"

{-# COMPLETE
  LoggerLevel_DEBUG,
  LoggerLevel_ERROR,
  LoggerLevel_FATAL,
  LoggerLevel_INFO,
  LoggerLevel_WARN,
  LoggerLevel'
  #-}