{-# 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.AuditManager.Types.ControlResponse
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.AuditManager.Types.ControlResponse
  ( ControlResponse
      ( ..,
        ControlResponse_AUTOMATE,
        ControlResponse_DEFER,
        ControlResponse_IGNORE,
        ControlResponse_MANUAL
      ),
  )
where

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

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

pattern ControlResponse_AUTOMATE :: ControlResponse
pattern $bControlResponse_AUTOMATE :: ControlResponse
$mControlResponse_AUTOMATE :: forall {r}. ControlResponse -> ((# #) -> r) -> ((# #) -> r) -> r
ControlResponse_AUTOMATE = ControlResponse' "AUTOMATE"

pattern ControlResponse_DEFER :: ControlResponse
pattern $bControlResponse_DEFER :: ControlResponse
$mControlResponse_DEFER :: forall {r}. ControlResponse -> ((# #) -> r) -> ((# #) -> r) -> r
ControlResponse_DEFER = ControlResponse' "DEFER"

pattern ControlResponse_IGNORE :: ControlResponse
pattern $bControlResponse_IGNORE :: ControlResponse
$mControlResponse_IGNORE :: forall {r}. ControlResponse -> ((# #) -> r) -> ((# #) -> r) -> r
ControlResponse_IGNORE = ControlResponse' "IGNORE"

pattern ControlResponse_MANUAL :: ControlResponse
pattern $bControlResponse_MANUAL :: ControlResponse
$mControlResponse_MANUAL :: forall {r}. ControlResponse -> ((# #) -> r) -> ((# #) -> r) -> r
ControlResponse_MANUAL = ControlResponse' "MANUAL"

{-# COMPLETE
  ControlResponse_AUTOMATE,
  ControlResponse_DEFER,
  ControlResponse_IGNORE,
  ControlResponse_MANUAL,
  ControlResponse'
  #-}