{-# 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.ApplicationInsights.Types.CloudWatchEventSource
-- 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.ApplicationInsights.Types.CloudWatchEventSource
  ( CloudWatchEventSource
      ( ..,
        CloudWatchEventSource_CODE_DEPLOY,
        CloudWatchEventSource_EC2,
        CloudWatchEventSource_HEALTH,
        CloudWatchEventSource_RDS
      ),
  )
where

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

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

pattern CloudWatchEventSource_CODE_DEPLOY :: CloudWatchEventSource
pattern $bCloudWatchEventSource_CODE_DEPLOY :: CloudWatchEventSource
$mCloudWatchEventSource_CODE_DEPLOY :: forall r.
CloudWatchEventSource -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchEventSource_CODE_DEPLOY = CloudWatchEventSource' "CODE_DEPLOY"

pattern CloudWatchEventSource_EC2 :: CloudWatchEventSource
pattern $bCloudWatchEventSource_EC2 :: CloudWatchEventSource
$mCloudWatchEventSource_EC2 :: forall r.
CloudWatchEventSource -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchEventSource_EC2 = CloudWatchEventSource' "EC2"

pattern CloudWatchEventSource_HEALTH :: CloudWatchEventSource
pattern $bCloudWatchEventSource_HEALTH :: CloudWatchEventSource
$mCloudWatchEventSource_HEALTH :: forall r.
CloudWatchEventSource -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchEventSource_HEALTH = CloudWatchEventSource' "HEALTH"

pattern CloudWatchEventSource_RDS :: CloudWatchEventSource
pattern $bCloudWatchEventSource_RDS :: CloudWatchEventSource
$mCloudWatchEventSource_RDS :: forall r.
CloudWatchEventSource -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchEventSource_RDS = CloudWatchEventSource' "RDS"

{-# COMPLETE
  CloudWatchEventSource_CODE_DEPLOY,
  CloudWatchEventSource_EC2,
  CloudWatchEventSource_HEALTH,
  CloudWatchEventSource_RDS,
  CloudWatchEventSource'
  #-}