{-# 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.FinSpace.Types.FederationMode
-- 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.FinSpace.Types.FederationMode
  ( FederationMode
      ( ..,
        FederationMode_FEDERATED,
        FederationMode_LOCAL
      ),
  )
where

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

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

pattern FederationMode_FEDERATED :: FederationMode
pattern $bFederationMode_FEDERATED :: FederationMode
$mFederationMode_FEDERATED :: forall r. FederationMode -> (Void# -> r) -> (Void# -> r) -> r
FederationMode_FEDERATED = FederationMode' "FEDERATED"

pattern FederationMode_LOCAL :: FederationMode
pattern $bFederationMode_LOCAL :: FederationMode
$mFederationMode_LOCAL :: forall r. FederationMode -> (Void# -> r) -> (Void# -> r) -> r
FederationMode_LOCAL = FederationMode' "LOCAL"

{-# COMPLETE
  FederationMode_FEDERATED,
  FederationMode_LOCAL,
  FederationMode'
  #-}