{-# 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.CertificateManagerPCA.Types.SigningAlgorithm
-- 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.CertificateManagerPCA.Types.SigningAlgorithm
  ( SigningAlgorithm
      ( ..,
        SigningAlgorithm_SHA256WITHECDSA,
        SigningAlgorithm_SHA256WITHRSA,
        SigningAlgorithm_SHA384WITHECDSA,
        SigningAlgorithm_SHA384WITHRSA,
        SigningAlgorithm_SHA512WITHECDSA,
        SigningAlgorithm_SHA512WITHRSA
      ),
  )
where

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

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

pattern SigningAlgorithm_SHA256WITHECDSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA256WITHECDSA :: SigningAlgorithm
$mSigningAlgorithm_SHA256WITHECDSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA256WITHECDSA = SigningAlgorithm' "SHA256WITHECDSA"

pattern SigningAlgorithm_SHA256WITHRSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA256WITHRSA :: SigningAlgorithm
$mSigningAlgorithm_SHA256WITHRSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA256WITHRSA = SigningAlgorithm' "SHA256WITHRSA"

pattern SigningAlgorithm_SHA384WITHECDSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA384WITHECDSA :: SigningAlgorithm
$mSigningAlgorithm_SHA384WITHECDSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA384WITHECDSA = SigningAlgorithm' "SHA384WITHECDSA"

pattern SigningAlgorithm_SHA384WITHRSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA384WITHRSA :: SigningAlgorithm
$mSigningAlgorithm_SHA384WITHRSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA384WITHRSA = SigningAlgorithm' "SHA384WITHRSA"

pattern SigningAlgorithm_SHA512WITHECDSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA512WITHECDSA :: SigningAlgorithm
$mSigningAlgorithm_SHA512WITHECDSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA512WITHECDSA = SigningAlgorithm' "SHA512WITHECDSA"

pattern SigningAlgorithm_SHA512WITHRSA :: SigningAlgorithm
pattern $bSigningAlgorithm_SHA512WITHRSA :: SigningAlgorithm
$mSigningAlgorithm_SHA512WITHRSA :: forall r. SigningAlgorithm -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithm_SHA512WITHRSA = SigningAlgorithm' "SHA512WITHRSA"

{-# COMPLETE
  SigningAlgorithm_SHA256WITHECDSA,
  SigningAlgorithm_SHA256WITHRSA,
  SigningAlgorithm_SHA384WITHECDSA,
  SigningAlgorithm_SHA384WITHRSA,
  SigningAlgorithm_SHA512WITHECDSA,
  SigningAlgorithm_SHA512WITHRSA,
  SigningAlgorithm'
  #-}