packages feed

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

module Stratosphere.Batch.JobDefinition.EksPodPropertiesProperty (
        module Exports, EksPodPropertiesProperty(..),
        mkEksPodPropertiesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksContainerProperty as Exports
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksMetadataProperty as Exports
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.EksVolumeProperty as Exports
import {-# SOURCE #-} Stratosphere.Batch.JobDefinition.ImagePullSecretProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data EksPodPropertiesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html>
    EksPodPropertiesProperty {haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-containers>
                              containers :: (Prelude.Maybe [EksContainerProperty]),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-dnspolicy>
                              dnsPolicy :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-hostnetwork>
                              hostNetwork :: (Prelude.Maybe (Value Prelude.Bool)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-imagepullsecrets>
                              imagePullSecrets :: (Prelude.Maybe [ImagePullSecretProperty]),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-initcontainers>
                              initContainers :: (Prelude.Maybe [EksContainerProperty]),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-metadata>
                              metadata :: (Prelude.Maybe EksMetadataProperty),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-serviceaccountname>
                              serviceAccountName :: (Prelude.Maybe (Value Prelude.Text)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-shareprocessnamespace>
                              shareProcessNamespace :: (Prelude.Maybe (Value Prelude.Bool)),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekspodproperties.html#cfn-batch-jobdefinition-ekspodproperties-volumes>
                              volumes :: (Prelude.Maybe [EksVolumeProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkEksPodPropertiesProperty :: EksPodPropertiesProperty
mkEksPodPropertiesProperty
  = EksPodPropertiesProperty
      {haddock_workaround_ = (), containers = Prelude.Nothing,
       dnsPolicy = Prelude.Nothing, hostNetwork = Prelude.Nothing,
       imagePullSecrets = Prelude.Nothing,
       initContainers = Prelude.Nothing, metadata = Prelude.Nothing,
       serviceAccountName = Prelude.Nothing,
       shareProcessNamespace = Prelude.Nothing, volumes = Prelude.Nothing}
instance ToResourceProperties EksPodPropertiesProperty where
  toResourceProperties EksPodPropertiesProperty {..}
    = ResourceProperties
        {awsType = "AWS::Batch::JobDefinition.EksPodProperties",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "Containers" Prelude.<$> containers,
                            (JSON..=) "DnsPolicy" Prelude.<$> dnsPolicy,
                            (JSON..=) "HostNetwork" Prelude.<$> hostNetwork,
                            (JSON..=) "ImagePullSecrets" Prelude.<$> imagePullSecrets,
                            (JSON..=) "InitContainers" Prelude.<$> initContainers,
                            (JSON..=) "Metadata" Prelude.<$> metadata,
                            (JSON..=) "ServiceAccountName" Prelude.<$> serviceAccountName,
                            (JSON..=) "ShareProcessNamespace"
                              Prelude.<$> shareProcessNamespace,
                            (JSON..=) "Volumes" Prelude.<$> volumes])}
instance JSON.ToJSON EksPodPropertiesProperty where
  toJSON EksPodPropertiesProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "Containers" Prelude.<$> containers,
               (JSON..=) "DnsPolicy" Prelude.<$> dnsPolicy,
               (JSON..=) "HostNetwork" Prelude.<$> hostNetwork,
               (JSON..=) "ImagePullSecrets" Prelude.<$> imagePullSecrets,
               (JSON..=) "InitContainers" Prelude.<$> initContainers,
               (JSON..=) "Metadata" Prelude.<$> metadata,
               (JSON..=) "ServiceAccountName" Prelude.<$> serviceAccountName,
               (JSON..=) "ShareProcessNamespace"
                 Prelude.<$> shareProcessNamespace,
               (JSON..=) "Volumes" Prelude.<$> volumes]))
instance Property "Containers" EksPodPropertiesProperty where
  type PropertyType "Containers" EksPodPropertiesProperty = [EksContainerProperty]
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty {containers = Prelude.pure newValue, ..}
instance Property "DnsPolicy" EksPodPropertiesProperty where
  type PropertyType "DnsPolicy" EksPodPropertiesProperty = Value Prelude.Text
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty {dnsPolicy = Prelude.pure newValue, ..}
instance Property "HostNetwork" EksPodPropertiesProperty where
  type PropertyType "HostNetwork" EksPodPropertiesProperty = Value Prelude.Bool
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty
        {hostNetwork = Prelude.pure newValue, ..}
instance Property "ImagePullSecrets" EksPodPropertiesProperty where
  type PropertyType "ImagePullSecrets" EksPodPropertiesProperty = [ImagePullSecretProperty]
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty
        {imagePullSecrets = Prelude.pure newValue, ..}
instance Property "InitContainers" EksPodPropertiesProperty where
  type PropertyType "InitContainers" EksPodPropertiesProperty = [EksContainerProperty]
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty
        {initContainers = Prelude.pure newValue, ..}
instance Property "Metadata" EksPodPropertiesProperty where
  type PropertyType "Metadata" EksPodPropertiesProperty = EksMetadataProperty
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty {metadata = Prelude.pure newValue, ..}
instance Property "ServiceAccountName" EksPodPropertiesProperty where
  type PropertyType "ServiceAccountName" EksPodPropertiesProperty = Value Prelude.Text
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty
        {serviceAccountName = Prelude.pure newValue, ..}
instance Property "ShareProcessNamespace" EksPodPropertiesProperty where
  type PropertyType "ShareProcessNamespace" EksPodPropertiesProperty = Value Prelude.Bool
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty
        {shareProcessNamespace = Prelude.pure newValue, ..}
instance Property "Volumes" EksPodPropertiesProperty where
  type PropertyType "Volumes" EksPodPropertiesProperty = [EksVolumeProperty]
  set newValue EksPodPropertiesProperty {..}
    = EksPodPropertiesProperty {volumes = Prelude.pure newValue, ..}