{-# 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.AppFlow.Types.PrefixFormat
-- 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.AppFlow.Types.PrefixFormat
  ( PrefixFormat
      ( ..,
        PrefixFormat_DAY,
        PrefixFormat_HOUR,
        PrefixFormat_MINUTE,
        PrefixFormat_MONTH,
        PrefixFormat_YEAR
      ),
  )
where

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

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

pattern PrefixFormat_DAY :: PrefixFormat
pattern $bPrefixFormat_DAY :: PrefixFormat
$mPrefixFormat_DAY :: forall r. PrefixFormat -> (Void# -> r) -> (Void# -> r) -> r
PrefixFormat_DAY = PrefixFormat' "DAY"

pattern PrefixFormat_HOUR :: PrefixFormat
pattern $bPrefixFormat_HOUR :: PrefixFormat
$mPrefixFormat_HOUR :: forall r. PrefixFormat -> (Void# -> r) -> (Void# -> r) -> r
PrefixFormat_HOUR = PrefixFormat' "HOUR"

pattern PrefixFormat_MINUTE :: PrefixFormat
pattern $bPrefixFormat_MINUTE :: PrefixFormat
$mPrefixFormat_MINUTE :: forall r. PrefixFormat -> (Void# -> r) -> (Void# -> r) -> r
PrefixFormat_MINUTE = PrefixFormat' "MINUTE"

pattern PrefixFormat_MONTH :: PrefixFormat
pattern $bPrefixFormat_MONTH :: PrefixFormat
$mPrefixFormat_MONTH :: forall r. PrefixFormat -> (Void# -> r) -> (Void# -> r) -> r
PrefixFormat_MONTH = PrefixFormat' "MONTH"

pattern PrefixFormat_YEAR :: PrefixFormat
pattern $bPrefixFormat_YEAR :: PrefixFormat
$mPrefixFormat_YEAR :: forall r. PrefixFormat -> (Void# -> r) -> (Void# -> r) -> r
PrefixFormat_YEAR = PrefixFormat' "YEAR"

{-# COMPLETE
  PrefixFormat_DAY,
  PrefixFormat_HOUR,
  PrefixFormat_MINUTE,
  PrefixFormat_MONTH,
  PrefixFormat_YEAR,
  PrefixFormat'
  #-}