{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype SigningAlgorithm = SigningAlgorithm'
  { SigningAlgorithm -> Text
fromSigningAlgorithm ::
      Data.Text
  }
  deriving stock
    ( Int -> SigningAlgorithm -> ShowS
[SigningAlgorithm] -> ShowS
SigningAlgorithm -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq SigningAlgorithm
Int -> SigningAlgorithm -> Int
SigningAlgorithm -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: SigningAlgorithm -> ()
$crnf :: SigningAlgorithm -> ()
Prelude.NFData,
      Text -> Either String SigningAlgorithm
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String SigningAlgorithm
$cfromText :: Text -> Either String SigningAlgorithm
Data.FromText,
      SigningAlgorithm -> Text
forall a. (a -> Text) -> ToText a
toText :: SigningAlgorithm -> Text
$ctoText :: SigningAlgorithm -> Text
Data.ToText,
      SigningAlgorithm -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: SigningAlgorithm -> ByteString
$ctoBS :: SigningAlgorithm -> ByteString
Data.ToByteString,
      SigningAlgorithm -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: SigningAlgorithm -> ByteStringBuilder
$cbuild :: SigningAlgorithm -> ByteStringBuilder
Data.ToLog,
      HeaderName -> SigningAlgorithm -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> SigningAlgorithm -> [Header]
$ctoHeader :: HeaderName -> SigningAlgorithm -> [Header]
Data.ToHeader,
      SigningAlgorithm -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: SigningAlgorithm -> QueryString
$ctoQuery :: SigningAlgorithm -> QueryString
Data.ToQuery,
      Value -> Parser [SigningAlgorithm]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [SigningAlgorithm]
FromJSONKeyFunction SigningAlgorithm
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [SigningAlgorithm]
$cfromJSONKeyList :: FromJSONKeyFunction [SigningAlgorithm]
fromJSONKey :: FromJSONKeyFunction SigningAlgorithm
$cfromJSONKey :: FromJSONKeyFunction SigningAlgorithm
Data.FromJSONKey,
      [SigningAlgorithm] -> Encoding
[SigningAlgorithm] -> Value
SigningAlgorithm -> Encoding
SigningAlgorithm -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [SigningAlgorithm]
ToJSONKeyFunction SigningAlgorithm
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [SigningAlgorithm]
$ctoJSONKeyList :: ToJSONKeyFunction [SigningAlgorithm]
toJSONKey :: ToJSONKeyFunction SigningAlgorithm
$ctoJSONKey :: ToJSONKeyFunction SigningAlgorithm
Data.ToJSONKey,
      [Node] -> Either String SigningAlgorithm
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String SigningAlgorithm
$cparseXML :: [Node] -> Either String SigningAlgorithm
Data.FromXML,
      SigningAlgorithm -> XML
forall a. (a -> XML) -> ToXML a
toXML :: SigningAlgorithm -> XML
$ctoXML :: SigningAlgorithm -> XML
Data.ToXML
    )

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

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

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

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

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

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

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