{-# 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.AutoScaling.Types.CpuManufacturer
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.AutoScaling.Types.CpuManufacturer
  ( CpuManufacturer
      ( ..,
        CpuManufacturer_Amazon_web_services,
        CpuManufacturer_Amd,
        CpuManufacturer_Intel
      ),
  )
where

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

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

pattern CpuManufacturer_Amazon_web_services :: CpuManufacturer
pattern $bCpuManufacturer_Amazon_web_services :: CpuManufacturer
$mCpuManufacturer_Amazon_web_services :: forall {r}. CpuManufacturer -> ((# #) -> r) -> ((# #) -> r) -> r
CpuManufacturer_Amazon_web_services = CpuManufacturer' "amazon-web-services"

pattern CpuManufacturer_Amd :: CpuManufacturer
pattern $bCpuManufacturer_Amd :: CpuManufacturer
$mCpuManufacturer_Amd :: forall {r}. CpuManufacturer -> ((# #) -> r) -> ((# #) -> r) -> r
CpuManufacturer_Amd = CpuManufacturer' "amd"

pattern CpuManufacturer_Intel :: CpuManufacturer
pattern $bCpuManufacturer_Intel :: CpuManufacturer
$mCpuManufacturer_Intel :: forall {r}. CpuManufacturer -> ((# #) -> r) -> ((# #) -> r) -> r
CpuManufacturer_Intel = CpuManufacturer' "intel"

{-# COMPLETE
  CpuManufacturer_Amazon_web_services,
  CpuManufacturer_Amd,
  CpuManufacturer_Intel,
  CpuManufacturer'
  #-}