{-# 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.Lightsail.Types.ContactMethodVerificationProtocol
-- 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.Lightsail.Types.ContactMethodVerificationProtocol
  ( ContactMethodVerificationProtocol
      ( ..,
        ContactMethodVerificationProtocol_Email
      ),
  )
where

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

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

pattern ContactMethodVerificationProtocol_Email :: ContactMethodVerificationProtocol
pattern $bContactMethodVerificationProtocol_Email :: ContactMethodVerificationProtocol
$mContactMethodVerificationProtocol_Email :: forall r.
ContactMethodVerificationProtocol
-> (Void# -> r) -> (Void# -> r) -> r
ContactMethodVerificationProtocol_Email = ContactMethodVerificationProtocol' "Email"

{-# COMPLETE
  ContactMethodVerificationProtocol_Email,
  ContactMethodVerificationProtocol'
  #-}