{-# 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.MediaPackage.Types.PlaylistType
-- 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.MediaPackage.Types.PlaylistType
  ( PlaylistType
      ( ..,
        PlaylistType_EVENT,
        PlaylistType_NONE,
        PlaylistType_VOD
      ),
  )
where

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

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

pattern PlaylistType_EVENT :: PlaylistType
pattern $bPlaylistType_EVENT :: PlaylistType
$mPlaylistType_EVENT :: forall r. PlaylistType -> (Void# -> r) -> (Void# -> r) -> r
PlaylistType_EVENT = PlaylistType' "EVENT"

pattern PlaylistType_NONE :: PlaylistType
pattern $bPlaylistType_NONE :: PlaylistType
$mPlaylistType_NONE :: forall r. PlaylistType -> (Void# -> r) -> (Void# -> r) -> r
PlaylistType_NONE = PlaylistType' "NONE"

pattern PlaylistType_VOD :: PlaylistType
pattern $bPlaylistType_VOD :: PlaylistType
$mPlaylistType_VOD :: forall r. PlaylistType -> (Void# -> r) -> (Void# -> r) -> r
PlaylistType_VOD = PlaylistType' "VOD"

{-# COMPLETE
  PlaylistType_EVENT,
  PlaylistType_NONE,
  PlaylistType_VOD,
  PlaylistType'
  #-}