{-# 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.AlexaBusiness.Types.NetworkEapMethod
-- 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.AlexaBusiness.Types.NetworkEapMethod
  ( NetworkEapMethod
      ( ..,
        NetworkEapMethod_EAP_TLS
      ),
  )
where

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

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

pattern NetworkEapMethod_EAP_TLS :: NetworkEapMethod
pattern $bNetworkEapMethod_EAP_TLS :: NetworkEapMethod
$mNetworkEapMethod_EAP_TLS :: forall r. NetworkEapMethod -> (Void# -> r) -> (Void# -> r) -> r
NetworkEapMethod_EAP_TLS = NetworkEapMethod' "EAP_TLS"

{-# COMPLETE
  NetworkEapMethod_EAP_TLS,
  NetworkEapMethod'
  #-}