{-# 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.CodeGuruReviewer.Types.AnalysisType
-- 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.CodeGuruReviewer.Types.AnalysisType
  ( AnalysisType
      ( ..,
        AnalysisType_CodeQuality,
        AnalysisType_Security
      ),
  )
where

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

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

pattern AnalysisType_CodeQuality :: AnalysisType
pattern $bAnalysisType_CodeQuality :: AnalysisType
$mAnalysisType_CodeQuality :: forall r. AnalysisType -> (Void# -> r) -> (Void# -> r) -> r
AnalysisType_CodeQuality = AnalysisType' "CodeQuality"

pattern AnalysisType_Security :: AnalysisType
pattern $bAnalysisType_Security :: AnalysisType
$mAnalysisType_Security :: forall r. AnalysisType -> (Void# -> r) -> (Void# -> r) -> r
AnalysisType_Security = AnalysisType' "Security"

{-# COMPLETE
  AnalysisType_CodeQuality,
  AnalysisType_Security,
  AnalysisType'
  #-}