{-# 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.PinpointSmsVoiceV2.Types.SenderIdFilterName
-- 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.PinpointSmsVoiceV2.Types.SenderIdFilterName
  ( SenderIdFilterName
      ( ..,
        SenderIdFilterName_Iso_country_code,
        SenderIdFilterName_Message_type,
        SenderIdFilterName_Sender_id
      ),
  )
where

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

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

pattern SenderIdFilterName_Iso_country_code :: SenderIdFilterName
pattern $bSenderIdFilterName_Iso_country_code :: SenderIdFilterName
$mSenderIdFilterName_Iso_country_code :: forall {r}. SenderIdFilterName -> ((# #) -> r) -> ((# #) -> r) -> r
SenderIdFilterName_Iso_country_code = SenderIdFilterName' "iso-country-code"

pattern SenderIdFilterName_Message_type :: SenderIdFilterName
pattern $bSenderIdFilterName_Message_type :: SenderIdFilterName
$mSenderIdFilterName_Message_type :: forall {r}. SenderIdFilterName -> ((# #) -> r) -> ((# #) -> r) -> r
SenderIdFilterName_Message_type = SenderIdFilterName' "message-type"

pattern SenderIdFilterName_Sender_id :: SenderIdFilterName
pattern $bSenderIdFilterName_Sender_id :: SenderIdFilterName
$mSenderIdFilterName_Sender_id :: forall {r}. SenderIdFilterName -> ((# #) -> r) -> ((# #) -> r) -> r
SenderIdFilterName_Sender_id = SenderIdFilterName' "sender-id"

{-# COMPLETE
  SenderIdFilterName_Iso_country_code,
  SenderIdFilterName_Message_type,
  SenderIdFilterName_Sender_id,
  SenderIdFilterName'
  #-}