module Stratosphere.Batch.JobDefinition.EksContainerProperty ( module Exports, EksContainerProperty(..), mkEksContainerProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksContainerEnvironmentVariableProperty as Exports import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksContainerResourceRequirementsProperty as Exports import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksContainerSecurityContextProperty as Exports import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksContainerVolumeMountProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data EksContainerProperty = -- | See: EksContainerProperty {haddock_workaround_ :: (), -- | See: args :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: command :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: env :: (Prelude.Maybe [EksContainerEnvironmentVariableProperty]), -- | See: image :: (Value Prelude.Text), -- | See: imagePullPolicy :: (Prelude.Maybe (Value Prelude.Text)), -- | See: name :: (Prelude.Maybe (Value Prelude.Text)), -- | See: resources :: (Prelude.Maybe EksContainerResourceRequirementsProperty), -- | See: securityContext :: (Prelude.Maybe EksContainerSecurityContextProperty), -- | See: volumeMounts :: (Prelude.Maybe [EksContainerVolumeMountProperty])} deriving stock (Prelude.Eq, Prelude.Show) mkEksContainerProperty :: Value Prelude.Text -> EksContainerProperty mkEksContainerProperty image = EksContainerProperty {haddock_workaround_ = (), image = image, args = Prelude.Nothing, command = Prelude.Nothing, env = Prelude.Nothing, imagePullPolicy = Prelude.Nothing, name = Prelude.Nothing, resources = Prelude.Nothing, securityContext = Prelude.Nothing, volumeMounts = Prelude.Nothing} instance ToResourceProperties EksContainerProperty where toResourceProperties EksContainerProperty {..} = ResourceProperties {awsType = "AWS::Batch::JobDefinition.EksContainer", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["Image" JSON..= image] (Prelude.catMaybes [(JSON..=) "Args" Prelude.<$> args, (JSON..=) "Command" Prelude.<$> command, (JSON..=) "Env" Prelude.<$> env, (JSON..=) "ImagePullPolicy" Prelude.<$> imagePullPolicy, (JSON..=) "Name" Prelude.<$> name, (JSON..=) "Resources" Prelude.<$> resources, (JSON..=) "SecurityContext" Prelude.<$> securityContext, (JSON..=) "VolumeMounts" Prelude.<$> volumeMounts]))} instance JSON.ToJSON EksContainerProperty where toJSON EksContainerProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["Image" JSON..= image] (Prelude.catMaybes [(JSON..=) "Args" Prelude.<$> args, (JSON..=) "Command" Prelude.<$> command, (JSON..=) "Env" Prelude.<$> env, (JSON..=) "ImagePullPolicy" Prelude.<$> imagePullPolicy, (JSON..=) "Name" Prelude.<$> name, (JSON..=) "Resources" Prelude.<$> resources, (JSON..=) "SecurityContext" Prelude.<$> securityContext, (JSON..=) "VolumeMounts" Prelude.<$> volumeMounts]))) instance Property "Args" EksContainerProperty where type PropertyType "Args" EksContainerProperty = ValueList Prelude.Text set newValue EksContainerProperty {..} = EksContainerProperty {args = Prelude.pure newValue, ..} instance Property "Command" EksContainerProperty where type PropertyType "Command" EksContainerProperty = ValueList Prelude.Text set newValue EksContainerProperty {..} = EksContainerProperty {command = Prelude.pure newValue, ..} instance Property "Env" EksContainerProperty where type PropertyType "Env" EksContainerProperty = [EksContainerEnvironmentVariableProperty] set newValue EksContainerProperty {..} = EksContainerProperty {env = Prelude.pure newValue, ..} instance Property "Image" EksContainerProperty where type PropertyType "Image" EksContainerProperty = Value Prelude.Text set newValue EksContainerProperty {..} = EksContainerProperty {image = newValue, ..} instance Property "ImagePullPolicy" EksContainerProperty where type PropertyType "ImagePullPolicy" EksContainerProperty = Value Prelude.Text set newValue EksContainerProperty {..} = EksContainerProperty {imagePullPolicy = Prelude.pure newValue, ..} instance Property "Name" EksContainerProperty where type PropertyType "Name" EksContainerProperty = Value Prelude.Text set newValue EksContainerProperty {..} = EksContainerProperty {name = Prelude.pure newValue, ..} instance Property "Resources" EksContainerProperty where type PropertyType "Resources" EksContainerProperty = EksContainerResourceRequirementsProperty set newValue EksContainerProperty {..} = EksContainerProperty {resources = Prelude.pure newValue, ..} instance Property "SecurityContext" EksContainerProperty where type PropertyType "SecurityContext" EksContainerProperty = EksContainerSecurityContextProperty set newValue EksContainerProperty {..} = EksContainerProperty {securityContext = Prelude.pure newValue, ..} instance Property "VolumeMounts" EksContainerProperty where type PropertyType "VolumeMounts" EksContainerProperty = [EksContainerVolumeMountProperty] set newValue EksContainerProperty {..} = EksContainerProperty {volumeMounts = Prelude.pure newValue, ..}