{-# 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.IoT.Types.ConfidenceLevel
-- 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.IoT.Types.ConfidenceLevel
  ( ConfidenceLevel
      ( ..,
        ConfidenceLevel_HIGH,
        ConfidenceLevel_LOW,
        ConfidenceLevel_MEDIUM
      ),
  )
where

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

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

pattern ConfidenceLevel_HIGH :: ConfidenceLevel
pattern $bConfidenceLevel_HIGH :: ConfidenceLevel
$mConfidenceLevel_HIGH :: forall r. ConfidenceLevel -> (Void# -> r) -> (Void# -> r) -> r
ConfidenceLevel_HIGH = ConfidenceLevel' "HIGH"

pattern ConfidenceLevel_LOW :: ConfidenceLevel
pattern $bConfidenceLevel_LOW :: ConfidenceLevel
$mConfidenceLevel_LOW :: forall r. ConfidenceLevel -> (Void# -> r) -> (Void# -> r) -> r
ConfidenceLevel_LOW = ConfidenceLevel' "LOW"

pattern ConfidenceLevel_MEDIUM :: ConfidenceLevel
pattern $bConfidenceLevel_MEDIUM :: ConfidenceLevel
$mConfidenceLevel_MEDIUM :: forall r. ConfidenceLevel -> (Void# -> r) -> (Void# -> r) -> r
ConfidenceLevel_MEDIUM = ConfidenceLevel' "MEDIUM"

{-# COMPLETE
  ConfidenceLevel_HIGH,
  ConfidenceLevel_LOW,
  ConfidenceLevel_MEDIUM,
  ConfidenceLevel'
  #-}