{-# 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.Synthetics.Types.EncryptionMode
-- 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.Synthetics.Types.EncryptionMode
  ( EncryptionMode
      ( ..,
        EncryptionMode_SSE_KMS,
        EncryptionMode_SSE_S3
      ),
  )
where

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

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

pattern EncryptionMode_SSE_KMS :: EncryptionMode
pattern $bEncryptionMode_SSE_KMS :: EncryptionMode
$mEncryptionMode_SSE_KMS :: forall r. EncryptionMode -> (Void# -> r) -> (Void# -> r) -> r
EncryptionMode_SSE_KMS = EncryptionMode' "SSE_KMS"

pattern EncryptionMode_SSE_S3 :: EncryptionMode
pattern $bEncryptionMode_SSE_S3 :: EncryptionMode
$mEncryptionMode_SSE_S3 :: forall r. EncryptionMode -> (Void# -> r) -> (Void# -> r) -> r
EncryptionMode_SSE_S3 = EncryptionMode' "SSE_S3"

{-# COMPLETE
  EncryptionMode_SSE_KMS,
  EncryptionMode_SSE_S3,
  EncryptionMode'
  #-}