{-# 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.MediaConvert.Types.AccelerationStatus
-- 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.MediaConvert.Types.AccelerationStatus
  ( AccelerationStatus
      ( ..,
        AccelerationStatus_ACCELERATED,
        AccelerationStatus_IN_PROGRESS,
        AccelerationStatus_NOT_ACCELERATED,
        AccelerationStatus_NOT_APPLICABLE
      ),
  )
where

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

-- | Describes whether the current job is running with accelerated
-- transcoding. For jobs that have Acceleration (AccelerationMode) set to
-- DISABLED, AccelerationStatus is always NOT_APPLICABLE. For jobs that
-- have Acceleration (AccelerationMode) set to ENABLED or PREFERRED,
-- AccelerationStatus is one of the other states. AccelerationStatus is
-- IN_PROGRESS initially, while the service determines whether the input
-- files and job settings are compatible with accelerated transcoding. If
-- they are, AcclerationStatus is ACCELERATED. If your input files and job
-- settings aren\'t compatible with accelerated transcoding, the service
-- either fails your job or runs it without accelerated transcoding,
-- depending on how you set Acceleration (AccelerationMode). When the
-- service runs your job without accelerated transcoding,
-- AccelerationStatus is NOT_ACCELERATED.
newtype AccelerationStatus = AccelerationStatus'
  { AccelerationStatus -> Text
fromAccelerationStatus ::
      Core.Text
  }
  deriving stock
    ( Int -> AccelerationStatus -> ShowS
[AccelerationStatus] -> ShowS
AccelerationStatus -> String
(Int -> AccelerationStatus -> ShowS)
-> (AccelerationStatus -> String)
-> ([AccelerationStatus] -> ShowS)
-> Show AccelerationStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AccelerationStatus] -> ShowS
$cshowList :: [AccelerationStatus] -> ShowS
show :: AccelerationStatus -> String
$cshow :: AccelerationStatus -> String
showsPrec :: Int -> AccelerationStatus -> ShowS
$cshowsPrec :: Int -> AccelerationStatus -> ShowS
Prelude.Show,
      ReadPrec [AccelerationStatus]
ReadPrec AccelerationStatus
Int -> ReadS AccelerationStatus
ReadS [AccelerationStatus]
(Int -> ReadS AccelerationStatus)
-> ReadS [AccelerationStatus]
-> ReadPrec AccelerationStatus
-> ReadPrec [AccelerationStatus]
-> Read AccelerationStatus
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AccelerationStatus]
$creadListPrec :: ReadPrec [AccelerationStatus]
readPrec :: ReadPrec AccelerationStatus
$creadPrec :: ReadPrec AccelerationStatus
readList :: ReadS [AccelerationStatus]
$creadList :: ReadS [AccelerationStatus]
readsPrec :: Int -> ReadS AccelerationStatus
$creadsPrec :: Int -> ReadS AccelerationStatus
Prelude.Read,
      AccelerationStatus -> AccelerationStatus -> Bool
(AccelerationStatus -> AccelerationStatus -> Bool)
-> (AccelerationStatus -> AccelerationStatus -> Bool)
-> Eq AccelerationStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccelerationStatus -> AccelerationStatus -> Bool
$c/= :: AccelerationStatus -> AccelerationStatus -> Bool
== :: AccelerationStatus -> AccelerationStatus -> Bool
$c== :: AccelerationStatus -> AccelerationStatus -> Bool
Prelude.Eq,
      Eq AccelerationStatus
