{-# 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.GameLift.Types.FleetType
-- 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.GameLift.Types.FleetType
  ( FleetType
      ( ..,
        FleetType_ON_DEMAND,
        FleetType_SPOT
      ),
  )
where

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

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

pattern FleetType_ON_DEMAND :: FleetType
pattern $bFleetType_ON_DEMAND :: FleetType
$mFleetType_ON_DEMAND :: forall r. FleetType -> (Void# -> r) -> (Void# -> r) -> r
FleetType_ON_DEMAND = FleetType' "ON_DEMAND"

pattern FleetType_SPOT :: FleetType
pattern $bFleetType_SPOT :: FleetType
$mFleetType_SPOT :: forall r. FleetType -> (Void# -> r) -> (Void# -> r) -> r
FleetType_SPOT = FleetType' "SPOT"

{-# COMPLETE
  FleetType_ON_DEMAND,
  FleetType_SPOT,
  FleetType'
  #-}