{-# 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.SageMaker.Types.AthenaResultCompressionType
-- 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.SageMaker.Types.AthenaResultCompressionType
  ( AthenaResultCompressionType
      ( ..,
        AthenaResultCompressionType_GZIP,
        AthenaResultCompressionType_SNAPPY,
        AthenaResultCompressionType_ZLIB
      ),
  )
where

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

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

pattern AthenaResultCompressionType_GZIP :: AthenaResultCompressionType
pattern $bAthenaResultCompressionType_GZIP :: AthenaResultCompressionType
$mAthenaResultCompressionType_GZIP :: forall r.
AthenaResultCompressionType -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultCompressionType_GZIP = AthenaResultCompressionType' "GZIP"

pattern AthenaResultCompressionType_SNAPPY :: AthenaResultCompressionType
pattern $bAthenaResultCompressionType_SNAPPY :: AthenaResultCompressionType
$mAthenaResultCompressionType_SNAPPY :: forall r.
AthenaResultCompressionType -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultCompressionType_SNAPPY = AthenaResultCompressionType' "SNAPPY"

pattern AthenaResultCompressionType_ZLIB :: AthenaResultCompressionType
pattern $bAthenaResultCompressionType_ZLIB :: AthenaResultCompressionType
$mAthenaResultCompressionType_ZLIB :: forall r.
AthenaResultCompressionType -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultCompressionType_ZLIB = AthenaResultCompressionType' "ZLIB"

{-# COMPLETE
  AthenaResultCompressionType_GZIP,
  AthenaResultCompressionType_SNAPPY,
  AthenaResultCompressionType_ZLIB,
  AthenaResultCompressionType'
  #-}