{-# 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.DMS.Types.AuthMechanismValue
-- 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.DMS.Types.AuthMechanismValue
  ( AuthMechanismValue
      ( ..,
        AuthMechanismValue_Default,
        AuthMechanismValue_Mongodb_cr,
        AuthMechanismValue_Scram_sha_1
      ),
  )
where

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

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

pattern AuthMechanismValue_Default :: AuthMechanismValue
pattern $bAuthMechanismValue_Default :: AuthMechanismValue
$mAuthMechanismValue_Default :: forall r. AuthMechanismValue -> (Void# -> r) -> (Void# -> r) -> r
AuthMechanismValue_Default = AuthMechanismValue' "default"

pattern AuthMechanismValue_Mongodb_cr :: AuthMechanismValue
pattern $bAuthMechanismValue_Mongodb_cr :: AuthMechanismValue
$mAuthMechanismValue_Mongodb_cr :: forall r. AuthMechanismValue -> (Void# -> r) -> (Void# -> r) -> r
AuthMechanismValue_Mongodb_cr = AuthMechanismValue' "mongodb_cr"

pattern AuthMechanismValue_Scram_sha_1 :: AuthMechanismValue
pattern $bAuthMechanismValue_Scram_sha_1 :: AuthMechanismValue
$mAuthMechanismValue_Scram_sha_1 :: forall r. AuthMechanismValue -> (Void# -> r) -> (Void# -> r) -> r
AuthMechanismValue_Scram_sha_1 = AuthMechanismValue' "scram_sha_1"

{-# COMPLETE
  AuthMechanismValue_Default,
  AuthMechanismValue_Mongodb_cr,
  AuthMechanismValue_Scram_sha_1,
  AuthMechanismValue'
  #-}