Eq AccelerationStatus
-> (AccelerationStatus -> AccelerationStatus -> Ordering)
-> (AccelerationStatus -> AccelerationStatus -> Bool)
-> (AccelerationStatus -> AccelerationStatus -> Bool)
-> (AccelerationStatus -> AccelerationStatus -> Bool)
-> (AccelerationStatus -> AccelerationStatus -> Bool)
-> (AccelerationStatus -> AccelerationStatus -> AccelerationStatus)
-> (AccelerationStatus -> AccelerationStatus -> AccelerationStatus)
-> Ord AccelerationStatus
AccelerationStatus -> AccelerationStatus -> Bool
AccelerationStatus -> AccelerationStatus -> Ordering
AccelerationStatus -> AccelerationStatus -> AccelerationStatus
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 :: AccelerationStatus -> AccelerationStatus -> AccelerationStatus
$cmin :: AccelerationStatus -> AccelerationStatus -> AccelerationStatus
max :: AccelerationStatus -> AccelerationStatus -> AccelerationStatus
$cmax :: AccelerationStatus -> AccelerationStatus -> AccelerationStatus
>= :: AccelerationStatus -> AccelerationStatus -> Bool
$c>= :: AccelerationStatus -> AccelerationStatus -> Bool
> :: AccelerationStatus -> AccelerationStatus -> Bool
$c> :: AccelerationStatus -> AccelerationStatus -> Bool
<= :: AccelerationStatus -> AccelerationStatus -> Bool
$c<= :: AccelerationStatus -> AccelerationStatus -> Bool
< :: AccelerationStatus -> AccelerationStatus -> Bool
$c< :: AccelerationStatus -> AccelerationStatus -> Bool
compare :: AccelerationStatus -> AccelerationStatus -> Ordering
$ccompare :: AccelerationStatus -> AccelerationStatus -> Ordering
$cp1Ord :: Eq AccelerationStatus
Prelude.Ord,
      (forall x. AccelerationStatus -> Rep AccelerationStatus x)
-> (forall x. Rep AccelerationStatus x -> AccelerationStatus)
-> Generic AccelerationStatus
forall x. Rep AccelerationStatus x -> AccelerationStatus
forall x. AccelerationStatus -> Rep AccelerationStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AccelerationStatus x -> AccelerationStatus
$cfrom :: forall x. AccelerationStatus -> Rep AccelerationStatus x
Prelude.Generic
    )
  deriving newtype
    ( Int -> AccelerationStatus -> Int
AccelerationStatus -> Int
(Int -> AccelerationStatus -> Int)
-> (AccelerationStatus -> Int) -> Hashable AccelerationStatus
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: AccelerationStatus -> Int
$chash :: AccelerationStatus -> Int
hashWithSalt :: Int -> AccelerationStatus -> Int
$chashWithSalt :: Int -> AccelerationStatus -> Int
Prelude.Hashable,
      AccelerationStatus -> ()
(AccelerationStatus -> ()) -> NFData AccelerationStatus
forall a. (a -> ()) -> NFData a
rnf :: AccelerationStatus -> ()
$crnf :: AccelerationStatus -> ()
Prelude.NFData,
      Text -> Either String AccelerationStatus
(Text -> Either String AccelerationStatus)
-> FromText AccelerationStatus
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String AccelerationStatus
$cfromText :: Text -> Either String AccelerationStatus
Core.FromText,
      AccelerationStatus -> Text
(AccelerationStatus -> Text) -> ToText AccelerationStatus
forall a. (a -> Text) -> ToText a
toText :: AccelerationStatus -> Text
$ctoText :: AccelerationStatus -> Text
Core.ToText,
      AccelerationStatus -> ByteString
(AccelerationStatus -> ByteString)
-> ToByteString AccelerationStatus
forall a. (a -> ByteString) -> ToByteString a
toBS :: AccelerationStatus -> ByteString
$ctoBS :: AccelerationStatus -> ByteString
Core.ToByteString,
      AccelerationStatus -> ByteStringBuilder
(AccelerationStatus -> ByteStringBuilder)
-> ToLog AccelerationStatus
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: AccelerationStatus -> ByteStringBuilder
$cbuild :: AccelerationStatus -> ByteStringBuilder
Core.ToLog,
      HeaderName -> AccelerationStatus -> [Header]
(HeaderName -> AccelerationStatus -> [Header])
-> ToHeader AccelerationStatus
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> AccelerationStatus -> [Header]
$ctoHeader :: HeaderName -> AccelerationStatus -> [Header]
Core.ToHeader,
      AccelerationStatus -> QueryString
(AccelerationStatus -> QueryString) -> ToQuery AccelerationStatus
forall a. (a -> QueryString) -> ToQuery a
toQuery :: AccelerationStatus -> QueryString
$ctoQuery :: AccelerationStatus -> QueryString
Core.ToQuery,
      Value -> Parser [AccelerationStatus]
Value -> Parser AccelerationStatus
(Value -> Parser AccelerationStatus)
-> (Value -> Parser [AccelerationStatus])
-> FromJSON AccelerationStatus
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [AccelerationStatus]
$cparseJSONList :: Value -> Parser [AccelerationStatus]
parseJSON :: Value -> Parser AccelerationStatus
$cparseJSON :: Value -> Parser AccelerationStatus
Core.FromJSON,
      FromJSONKeyFunction [AccelerationStatus]
FromJSONKeyFunction AccelerationStatus
FromJSONKeyFunction AccelerationStatus
-> FromJSONKeyFunction [AccelerationStatus]
-> FromJSONKey AccelerationStatus
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [AccelerationStatus]
$cfromJSONKeyList :: FromJSONKeyFunction [AccelerationStatus]
fromJSONKey :: FromJSONKeyFunction AccelerationStatus
$cfromJSONKey :: FromJSONKeyFunction AccelerationStatus
Core.FromJSONKey,
      [AccelerationStatus] -> Encoding
[AccelerationStatus] -> Value
AccelerationStatus -> Encoding
AccelerationStatus -> Value
(AccelerationStatus -> Value)
-> (AccelerationStatus -> Encoding)
-> ([AccelerationStatus] -> Value)
-> ([AccelerationStatus] -> Encoding)
-> ToJSON AccelerationStatus
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [AccelerationStatus] -> Encoding
$ctoEncodingList :: [AccelerationStatus] -> Encoding
toJSONList :: [AccelerationStatus] -> Value
$ctoJSONList :: [AccelerationStatus] -> Value
toEncoding :: AccelerationStatus -> Encoding
$ctoEncoding :: AccelerationStatus -> Encoding
toJSON :: AccelerationStatus -> Value
$ctoJSON :: AccelerationStatus -> Value
Core.ToJSON,
      ToJSONKeyFunction [AccelerationStatus]
ToJSONKeyFunction AccelerationStatus
ToJSONKeyFunction AccelerationStatus
-> ToJSONKeyFunction [AccelerationStatus]
-> ToJSONKey AccelerationStatus
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [AccelerationStatus]
$ctoJSONKeyList :: ToJSONKeyFunction [AccelerationStatus]
toJSONKey :: ToJSONKeyFunction AccelerationStatus
$ctoJSONKey :: ToJSONKeyFunction AccelerationStatus
Core.ToJSONKey,
      [Node] -> Either String AccelerationStatus
([Node] -> Either String AccelerationStatus)
-> FromXML AccelerationStatus
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String AccelerationStatus
$cparseXML :: [Node] -> Either String AccelerationStatus
Core.FromXML,
      AccelerationStatus -> XML
(AccelerationStatus -> XML) -> ToXML AccelerationStatus
forall a. (a -> XML) -> ToXML a
toXML :: AccelerationStatus -> XML
$ctoXML :: AccelerationStatus -> XML
Core.ToXML
    )

