{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype ContactMethodVerificationProtocol = ContactMethodVerificationProtocol'
  { ContactMethodVerificationProtocol -> Text
fromContactMethodVerificationProtocol ::
      Data.Text
  }
  deriving stock
    ( Int -> ContactMethodVerificationProtocol -> ShowS
[ContactMethodVerificationProtocol] -> ShowS
ContactMethodVerificationProtocol -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq ContactMethodVerificationProtocol
Int -> ContactMethodVerificationProtocol -> Int
ContactMethodVerificationProtocol -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: ContactMethodVerificationProtocol -> ()
$crnf :: ContactMethodVerificationProtocol -> ()
Prelude.NFData,
      Text -> Either String ContactMethodVerificationProtocol
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String ContactMethodVerificationProtocol
$cfromText :: Text -> Either String ContactMethodVerificationProtocol
Data.FromText,
      ContactMethodVerificationProtocol -> Text
forall a. (a -> Text) -> ToText a
toText :: ContactMethodVerificationProtocol -> Text
$ctoText :: ContactMethodVerificationProtocol -> Text
Data.ToText,
      ContactMethodVerificationProtocol -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: ContactMethodVerificationProtocol -> ByteString
$ctoBS :: ContactMethodVerificationProtocol -> ByteString
Data.ToByteString,
      ContactMethodVerificationProtocol -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: ContactMethodVerificationProtocol -> ByteStringBuilder
$cbuild :: ContactMethodVerificationProtocol -> ByteStringBuilder
Data.ToLog,
      HeaderName -> ContactMethodVerificationProtocol -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> ContactMethodVerificationProtocol -> [Header]
$ctoHeader :: HeaderName -> ContactMethodVerificationProtocol -> [Header]
Data.ToHeader,
      ContactMethodVerificationProtocol -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: ContactMethodVerificationProtocol -> QueryString
$ctoQuery :: ContactMethodVerificationProtocol -> QueryString
Data.ToQuery,
      Value -> Parser [ContactMethodVerificationProtocol]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [ContactMethodVerificationProtocol]
FromJSONKeyFunction ContactMethodVerificationProtocol
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [ContactMethodVerificationProtocol]
$cfromJSONKeyList :: FromJSONKeyFunction [ContactMethodVerificationProtocol]
fromJSONKey :: FromJSONKeyFunction ContactMethodVerificationProtocol
$cfromJSONKey :: FromJSONKeyFunction ContactMethodVerificationProtocol
Data.FromJSONKey,
      [ContactMethodVerificationProtocol] -> Encoding
[ContactMethodVerificationProtocol] -> Value
ContactMethodVerificationProtocol -> Encoding
ContactMethodVerificationProtocol -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [ContactMethodVerificationProtocol]
ToJSONKeyFunction ContactMethodVerificationProtocol
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [ContactMethodVerificationProtocol]
$ctoJSONKeyList :: ToJSONKeyFunction [ContactMethodVerificationProtocol]
toJSONKey :: ToJSONKeyFunction ContactMethodVerificationProtocol
$ctoJSONKey :: ToJSONKeyFunction ContactMethodVerificationProtocol
Data.ToJSONKey,
      [Node] -> Either String ContactMethodVerificationProtocol
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String ContactMethodVerificationProtocol
$cparseXML :: [Node] -> Either String ContactMethodVerificationProtocol
Data.FromXML,
      ContactMethodVerificationProtocol -> XML
forall a. (a -> XML) -> ToXML a
toXML :: ContactMethodVerificationProtocol -> XML
$ctoXML :: ContactMethodVerificationProtocol -> XML
Data.ToXML
    )

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

{-# COMPLETE
  ContactMethodVerificationProtocol_Email,
  ContactMethodVerificationProtocol'
  #-}