{-# 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.HlsIFrameOnlyManifest
-- 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.HlsIFrameOnlyManifest
  ( HlsIFrameOnlyManifest
      ( ..,
        HlsIFrameOnlyManifest_EXCLUDE,
        HlsIFrameOnlyManifest_INCLUDE
      ),
  )
where

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

-- | Choose Include (INCLUDE) to have MediaConvert generate a child manifest
-- that lists only the I-frames for this rendition, in addition to your
-- regular manifest for this rendition. You might use this manifest as part
-- of a workflow that creates preview functions for your video.
-- MediaConvert adds both the I-frame only child manifest and the regular
-- child manifest to the parent manifest. When you don\'t need the I-frame
-- only child manifest, keep the default value Exclude (EXCLUDE).
newtype HlsIFrameOnlyManifest = HlsIFrameOnlyManifest'
  { HlsIFrameOnlyManifest -> Text
fromHlsIFrameOnlyManifest ::
      Core.Text
  }
  deriving stock
    ( Int -> HlsIFrameOnlyManifest -> ShowS
[HlsIFrameOnlyManifest] -> ShowS
HlsIFrameOnlyManifest -> String
(Int -> HlsIFrameOnlyManifest -> ShowS)
-> (HlsIFrameOnlyManifest -> String)
-> ([HlsIFrameOnlyManifest] -> ShowS)
-> Show HlsIFrameOnlyManifest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HlsIFrameOnlyManifest] -> ShowS
$cshowList :: [HlsIFrameOnlyManifest] -> ShowS
show :: HlsIFrameOnlyManifest -> String
$cshow :: HlsIFrameOnlyManifest -> String
showsPrec :: Int -> HlsIFrameOnlyManifest -> ShowS
$cshowsPrec :: Int -> HlsIFrameOnlyManifest -> ShowS
Prelude.Show,
      ReadPrec [HlsIFrameOnlyManifest]
ReadPrec HlsIFrameOnlyManifest
Int -> ReadS HlsIFrameOnlyManifest
ReadS [HlsIFrameOnlyManifest]
(Int -> ReadS HlsIFrameOnlyManifest)
-> ReadS [HlsIFrameOnlyManifest]
-> ReadPrec HlsIFrameOnlyManifest
-> ReadPrec [HlsIFrameOnlyManifest]
-> Read HlsIFrameOnlyManifest
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [HlsIFrameOnlyManifest]
$creadListPrec :: ReadPrec [HlsIFrameOnlyManifest]
readPrec :: ReadPrec HlsIFrameOnlyManifest
$creadPrec :: ReadPrec HlsIFrameOnlyManifest
readList :: ReadS [HlsIFrameOnlyManifest]
$creadList :: ReadS [HlsIFrameOnlyManifest]
readsPrec :: Int -> ReadS HlsIFrameOnlyManifest
$creadsPrec :: Int -> ReadS HlsIFrameOnlyManifest
Prelude.Read,
      HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
(HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> Eq HlsIFrameOnlyManifest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c/= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
== :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c== :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
Prelude.Eq,
      Eq HlsIFrameOnlyManifest
Eq HlsIFrameOnlyManifest
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Ordering)
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> (HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool)
-> (HlsIFrameOnlyManifest
    -> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest)
-> (HlsIFrameOnlyManifest
    -> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest)
-> Ord HlsIFrameOnlyManifest
HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Ordering
HlsIFrameOnlyManifest
-> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest
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 :: HlsIFrameOnlyManifest
-> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest
$cmin :: HlsIFrameOnlyManifest
-> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest
max :: HlsIFrameOnlyManifest
-> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest
$cmax :: HlsIFrameOnlyManifest
-> HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest
>= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c>= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
> :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c> :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
<= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c<= :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
< :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
$c< :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Bool
compare :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Ordering
$ccompare :: HlsIFrameOnlyManifest -> HlsIFrameOnlyManifest -> Ordering
$cp1Ord :: Eq HlsIFrameOnlyManifest
Prelude.Ord,
      (forall x. HlsIFrameOnlyManifest -> Rep HlsIFrameOnlyManifest x)
-> (forall x. Rep HlsIFrameOnlyManifest x -> HlsIFrameOnlyManifest)
-> Generic HlsIFrameOnlyManifest
forall x. Rep HlsIFrameOnlyManifest x -> HlsIFrameOnlyManifest
forall x. HlsIFrameOnlyManifest -> Rep HlsIFrameOnlyManifest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HlsIFrameOnlyManifest x -> HlsIFrameOnlyManifest
$cfrom :: forall x. HlsIFrameOnlyManifest -> Rep HlsIFrameOnlyManifest x
Prelude.Generic
    )
  deriving newtype
    ( Int -> HlsIFrameOnlyManifest -> Int
HlsIFrameOnlyManifest -> Int
(Int -> HlsIFrameOnlyManifest -> Int)
-> (HlsIFrameOnlyManifest -> Int) -> Hashable HlsIFrameOnlyManifest
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: HlsIFrameOnlyManifest -> Int
$chash :: HlsIFrameOnlyManifest -> Int
hashWithSalt :: Int -> HlsIFrameOnlyManifest -> Int
$chashWithSalt :: Int -> HlsIFrameOnlyManifest -> Int
Prelude.Hashable,
      HlsIFrameOnlyManifest -> ()
(HlsIFrameOnlyManifest -> ()) -> NFData HlsIFrameOnlyManifest
forall a. (a -> ()) -> NFData a
rnf :: HlsIFrameOnlyManifest -> ()
$crnf :: HlsIFrameOnlyManifest -> ()
Prelude.NFData,
      Text -> Either String HlsIFrameOnlyManifest
(Text -> Either String HlsIFrameOnlyManifest)
-> FromText HlsIFrameOnlyManifest
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String HlsIFrameOnlyManifest
$cfromText :: Text -> Either String HlsIFrameOnlyManifest
Core.FromText,
      HlsIFrameOnlyManifest -> Text
(HlsIFrameOnlyManifest -> Text) -> ToText HlsIFrameOnlyManifest
forall a. (a -> Text) -> ToText a
toText :: HlsIFrameOnlyManifest -> Text
$ctoText :: HlsIFrameOnlyManifest -> Text
Core.ToText,
      HlsIFrameOnlyManifest -> ByteString
(HlsIFrameOnlyManifest -> ByteString)
-> ToByteString HlsIFrameOnlyManifest
forall a. (a -> ByteString) -> ToByteString a
toBS :: HlsIFrameOnlyManifest -> ByteString
$ctoBS :: HlsIFrameOnlyManifest -> ByteString
Core.ToByteString,
      HlsIFrameOnlyManifest -> ByteStringBuilder
(HlsIFrameOnlyManifest -> ByteStringBuilder)
-> ToLog HlsIFrameOnlyManifest
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: HlsIFrameOnlyManifest -> ByteStringBuilder
$cbuild :: HlsIFrameOnlyManifest -> ByteStringBuilder
Core.ToLog,
      HeaderName -> HlsIFrameOnlyManifest -> [Header]
(HeaderName -> HlsIFrameOnlyManifest -> [Header])
-> ToHeader HlsIFrameOnlyManifest
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> HlsIFrameOnlyManifest -> [Header]
$ctoHeader :: HeaderName -> HlsIFrameOnlyManifest -> [Header]
Core.ToHeader,
      HlsIFrameOnlyManifest -> QueryString
(HlsIFrameOnlyManifest -> QueryString)
-> ToQuery HlsIFrameOnlyManifest
forall a. (a -> QueryString) -> ToQuery a
toQuery :: HlsIFrameOnlyManifest -> QueryString
$ctoQuery :: HlsIFrameOnlyManifest -> QueryString
Core.ToQuery,
      Value -> Parser [HlsIFrameOnlyManifest]
Value -> Parser HlsIFrameOnlyManifest
(Value -> Parser HlsIFrameOnlyManifest)
-> (Value -> Parser [HlsIFrameOnlyManifest])
-> FromJSON HlsIFrameOnlyManifest
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [HlsIFrameOnlyManifest]
$cparseJSONList :: Value -> Parser [HlsIFrameOnlyManifest]
parseJSON :: Value -> Parser HlsIFrameOnlyManifest
$cparseJSON :: Value -> Parser HlsIFrameOnlyManifest
Core.FromJSON,
      FromJSONKeyFunction [HlsIFrameOnlyManifest]
FromJSONKeyFunction HlsIFrameOnlyManifest
FromJSONKeyFunction HlsIFrameOnlyManifest
-> FromJSONKeyFunction [HlsIFrameOnlyManifest]
-> FromJSONKey HlsIFrameOnlyManifest
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [HlsIFrameOnlyManifest]
$cfromJSONKeyList :: FromJSONKeyFunction [HlsIFrameOnlyManifest]
fromJSONKey :: FromJSONKeyFunction HlsIFrameOnlyManifest
$cfromJSONKey :: FromJSONKeyFunction HlsIFrameOnlyManifest
Core.FromJSONKey,
      [HlsIFrameOnlyManifest] -> Encoding
[HlsIFrameOnlyManifest] -> Value
HlsIFrameOnlyManifest -> Encoding
HlsIFrameOnlyManifest -> Value
(HlsIFrameOnlyManifest -> Value)
-> (HlsIFrameOnlyManifest -> Encoding)
-> ([HlsIFrameOnlyManifest] -> Value)
-> ([HlsIFrameOnlyManifest] -> Encoding)
-> ToJSON HlsIFrameOnlyManifest
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [HlsIFrameOnlyManifest] -> Encoding
$ctoEncodingList :: [HlsIFrameOnlyManifest] -> Encoding
toJSONList :: [HlsIFrameOnlyManifest] -> Value
$ctoJSONList :: [HlsIFrameOnlyManifest] -> Value
toEncoding :: HlsIFrameOnlyManifest -> Encoding
$ctoEncoding :: HlsIFrameOnlyManifest -> Encoding
toJSON :: HlsIFrameOnlyManifest -> Value
$ctoJSON :: HlsIFrameOnlyManifest -> Value
Core.ToJSON,
      ToJSONKeyFunction [HlsIFrameOnlyManifest]
ToJSONKeyFunction HlsIFrameOnlyManifest
ToJSONKeyFunction HlsIFrameOnlyManifest
-> ToJSONKeyFunction [HlsIFrameOnlyManifest]
-> ToJSONKey HlsIFrameOnlyManifest
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [HlsIFrameOnlyManifest]
$ctoJSONKeyList :: ToJSONKeyFunction [HlsIFrameOnlyManifest]
toJSONKey :: ToJSONKeyFunction HlsIFrameOnlyManifest
$ctoJSONKey :: ToJSONKeyFunction HlsIFrameOnlyManifest
Core.ToJSONKey,
      [Node] -> Either String HlsIFrameOnlyManifest
([Node] -> Either String HlsIFrameOnlyManifest)
-> FromXML HlsIFrameOnlyManifest
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String HlsIFrameOnlyManifest
$cparseXML :: [Node] -> Either String HlsIFrameOnlyManifest
Core.FromXML,
      HlsIFrameOnlyManifest -> XML
(HlsIFrameOnlyManifest -> XML) -> ToXML HlsIFrameOnlyManifest
forall a. (a -> XML) -> ToXML a
toXML :: HlsIFrameOnlyManifest -> XML
$ctoXML :: HlsIFrameOnlyManifest -> XML
Core.ToXML
    )

pattern HlsIFrameOnlyManifest_EXCLUDE :: HlsIFrameOnlyManifest
pattern $bHlsIFrameOnlyManifest_EXCLUDE :: HlsIFrameOnlyManifest
$mHlsIFrameOnlyManifest_EXCLUDE :: forall r.
HlsIFrameOnlyManifest -> (Void# -> r) -> (Void# -> r) -> r
HlsIFrameOnlyManifest_EXCLUDE = HlsIFrameOnlyManifest' "EXCLUDE"

pattern HlsIFrameOnlyManifest_INCLUDE :: HlsIFrameOnlyManifest
pattern $bHlsIFrameOnlyManifest_INCLUDE :: HlsIFrameOnlyManifest
$mHlsIFrameOnlyManifest_INCLUDE :: forall r.
HlsIFrameOnlyManifest -> (Void# -> r) -> (Void# -> r) -> r
HlsIFrameOnlyManifest_INCLUDE = HlsIFrameOnlyManifest' "INCLUDE"

{-# COMPLETE
  HlsIFrameOnlyManifest_EXCLUDE,
  HlsIFrameOnlyManifest_INCLUDE,
  HlsIFrameOnlyManifest'
  #-}