{-# 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.Lightsail.Types.BlueprintType
-- 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.Lightsail.Types.BlueprintType
  ( BlueprintType
      ( ..,
        BlueprintType_App,
        BlueprintType_Os
      ),
  )
where

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

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

pattern BlueprintType_App :: BlueprintType
pattern $bBlueprintType_App :: BlueprintType
$mBlueprintType_App :: forall r. BlueprintType -> (Void# -> r) -> (Void# -> r) -> r
BlueprintType_App = BlueprintType' "app"

pattern BlueprintType_Os :: BlueprintType
pattern $bBlueprintType_Os :: BlueprintType
$mBlueprintType_Os :: forall r. BlueprintType -> (Void# -> r) -> (Void# -> r) -> r
BlueprintType_Os = BlueprintType' "os"

{-# COMPLETE
  BlueprintType_App,
  BlueprintType_Os,
  BlueprintType'
  #-}