{-# 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.StatusUpdateInterval
-- 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.StatusUpdateInterval
  ( StatusUpdateInterval
      ( ..,
        StatusUpdateInterval_SECONDS_10,
        StatusUpdateInterval_SECONDS_12,
        StatusUpdateInterval_SECONDS_120,
        StatusUpdateInterval_SECONDS_15,
        StatusUpdateInterval_SECONDS_180,
        StatusUpdateInterval_SECONDS_20,
        StatusUpdateInterval_SECONDS_240,
        StatusUpdateInterval_SECONDS_30,
        StatusUpdateInterval_SECONDS_300,
        StatusUpdateInterval_SECONDS_360,
        StatusUpdateInterval_SECONDS_420,
        StatusUpdateInterval_SECONDS_480,
        StatusUpdateInterval_SECONDS_540,
        StatusUpdateInterval_SECONDS_60,
        StatusUpdateInterval_SECONDS_600
      ),
  )
where

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

-- | Specify how often MediaConvert sends STATUS_UPDATE events to Amazon
-- CloudWatch Events. Set the interval, in seconds, between status updates.
-- MediaConvert sends an update at this interval from the time the service
-- begins processing your job to the time it completes the transcode or
-- encounters an error.
newtype StatusUpdateInterval = StatusUpdateInterval'
  { StatusUpdateInterval -> Text
fromStatusUpdateInterval ::
      Core.Text
  }
  deriving stock
    ( Int -> StatusUpdateInterval -> ShowS
[StatusUpdateInterval] -> ShowS
StatusUpdateInterval -> String
(Int -> StatusUpdateInterval -> ShowS)
-> (StatusUpdateInterval -> String)
-> ([StatusUpdateInterval] -> ShowS)
-> Show StatusUpdateInterval
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StatusUpdateInterval] -> ShowS
$cshowList :: [StatusUpdateInterval] -> ShowS
show :: StatusUpdateInterval -> String
$cshow :: StatusUpdateInterval -> String
showsPrec :: Int -> StatusUpdateInterval -> ShowS
$cshowsPrec :: Int -> StatusUpdateInterval -> ShowS
Prelude.Show,
      ReadPrec [StatusUpdateInterval]
ReadPrec StatusUpdateInterval
Int -> ReadS StatusUpdateInterval
ReadS [StatusUpdateInterval]
(Int -> ReadS StatusUpdateInterval)
-> ReadS [StatusUpdateInterval]
-> ReadPrec StatusUpdateInterval
-> ReadPrec [StatusUpdateInterval]
-> Read StatusUpdateInterval
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StatusUpdateInterval]
$creadListPrec :: ReadPrec [StatusUpdateInterval]
readPrec :: ReadPrec StatusUpdateInterval
$creadPrec :: ReadPrec StatusUpdateInterval
readList :: ReadS [StatusUpdateInterval]
$creadList :: ReadS [StatusUpdateInterval]
readsPrec :: Int -> ReadS StatusUpdateInterval
$creadsPrec :: Int -> ReadS StatusUpdateInterval
Prelude.Read,
      StatusUpdateInterval -> StatusUpdateInterval -> Bool
(StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> (StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> Eq StatusUpdateInterval
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c/= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
== :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c== :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
Prelude.Eq,
      Eq StatusUpdateInterval
Eq StatusUpdateInterval
-> (StatusUpdateInterval -> StatusUpdateInterval -> Ordering)
-> (StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> (StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> (StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> (StatusUpdateInterval -> StatusUpdateInterval -> Bool)
-> (StatusUpdateInterval
    -> StatusUpdateInterval -> StatusUpdateInterval)
-> (StatusUpdateInterval
    -> StatusUpdateInterval -> StatusUpdateInterval)
-> Ord StatusUpdateInterval
StatusUpdateInterval -> StatusUpdateInterval -> Bool
StatusUpdateInterval -> StatusUpdateInterval -> Ordering
StatusUpdateInterval
-> StatusUpdateInterval -> StatusUpdateInterval
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 :: StatusUpdateInterval
-> StatusUpdateInterval -> StatusUpdateInterval
$cmin :: StatusUpdateInterval
-> StatusUpdateInterval -> StatusUpdateInterval
max :: StatusUpdateInterval
-> StatusUpdateInterval -> StatusUpdateInterval
$cmax :: StatusUpdateInterval
-> StatusUpdateInterval -> StatusUpdateInterval
>= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c>= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
> :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c> :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
<= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c<= :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
< :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
$c< :: StatusUpdateInterval -> StatusUpdateInterval -> Bool
compare :: StatusUpdateInterval -> StatusUpdateInterval -> Ordering
$ccompare :: StatusUpdateInterval -> StatusUpdateInterval -> Ordering
$cp1Ord :: Eq StatusUpdateInterval
Prelude.Ord,
      (forall x. StatusUpdateInterval -> Rep StatusUpdateInterval x)
-> (forall x. Rep StatusUpdateInterval x -> StatusUpdateInterval)
-> Generic StatusUpdateInterval
forall x. Rep StatusUpdateInterval x -> StatusUpdateInterval
forall x. StatusUpdateInterval -> Rep StatusUpdateInterval x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StatusUpdateInterval x -> StatusUpdateInterval
$cfrom :: forall x. StatusUpdateInterval -> Rep StatusUpdateInterval x
Prelude.Generic
    )
  deriving newtype
    ( Int -> StatusUpdateInterval -> Int
StatusUpdateInterval -> Int
(Int -> StatusUpdateInterval -> Int)
-> (StatusUpdateInterval -> Int) -> Hashable StatusUpdateInterval
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: StatusUpdateInterval -> Int
$chash :: StatusUpdateInterval -> Int
hashWithSalt :: Int -> StatusUpdateInterval -> Int
$chashWithSalt :: Int -> StatusUpdateInterval -> Int
Prelude.Hashable,
      StatusUpdateInterval -> ()
(StatusUpdateInterval -> ()) -> NFData StatusUpdateInterval
forall a. (a -> ()) -> NFData a
rnf :: StatusUpdateInterval -> ()
$crnf :: StatusUpdateInterval -> ()
Prelude.NFData,
      Text -> Either String StatusUpdateInterval
(Text -> Either String StatusUpdateInterval)
-> FromText StatusUpdateInterval
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String StatusUpdateInterval
$cfromText :: Text -> Either String StatusUpdateInterval
Core.FromText,
      StatusUpdateInterval -> Text
(StatusUpdateInterval -> Text) -> ToText StatusUpdateInterval
forall a. (a -> Text) -> ToText a
toText :: StatusUpdateInterval -> Text
$ctoText :: StatusUpdateInterval -> Text
Core.ToText,
      StatusUpdateInterval -> ByteString
(StatusUpdateInterval -> ByteString)
-> ToByteString StatusUpdateInterval
forall a. (a -> ByteString) -> ToByteString a
toBS :: StatusUpdateInterval -> ByteString
$ctoBS :: StatusUpdateInterval -> ByteString
Core.ToByteString,
      StatusUpdateInterval -> ByteStringBuilder
(StatusUpdateInterval -> ByteStringBuilder)
-> ToLog StatusUpdateInterval
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: StatusUpdateInterval -> ByteStringBuilder
$cbuild :: StatusUpdateInterval -> ByteStringBuilder
Core.ToLog,
      HeaderName -> StatusUpdateInterval -> [Header]
(HeaderName -> StatusUpdateInterval -> [Header])
-> ToHeader StatusUpdateInterval
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> StatusUpdateInterval -> [Header]
$ctoHeader :: HeaderName -> StatusUpdateInterval -> [Header]
Core.ToHeader,
      StatusUpdateInterval -> QueryString
(StatusUpdateInterval -> QueryString)
-> ToQuery StatusUpdateInterval
forall a. (a -> QueryString) -> ToQuery a
toQuery :: StatusUpdateInterval -> QueryString
$ctoQuery :: StatusUpdateInterval -> QueryString
Core.ToQuery,
      Value -> Parser [StatusUpdateInterval]
Value -> Parser StatusUpdateInterval
(Value -> Parser StatusUpdateInterval)
-> (Value -> Parser [StatusUpdateInterval])
-> FromJSON StatusUpdateInterval
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [StatusUpdateInterval]
$cparseJSONList :: Value -> Parser [StatusUpdateInterval]
parseJSON :: Value -> Parser StatusUpdateInterval
$cparseJSON :: Value -> Parser StatusUpdateInterval
Core.FromJSON,
      FromJSONKeyFunction [StatusUpdateInterval]
FromJSONKeyFunction StatusUpdateInterval
FromJSONKeyFunction StatusUpdateInterval
-> FromJSONKeyFunction [StatusUpdateInterval]
-> FromJSONKey StatusUpdateInterval
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [StatusUpdateInterval]
$cfromJSONKeyList :: FromJSONKeyFunction [StatusUpdateInterval]
fromJSONKey :: FromJSONKeyFunction StatusUpdateInterval
$cfromJSONKey :: FromJSONKeyFunction StatusUpdateInterval
Core.FromJSONKey,
      [StatusUpdateInterval] -> Encoding
[StatusUpdateInterval] -> Value
StatusUpdateInterval -> Encoding
StatusUpdateInterval -> Value
(StatusUpdateInterval -> Value)
-> (StatusUpdateInterval -> Encoding)
-> ([StatusUpdateInterval] -> Value)
-> ([StatusUpdateInterval] -> Encoding)
-> ToJSON StatusUpdateInterval
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [StatusUpdateInterval] -> Encoding
$ctoEncodingList :: [StatusUpdateInterval] -> Encoding
toJSONList :: [StatusUpdateInterval] -> Value
$ctoJSONList :: [StatusUpdateInterval] -> Value
toEncoding :: StatusUpdateInterval -> Encoding
$ctoEncoding :: StatusUpdateInterval -> Encoding
toJSON :: StatusUpdateInterval -> Value
$ctoJSON :: StatusUpdateInterval -> Value
Core.ToJSON,
      ToJSONKeyFunction [StatusUpdateInterval]
ToJSONKeyFunction StatusUpdateInterval
ToJSONKeyFunction StatusUpdateInterval
-> ToJSONKeyFunction [StatusUpdateInterval]
-> ToJSONKey StatusUpdateInterval
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [StatusUpdateInterval]
$ctoJSONKeyList :: ToJSONKeyFunction [StatusUpdateInterval]
toJSONKey :: ToJSONKeyFunction StatusUpdateInterval
$ctoJSONKey :: ToJSONKeyFunction StatusUpdateInterval
Core.ToJSONKey,
      [Node] -> Either String StatusUpdateInterval
([Node] -> Either String StatusUpdateInterval)
-> FromXML StatusUpdateInterval
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String StatusUpdateInterval
$cparseXML :: [Node] -> Either String StatusUpdateInterval
Core.FromXML,
      StatusUpdateInterval -> XML
(StatusUpdateInterval -> XML) -> ToXML StatusUpdateInterval
forall a. (a -> XML) -> ToXML a
toXML :: StatusUpdateInterval -> XML
$ctoXML :: StatusUpdateInterval -> XML
Core.ToXML
    )

pattern StatusUpdateInterval_SECONDS_10 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_10 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_10 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_10 = StatusUpdateInterval' "SECONDS_10"

pattern StatusUpdateInterval_SECONDS_12 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_12 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_12 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_12 = StatusUpdateInterval' "SECONDS_12"

pattern StatusUpdateInterval_SECONDS_120 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_120 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_120 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_120 = StatusUpdateInterval' "SECONDS_120"

pattern StatusUpdateInterval_SECONDS_15 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_15 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_15 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_15 = StatusUpdateInterval' "SECONDS_15"

pattern StatusUpdateInterval_SECONDS_180 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_180 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_180 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_180 = StatusUpdateInterval' "SECONDS_180"

pattern StatusUpdateInterval_SECONDS_20 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_20 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_20 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_20 = StatusUpdateInterval' "SECONDS_20"

pattern StatusUpdateInterval_SECONDS_240 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_240 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_240 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_240 = StatusUpdateInterval' "SECONDS_240"

pattern StatusUpdateInterval_SECONDS_30 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_30 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_30 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_30 = StatusUpdateInterval' "SECONDS_30"

pattern StatusUpdateInterval_SECONDS_300 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_300 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_300 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_300 = StatusUpdateInterval' "SECONDS_300"

pattern StatusUpdateInterval_SECONDS_360 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_360 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_360 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_360 = StatusUpdateInterval' "SECONDS_360"

pattern StatusUpdateInterval_SECONDS_420 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_420 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_420 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_420 = StatusUpdateInterval' "SECONDS_420"

pattern StatusUpdateInterval_SECONDS_480 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_480 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_480 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_480 = StatusUpdateInterval' "SECONDS_480"

pattern StatusUpdateInterval_SECONDS_540 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_540 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_540 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_540 = StatusUpdateInterval' "SECONDS_540"

pattern StatusUpdateInterval_SECONDS_60 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_60 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_60 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_60 = StatusUpdateInterval' "SECONDS_60"

pattern StatusUpdateInterval_SECONDS_600 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_600 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_600 :: forall r. StatusUpdateInterval -> (Void# -> r) -> (Void# -> r) -> r
StatusUpdateInterval_SECONDS_600 = StatusUpdateInterval' "SECONDS_600"

{-# COMPLETE
  StatusUpdateInterval_SECONDS_10,
  StatusUpdateInterval_SECONDS_12,
  StatusUpdateInterval_SECONDS_120,
  StatusUpdateInterval_SECONDS_15,
  StatusUpdateInterval_SECONDS_180,
  StatusUpdateInterval_SECONDS_20,
  StatusUpdateInterval_SECONDS_240,
  StatusUpdateInterval_SECONDS_30,
  StatusUpdateInterval_SECONDS_300,
  StatusUpdateInterval_SECONDS_360,
  StatusUpdateInterval_SECONDS_420,
  StatusUpdateInterval_SECONDS_480,
  StatusUpdateInterval_SECONDS_540,
  StatusUpdateInterval_SECONDS_60,
  StatusUpdateInterval_SECONDS_600,
  StatusUpdateInterval'
  #-}