{-# 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.ParquetCompression
-- 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.ParquetCompression
  ( ParquetCompression
      ( ..,
        ParquetCompression_GZIP,
        ParquetCompression_SNAPPY,
        ParquetCompression_UNCOMPRESSED
      ),
  )
where

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

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

pattern ParquetCompression_GZIP :: ParquetCompression
pattern $bParquetCompression_GZIP :: ParquetCompression
$mParquetCompression_GZIP :: forall r. ParquetCompression -> (Void# -> r) -> (Void# -> r) -> r
ParquetCompression_GZIP = ParquetCompression' "GZIP"

pattern ParquetCompression_SNAPPY :: ParquetCompression
pattern $bParquetCompression_SNAPPY :: ParquetCompression
$mParquetCompression_SNAPPY :: forall r. ParquetCompression -> (Void# -> r) -> (Void# -> r) -> r
ParquetCompression_SNAPPY = ParquetCompression' "SNAPPY"

pattern ParquetCompression_UNCOMPRESSED :: ParquetCompression
pattern $bParquetCompression_UNCOMPRESSED :: ParquetCompression
$mParquetCompression_UNCOMPRESSED :: forall r. ParquetCompression -> (Void# -> r) -> (Void# -> r) -> r
ParquetCompression_UNCOMPRESSED = ParquetCompression' "UNCOMPRESSED"

{-# COMPLETE
  ParquetCompression_GZIP,
  ParquetCompression_SNAPPY,
  ParquetCompression_UNCOMPRESSED,
  ParquetCompression'
  #-}