{-# 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.Textract.Types.FeatureType
-- 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.Textract.Types.FeatureType
  ( FeatureType
      ( ..,
        FeatureType_FORMS,
        FeatureType_TABLES
      ),
  )
where

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

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

pattern FeatureType_FORMS :: FeatureType
pattern $bFeatureType_FORMS :: FeatureType
$mFeatureType_FORMS :: forall r. FeatureType -> (Void# -> r) -> (Void# -> r) -> r
FeatureType_FORMS = FeatureType' "FORMS"

pattern FeatureType_TABLES :: FeatureType
pattern $bFeatureType_TABLES :: FeatureType
$mFeatureType_TABLES :: forall r. FeatureType -> (Void# -> r) -> (Void# -> r) -> r
FeatureType_TABLES = FeatureType' "TABLES"

{-# COMPLETE
  FeatureType_FORMS,
  FeatureType_TABLES,
  FeatureType'
  #-}