{-# 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.CertificateManager.Types.ExtendedKeyUsageName
-- 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.CertificateManager.Types.ExtendedKeyUsageName
  ( ExtendedKeyUsageName
      ( ..,
        ExtendedKeyUsageName_ANY,
        ExtendedKeyUsageName_CODE_SIGNING,
        ExtendedKeyUsageName_CUSTOM,
        ExtendedKeyUsageName_EMAIL_PROTECTION,
        ExtendedKeyUsageName_IPSEC_END_SYSTEM,
        ExtendedKeyUsageName_IPSEC_TUNNEL,
        ExtendedKeyUsageName_IPSEC_USER,
        ExtendedKeyUsageName_NONE,
        ExtendedKeyUsageName_OCSP_SIGNING,
        ExtendedKeyUsageName_TIME_STAMPING,
        ExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION,
        ExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION
      ),
  )
where

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

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

pattern ExtendedKeyUsageName_ANY :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_ANY :: ExtendedKeyUsageName
$mExtendedKeyUsageName_ANY :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_ANY = ExtendedKeyUsageName' "ANY"

pattern ExtendedKeyUsageName_CODE_SIGNING :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_CODE_SIGNING :: ExtendedKeyUsageName
$mExtendedKeyUsageName_CODE_SIGNING :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_CODE_SIGNING = ExtendedKeyUsageName' "CODE_SIGNING"

pattern ExtendedKeyUsageName_CUSTOM :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_CUSTOM :: ExtendedKeyUsageName
$mExtendedKeyUsageName_CUSTOM :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_CUSTOM = ExtendedKeyUsageName' "CUSTOM"

pattern ExtendedKeyUsageName_EMAIL_PROTECTION :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_EMAIL_PROTECTION :: ExtendedKeyUsageName
$mExtendedKeyUsageName_EMAIL_PROTECTION :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_EMAIL_PROTECTION = ExtendedKeyUsageName' "EMAIL_PROTECTION"

pattern ExtendedKeyUsageName_IPSEC_END_SYSTEM :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_IPSEC_END_SYSTEM :: ExtendedKeyUsageName
$mExtendedKeyUsageName_IPSEC_END_SYSTEM :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_IPSEC_END_SYSTEM = ExtendedKeyUsageName' "IPSEC_END_SYSTEM"

pattern ExtendedKeyUsageName_IPSEC_TUNNEL :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_IPSEC_TUNNEL :: ExtendedKeyUsageName
$mExtendedKeyUsageName_IPSEC_TUNNEL :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_IPSEC_TUNNEL = ExtendedKeyUsageName' "IPSEC_TUNNEL"

pattern ExtendedKeyUsageName_IPSEC_USER :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_IPSEC_USER :: ExtendedKeyUsageName
$mExtendedKeyUsageName_IPSEC_USER :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_IPSEC_USER = ExtendedKeyUsageName' "IPSEC_USER"

pattern ExtendedKeyUsageName_NONE :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_NONE :: ExtendedKeyUsageName
$mExtendedKeyUsageName_NONE :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_NONE = ExtendedKeyUsageName' "NONE"

pattern ExtendedKeyUsageName_OCSP_SIGNING :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_OCSP_SIGNING :: ExtendedKeyUsageName
$mExtendedKeyUsageName_OCSP_SIGNING :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_OCSP_SIGNING = ExtendedKeyUsageName' "OCSP_SIGNING"

pattern ExtendedKeyUsageName_TIME_STAMPING :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_TIME_STAMPING :: ExtendedKeyUsageName
$mExtendedKeyUsageName_TIME_STAMPING :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_TIME_STAMPING = ExtendedKeyUsageName' "TIME_STAMPING"

pattern ExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION :: ExtendedKeyUsageName
$mExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION = ExtendedKeyUsageName' "TLS_WEB_CLIENT_AUTHENTICATION"

pattern ExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION :: ExtendedKeyUsageName
pattern $bExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION :: ExtendedKeyUsageName
$mExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION :: forall r. ExtendedKeyUsageName -> (Void# -> r) -> (Void# -> r) -> r
ExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION = ExtendedKeyUsageName' "TLS_WEB_SERVER_AUTHENTICATION"

{-# COMPLETE
  ExtendedKeyUsageName_ANY,
  ExtendedKeyUsageName_CODE_SIGNING,
  ExtendedKeyUsageName_CUSTOM,
  ExtendedKeyUsageName_EMAIL_PROTECTION,
  ExtendedKeyUsageName_IPSEC_END_SYSTEM,
  ExtendedKeyUsageName_IPSEC_TUNNEL,
  ExtendedKeyUsageName_IPSEC_USER,
  ExtendedKeyUsageName_NONE,
  ExtendedKeyUsageName_OCSP_SIGNING,
  ExtendedKeyUsageName_TIME_STAMPING,
  ExtendedKeyUsageName_TLS_WEB_CLIENT_AUTHENTICATION,
  ExtendedKeyUsageName_TLS_WEB_SERVER_AUTHENTICATION,
  ExtendedKeyUsageName'
  #-}