{-# 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.MediaLive.Types.RtmpCacheFullBehavior
-- 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.MediaLive.Types.RtmpCacheFullBehavior
  ( RtmpCacheFullBehavior
      ( ..,
        RtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY,
        RtmpCacheFullBehavior_WAIT_FOR_SERVER
      ),
  )
where

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

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

pattern RtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY :: RtmpCacheFullBehavior
pattern $bRtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY :: RtmpCacheFullBehavior
$mRtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY :: forall r.
RtmpCacheFullBehavior -> (Void# -> r) -> (Void# -> r) -> r
RtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY = RtmpCacheFullBehavior' "DISCONNECT_IMMEDIATELY"

pattern RtmpCacheFullBehavior_WAIT_FOR_SERVER :: RtmpCacheFullBehavior
pattern $bRtmpCacheFullBehavior_WAIT_FOR_SERVER :: RtmpCacheFullBehavior
$mRtmpCacheFullBehavior_WAIT_FOR_SERVER :: forall r.
RtmpCacheFullBehavior -> (Void# -> r) -> (Void# -> r) -> r
RtmpCacheFullBehavior_WAIT_FOR_SERVER = RtmpCacheFullBehavior' "WAIT_FOR_SERVER"

{-# COMPLETE
  RtmpCacheFullBehavior_DISCONNECT_IMMEDIATELY,
  RtmpCacheFullBehavior_WAIT_FOR_SERVER,
  RtmpCacheFullBehavior'
  #-}