{-# 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.IoT.Types.DeviceCertificateUpdateAction
-- 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.IoT.Types.DeviceCertificateUpdateAction
  ( DeviceCertificateUpdateAction
      ( ..,
        DeviceCertificateUpdateAction_DEACTIVATE
      ),
  )
where

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

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

pattern DeviceCertificateUpdateAction_DEACTIVATE :: DeviceCertificateUpdateAction
pattern $bDeviceCertificateUpdateAction_DEACTIVATE :: DeviceCertificateUpdateAction
$mDeviceCertificateUpdateAction_DEACTIVATE :: forall r.
DeviceCertificateUpdateAction -> (Void# -> r) -> (Void# -> r) -> r
DeviceCertificateUpdateAction_DEACTIVATE = DeviceCertificateUpdateAction' "DEACTIVATE"

{-# COMPLETE
  DeviceCertificateUpdateAction_DEACTIVATE,
  DeviceCertificateUpdateAction'
  #-}