{-# 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.KinesisVideo.Types.APIName
-- 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.KinesisVideo.Types.APIName
  ( APIName
      ( ..,
        APIName_GET_CLIP,
        APIName_GET_DASH_STREAMING_SESSION_URL,
        APIName_GET_HLS_STREAMING_SESSION_URL,
        APIName_GET_MEDIA,
        APIName_GET_MEDIA_FOR_FRAGMENT_LIST,
        APIName_LIST_FRAGMENTS,
        APIName_PUT_MEDIA
      ),
  )
where

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

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

pattern APIName_GET_CLIP :: APIName
pattern $bAPIName_GET_CLIP :: APIName
$mAPIName_GET_CLIP :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_GET_CLIP = APIName' "GET_CLIP"

pattern APIName_GET_DASH_STREAMING_SESSION_URL :: APIName
pattern $bAPIName_GET_DASH_STREAMING_SESSION_URL :: APIName
$mAPIName_GET_DASH_STREAMING_SESSION_URL :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_GET_DASH_STREAMING_SESSION_URL = APIName' "GET_DASH_STREAMING_SESSION_URL"

pattern APIName_GET_HLS_STREAMING_SESSION_URL :: APIName
pattern $bAPIName_GET_HLS_STREAMING_SESSION_URL :: APIName
$mAPIName_GET_HLS_STREAMING_SESSION_URL :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_GET_HLS_STREAMING_SESSION_URL = APIName' "GET_HLS_STREAMING_SESSION_URL"

pattern APIName_GET_MEDIA :: APIName
pattern $bAPIName_GET_MEDIA :: APIName
$mAPIName_GET_MEDIA :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_GET_MEDIA = APIName' "GET_MEDIA"

pattern APIName_GET_MEDIA_FOR_FRAGMENT_LIST :: APIName
pattern $bAPIName_GET_MEDIA_FOR_FRAGMENT_LIST :: APIName
$mAPIName_GET_MEDIA_FOR_FRAGMENT_LIST :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_GET_MEDIA_FOR_FRAGMENT_LIST = APIName' "GET_MEDIA_FOR_FRAGMENT_LIST"

pattern APIName_LIST_FRAGMENTS :: APIName
pattern $bAPIName_LIST_FRAGMENTS :: APIName
$mAPIName_LIST_FRAGMENTS :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_LIST_FRAGMENTS = APIName' "LIST_FRAGMENTS"

pattern APIName_PUT_MEDIA :: APIName
pattern $bAPIName_PUT_MEDIA :: APIName
$mAPIName_PUT_MEDIA :: forall r. APIName -> (Void# -> r) -> (Void# -> r) -> r
APIName_PUT_MEDIA = APIName' "PUT_MEDIA"

{-# COMPLETE
  APIName_GET_CLIP,
  APIName_GET_DASH_STREAMING_SESSION_URL,
  APIName_GET_HLS_STREAMING_SESSION_URL,
  APIName_GET_MEDIA,
  APIName_GET_MEDIA_FOR_FRAGMENT_LIST,
  APIName_LIST_FRAGMENTS,
  APIName_PUT_MEDIA,
  APIName'
  #-}