packages feed

stratosphere-appstream-1.0.0: gen/Stratosphere/AppStream/Stack.hs

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: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html>
    Stack {haddock_workaround_ :: (),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-accessendpoints>
           accessEndpoints :: (Prelude.Maybe [AccessEndpointProperty]),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-applicationsettings>
           applicationSettings :: (Prelude.Maybe ApplicationSettingsProperty),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-attributestodelete>
           attributesToDelete :: (Prelude.Maybe (ValueList Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-deletestorageconnectors>
           deleteStorageConnectors :: (Prelude.Maybe (Value Prelude.Bool)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-description>
           description :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-displayname>
           displayName :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-embedhostdomains>
           embedHostDomains :: (Prelude.Maybe (ValueList Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-feedbackurl>
           feedbackURL :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-name>
           name :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-redirecturl>
           redirectURL :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-storageconnectors>
           storageConnectors :: (Prelude.Maybe [StorageConnectorProperty]),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-streamingexperiencesettings>
           streamingExperienceSettings :: (Prelude.Maybe StreamingExperienceSettingsProperty),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-tags>
           tags :: (Prelude.Maybe [Tag]),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-usersettings>
           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, ..}