{-# 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.KMS.Types.SigningAlgorithmSpec
-- 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.KMS.Types.SigningAlgorithmSpec
  ( SigningAlgorithmSpec
      ( ..,
        SigningAlgorithmSpec_ECDSA_SHA_256,
        SigningAlgorithmSpec_ECDSA_SHA_384,
        SigningAlgorithmSpec_ECDSA_SHA_512,
        SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256,
        SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384,
        SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512,
        SigningAlgorithmSpec_RSASSA_PSS_SHA_256,
        SigningAlgorithmSpec_RSASSA_PSS_SHA_384,
        SigningAlgorithmSpec_RSASSA_PSS_SHA_512
      ),
  )
where

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

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

pattern SigningAlgorithmSpec_ECDSA_SHA_256 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_ECDSA_SHA_256 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_ECDSA_SHA_256 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_ECDSA_SHA_256 = SigningAlgorithmSpec' "ECDSA_SHA_256"

pattern SigningAlgorithmSpec_ECDSA_SHA_384 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_ECDSA_SHA_384 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_ECDSA_SHA_384 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_ECDSA_SHA_384 = SigningAlgorithmSpec' "ECDSA_SHA_384"

pattern SigningAlgorithmSpec_ECDSA_SHA_512 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_ECDSA_SHA_512 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_ECDSA_SHA_512 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_ECDSA_SHA_512 = SigningAlgorithmSpec' "ECDSA_SHA_512"

pattern SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256 = SigningAlgorithmSpec' "RSASSA_PKCS1_V1_5_SHA_256"

pattern SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384 = SigningAlgorithmSpec' "RSASSA_PKCS1_V1_5_SHA_384"

pattern SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512 = SigningAlgorithmSpec' "RSASSA_PKCS1_V1_5_SHA_512"

pattern SigningAlgorithmSpec_RSASSA_PSS_SHA_256 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PSS_SHA_256 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PSS_SHA_256 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PSS_SHA_256 = SigningAlgorithmSpec' "RSASSA_PSS_SHA_256"

pattern SigningAlgorithmSpec_RSASSA_PSS_SHA_384 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PSS_SHA_384 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PSS_SHA_384 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PSS_SHA_384 = SigningAlgorithmSpec' "RSASSA_PSS_SHA_384"

pattern SigningAlgorithmSpec_RSASSA_PSS_SHA_512 :: SigningAlgorithmSpec
pattern $bSigningAlgorithmSpec_RSASSA_PSS_SHA_512 :: SigningAlgorithmSpec
$mSigningAlgorithmSpec_RSASSA_PSS_SHA_512 :: forall r. SigningAlgorithmSpec -> (Void# -> r) -> (Void# -> r) -> r
SigningAlgorithmSpec_RSASSA_PSS_SHA_512 = SigningAlgorithmSpec' "RSASSA_PSS_SHA_512"

{-# COMPLETE
  SigningAlgorithmSpec_ECDSA_SHA_256,
  SigningAlgorithmSpec_ECDSA_SHA_384,
  SigningAlgorithmSpec_ECDSA_SHA_512,
  SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_256,
  SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_384,
  SigningAlgorithmSpec_RSASSA_PKCS1_V1_5_SHA_512,
  SigningAlgorithmSpec_RSASSA_PSS_SHA_256,
  SigningAlgorithmSpec_RSASSA_PSS_SHA_384,
  SigningAlgorithmSpec_RSASSA_PSS_SHA_512,
  SigningAlgorithmSpec'
  #-}