{-# 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.ProviderType
-- 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.ProviderType
  ( ProviderType
      ( ..,
        ProviderType_Bitbucket,
        ProviderType_CodeCommit,
        ProviderType_GitHub,
        ProviderType_GitHubEnterpriseServer,
        ProviderType_S3Bucket
      ),
  )
where

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

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

pattern ProviderType_Bitbucket :: ProviderType
pattern $bProviderType_Bitbucket :: ProviderType
$mProviderType_Bitbucket :: forall r. ProviderType -> (Void# -> r) -> (Void# -> r) -> r
ProviderType_Bitbucket = ProviderType' "Bitbucket"

pattern ProviderType_CodeCommit :: ProviderType
pattern $bProviderType_CodeCommit :: ProviderType
$mProviderType_CodeCommit :: forall r. ProviderType -> (Void# -> r) -> (Void# -> r) -> r
ProviderType_CodeCommit = ProviderType' "CodeCommit"

pattern ProviderType_GitHub :: ProviderType
pattern $bProviderType_GitHub :: ProviderType
$mProviderType_GitHub :: forall r. ProviderType -> (Void# -> r) -> (Void# -> r) -> r
ProviderType_GitHub = ProviderType' "GitHub"

pattern ProviderType_GitHubEnterpriseServer :: ProviderType
pattern $bProviderType_GitHubEnterpriseServer :: ProviderType
$mProviderType_GitHubEnterpriseServer :: forall r. ProviderType -> (Void# -> r) -> (Void# -> r) -> r
ProviderType_GitHubEnterpriseServer = ProviderType' "GitHubEnterpriseServer"

pattern ProviderType_S3Bucket :: ProviderType
pattern $bProviderType_S3Bucket :: ProviderType
$mProviderType_S3Bucket :: forall r. ProviderType -> (Void# -> r) -> (Void# -> r) -> r
ProviderType_S3Bucket = ProviderType' "S3Bucket"

{-# COMPLETE
  ProviderType_Bitbucket,
  ProviderType_CodeCommit,
  ProviderType_GitHub,
  ProviderType_GitHubEnterpriseServer,
  ProviderType_S3Bucket,
  ProviderType'
  #-}