{-# 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.EC2.Types.ArchitectureValues
-- 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.EC2.Types.ArchitectureValues
  ( ArchitectureValues
      ( ..,
        ArchitectureValues_Arm64,
        ArchitectureValues_Arm64_mac,
        ArchitectureValues_I386,
        ArchitectureValues_X86_64,
        ArchitectureValues_X86_64_mac
      ),
  )
where

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

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

pattern ArchitectureValues_Arm64 :: ArchitectureValues
pattern $bArchitectureValues_Arm64 :: ArchitectureValues
$mArchitectureValues_Arm64 :: forall {r}. ArchitectureValues -> ((# #) -> r) -> ((# #) -> r) -> r
ArchitectureValues_Arm64 = ArchitectureValues' "arm64"

pattern ArchitectureValues_Arm64_mac :: ArchitectureValues
pattern $bArchitectureValues_Arm64_mac :: ArchitectureValues
$mArchitectureValues_Arm64_mac :: forall {r}. ArchitectureValues -> ((# #) -> r) -> ((# #) -> r) -> r
ArchitectureValues_Arm64_mac = ArchitectureValues' "arm64_mac"

pattern ArchitectureValues_I386 :: ArchitectureValues
pattern $bArchitectureValues_I386 :: ArchitectureValues
$mArchitectureValues_I386 :: forall {r}. ArchitectureValues -> ((# #) -> r) -> ((# #) -> r) -> r
ArchitectureValues_I386 = ArchitectureValues' "i386"

pattern ArchitectureValues_X86_64 :: ArchitectureValues
pattern $bArchitectureValues_X86_64 :: ArchitectureValues
$mArchitectureValues_X86_64 :: forall {r}. ArchitectureValues -> ((# #) -> r) -> ((# #) -> r) -> r
ArchitectureValues_X86_64 = ArchitectureValues' "x86_64"

pattern ArchitectureValues_X86_64_mac :: ArchitectureValues
pattern $bArchitectureValues_X86_64_mac :: ArchitectureValues
$mArchitectureValues_X86_64_mac :: forall {r}. ArchitectureValues -> ((# #) -> r) -> ((# #) -> r) -> r
ArchitectureValues_X86_64_mac = ArchitectureValues' "x86_64_mac"

{-# COMPLETE
  ArchitectureValues_Arm64,
  ArchitectureValues_Arm64_mac,
  ArchitectureValues_I386,
  ArchitectureValues_X86_64,
  ArchitectureValues_X86_64_mac,
  ArchitectureValues'
  #-}