{-# 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.SSMContacts.Types.AcceptType
-- 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.SSMContacts.Types.AcceptType
  ( AcceptType
      ( ..,
        AcceptType_DELIVERED,
        AcceptType_READ
      ),
  )
where

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

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

pattern AcceptType_DELIVERED :: AcceptType
pattern $bAcceptType_DELIVERED :: AcceptType
$mAcceptType_DELIVERED :: forall r. AcceptType -> (Void# -> r) -> (Void# -> r) -> r
AcceptType_DELIVERED = AcceptType' "DELIVERED"

pattern AcceptType_READ :: AcceptType
pattern $bAcceptType_READ :: AcceptType
$mAcceptType_READ :: forall r. AcceptType -> (Void# -> r) -> (Void# -> r) -> r
AcceptType_READ = AcceptType' "READ"

{-# COMPLETE
  AcceptType_DELIVERED,
  AcceptType_READ,
  AcceptType'
  #-}