{-# 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.DataBrew.Types.LogSubscription
-- 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.DataBrew.Types.LogSubscription
  ( LogSubscription
      ( ..,
        LogSubscription_DISABLE,
        LogSubscription_ENABLE
      ),
  )
where

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

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

pattern LogSubscription_DISABLE :: LogSubscription
pattern $bLogSubscription_DISABLE :: LogSubscription
$mLogSubscription_DISABLE :: forall r. LogSubscription -> (Void# -> r) -> (Void# -> r) -> r
LogSubscription_DISABLE = LogSubscription' "DISABLE"

pattern LogSubscription_ENABLE :: LogSubscription
pattern $bLogSubscription_ENABLE :: LogSubscription
$mLogSubscription_ENABLE :: forall r. LogSubscription -> (Void# -> r) -> (Void# -> r) -> r
LogSubscription_ENABLE = LogSubscription' "ENABLE"

{-# COMPLETE
  LogSubscription_DISABLE,
  LogSubscription_ENABLE,
  LogSubscription'
  #-}