{-# 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.ECS.Types.UlimitName
-- 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.ECS.Types.UlimitName
  ( UlimitName
      ( ..,
        UlimitName_Core,
        UlimitName_Cpu,
        UlimitName_Data,
        UlimitName_Fsize,
        UlimitName_Locks,
        UlimitName_Memlock,
        UlimitName_Msgqueue,
        UlimitName_Nice,
        UlimitName_Nofile,
        UlimitName_Nproc,
        UlimitName_Rss,
        UlimitName_Rtprio,
        UlimitName_Rttime,
        UlimitName_Sigpending,
        UlimitName_Stack
      ),
  )
where

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

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

pattern UlimitName_Core :: UlimitName
pattern $bUlimitName_Core :: UlimitName
$mUlimitName_Core :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Core = UlimitName' "core"

pattern UlimitName_Cpu :: UlimitName
pattern $bUlimitName_Cpu :: UlimitName
$mUlimitName_Cpu :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Cpu = UlimitName' "cpu"

pattern UlimitName_Data :: UlimitName
pattern $bUlimitName_Data :: UlimitName
$mUlimitName_Data :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Data = UlimitName' "data"

pattern UlimitName_Fsize :: UlimitName
pattern $bUlimitName_Fsize :: UlimitName
$mUlimitName_Fsize :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Fsize = UlimitName' "fsize"

pattern UlimitName_Locks :: UlimitName
pattern $bUlimitName_Locks :: UlimitName
$mUlimitName_Locks :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Locks = UlimitName' "locks"

pattern UlimitName_Memlock :: UlimitName
pattern $bUlimitName_Memlock :: UlimitName
$mUlimitName_Memlock :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Memlock = UlimitName' "memlock"

pattern UlimitName_Msgqueue :: UlimitName
pattern $bUlimitName_Msgqueue :: UlimitName
$mUlimitName_Msgqueue :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Msgqueue = UlimitName' "msgqueue"

pattern UlimitName_Nice :: UlimitName
pattern $bUlimitName_Nice :: UlimitName
$mUlimitName_Nice :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Nice = UlimitName' "nice"

pattern UlimitName_Nofile :: UlimitName
pattern $bUlimitName_Nofile :: UlimitName
$mUlimitName_Nofile :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Nofile = UlimitName' "nofile"

pattern UlimitName_Nproc :: UlimitName
pattern $bUlimitName_Nproc :: UlimitName
$mUlimitName_Nproc :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Nproc = UlimitName' "nproc"

pattern UlimitName_Rss :: UlimitName
pattern $bUlimitName_Rss :: UlimitName
$mUlimitName_Rss :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Rss = UlimitName' "rss"

pattern UlimitName_Rtprio :: UlimitName
pattern $bUlimitName_Rtprio :: UlimitName
$mUlimitName_Rtprio :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Rtprio = UlimitName' "rtprio"

pattern UlimitName_Rttime :: UlimitName
pattern $bUlimitName_Rttime :: UlimitName
$mUlimitName_Rttime :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Rttime = UlimitName' "rttime"

pattern UlimitName_Sigpending :: UlimitName
pattern $bUlimitName_Sigpending :: UlimitName
$mUlimitName_Sigpending :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Sigpending = UlimitName' "sigpending"

pattern UlimitName_Stack :: UlimitName
pattern $bUlimitName_Stack :: UlimitName
$mUlimitName_Stack :: forall r. UlimitName -> (Void# -> r) -> (Void# -> r) -> r
UlimitName_Stack = UlimitName' "stack"

{-# COMPLETE
  UlimitName_Core,
  UlimitName_Cpu,
  UlimitName_Data,
  UlimitName_Fsize,
  UlimitName_Locks,
  UlimitName_Memlock,
  UlimitName_Msgqueue,
  UlimitName_Nice,
  UlimitName_Nofile,
  UlimitName_Nproc,
  UlimitName_Rss,
  UlimitName_Rtprio,
  UlimitName_Rttime,
  UlimitName_Sigpending,
  UlimitName_Stack,
  UlimitName'
  #-}