{-# 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.CodeBuild.Types.LanguageType
-- 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.CodeBuild.Types.LanguageType
  ( LanguageType
      ( ..,
        LanguageType_ANDROID,
        LanguageType_BASE,
        LanguageType_DOCKER,
        LanguageType_DOTNET,
        LanguageType_GOLANG,
        LanguageType_JAVA,
        LanguageType_NODE_JS,
        LanguageType_PHP,
        LanguageType_PYTHON,
        LanguageType_RUBY
      ),
  )
where

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

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

pattern LanguageType_ANDROID :: LanguageType
pattern $bLanguageType_ANDROID :: LanguageType
$mLanguageType_ANDROID :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_ANDROID = LanguageType' "ANDROID"

pattern LanguageType_BASE :: LanguageType
pattern $bLanguageType_BASE :: LanguageType
$mLanguageType_BASE :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_BASE = LanguageType' "BASE"

pattern LanguageType_DOCKER :: LanguageType
pattern $bLanguageType_DOCKER :: LanguageType
$mLanguageType_DOCKER :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_DOCKER = LanguageType' "DOCKER"

pattern LanguageType_DOTNET :: LanguageType
pattern $bLanguageType_DOTNET :: LanguageType
$mLanguageType_DOTNET :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_DOTNET = LanguageType' "DOTNET"

pattern LanguageType_GOLANG :: LanguageType
pattern $bLanguageType_GOLANG :: LanguageType
$mLanguageType_GOLANG :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_GOLANG = LanguageType' "GOLANG"

pattern LanguageType_JAVA :: LanguageType
pattern $bLanguageType_JAVA :: LanguageType
$mLanguageType_JAVA :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_JAVA = LanguageType' "JAVA"

pattern LanguageType_NODE_JS :: LanguageType
pattern $bLanguageType_NODE_JS :: LanguageType
$mLanguageType_NODE_JS :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_NODE_JS = LanguageType' "NODE_JS"

pattern LanguageType_PHP :: LanguageType
pattern $bLanguageType_PHP :: LanguageType
$mLanguageType_PHP :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_PHP = LanguageType' "PHP"

pattern LanguageType_PYTHON :: LanguageType
pattern $bLanguageType_PYTHON :: LanguageType
$mLanguageType_PYTHON :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_PYTHON = LanguageType' "PYTHON"

pattern LanguageType_RUBY :: LanguageType
pattern $bLanguageType_RUBY :: LanguageType
$mLanguageType_RUBY :: forall r. LanguageType -> (Void# -> r) -> (Void# -> r) -> r
LanguageType_RUBY = LanguageType' "RUBY"

{-# COMPLETE
  LanguageType_ANDROID,
  LanguageType_BASE,
  LanguageType_DOCKER,
  LanguageType_DOTNET,
  LanguageType_GOLANG,
  LanguageType_JAVA,
  LanguageType_NODE_JS,
  LanguageType_PHP,
  LanguageType_PYTHON,
  LanguageType_RUBY,
  LanguageType'
  #-}