{-# 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.KinesisVideoArchivedMedia.Types.HLSPlaybackMode
-- 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.KinesisVideoArchivedMedia.Types.HLSPlaybackMode
  ( HLSPlaybackMode
      ( ..,
        HLSPlaybackMode_LIVE,
        HLSPlaybackMode_LIVE_REPLAY,
        HLSPlaybackMode_ON_DEMAND
      ),
  )
where

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

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

pattern HLSPlaybackMode_LIVE :: HLSPlaybackMode
pattern $bHLSPlaybackMode_LIVE :: HLSPlaybackMode
$mHLSPlaybackMode_LIVE :: forall r. HLSPlaybackMode -> (Void# -> r) -> (Void# -> r) -> r
HLSPlaybackMode_LIVE = HLSPlaybackMode' "LIVE"

pattern HLSPlaybackMode_LIVE_REPLAY :: HLSPlaybackMode
pattern $bHLSPlaybackMode_LIVE_REPLAY :: HLSPlaybackMode
$mHLSPlaybackMode_LIVE_REPLAY :: forall r. HLSPlaybackMode -> (Void# -> r) -> (Void# -> r) -> r
HLSPlaybackMode_LIVE_REPLAY = HLSPlaybackMode' "LIVE_REPLAY"

pattern HLSPlaybackMode_ON_DEMAND :: HLSPlaybackMode
pattern $bHLSPlaybackMode_ON_DEMAND :: HLSPlaybackMode
$mHLSPlaybackMode_ON_DEMAND :: forall r. HLSPlaybackMode -> (Void# -> r) -> (Void# -> r) -> r
HLSPlaybackMode_ON_DEMAND = HLSPlaybackMode' "ON_DEMAND"

{-# COMPLETE
  HLSPlaybackMode_LIVE,
  HLSPlaybackMode_LIVE_REPLAY,
  HLSPlaybackMode_ON_DEMAND,
  HLSPlaybackMode'
  #-}