{-# 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.Transcribe.Types.BaseModelName
-- 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.Transcribe.Types.BaseModelName
  ( BaseModelName
      ( ..,
        BaseModelName_NarrowBand,
        BaseModelName_WideBand
      ),
  )
where

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

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

pattern BaseModelName_NarrowBand :: BaseModelName
pattern $bBaseModelName_NarrowBand :: BaseModelName
$mBaseModelName_NarrowBand :: forall r. BaseModelName -> (Void# -> r) -> (Void# -> r) -> r
BaseModelName_NarrowBand = BaseModelName' "NarrowBand"

pattern BaseModelName_WideBand :: BaseModelName
pattern $bBaseModelName_WideBand :: BaseModelName
$mBaseModelName_WideBand :: forall r. BaseModelName -> (Void# -> r) -> (Void# -> r) -> r
BaseModelName_WideBand = BaseModelName' "WideBand"

{-# COMPLETE
  BaseModelName_NarrowBand,
  BaseModelName_WideBand,
  BaseModelName'
  #-}