pattern AccelerationStatus_ACCELERATED :: AccelerationStatus
pattern $bAccelerationStatus_ACCELERATED :: AccelerationStatus
$mAccelerationStatus_ACCELERATED :: forall r. AccelerationStatus -> (Void# -> r) -> (Void# -> r) -> r
AccelerationStatus_ACCELERATED = AccelerationStatus' "ACCELERATED"

pattern AccelerationStatus_IN_PROGRESS :: AccelerationStatus
pattern $bAccelerationStatus_IN_PROGRESS :: AccelerationStatus
$mAccelerationStatus_IN_PROGRESS :: forall r. AccelerationStatus -> (Void# -> r) -> (Void# -> r) -> r
AccelerationStatus_IN_PROGRESS = AccelerationStatus' "IN_PROGRESS"

pattern AccelerationStatus_NOT_ACCELERATED :: AccelerationStatus
pattern $bAccelerationStatus_NOT_ACCELERATED :: AccelerationStatus
$mAccelerationStatus_NOT_ACCELERATED :: forall r. AccelerationStatus -> (Void# -> r) -> (Void# -> r) -> r
AccelerationStatus_NOT_ACCELERATED = AccelerationStatus' "NOT_ACCELERATED"

pattern AccelerationStatus_NOT_APPLICABLE :: AccelerationStatus
pattern $bAccelerationStatus_NOT_APPLICABLE :: AccelerationStatus
$mAccelerationStatus_NOT_APPLICABLE :: forall r. AccelerationStatus -> (Void# -> r) -> (Void# -> r) -> r
AccelerationStatus_NOT_APPLICABLE = AccelerationStatus' "NOT_APPLICABLE"

{-# COMPLETE
  AccelerationStatus_ACCELERATED,
  AccelerationStatus_IN_PROGRESS,
  AccelerationStatus_NOT_ACCELERATED,
  AccelerationStatus_NOT_APPLICABLE,
  AccelerationStatus'
  #-}