{-# 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.WorkSpaces.Types.ModificationResourceEnum
-- 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.WorkSpaces.Types.ModificationResourceEnum
  ( ModificationResourceEnum
      ( ..,
        ModificationResourceEnum_COMPUTE_TYPE,
        ModificationResourceEnum_ROOT_VOLUME,
        ModificationResourceEnum_USER_VOLUME
      ),
  )
where

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

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

pattern ModificationResourceEnum_COMPUTE_TYPE :: ModificationResourceEnum
pattern $bModificationResourceEnum_COMPUTE_TYPE :: ModificationResourceEnum
$mModificationResourceEnum_COMPUTE_TYPE :: forall r.
ModificationResourceEnum -> (Void# -> r) -> (Void# -> r) -> r
ModificationResourceEnum_COMPUTE_TYPE = ModificationResourceEnum' "COMPUTE_TYPE"

pattern ModificationResourceEnum_ROOT_VOLUME :: ModificationResourceEnum
pattern $bModificationResourceEnum_ROOT_VOLUME :: ModificationResourceEnum
$mModificationResourceEnum_ROOT_VOLUME :: forall r.
ModificationResourceEnum -> (Void# -> r) -> (Void# -> r) -> r
ModificationResourceEnum_ROOT_VOLUME = ModificationResourceEnum' "ROOT_VOLUME"

pattern ModificationResourceEnum_USER_VOLUME :: ModificationResourceEnum
pattern $bModificationResourceEnum_USER_VOLUME :: ModificationResourceEnum
$mModificationResourceEnum_USER_VOLUME :: forall r.
ModificationResourceEnum -> (Void# -> r) -> (Void# -> r) -> r
ModificationResourceEnum_USER_VOLUME = ModificationResourceEnum' "USER_VOLUME"

{-# COMPLETE
  ModificationResourceEnum_COMPUTE_TYPE,
  ModificationResourceEnum_ROOT_VOLUME,
  ModificationResourceEnum_USER_VOLUME,
  ModificationResourceEnum'
  #-}