{-# 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.LicenseManager.Types.EntitlementUnit
-- 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.LicenseManager.Types.EntitlementUnit
  ( EntitlementUnit
      ( ..,
        EntitlementUnit_Bits,
        EntitlementUnit_Bits_Second,
        EntitlementUnit_Bytes,
        EntitlementUnit_Bytes_Second,
        EntitlementUnit_Count,
        EntitlementUnit_Count_Second,
        EntitlementUnit_Gigabits,
        EntitlementUnit_Gigabits_Second,
        EntitlementUnit_Gigabytes,
        EntitlementUnit_Gigabytes_Second,
        EntitlementUnit_Kilobits,
        EntitlementUnit_Kilobits_Second,
        EntitlementUnit_Kilobytes,
        EntitlementUnit_Kilobytes_Second,
        EntitlementUnit_Megabits,
        EntitlementUnit_Megabits_Second,
        EntitlementUnit_Megabytes,
        EntitlementUnit_Megabytes_Second,
        EntitlementUnit_Microseconds,
        EntitlementUnit_Milliseconds,
        EntitlementUnit_None,
        EntitlementUnit_Percent,
        EntitlementUnit_Seconds,
        EntitlementUnit_Terabits,
        EntitlementUnit_Terabits_Second,
        EntitlementUnit_Terabytes,
        EntitlementUnit_Terabytes_Second
      ),
  )
where

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

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

pattern EntitlementUnit_Bits :: EntitlementUnit
pattern $bEntitlementUnit_Bits :: EntitlementUnit
$mEntitlementUnit_Bits :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Bits = EntitlementUnit' "Bits"

pattern EntitlementUnit_Bits_Second :: EntitlementUnit
pattern $bEntitlementUnit_Bits_Second :: EntitlementUnit
$mEntitlementUnit_Bits_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Bits_Second = EntitlementUnit' "Bits/Second"

pattern EntitlementUnit_Bytes :: EntitlementUnit
pattern $bEntitlementUnit_Bytes :: EntitlementUnit
$mEntitlementUnit_Bytes :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Bytes = EntitlementUnit' "Bytes"

pattern EntitlementUnit_Bytes_Second :: EntitlementUnit
pattern $bEntitlementUnit_Bytes_Second :: EntitlementUnit
$mEntitlementUnit_Bytes_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Bytes_Second = EntitlementUnit' "Bytes/Second"

pattern EntitlementUnit_Count :: EntitlementUnit
pattern $bEntitlementUnit_Count :: EntitlementUnit
$mEntitlementUnit_Count :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Count = EntitlementUnit' "Count"

pattern EntitlementUnit_Count_Second :: EntitlementUnit
pattern $bEntitlementUnit_Count_Second :: EntitlementUnit
$mEntitlementUnit_Count_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Count_Second = EntitlementUnit' "Count/Second"

pattern EntitlementUnit_Gigabits :: EntitlementUnit
pattern $bEntitlementUnit_Gigabits :: EntitlementUnit
$mEntitlementUnit_Gigabits :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Gigabits = EntitlementUnit' "Gigabits"

pattern EntitlementUnit_Gigabits_Second :: EntitlementUnit
pattern $bEntitlementUnit_Gigabits_Second :: EntitlementUnit
$mEntitlementUnit_Gigabits_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Gigabits_Second = EntitlementUnit' "Gigabits/Second"

pattern EntitlementUnit_Gigabytes :: EntitlementUnit
pattern $bEntitlementUnit_Gigabytes :: EntitlementUnit
$mEntitlementUnit_Gigabytes :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Gigabytes = EntitlementUnit' "Gigabytes"

pattern EntitlementUnit_Gigabytes_Second :: EntitlementUnit
pattern $bEntitlementUnit_Gigabytes_Second :: EntitlementUnit
$mEntitlementUnit_Gigabytes_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Gigabytes_Second = EntitlementUnit' "Gigabytes/Second"

pattern EntitlementUnit_Kilobits :: EntitlementUnit
pattern $bEntitlementUnit_Kilobits :: EntitlementUnit
$mEntitlementUnit_Kilobits :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Kilobits = EntitlementUnit' "Kilobits"

pattern EntitlementUnit_Kilobits_Second :: EntitlementUnit
pattern $bEntitlementUnit_Kilobits_Second :: EntitlementUnit
$mEntitlementUnit_Kilobits_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Kilobits_Second = EntitlementUnit' "Kilobits/Second"

pattern EntitlementUnit_Kilobytes :: EntitlementUnit
pattern $bEntitlementUnit_Kilobytes :: EntitlementUnit
$mEntitlementUnit_Kilobytes :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Kilobytes = EntitlementUnit' "Kilobytes"

pattern EntitlementUnit_Kilobytes_Second :: EntitlementUnit
pattern $bEntitlementUnit_Kilobytes_Second :: EntitlementUnit
$mEntitlementUnit_Kilobytes_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Kilobytes_Second = EntitlementUnit' "Kilobytes/Second"

pattern EntitlementUnit_Megabits :: EntitlementUnit
pattern $bEntitlementUnit_Megabits :: EntitlementUnit
$mEntitlementUnit_Megabits :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Megabits = EntitlementUnit' "Megabits"

pattern EntitlementUnit_Megabits_Second :: EntitlementUnit
pattern $bEntitlementUnit_Megabits_Second :: EntitlementUnit
$mEntitlementUnit_Megabits_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Megabits_Second = EntitlementUnit' "Megabits/Second"

pattern EntitlementUnit_Megabytes :: EntitlementUnit
pattern $bEntitlementUnit_Megabytes :: EntitlementUnit
$mEntitlementUnit_Megabytes :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Megabytes = EntitlementUnit' "Megabytes"

pattern EntitlementUnit_Megabytes_Second :: EntitlementUnit
pattern $bEntitlementUnit_Megabytes_Second :: EntitlementUnit
$mEntitlementUnit_Megabytes_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Megabytes_Second = EntitlementUnit' "Megabytes/Second"

pattern EntitlementUnit_Microseconds :: EntitlementUnit
pattern $bEntitlementUnit_Microseconds :: EntitlementUnit
$mEntitlementUnit_Microseconds :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Microseconds = EntitlementUnit' "Microseconds"

pattern EntitlementUnit_Milliseconds :: EntitlementUnit
pattern $bEntitlementUnit_Milliseconds :: EntitlementUnit
$mEntitlementUnit_Milliseconds :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Milliseconds = EntitlementUnit' "Milliseconds"

pattern EntitlementUnit_None :: EntitlementUnit
pattern $bEntitlementUnit_None :: EntitlementUnit
$mEntitlementUnit_None :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_None = EntitlementUnit' "None"

pattern EntitlementUnit_Percent :: EntitlementUnit
pattern $bEntitlementUnit_Percent :: EntitlementUnit
$mEntitlementUnit_Percent :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Percent = EntitlementUnit' "Percent"

pattern EntitlementUnit_Seconds :: EntitlementUnit
pattern $bEntitlementUnit_Seconds :: EntitlementUnit
$mEntitlementUnit_Seconds :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Seconds = EntitlementUnit' "Seconds"

pattern EntitlementUnit_Terabits :: EntitlementUnit
pattern $bEntitlementUnit_Terabits :: EntitlementUnit
$mEntitlementUnit_Terabits :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Terabits = EntitlementUnit' "Terabits"

pattern EntitlementUnit_Terabits_Second :: EntitlementUnit
pattern $bEntitlementUnit_Terabits_Second :: EntitlementUnit
$mEntitlementUnit_Terabits_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Terabits_Second = EntitlementUnit' "Terabits/Second"

pattern EntitlementUnit_Terabytes :: EntitlementUnit
pattern $bEntitlementUnit_Terabytes :: EntitlementUnit
$mEntitlementUnit_Terabytes :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Terabytes = EntitlementUnit' "Terabytes"

pattern EntitlementUnit_Terabytes_Second :: EntitlementUnit
pattern $bEntitlementUnit_Terabytes_Second :: EntitlementUnit
$mEntitlementUnit_Terabytes_Second :: forall r. EntitlementUnit -> (Void# -> r) -> (Void# -> r) -> r
EntitlementUnit_Terabytes_Second = EntitlementUnit' "Terabytes/Second"

{-# COMPLETE
  EntitlementUnit_Bits,
  EntitlementUnit_Bits_Second,
  EntitlementUnit_Bytes,
  EntitlementUnit_Bytes_Second,
  EntitlementUnit_Count,
  EntitlementUnit_Count_Second,
  EntitlementUnit_Gigabits,
  EntitlementUnit_Gigabits_Second,
  EntitlementUnit_Gigabytes,
  EntitlementUnit_Gigabytes_Second,
  EntitlementUnit_Kilobits,
  EntitlementUnit_Kilobits_Second,
  EntitlementUnit_Kilobytes,
  EntitlementUnit_Kilobytes_Second,
  EntitlementUnit_Megabits,
  EntitlementUnit_Megabits_Second,
  EntitlementUnit_Megabytes,
  EntitlementUnit_Megabytes_Second,
  EntitlementUnit_Microseconds,
  EntitlementUnit_Milliseconds,
  EntitlementUnit_None,
  EntitlementUnit_Percent,
  EntitlementUnit_Seconds,
  EntitlementUnit_Terabits,
  EntitlementUnit_Terabits_Second,
  EntitlementUnit_Terabytes,
  EntitlementUnit_Terabytes_Second,
  EntitlementUnit'
  #-}