packages feed

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

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