packages feed

stratosphere-batch-1.0.0: gen/Stratosphere/Batch/JobDefinition/MultiNodeEcsTaskPropertiesProperty.hs

module Stratosphere.Batch.JobDefinition.MultiNodeEcsTaskPropertiesProperty (
        module Exports, MultiNodeEcsTaskPropertiesProperty(..),
        mkMultiNodeEcsTaskPropertiesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.TaskContainerPropertiesProperty as Exports
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.VolumeProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data MultiNodeEcsTaskPropertiesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html>
    MultiNodeEcsTaskPropertiesProperty {haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-containers>
                                        containers :: (Prelude.Maybe [TaskContainerPropertiesProperty]),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-enableexecutecommand>
                                        enableExecuteCommand :: (Prelude.Maybe (Value Prelude.Bool)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-executionrolearn>
                                        executionRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-ipcmode>
                                        ipcMode :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-pidmode>
                                        pidMode :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-taskrolearn>
                                        taskRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-multinodeecstaskproperties.html#cfn-batch-jobdefinition-multinodeecstaskproperties-volumes>
                                        volumes :: (Prelude.Maybe [VolumeProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkMultiNodeEcsTaskPropertiesProperty ::
  MultiNodeEcsTaskPropertiesProperty
mkMultiNodeEcsTaskPropertiesProperty
  = MultiNodeEcsTaskPropertiesProperty
      {haddock_workaround_ = (), containers = Prelude.Nothing,
       enableExecuteCommand = Prelude.Nothing,
       executionRoleArn = Prelude.Nothing, ipcMode = Prelude.Nothing,
       pidMode = Prelude.Nothing, taskRoleArn = Prelude.Nothing,
       volumes = Prelude.Nothing}
instance ToResourceProperties MultiNodeEcsTaskPropertiesProperty where
  toResourceProperties MultiNodeEcsTaskPropertiesProperty {..}
    = ResourceProperties
        {awsType = "AWS::Batch::JobDefinition.MultiNodeEcsTaskProperties",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "Containers" Prelude.<$> containers,
                            (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand,
                            (JSON..=) "ExecutionRoleArn" Prelude.<$> executionRoleArn,
                            (JSON..=) "IpcMode" Prelude.<$> ipcMode,
                            (JSON..=) "PidMode" Prelude.<$> pidMode,
                            (JSON..=) "TaskRoleArn" Prelude.<$> taskRoleArn,
                            (JSON..=) "Volumes" Prelude.<$> volumes])}
instance JSON.ToJSON MultiNodeEcsTaskPropertiesProperty where
  toJSON MultiNodeEcsTaskPropertiesProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "Containers" Prelude.<$> containers,
               (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand,
               (JSON..=) "ExecutionRoleArn" Prelude.<$> executionRoleArn,
               (JSON..=) "IpcMode" Prelude.<$> ipcMode,
               (JSON..=) "PidMode" Prelude.<$> pidMode,
               (JSON..=) "TaskRoleArn" Prelude.<$> taskRoleArn,
               (JSON..=) "Volumes" Prelude.<$> volumes]))
instance Property "Containers" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "Containers" MultiNodeEcsTaskPropertiesProperty = [TaskContainerPropertiesProperty]
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {containers = Prelude.pure newValue, ..}
instance Property "EnableExecuteCommand" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "EnableExecuteCommand" MultiNodeEcsTaskPropertiesProperty = Value Prelude.Bool
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {enableExecuteCommand = Prelude.pure newValue, ..}
instance Property "ExecutionRoleArn" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "ExecutionRoleArn" MultiNodeEcsTaskPropertiesProperty = Value Prelude.Text
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {executionRoleArn = Prelude.pure newValue, ..}
instance Property "IpcMode" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "IpcMode" MultiNodeEcsTaskPropertiesProperty = Value Prelude.Text
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {ipcMode = Prelude.pure newValue, ..}
instance Property "PidMode" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "PidMode" MultiNodeEcsTaskPropertiesProperty = Value Prelude.Text
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {pidMode = Prelude.pure newValue, ..}
instance Property "TaskRoleArn" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "TaskRoleArn" MultiNodeEcsTaskPropertiesProperty = Value Prelude.Text
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {taskRoleArn = Prelude.pure newValue, ..}
instance Property "Volumes" MultiNodeEcsTaskPropertiesProperty where
  type PropertyType "Volumes" MultiNodeEcsTaskPropertiesProperty = [VolumeProperty]
  set newValue MultiNodeEcsTaskPropertiesProperty {..}
    = MultiNodeEcsTaskPropertiesProperty
        {volumes = Prelude.pure newValue, ..}