{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
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 ::
      Data.Text
  }
  deriving stock
    ( Int -> StatusUpdateInterval -> ShowS
[StatusUpdateInterval] -> ShowS
StatusUpdateInterval -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq StatusUpdateInterval
Int -> StatusUpdateInterval -> Int
StatusUpdateInterval -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: StatusUpdateInterval -> ()
$crnf :: StatusUpdateInterval -> ()
Prelude.NFData,
      Text -> Either String StatusUpdateInterval
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String StatusUpdateInterval
$cfromText :: Text -> Either String StatusUpdateInterval
Data.FromText,
      StatusUpdateInterval -> Text
forall a. (a -> Text) -> ToText a
toText :: StatusUpdateInterval -> Text
$ctoText :: StatusUpdateInterval -> Text
Data.ToText,
      StatusUpdateInterval -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: StatusUpdateInterval -> ByteString
$ctoBS :: StatusUpdateInterval -> ByteString
Data.ToByteString,
      StatusUpdateInterval -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: StatusUpdateInterval -> ByteStringBuilder
$cbuild :: StatusUpdateInterval -> ByteStringBuilder
Data.ToLog,
      HeaderName -> StatusUpdateInterval -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> StatusUpdateInterval -> [Header]
$ctoHeader :: HeaderName -> StatusUpdateInterval -> [Header]
Data.ToHeader,
      StatusUpdateInterval -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: StatusUpdateInterval -> QueryString
$ctoQuery :: StatusUpdateInterval -> QueryString
Data.ToQuery,
      Value -> Parser [StatusUpdateInterval]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [StatusUpdateInterval]
FromJSONKeyFunction StatusUpdateInterval
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [StatusUpdateInterval]
$cfromJSONKeyList :: FromJSONKeyFunction [StatusUpdateInterval]
fromJSONKey :: FromJSONKeyFunction StatusUpdateInterval
$cfromJSONKey :: FromJSONKeyFunction StatusUpdateInterval
Data.FromJSONKey,
      [StatusUpdateInterval] -> Encoding
[StatusUpdateInterval] -> Value
StatusUpdateInterval -> Encoding
StatusUpdateInterval -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [StatusUpdateInterval]
ToJSONKeyFunction StatusUpdateInterval
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [StatusUpdateInterval]
$ctoJSONKeyList :: ToJSONKeyFunction [StatusUpdateInterval]
toJSONKey :: ToJSONKeyFunction StatusUpdateInterval
$ctoJSONKey :: ToJSONKeyFunction StatusUpdateInterval
Data.ToJSONKey,
      [Node] -> Either String StatusUpdateInterval
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String StatusUpdateInterval
$cparseXML :: [Node] -> Either String StatusUpdateInterval
Data.FromXML,
      StatusUpdateInterval -> XML
forall a. (a -> XML) -> ToXML a
toXML :: StatusUpdateInterval -> XML
$ctoXML :: StatusUpdateInterval -> XML
Data.ToXML
    )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pattern StatusUpdateInterval_SECONDS_600 :: StatusUpdateInterval
pattern $bStatusUpdateInterval_SECONDS_600 :: StatusUpdateInterval
$mStatusUpdateInterval_SECONDS_600 :: forall {r}.
StatusUpdateInterval -> ((# #) -> r) -> ((# #) -> 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'
  #-}