{-# 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.Nimble.Types.StudioComponentSubtype
-- 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.Nimble.Types.StudioComponentSubtype
  ( StudioComponentSubtype
      ( ..,
        StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE,
        StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS,
        StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD,
        StudioComponentSubtype_CUSTOM
      ),
  )
where

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

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

pattern StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE :: StudioComponentSubtype
pattern $bStudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE :: StudioComponentSubtype
$mStudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE :: forall r.
StudioComponentSubtype -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE = StudioComponentSubtype' "AMAZON_FSX_FOR_LUSTRE"

pattern StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS :: StudioComponentSubtype
pattern $bStudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS :: StudioComponentSubtype
$mStudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS :: forall r.
StudioComponentSubtype -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS = StudioComponentSubtype' "AMAZON_FSX_FOR_WINDOWS"

pattern StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD :: StudioComponentSubtype
pattern $bStudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD :: StudioComponentSubtype
$mStudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD :: forall r.
StudioComponentSubtype -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD = StudioComponentSubtype' "AWS_MANAGED_MICROSOFT_AD"

pattern StudioComponentSubtype_CUSTOM :: StudioComponentSubtype
pattern $bStudioComponentSubtype_CUSTOM :: StudioComponentSubtype
$mStudioComponentSubtype_CUSTOM :: forall r.
StudioComponentSubtype -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentSubtype_CUSTOM = StudioComponentSubtype' "CUSTOM"

{-# COMPLETE
  StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE,
  StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS,
  StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD,
  StudioComponentSubtype_CUSTOM,
  StudioComponentSubtype'
  #-}