{-# 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.AthenaResultFormat
-- 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.AthenaResultFormat
  ( AthenaResultFormat
      ( ..,
        AthenaResultFormat_AVRO,
        AthenaResultFormat_JSON,
        AthenaResultFormat_ORC,
        AthenaResultFormat_PARQUET,
        AthenaResultFormat_TEXTFILE
      ),
  )
where

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

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

pattern AthenaResultFormat_AVRO :: AthenaResultFormat
pattern $bAthenaResultFormat_AVRO :: AthenaResultFormat
$mAthenaResultFormat_AVRO :: forall r. AthenaResultFormat -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultFormat_AVRO = AthenaResultFormat' "AVRO"

pattern AthenaResultFormat_JSON :: AthenaResultFormat
pattern $bAthenaResultFormat_JSON :: AthenaResultFormat
$mAthenaResultFormat_JSON :: forall r. AthenaResultFormat -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultFormat_JSON = AthenaResultFormat' "JSON"

pattern AthenaResultFormat_ORC :: AthenaResultFormat
pattern $bAthenaResultFormat_ORC :: AthenaResultFormat
$mAthenaResultFormat_ORC :: forall r. AthenaResultFormat -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultFormat_ORC = AthenaResultFormat' "ORC"

pattern AthenaResultFormat_PARQUET :: AthenaResultFormat
pattern $bAthenaResultFormat_PARQUET :: AthenaResultFormat
$mAthenaResultFormat_PARQUET :: forall r. AthenaResultFormat -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultFormat_PARQUET = AthenaResultFormat' "PARQUET"

pattern AthenaResultFormat_TEXTFILE :: AthenaResultFormat
pattern $bAthenaResultFormat_TEXTFILE :: AthenaResultFormat
$mAthenaResultFormat_TEXTFILE :: forall r. AthenaResultFormat -> (Void# -> r) -> (Void# -> r) -> r
AthenaResultFormat_TEXTFILE = AthenaResultFormat' "TEXTFILE"

{-# COMPLETE
  AthenaResultFormat_AVRO,
  AthenaResultFormat_JSON,
  AthenaResultFormat_ORC,
  AthenaResultFormat_PARQUET,
  AthenaResultFormat_TEXTFILE,
  AthenaResultFormat'
  #-}