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: EcsTaskPropertiesProperty {haddock_workaround_ :: (), -- | See: containers :: (Prelude.Maybe [TaskContainerPropertiesProperty]), -- | See: enableExecuteCommand :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: ephemeralStorage :: (Prelude.Maybe EphemeralStorageProperty), -- | See: executionRoleArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: ipcMode :: (Prelude.Maybe (Value Prelude.Text)), -- | See: networkConfiguration :: (Prelude.Maybe NetworkConfigurationProperty), -- | See: pidMode :: (Prelude.Maybe (Value Prelude.Text)), -- | See: platformVersion :: (Prelude.Maybe (Value Prelude.Text)), -- | See: runtimePlatform :: (Prelude.Maybe RuntimePlatformProperty), -- | See: taskRoleArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: 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, ..}