{-# 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.Pinpoint.Types.Alignment
-- 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.Pinpoint.Types.Alignment
  ( Alignment
      ( ..,
        Alignment_CENTER,
        Alignment_LEFT,
        Alignment_RIGHT
      ),
  )
where

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

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

pattern Alignment_CENTER :: Alignment
pattern $bAlignment_CENTER :: Alignment
$mAlignment_CENTER :: forall r. Alignment -> (Void# -> r) -> (Void# -> r) -> r
Alignment_CENTER = Alignment' "CENTER"

pattern Alignment_LEFT :: Alignment
pattern $bAlignment_LEFT :: Alignment
$mAlignment_LEFT :: forall r. Alignment -> (Void# -> r) -> (Void# -> r) -> r
Alignment_LEFT = Alignment' "LEFT"

pattern Alignment_RIGHT :: Alignment
pattern $bAlignment_RIGHT :: Alignment
$mAlignment_RIGHT :: forall r. Alignment -> (Void# -> r) -> (Void# -> r) -> r
Alignment_RIGHT = Alignment' "RIGHT"

{-# COMPLETE
  Alignment_CENTER,
  Alignment_LEFT,
  Alignment_RIGHT,
  Alignment'
  #-}