{-# 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.DirectoryService.Types.TrustState
-- 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.DirectoryService.Types.TrustState
  ( TrustState
      ( ..,
        TrustState_Created,
        TrustState_Creating,
        TrustState_Deleted,
        TrustState_Deleting,
        TrustState_Failed,
        TrustState_UpdateFailed,
        TrustState_Updated,
        TrustState_Updating,
        TrustState_Verified,
        TrustState_VerifyFailed,
        TrustState_Verifying
      ),
  )
where

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

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

pattern TrustState_Created :: TrustState
pattern $bTrustState_Created :: TrustState
$mTrustState_Created :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Created = TrustState' "Created"

pattern TrustState_Creating :: TrustState
pattern $bTrustState_Creating :: TrustState
$mTrustState_Creating :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Creating = TrustState' "Creating"

pattern TrustState_Deleted :: TrustState
pattern $bTrustState_Deleted :: TrustState
$mTrustState_Deleted :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Deleted = TrustState' "Deleted"

pattern TrustState_Deleting :: TrustState
pattern $bTrustState_Deleting :: TrustState
$mTrustState_Deleting :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Deleting = TrustState' "Deleting"

pattern TrustState_Failed :: TrustState
pattern $bTrustState_Failed :: TrustState
$mTrustState_Failed :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Failed = TrustState' "Failed"

pattern TrustState_UpdateFailed :: TrustState
pattern $bTrustState_UpdateFailed :: TrustState
$mTrustState_UpdateFailed :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_UpdateFailed = TrustState' "UpdateFailed"

pattern TrustState_Updated :: TrustState
pattern $bTrustState_Updated :: TrustState
$mTrustState_Updated :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Updated = TrustState' "Updated"

pattern TrustState_Updating :: TrustState
pattern $bTrustState_Updating :: TrustState
$mTrustState_Updating :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Updating = TrustState' "Updating"

pattern TrustState_Verified :: TrustState
pattern $bTrustState_Verified :: TrustState
$mTrustState_Verified :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Verified = TrustState' "Verified"

pattern TrustState_VerifyFailed :: TrustState
pattern $bTrustState_VerifyFailed :: TrustState
$mTrustState_VerifyFailed :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_VerifyFailed = TrustState' "VerifyFailed"

pattern TrustState_Verifying :: TrustState
pattern $bTrustState_Verifying :: TrustState
$mTrustState_Verifying :: forall r. TrustState -> (Void# -> r) -> (Void# -> r) -> r
TrustState_Verifying = TrustState' "Verifying"

{-# COMPLETE
  TrustState_Created,
  TrustState_Creating,
  TrustState_Deleted,
  TrustState_Deleting,
  TrustState_Failed,
  TrustState_UpdateFailed,
  TrustState_Updated,
  TrustState_Updating,
  TrustState_Verified,
  TrustState_VerifyFailed,
  TrustState_Verifying,
  TrustState'
  #-}