{-# 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.ImageTypeValues
-- 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.ImageTypeValues
  ( ImageTypeValues
      ( ..,
        ImageTypeValues_Kernel,
        ImageTypeValues_Machine,
        ImageTypeValues_Ramdisk
      ),
  )
where

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

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

pattern ImageTypeValues_Kernel :: ImageTypeValues
pattern $bImageTypeValues_Kernel :: ImageTypeValues
$mImageTypeValues_Kernel :: forall {r}. ImageTypeValues -> ((# #) -> r) -> ((# #) -> r) -> r
ImageTypeValues_Kernel = ImageTypeValues' "kernel"

pattern ImageTypeValues_Machine :: ImageTypeValues
pattern $bImageTypeValues_Machine :: ImageTypeValues
$mImageTypeValues_Machine :: forall {r}. ImageTypeValues -> ((# #) -> r) -> ((# #) -> r) -> r
ImageTypeValues_Machine = ImageTypeValues' "machine"

pattern ImageTypeValues_Ramdisk :: ImageTypeValues
pattern $bImageTypeValues_Ramdisk :: ImageTypeValues
$mImageTypeValues_Ramdisk :: forall {r}. ImageTypeValues -> ((# #) -> r) -> ((# #) -> r) -> r
ImageTypeValues_Ramdisk = ImageTypeValues' "ramdisk"

{-# COMPLETE
  ImageTypeValues_Kernel,
  ImageTypeValues_Machine,
  ImageTypeValues_Ramdisk,
  ImageTypeValues'
  #-}