{-# 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.KafkaConnect.Types.CustomPluginContentType
-- 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.KafkaConnect.Types.CustomPluginContentType
  ( CustomPluginContentType
      ( ..,
        CustomPluginContentType_JAR,
        CustomPluginContentType_ZIP
      ),
  )
where

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

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

pattern CustomPluginContentType_JAR :: CustomPluginContentType
pattern $bCustomPluginContentType_JAR :: CustomPluginContentType
$mCustomPluginContentType_JAR :: forall r.
CustomPluginContentType -> (Void# -> r) -> (Void# -> r) -> r
CustomPluginContentType_JAR = CustomPluginContentType' "JAR"

pattern CustomPluginContentType_ZIP :: CustomPluginContentType
pattern $bCustomPluginContentType_ZIP :: CustomPluginContentType
$mCustomPluginContentType_ZIP :: forall r.
CustomPluginContentType -> (Void# -> r) -> (Void# -> r) -> r
CustomPluginContentType_ZIP = CustomPluginContentType' "ZIP"

{-# COMPLETE
  CustomPluginContentType_JAR,
  CustomPluginContentType_ZIP,
  CustomPluginContentType'
  #-}