{-# 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.Rekognition.Types.VideoJobStatus
-- 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.Rekognition.Types.VideoJobStatus
  ( VideoJobStatus
      ( ..,
        VideoJobStatus_FAILED,
        VideoJobStatus_IN_PROGRESS,
        VideoJobStatus_SUCCEEDED
      ),
  )
where

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

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

pattern VideoJobStatus_FAILED :: VideoJobStatus
pattern $bVideoJobStatus_FAILED :: VideoJobStatus
$mVideoJobStatus_FAILED :: forall r. VideoJobStatus -> (Void# -> r) -> (Void# -> r) -> r
VideoJobStatus_FAILED = VideoJobStatus' "FAILED"

pattern VideoJobStatus_IN_PROGRESS :: VideoJobStatus
pattern $bVideoJobStatus_IN_PROGRESS :: VideoJobStatus
$mVideoJobStatus_IN_PROGRESS :: forall r. VideoJobStatus -> (Void# -> r) -> (Void# -> r) -> r
VideoJobStatus_IN_PROGRESS = VideoJobStatus' "IN_PROGRESS"

pattern VideoJobStatus_SUCCEEDED :: VideoJobStatus
pattern $bVideoJobStatus_SUCCEEDED :: VideoJobStatus
$mVideoJobStatus_SUCCEEDED :: forall r. VideoJobStatus -> (Void# -> r) -> (Void# -> r) -> r
VideoJobStatus_SUCCEEDED = VideoJobStatus' "SUCCEEDED"

{-# COMPLETE
  VideoJobStatus_FAILED,
  VideoJobStatus_IN_PROGRESS,
  VideoJobStatus_SUCCEEDED,
  VideoJobStatus'
  #-}