{-# 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.CloudWatchLogs.Types.StandardUnit
-- 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.CloudWatchLogs.Types.StandardUnit
  ( StandardUnit
      ( ..,
        StandardUnit_Bits,
        StandardUnit_Bits_Second,
        StandardUnit_Bytes,
        StandardUnit_Bytes_Second,
        StandardUnit_Count,
        StandardUnit_Count_Second,
        StandardUnit_Gigabits,
        StandardUnit_Gigabits_Second,
        StandardUnit_Gigabytes,
        StandardUnit_Gigabytes_Second,
        StandardUnit_Kilobits,
        StandardUnit_Kilobits_Second,
        StandardUnit_Kilobytes,
        StandardUnit_Kilobytes_Second,
        StandardUnit_Megabits,
        StandardUnit_Megabits_Second,
        StandardUnit_Megabytes,
        StandardUnit_Megabytes_Second,
        StandardUnit_Microseconds,
        StandardUnit_Milliseconds,
        StandardUnit_None,
        StandardUnit_Percent,
        StandardUnit_Seconds,
        StandardUnit_Terabits,
        StandardUnit_Terabits_Second,
        StandardUnit_Terabytes,
        StandardUnit_Terabytes_Second
      ),
  )
where

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

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

pattern StandardUnit_Bits :: StandardUnit
pattern $bStandardUnit_Bits :: StandardUnit
$mStandardUnit_Bits :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Bits = StandardUnit' "Bits"

pattern StandardUnit_Bits_Second :: StandardUnit
pattern $bStandardUnit_Bits_Second :: StandardUnit
$mStandardUnit_Bits_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Bits_Second = StandardUnit' "Bits/Second"

pattern StandardUnit_Bytes :: StandardUnit
pattern $bStandardUnit_Bytes :: StandardUnit
$mStandardUnit_Bytes :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Bytes = StandardUnit' "Bytes"

pattern StandardUnit_Bytes_Second :: StandardUnit
pattern $bStandardUnit_Bytes_Second :: StandardUnit
$mStandardUnit_Bytes_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Bytes_Second = StandardUnit' "Bytes/Second"

pattern StandardUnit_Count :: StandardUnit
pattern $bStandardUnit_Count :: StandardUnit
$mStandardUnit_Count :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Count = StandardUnit' "Count"

pattern StandardUnit_Count_Second :: StandardUnit
pattern $bStandardUnit_Count_Second :: StandardUnit
$mStandardUnit_Count_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Count_Second = StandardUnit' "Count/Second"

pattern StandardUnit_Gigabits :: StandardUnit
pattern $bStandardUnit_Gigabits :: StandardUnit
$mStandardUnit_Gigabits :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Gigabits = StandardUnit' "Gigabits"

pattern StandardUnit_Gigabits_Second :: StandardUnit
pattern $bStandardUnit_Gigabits_Second :: StandardUnit
$mStandardUnit_Gigabits_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Gigabits_Second = StandardUnit' "Gigabits/Second"

pattern StandardUnit_Gigabytes :: StandardUnit
pattern $bStandardUnit_Gigabytes :: StandardUnit
$mStandardUnit_Gigabytes :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Gigabytes = StandardUnit' "Gigabytes"

pattern StandardUnit_Gigabytes_Second :: StandardUnit
pattern $bStandardUnit_Gigabytes_Second :: StandardUnit
$mStandardUnit_Gigabytes_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Gigabytes_Second = StandardUnit' "Gigabytes/Second"

pattern StandardUnit_Kilobits :: StandardUnit
pattern $bStandardUnit_Kilobits :: StandardUnit
$mStandardUnit_Kilobits :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Kilobits = StandardUnit' "Kilobits"

pattern StandardUnit_Kilobits_Second :: StandardUnit
pattern $bStandardUnit_Kilobits_Second :: StandardUnit
$mStandardUnit_Kilobits_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Kilobits_Second = StandardUnit' "Kilobits/Second"

pattern StandardUnit_Kilobytes :: StandardUnit
pattern $bStandardUnit_Kilobytes :: StandardUnit
$mStandardUnit_Kilobytes :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Kilobytes = StandardUnit' "Kilobytes"

pattern StandardUnit_Kilobytes_Second :: StandardUnit
pattern $bStandardUnit_Kilobytes_Second :: StandardUnit
$mStandardUnit_Kilobytes_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Kilobytes_Second = StandardUnit' "Kilobytes/Second"

pattern StandardUnit_Megabits :: StandardUnit
pattern $bStandardUnit_Megabits :: StandardUnit
$mStandardUnit_Megabits :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Megabits = StandardUnit' "Megabits"

pattern StandardUnit_Megabits_Second :: StandardUnit
pattern $bStandardUnit_Megabits_Second :: StandardUnit
$mStandardUnit_Megabits_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Megabits_Second = StandardUnit' "Megabits/Second"

pattern StandardUnit_Megabytes :: StandardUnit
pattern $bStandardUnit_Megabytes :: StandardUnit
$mStandardUnit_Megabytes :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Megabytes = StandardUnit' "Megabytes"

pattern StandardUnit_Megabytes_Second :: StandardUnit
pattern $bStandardUnit_Megabytes_Second :: StandardUnit
$mStandardUnit_Megabytes_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Megabytes_Second = StandardUnit' "Megabytes/Second"

pattern StandardUnit_Microseconds :: StandardUnit
pattern $bStandardUnit_Microseconds :: StandardUnit
$mStandardUnit_Microseconds :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Microseconds = StandardUnit' "Microseconds"

pattern StandardUnit_Milliseconds :: StandardUnit
pattern $bStandardUnit_Milliseconds :: StandardUnit
$mStandardUnit_Milliseconds :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Milliseconds = StandardUnit' "Milliseconds"

pattern StandardUnit_None :: StandardUnit
pattern $bStandardUnit_None :: StandardUnit
$mStandardUnit_None :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_None = StandardUnit' "None"

pattern StandardUnit_Percent :: StandardUnit
pattern $bStandardUnit_Percent :: StandardUnit
$mStandardUnit_Percent :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Percent = StandardUnit' "Percent"

pattern StandardUnit_Seconds :: StandardUnit
pattern $bStandardUnit_Seconds :: StandardUnit
$mStandardUnit_Seconds :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Seconds = StandardUnit' "Seconds"

pattern StandardUnit_Terabits :: StandardUnit
pattern $bStandardUnit_Terabits :: StandardUnit
$mStandardUnit_Terabits :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Terabits = StandardUnit' "Terabits"

pattern StandardUnit_Terabits_Second :: StandardUnit
pattern $bStandardUnit_Terabits_Second :: StandardUnit
$mStandardUnit_Terabits_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Terabits_Second = StandardUnit' "Terabits/Second"

pattern StandardUnit_Terabytes :: StandardUnit
pattern $bStandardUnit_Terabytes :: StandardUnit
$mStandardUnit_Terabytes :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Terabytes = StandardUnit' "Terabytes"

pattern StandardUnit_Terabytes_Second :: StandardUnit
pattern $bStandardUnit_Terabytes_Second :: StandardUnit
$mStandardUnit_Terabytes_Second :: forall r. StandardUnit -> (Void# -> r) -> (Void# -> r) -> r
StandardUnit_Terabytes_Second = StandardUnit' "Terabytes/Second"

{-# COMPLETE
  StandardUnit_Bits,
  StandardUnit_Bits_Second,
  StandardUnit_Bytes,
  StandardUnit_Bytes_Second,
  StandardUnit_Count,
  StandardUnit_Count_Second,
  StandardUnit_Gigabits,
  StandardUnit_Gigabits_Second,
  StandardUnit_Gigabytes,
  StandardUnit_Gigabytes_Second,
  StandardUnit_Kilobits,
  StandardUnit_Kilobits_Second,
  StandardUnit_Kilobytes,
  StandardUnit_Kilobytes_Second,
  StandardUnit_Megabits,
  StandardUnit_Megabits_Second,
  StandardUnit_Megabytes,
  StandardUnit_Megabytes_Second,
  StandardUnit_Microseconds,
  StandardUnit_Milliseconds,
  StandardUnit_None,
  StandardUnit_Percent,
  StandardUnit_Seconds,
  StandardUnit_Terabits,
  StandardUnit_Terabits_Second,
  StandardUnit_Terabytes,
  StandardUnit_Terabytes_Second,
  StandardUnit'
  #-}