{-# 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.KinesisVideoSignaling.Types.Service
-- 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.KinesisVideoSignaling.Types.Service
  ( Service
      ( ..,
        Service_TURN
      ),
  )
where

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

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

pattern Service_TURN :: Service
pattern $bService_TURN :: Service
$mService_TURN :: forall r. Service -> (Void# -> r) -> (Void# -> r) -> r
Service_TURN = Service' "TURN"

{-# COMPLETE
  Service_TURN,
  Service'
  #-}