{-# 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.WorkDocs.Types.UserFilterType
-- 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.WorkDocs.Types.UserFilterType
  ( UserFilterType
      ( ..,
        UserFilterType_ACTIVE_PENDING,
        UserFilterType_ALL
      ),
  )
where

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

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

pattern UserFilterType_ACTIVE_PENDING :: UserFilterType
pattern $bUserFilterType_ACTIVE_PENDING :: UserFilterType
$mUserFilterType_ACTIVE_PENDING :: forall r. UserFilterType -> (Void# -> r) -> (Void# -> r) -> r
UserFilterType_ACTIVE_PENDING = UserFilterType' "ACTIVE_PENDING"

pattern UserFilterType_ALL :: UserFilterType
pattern $bUserFilterType_ALL :: UserFilterType
$mUserFilterType_ALL :: forall r. UserFilterType -> (Void# -> r) -> (Void# -> r) -> r
UserFilterType_ALL = UserFilterType' "ALL"

{-# COMPLETE
  UserFilterType_ACTIVE_PENDING,
  UserFilterType_ALL,
  UserFilterType'
  #-}