{-# 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.AWSHealth.Types.EventScopeCode
-- 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.AWSHealth.Types.EventScopeCode
  ( EventScopeCode
      ( ..,
        EventScopeCode_ACCOUNT_SPECIFIC,
        EventScopeCode_NONE,
        EventScopeCode_PUBLIC
      ),
  )
where

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

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

pattern EventScopeCode_ACCOUNT_SPECIFIC :: EventScopeCode
pattern $bEventScopeCode_ACCOUNT_SPECIFIC :: EventScopeCode
$mEventScopeCode_ACCOUNT_SPECIFIC :: forall r. EventScopeCode -> (Void# -> r) -> (Void# -> r) -> r
EventScopeCode_ACCOUNT_SPECIFIC = EventScopeCode' "ACCOUNT_SPECIFIC"

pattern EventScopeCode_NONE :: EventScopeCode
pattern $bEventScopeCode_NONE :: EventScopeCode
$mEventScopeCode_NONE :: forall r. EventScopeCode -> (Void# -> r) -> (Void# -> r) -> r
EventScopeCode_NONE = EventScopeCode' "NONE"

pattern EventScopeCode_PUBLIC :: EventScopeCode
pattern $bEventScopeCode_PUBLIC :: EventScopeCode
$mEventScopeCode_PUBLIC :: forall r. EventScopeCode -> (Void# -> r) -> (Void# -> r) -> r
EventScopeCode_PUBLIC = EventScopeCode' "PUBLIC"

{-# COMPLETE
  EventScopeCode_ACCOUNT_SPECIFIC,
  EventScopeCode_NONE,
  EventScopeCode_PUBLIC,
  EventScopeCode'
  #-}