{-# 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.PrefixType
-- 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.PrefixType
  ( PrefixType
      ( ..,
        PrefixType_FILENAME,
        PrefixType_PATH,
        PrefixType_PATH_AND_FILENAME
      ),
  )
where

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

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

pattern PrefixType_FILENAME :: PrefixType
pattern $bPrefixType_FILENAME :: PrefixType
$mPrefixType_FILENAME :: forall r. PrefixType -> (Void# -> r) -> (Void# -> r) -> r
PrefixType_FILENAME = PrefixType' "FILENAME"

pattern PrefixType_PATH :: PrefixType
pattern $bPrefixType_PATH :: PrefixType
$mPrefixType_PATH :: forall r. PrefixType -> (Void# -> r) -> (Void# -> r) -> r
PrefixType_PATH = PrefixType' "PATH"

pattern PrefixType_PATH_AND_FILENAME :: PrefixType
pattern $bPrefixType_PATH_AND_FILENAME :: PrefixType
$mPrefixType_PATH_AND_FILENAME :: forall r. PrefixType -> (Void# -> r) -> (Void# -> r) -> r
PrefixType_PATH_AND_FILENAME = PrefixType' "PATH_AND_FILENAME"

{-# COMPLETE
  PrefixType_FILENAME,
  PrefixType_PATH,
  PrefixType_PATH_AND_FILENAME,
  PrefixType'
  #-}