packages feed

stratosphere-appstream-1.0.0: gen/Stratosphere/AppStream/AppBlock/ScriptDetailsProperty.hs

module Stratosphere.AppStream.AppBlock.ScriptDetailsProperty (
        module Exports, ScriptDetailsProperty(..), mkScriptDetailsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppStream.AppBlock.S3LocationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ScriptDetailsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html>
    ScriptDetailsProperty {haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-executableparameters>
                           executableParameters :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-executablepath>
                           executablePath :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-scripts3location>
                           scriptS3Location :: S3LocationProperty,
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-timeoutinseconds>
                           timeoutInSeconds :: (Value Prelude.Integer)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkScriptDetailsProperty ::
  Value Prelude.Text
  -> S3LocationProperty
     -> Value Prelude.Integer -> ScriptDetailsProperty
mkScriptDetailsProperty
  executablePath
  scriptS3Location
  timeoutInSeconds
  = ScriptDetailsProperty
      {haddock_workaround_ = (), executablePath = executablePath,
       scriptS3Location = scriptS3Location,
       timeoutInSeconds = timeoutInSeconds,
       executableParameters = Prelude.Nothing}
instance ToResourceProperties ScriptDetailsProperty where
  toResourceProperties ScriptDetailsProperty {..}
    = ResourceProperties
        {awsType = "AWS::AppStream::AppBlock.ScriptDetails",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["ExecutablePath" JSON..= executablePath,
                            "ScriptS3Location" JSON..= scriptS3Location,
                            "TimeoutInSeconds" JSON..= timeoutInSeconds]
                           (Prelude.catMaybes
                              [(JSON..=) "ExecutableParameters"
                                 Prelude.<$> executableParameters]))}
instance JSON.ToJSON ScriptDetailsProperty where
  toJSON ScriptDetailsProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["ExecutablePath" JSON..= executablePath,
               "ScriptS3Location" JSON..= scriptS3Location,
               "TimeoutInSeconds" JSON..= timeoutInSeconds]
              (Prelude.catMaybes
                 [(JSON..=) "ExecutableParameters"
                    Prelude.<$> executableParameters])))
instance Property "ExecutableParameters" ScriptDetailsProperty where
  type PropertyType "ExecutableParameters" ScriptDetailsProperty = Value Prelude.Text
  set newValue ScriptDetailsProperty {..}
    = ScriptDetailsProperty
        {executableParameters = Prelude.pure newValue, ..}
instance Property "ExecutablePath" ScriptDetailsProperty where
  type PropertyType "ExecutablePath" ScriptDetailsProperty = Value Prelude.Text
  set newValue ScriptDetailsProperty {..}
    = ScriptDetailsProperty {executablePath = newValue, ..}
instance Property "ScriptS3Location" ScriptDetailsProperty where
  type PropertyType "ScriptS3Location" ScriptDetailsProperty = S3LocationProperty
  set newValue ScriptDetailsProperty {..}
    = ScriptDetailsProperty {scriptS3Location = newValue, ..}
instance Property "TimeoutInSeconds" ScriptDetailsProperty where
  type PropertyType "TimeoutInSeconds" ScriptDetailsProperty = Value Prelude.Integer
  set newValue ScriptDetailsProperty {..}
    = ScriptDetailsProperty {timeoutInSeconds = newValue, ..}