{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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_IMAGES,
        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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype APIName = APIName' {APIName -> Text
fromAPIName :: Data.Text}
  deriving stock
    ( Int -> APIName -> ShowS
[APIName] -> ShowS
APIName -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq APIName
Int -> APIName -> Int
APIName -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: APIName -> ()
$crnf :: APIName -> ()
Prelude.NFData,
      Text -> Either String APIName
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String APIName
$cfromText :: Text -> Either String APIName
Data.FromText,
      APIName -> Text
forall a. (a -> Text) -> ToText a
toText :: APIName -> Text
$ctoText :: APIName -> Text
Data.ToText,
      APIName -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: APIName -> ByteString
$ctoBS :: APIName -> ByteString
Data.ToByteString,
      APIName -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: APIName -> ByteStringBuilder
$cbuild :: APIName -> ByteStringBuilder
Data.ToLog,
      HeaderName -> APIName -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> APIName -> [Header]
$ctoHeader :: HeaderName -> APIName -> [Header]
Data.ToHeader,
      APIName -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: APIName -> QueryString
$ctoQuery :: APIName -> QueryString
Data.ToQuery,
      Value -> Parser [APIName]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [APIName]
FromJSONKeyFunction APIName
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [APIName]
$cfromJSONKeyList :: FromJSONKeyFunction [APIName]
fromJSONKey :: FromJSONKeyFunction APIName
$cfromJSONKey :: FromJSONKeyFunction APIName
Data.FromJSONKey,
      [APIName] -> Encoding
[APIName] -> Value
APIName -> Encoding
APIName -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [APIName]
ToJSONKeyFunction APIName
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [APIName]
$ctoJSONKeyList :: ToJSONKeyFunction [APIName]
toJSONKey :: ToJSONKeyFunction APIName
$ctoJSONKey :: ToJSONKeyFunction APIName
Data.ToJSONKey,
      [Node] -> Either String APIName
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String APIName
$cparseXML :: [Node] -> Either String APIName
Data.FromXML,
      APIName -> XML
forall a. (a -> XML) -> ToXML a
toXML :: APIName -> XML
$ctoXML :: APIName -> XML
Data.ToXML
    )

pattern APIName_GET_CLIP :: APIName
pattern $bAPIName_GET_CLIP :: APIName
$mAPIName_GET_CLIP :: forall {r}. APIName -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> r) -> r
APIName_GET_HLS_STREAMING_SESSION_URL = APIName' "GET_HLS_STREAMING_SESSION_URL"

pattern APIName_GET_IMAGES :: APIName
pattern $bAPIName_GET_IMAGES :: APIName
$mAPIName_GET_IMAGES :: forall {r}. APIName -> ((# #) -> r) -> ((# #) -> r) -> r
APIName_GET_IMAGES = APIName' "GET_IMAGES"

pattern APIName_GET_MEDIA :: APIName
pattern $bAPIName_GET_MEDIA :: APIName
$mAPIName_GET_MEDIA :: forall {r}. APIName -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> r) -> r
APIName_LIST_FRAGMENTS = APIName' "LIST_FRAGMENTS"

pattern APIName_PUT_MEDIA :: APIName
pattern $bAPIName_PUT_MEDIA :: APIName
$mAPIName_PUT_MEDIA :: forall {r}. APIName -> ((# #) -> r) -> ((# #) -> 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_IMAGES,
  APIName_GET_MEDIA,
  APIName_GET_MEDIA_FOR_FRAGMENT_LIST,
  APIName_LIST_FRAGMENTS,
  APIName_PUT_MEDIA,
  APIName'
  #-}