{-# 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.AccessMethodType
-- 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.AccessMethodType
  ( AccessMethodType
      ( ..,
        AccessMethodType_CA_REPOSITORY,
        AccessMethodType_RESOURCE_PKI_MANIFEST,
        AccessMethodType_RESOURCE_PKI_NOTIFY
      ),
  )
where

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

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

pattern AccessMethodType_CA_REPOSITORY :: AccessMethodType
pattern $bAccessMethodType_CA_REPOSITORY :: AccessMethodType
$mAccessMethodType_CA_REPOSITORY :: forall r. AccessMethodType -> (Void# -> r) -> (Void# -> r) -> r
AccessMethodType_CA_REPOSITORY = AccessMethodType' "CA_REPOSITORY"

pattern AccessMethodType_RESOURCE_PKI_MANIFEST :: AccessMethodType
pattern $bAccessMethodType_RESOURCE_PKI_MANIFEST :: AccessMethodType
$mAccessMethodType_RESOURCE_PKI_MANIFEST :: forall r. AccessMethodType -> (Void# -> r) -> (Void# -> r) -> r
AccessMethodType_RESOURCE_PKI_MANIFEST = AccessMethodType' "RESOURCE_PKI_MANIFEST"

pattern AccessMethodType_RESOURCE_PKI_NOTIFY :: AccessMethodType
pattern $bAccessMethodType_RESOURCE_PKI_NOTIFY :: AccessMethodType
$mAccessMethodType_RESOURCE_PKI_NOTIFY :: forall r. AccessMethodType -> (Void# -> r) -> (Void# -> r) -> r
AccessMethodType_RESOURCE_PKI_NOTIFY = AccessMethodType' "RESOURCE_PKI_NOTIFY"

{-# COMPLETE
  AccessMethodType_CA_REPOSITORY,
  AccessMethodType_RESOURCE_PKI_MANIFEST,
  AccessMethodType_RESOURCE_PKI_NOTIFY,
  AccessMethodType'
  #-}