{-# 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.InputSourceEndBehavior
-- 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.InputSourceEndBehavior
  ( InputSourceEndBehavior
      ( ..,
        InputSourceEndBehavior_CONTINUE,
        InputSourceEndBehavior_LOOP
      ),
  )
where

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

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

pattern InputSourceEndBehavior_CONTINUE :: InputSourceEndBehavior
pattern $bInputSourceEndBehavior_CONTINUE :: InputSourceEndBehavior
$mInputSourceEndBehavior_CONTINUE :: forall r.
InputSourceEndBehavior -> (Void# -> r) -> (Void# -> r) -> r
InputSourceEndBehavior_CONTINUE = InputSourceEndBehavior' "CONTINUE"

pattern InputSourceEndBehavior_LOOP :: InputSourceEndBehavior
pattern $bInputSourceEndBehavior_LOOP :: InputSourceEndBehavior
$mInputSourceEndBehavior_LOOP :: forall r.
InputSourceEndBehavior -> (Void# -> r) -> (Void# -> r) -> r
InputSourceEndBehavior_LOOP = InputSourceEndBehavior' "LOOP"

{-# COMPLETE
  InputSourceEndBehavior_CONTINUE,
  InputSourceEndBehavior_LOOP,
  InputSourceEndBehavior'
  #-}