{-# 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.CloudSearch.Types.AlgorithmicStemming
-- 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.CloudSearch.Types.AlgorithmicStemming
  ( AlgorithmicStemming
      ( ..,
        AlgorithmicStemming_Full,
        AlgorithmicStemming_Light,
        AlgorithmicStemming_Minimal,
        AlgorithmicStemming_None
      ),
  )
where

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

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

pattern AlgorithmicStemming_Full :: AlgorithmicStemming
pattern $bAlgorithmicStemming_Full :: AlgorithmicStemming
$mAlgorithmicStemming_Full :: forall r. AlgorithmicStemming -> (Void# -> r) -> (Void# -> r) -> r
AlgorithmicStemming_Full = AlgorithmicStemming' "full"

pattern AlgorithmicStemming_Light :: AlgorithmicStemming
pattern $bAlgorithmicStemming_Light :: AlgorithmicStemming
$mAlgorithmicStemming_Light :: forall r. AlgorithmicStemming -> (Void# -> r) -> (Void# -> r) -> r
AlgorithmicStemming_Light = AlgorithmicStemming' "light"

pattern AlgorithmicStemming_Minimal :: AlgorithmicStemming
pattern $bAlgorithmicStemming_Minimal :: AlgorithmicStemming
$mAlgorithmicStemming_Minimal :: forall r. AlgorithmicStemming -> (Void# -> r) -> (Void# -> r) -> r
AlgorithmicStemming_Minimal = AlgorithmicStemming' "minimal"

pattern AlgorithmicStemming_None :: AlgorithmicStemming
pattern $bAlgorithmicStemming_None :: AlgorithmicStemming
$mAlgorithmicStemming_None :: forall r. AlgorithmicStemming -> (Void# -> r) -> (Void# -> r) -> r
AlgorithmicStemming_None = AlgorithmicStemming' "none"

{-# COMPLETE
  AlgorithmicStemming_Full,
  AlgorithmicStemming_Light,
  AlgorithmicStemming_Minimal,
  AlgorithmicStemming_None,
  AlgorithmicStemming'
  #-}