{-# 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.AppStream.Types.StackAttribute
-- 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.AppStream.Types.StackAttribute
  ( StackAttribute
      ( ..,
        StackAttribute_ACCESS_ENDPOINTS,
        StackAttribute_EMBED_HOST_DOMAINS,
        StackAttribute_FEEDBACK_URL,
        StackAttribute_IAM_ROLE_ARN,
        StackAttribute_REDIRECT_URL,
        StackAttribute_STORAGE_CONNECTORS,
        StackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE,
        StackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS,
        StackAttribute_STORAGE_CONNECTOR_ONE_DRIVE,
        StackAttribute_THEME_NAME,
        StackAttribute_USER_SETTINGS
      ),
  )
where

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

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

pattern StackAttribute_ACCESS_ENDPOINTS :: StackAttribute
pattern $bStackAttribute_ACCESS_ENDPOINTS :: StackAttribute
$mStackAttribute_ACCESS_ENDPOINTS :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_ACCESS_ENDPOINTS = StackAttribute' "ACCESS_ENDPOINTS"

pattern StackAttribute_EMBED_HOST_DOMAINS :: StackAttribute
pattern $bStackAttribute_EMBED_HOST_DOMAINS :: StackAttribute
$mStackAttribute_EMBED_HOST_DOMAINS :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_EMBED_HOST_DOMAINS = StackAttribute' "EMBED_HOST_DOMAINS"

pattern StackAttribute_FEEDBACK_URL :: StackAttribute
pattern $bStackAttribute_FEEDBACK_URL :: StackAttribute
$mStackAttribute_FEEDBACK_URL :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_FEEDBACK_URL = StackAttribute' "FEEDBACK_URL"

pattern StackAttribute_IAM_ROLE_ARN :: StackAttribute
pattern $bStackAttribute_IAM_ROLE_ARN :: StackAttribute
$mStackAttribute_IAM_ROLE_ARN :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_IAM_ROLE_ARN = StackAttribute' "IAM_ROLE_ARN"

pattern StackAttribute_REDIRECT_URL :: StackAttribute
pattern $bStackAttribute_REDIRECT_URL :: StackAttribute
$mStackAttribute_REDIRECT_URL :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_REDIRECT_URL = StackAttribute' "REDIRECT_URL"

pattern StackAttribute_STORAGE_CONNECTORS :: StackAttribute
pattern $bStackAttribute_STORAGE_CONNECTORS :: StackAttribute
$mStackAttribute_STORAGE_CONNECTORS :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_STORAGE_CONNECTORS = StackAttribute' "STORAGE_CONNECTORS"

pattern StackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE :: StackAttribute
pattern $bStackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE :: StackAttribute
$mStackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE = StackAttribute' "STORAGE_CONNECTOR_GOOGLE_DRIVE"

pattern StackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS :: StackAttribute
pattern $bStackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS :: StackAttribute
$mStackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS = StackAttribute' "STORAGE_CONNECTOR_HOMEFOLDERS"

pattern StackAttribute_STORAGE_CONNECTOR_ONE_DRIVE :: StackAttribute
pattern $bStackAttribute_STORAGE_CONNECTOR_ONE_DRIVE :: StackAttribute
$mStackAttribute_STORAGE_CONNECTOR_ONE_DRIVE :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_STORAGE_CONNECTOR_ONE_DRIVE = StackAttribute' "STORAGE_CONNECTOR_ONE_DRIVE"

pattern StackAttribute_THEME_NAME :: StackAttribute
pattern $bStackAttribute_THEME_NAME :: StackAttribute
$mStackAttribute_THEME_NAME :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_THEME_NAME = StackAttribute' "THEME_NAME"

pattern StackAttribute_USER_SETTINGS :: StackAttribute
pattern $bStackAttribute_USER_SETTINGS :: StackAttribute
$mStackAttribute_USER_SETTINGS :: forall r. StackAttribute -> (Void# -> r) -> (Void# -> r) -> r
StackAttribute_USER_SETTINGS = StackAttribute' "USER_SETTINGS"

{-# COMPLETE
  StackAttribute_ACCESS_ENDPOINTS,
  StackAttribute_EMBED_HOST_DOMAINS,
  StackAttribute_FEEDBACK_URL,
  StackAttribute_IAM_ROLE_ARN,
  StackAttribute_REDIRECT_URL,
  StackAttribute_STORAGE_CONNECTORS,
  StackAttribute_STORAGE_CONNECTOR_GOOGLE_DRIVE,
  StackAttribute_STORAGE_CONNECTOR_HOMEFOLDERS,
  StackAttribute_STORAGE_CONNECTOR_ONE_DRIVE,
  StackAttribute_THEME_NAME,
  StackAttribute_USER_SETTINGS,
  StackAttribute'
  #-}