{-# 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.GroupingType
-- 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.ApplicationInsights.Types.GroupingType
  ( GroupingType
      ( ..,
        GroupingType_ACCOUNT_BASED
      ),
  )
where

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

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

pattern GroupingType_ACCOUNT_BASED :: GroupingType
pattern $bGroupingType_ACCOUNT_BASED :: GroupingType
$mGroupingType_ACCOUNT_BASED :: forall {r}. GroupingType -> ((# #) -> r) -> ((# #) -> r) -> r
GroupingType_ACCOUNT_BASED = GroupingType' "ACCOUNT_BASED"

{-# COMPLETE
  GroupingType_ACCOUNT_BASED,
  GroupingType'
  #-}