{-# 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.Kafka.Types.KafkaVersionStatus
-- 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.Kafka.Types.KafkaVersionStatus
  ( KafkaVersionStatus
      ( ..,
        KafkaVersionStatus_ACTIVE,
        KafkaVersionStatus_DEPRECATED
      ),
  )
where

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

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

pattern KafkaVersionStatus_ACTIVE :: KafkaVersionStatus
pattern $bKafkaVersionStatus_ACTIVE :: KafkaVersionStatus
$mKafkaVersionStatus_ACTIVE :: forall r. KafkaVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
KafkaVersionStatus_ACTIVE = KafkaVersionStatus' "ACTIVE"

pattern KafkaVersionStatus_DEPRECATED :: KafkaVersionStatus
pattern $bKafkaVersionStatus_DEPRECATED :: KafkaVersionStatus
$mKafkaVersionStatus_DEPRECATED :: forall r. KafkaVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
KafkaVersionStatus_DEPRECATED = KafkaVersionStatus' "DEPRECATED"

{-# COMPLETE
  KafkaVersionStatus_ACTIVE,
  KafkaVersionStatus_DEPRECATED,
  KafkaVersionStatus'
  #-}