{-# 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.Redshift.Types.ScheduleState
-- 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.Redshift.Types.ScheduleState
  ( ScheduleState
      ( ..,
        ScheduleState_ACTIVE,
        ScheduleState_FAILED,
        ScheduleState_MODIFYING
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude
import Amazonka.Redshift.Internal

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

pattern ScheduleState_ACTIVE :: ScheduleState
pattern $bScheduleState_ACTIVE :: ScheduleState
$mScheduleState_ACTIVE :: forall r. ScheduleState -> (Void# -> r) -> (Void# -> r) -> r
ScheduleState_ACTIVE = ScheduleState' "ACTIVE"

pattern ScheduleState_FAILED :: ScheduleState
pattern $bScheduleState_FAILED :: ScheduleState
$mScheduleState_FAILED :: forall r. ScheduleState -> (Void# -> r) -> (Void# -> r) -> r
ScheduleState_FAILED = ScheduleState' "FAILED"

pattern ScheduleState_MODIFYING :: ScheduleState
pattern $bScheduleState_MODIFYING :: ScheduleState
$mScheduleState_MODIFYING :: forall r. ScheduleState -> (Void# -> r) -> (Void# -> r) -> r
ScheduleState_MODIFYING = ScheduleState' "MODIFYING"

{-# COMPLETE
  ScheduleState_ACTIVE,
  ScheduleState_FAILED,
  ScheduleState_MODIFYING,
  ScheduleState'
  #-}