{-# 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.Compute
-- 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.Compute
  ( Compute
      ( ..,
        Compute_GRAPHICS,
        Compute_GRAPHICSPRO,
        Compute_PERFORMANCE,
        Compute_POWER,
        Compute_POWERPRO,
        Compute_STANDARD,
        Compute_VALUE
      ),
  )
where

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

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

pattern Compute_GRAPHICS :: Compute
pattern $bCompute_GRAPHICS :: Compute
$mCompute_GRAPHICS :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_GRAPHICS = Compute' "GRAPHICS"

pattern Compute_GRAPHICSPRO :: Compute
pattern $bCompute_GRAPHICSPRO :: Compute
$mCompute_GRAPHICSPRO :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_GRAPHICSPRO = Compute' "GRAPHICSPRO"

pattern Compute_PERFORMANCE :: Compute
pattern $bCompute_PERFORMANCE :: Compute
$mCompute_PERFORMANCE :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_PERFORMANCE = Compute' "PERFORMANCE"

pattern Compute_POWER :: Compute
pattern $bCompute_POWER :: Compute
$mCompute_POWER :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_POWER = Compute' "POWER"

pattern Compute_POWERPRO :: Compute
pattern $bCompute_POWERPRO :: Compute
$mCompute_POWERPRO :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_POWERPRO = Compute' "POWERPRO"

pattern Compute_STANDARD :: Compute
pattern $bCompute_STANDARD :: Compute
$mCompute_STANDARD :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_STANDARD = Compute' "STANDARD"

pattern Compute_VALUE :: Compute
pattern $bCompute_VALUE :: Compute
$mCompute_VALUE :: forall r. Compute -> (Void# -> r) -> (Void# -> r) -> r
Compute_VALUE = Compute' "VALUE"

{-# COMPLETE
  Compute_GRAPHICS,
  Compute_GRAPHICSPRO,
  Compute_PERFORMANCE,
  Compute_POWER,
  Compute_POWERPRO,
  Compute_STANDARD,
  Compute_VALUE,
  Compute'
  #-}