{-# 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.Firehose.Types.ParquetWriterVersion
-- 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.Firehose.Types.ParquetWriterVersion
  ( ParquetWriterVersion
      ( ..,
        ParquetWriterVersion_V1,
        ParquetWriterVersion_V2
      ),
  )
where

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

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

pattern ParquetWriterVersion_V1 :: ParquetWriterVersion
pattern $bParquetWriterVersion_V1 :: ParquetWriterVersion
$mParquetWriterVersion_V1 :: forall r. ParquetWriterVersion -> (Void# -> r) -> (Void# -> r) -> r
ParquetWriterVersion_V1 = ParquetWriterVersion' "V1"

pattern ParquetWriterVersion_V2 :: ParquetWriterVersion
pattern $bParquetWriterVersion_V2 :: ParquetWriterVersion
$mParquetWriterVersion_V2 :: forall r. ParquetWriterVersion -> (Void# -> r) -> (Void# -> r) -> r
ParquetWriterVersion_V2 = ParquetWriterVersion' "V2"

{-# COMPLETE
  ParquetWriterVersion_V1,
  ParquetWriterVersion_V2,
  ParquetWriterVersion'
  #-}