module Stratosphere.AppStream.Stack ( module Exports, Stack(..), mkStack ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.AppStream.Stack.AccessEndpointProperty as Exports import {-# SOURCE #-} Stratosphere.AppStream.Stack.ApplicationSettingsProperty as Exports import {-# SOURCE #-} Stratosphere.AppStream.Stack.StorageConnectorProperty as Exports import {-# SOURCE #-} Stratosphere.AppStream.Stack.StreamingExperienceSettingsProperty as Exports import {-# SOURCE #-} Stratosphere.AppStream.Stack.UserSettingProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data Stack = -- | See: Stack {haddock_workaround_ :: (), -- | See: accessEndpoints :: (Prelude.Maybe [AccessEndpointProperty]), -- | See: applicationSettings :: (Prelude.Maybe ApplicationSettingsProperty), -- | See: attributesToDelete :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: deleteStorageConnectors :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: displayName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: embedHostDomains :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: feedbackURL :: (Prelude.Maybe (Value Prelude.Text)), -- | See: name :: (Prelude.Maybe (Value Prelude.Text)), -- | See: redirectURL :: (Prelude.Maybe (Value Prelude.Text)), -- | See: storageConnectors :: (Prelude.Maybe [StorageConnectorProperty]), -- | See: streamingExperienceSettings :: (Prelude.Maybe StreamingExperienceSettingsProperty), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: userSettings :: (Prelude.Maybe [UserSettingProperty])} deriving stock (Prelude.Eq, Prelude.Show) mkStack :: Stack mkStack = Stack {haddock_workaround_ = (), accessEndpoints = Prelude.Nothing, applicationSettings = Prelude.Nothing, attributesToDelete = Prelude.Nothing, deleteStorageConnectors = Prelude.Nothing, description = Prelude.Nothing, displayName = Prelude.Nothing, embedHostDomains = Prelude.Nothing, feedbackURL = Prelude.Nothing, name = Prelude.Nothing, redirectURL = Prelude.Nothing, storageConnectors = Prelude.Nothing, streamingExperienceSettings = Prelude.Nothing, tags = Prelude.Nothing, userSettings = Prelude.Nothing} instance ToResourceProperties Stack where toResourceProperties Stack {..} = ResourceProperties {awsType = "AWS::AppStream::Stack", supportsTags = Prelude.True, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AccessEndpoints" Prelude.<$> accessEndpoints, (JSON..=) "ApplicationSettings" Prelude.<$> applicationSettings, (JSON..=) "AttributesToDelete" Prelude.<$> attributesToDelete, (JSON..=) "DeleteStorageConnectors" Prelude.<$> deleteStorageConnectors, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "DisplayName" Prelude.<$> displayName, (JSON..=) "EmbedHostDomains" Prelude.<$> embedHostDomains, (JSON..=) "FeedbackURL" Prelude.<$> feedbackURL, (JSON..=) "Name" Prelude.<$> name, (JSON..=) "RedirectURL" Prelude.<$> redirectURL, (JSON..=) "StorageConnectors" Prelude.<$> storageConnectors, (JSON..=) "StreamingExperienceSettings" Prelude.<$> streamingExperienceSettings, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UserSettings" Prelude.<$> userSettings])} instance JSON.ToJSON Stack where toJSON Stack {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AccessEndpoints" Prelude.<$> accessEndpoints, (JSON..=) "ApplicationSettings" Prelude.<$> applicationSettings, (JSON..=) "AttributesToDelete" Prelude.<$> attributesToDelete, (JSON..=) "DeleteStorageConnectors" Prelude.<$> deleteStorageConnectors, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "DisplayName" Prelude.<$> displayName, (JSON..=) "EmbedHostDomains" Prelude.<$> embedHostDomains, (JSON..=) "FeedbackURL" Prelude.<$> feedbackURL, (JSON..=) "Name" Prelude.<$> name, (JSON..=) "RedirectURL" Prelude.<$> redirectURL, (JSON..=) "StorageConnectors" Prelude.<$> storageConnectors, (JSON..=) "StreamingExperienceSettings" Prelude.<$> streamingExperienceSettings, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "UserSettings" Prelude.<$> userSettings])) instance Property "AccessEndpoints" Stack where type PropertyType "AccessEndpoints" Stack = [AccessEndpointProperty] set newValue Stack {..} = Stack {accessEndpoints = Prelude.pure newValue, ..} instance Property "ApplicationSettings" Stack where type PropertyType "ApplicationSettings" Stack = ApplicationSettingsProperty set newValue Stack {..} = Stack {applicationSettings = Prelude.pure newValue, ..} instance Property "AttributesToDelete" Stack where type PropertyType "AttributesToDelete" Stack = ValueList Prelude.Text set newValue Stack {..} = Stack {attributesToDelete = Prelude.pure newValue, ..} instance Property "DeleteStorageConnectors" Stack where type PropertyType "DeleteStorageConnectors" Stack = Value Prelude.Bool set newValue Stack {..} = Stack {deleteStorageConnectors = Prelude.pure newValue, ..} instance Property "Description" Stack where type PropertyType "Description" Stack = Value Prelude.Text set newValue Stack {..} = Stack {description = Prelude.pure newValue, ..} instance Property "DisplayName" Stack where type PropertyType "DisplayName" Stack = Value Prelude.Text set newValue Stack {..} = Stack {displayName = Prelude.pure newValue, ..} instance Property "EmbedHostDomains" Stack where type PropertyType "EmbedHostDomains" Stack = ValueList Prelude.Text set newValue Stack {..} = Stack {embedHostDomains = Prelude.pure newValue, ..} instance Property "FeedbackURL" Stack where type PropertyType "FeedbackURL" Stack = Value Prelude.Text set newValue Stack {..} = Stack {feedbackURL = Prelude.pure newValue, ..} instance Property "Name" Stack where type PropertyType "Name" Stack = Value Prelude.Text set newValue Stack {..} = Stack {name = Prelude.pure newValue, ..} instance Property "RedirectURL" Stack where type PropertyType "RedirectURL" Stack = Value Prelude.Text set newValue Stack {..} = Stack {redirectURL = Prelude.pure newValue, ..} instance Property "StorageConnectors" Stack where type PropertyType "StorageConnectors" Stack = [StorageConnectorProperty] set newValue Stack {..} = Stack {storageConnectors = Prelude.pure newValue, ..} instance Property "StreamingExperienceSettings" Stack where type PropertyType "StreamingExperienceSettings" Stack = StreamingExperienceSettingsProperty set newValue Stack {..} = Stack {streamingExperienceSettings = Prelude.pure newValue, ..} instance Property "Tags" Stack where type PropertyType "Tags" Stack = [Tag] set newValue Stack {..} = Stack {tags = Prelude.pure newValue, ..} instance Property "UserSettings" Stack where type PropertyType "UserSettings" Stack = [UserSettingProperty] set newValue Stack {..} = Stack {userSettings = Prelude.pure newValue, ..}