{-# 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.ResourceExplorer2.Types.IndexState
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ResourceExplorer2.Types.IndexState
  ( IndexState
      ( ..,
        IndexState_ACTIVE,
        IndexState_CREATING,
        IndexState_DELETED,
        IndexState_DELETING,
        IndexState_UPDATING
      ),
  )
where

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

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

pattern IndexState_ACTIVE :: IndexState
pattern $bIndexState_ACTIVE :: IndexState
$mIndexState_ACTIVE :: forall {r}. IndexState -> ((# #) -> r) -> ((# #) -> r) -> r
IndexState_ACTIVE = IndexState' "ACTIVE"

pattern IndexState_CREATING :: IndexState
pattern $bIndexState_CREATING :: IndexState
$mIndexState_CREATING :: forall {r}. IndexState -> ((# #) -> r) -> ((# #) -> r) -> r
IndexState_CREATING = IndexState' "CREATING"

pattern IndexState_DELETED :: IndexState
pattern $bIndexState_DELETED :: IndexState
$mIndexState_DELETED :: forall {r}. IndexState -> ((# #) -> r) -> ((# #) -> r) -> r
IndexState_DELETED = IndexState' "DELETED"

pattern IndexState_DELETING :: IndexState
pattern $bIndexState_DELETING :: IndexState
$mIndexState_DELETING :: forall {r}. IndexState -> ((# #) -> r) -> ((# #) -> r) -> r
IndexState_DELETING = IndexState' "DELETING"

pattern IndexState_UPDATING :: IndexState
pattern $bIndexState_UPDATING :: IndexState
$mIndexState_UPDATING :: forall {r}. IndexState -> ((# #) -> r) -> ((# #) -> r) -> r
IndexState_UPDATING = IndexState' "UPDATING"

{-# COMPLETE
  IndexState_ACTIVE,
  IndexState_CREATING,
  IndexState_DELETED,
  IndexState_DELETING,
  IndexState_UPDATING,
  IndexState'
  #-}