packages feed

stratosphere-events-1.0.0: gen/Stratosphere/Events/Rule/EcsParametersProperty.hs

module Stratosphere.Events.Rule.EcsParametersProperty (
        module Exports, EcsParametersProperty(..), mkEcsParametersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Events.Rule.CapacityProviderStrategyItemProperty as Exports
import {-# SOURCE #-} Stratosphere.Events.Rule.NetworkConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Events.Rule.PlacementConstraintProperty as Exports
import {-# SOURCE #-} Stratosphere.Events.Rule.PlacementStrategyProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data EcsParametersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html>
    EcsParametersProperty {haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-capacityproviderstrategy>
                           capacityProviderStrategy :: (Prelude.Maybe [CapacityProviderStrategyItemProperty]),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-enableecsmanagedtags>
                           enableECSManagedTags :: (Prelude.Maybe (Value Prelude.Bool)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-enableexecutecommand>
                           enableExecuteCommand :: (Prelude.Maybe (Value Prelude.Bool)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-group>
                           group :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-launchtype>
                           launchType :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-networkconfiguration>
                           networkConfiguration :: (Prelude.Maybe NetworkConfigurationProperty),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-placementconstraints>
                           placementConstraints :: (Prelude.Maybe [PlacementConstraintProperty]),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-placementstrategies>
                           placementStrategies :: (Prelude.Maybe [PlacementStrategyProperty]),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-platformversion>
                           platformVersion :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-propagatetags>
                           propagateTags :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-referenceid>
                           referenceId :: (Prelude.Maybe (Value Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taglist>
                           tagList :: (Prelude.Maybe [Tag]),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount>
                           taskCount :: (Prelude.Maybe (Value Prelude.Integer)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskdefinitionarn>
                           taskDefinitionArn :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkEcsParametersProperty ::
  Value Prelude.Text -> EcsParametersProperty
mkEcsParametersProperty taskDefinitionArn
  = EcsParametersProperty
      {haddock_workaround_ = (), taskDefinitionArn = taskDefinitionArn,
       capacityProviderStrategy = Prelude.Nothing,
       enableECSManagedTags = Prelude.Nothing,
       enableExecuteCommand = Prelude.Nothing, group = Prelude.Nothing,
       launchType = Prelude.Nothing,
       networkConfiguration = Prelude.Nothing,
       placementConstraints = Prelude.Nothing,
       placementStrategies = Prelude.Nothing,
       platformVersion = Prelude.Nothing, propagateTags = Prelude.Nothing,
       referenceId = Prelude.Nothing, tagList = Prelude.Nothing,
       taskCount = Prelude.Nothing}
instance ToResourceProperties EcsParametersProperty where
  toResourceProperties EcsParametersProperty {..}
    = ResourceProperties
        {awsType = "AWS::Events::Rule.EcsParameters",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["TaskDefinitionArn" JSON..= taskDefinitionArn]
                           (Prelude.catMaybes
                              [(JSON..=) "CapacityProviderStrategy"
                                 Prelude.<$> capacityProviderStrategy,
                               (JSON..=) "EnableECSManagedTags" Prelude.<$> enableECSManagedTags,
                               (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand,
                               (JSON..=) "Group" Prelude.<$> group,
                               (JSON..=) "LaunchType" Prelude.<$> launchType,
                               (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration,
                               (JSON..=) "PlacementConstraints" Prelude.<$> placementConstraints,
                               (JSON..=) "PlacementStrategies" Prelude.<$> placementStrategies,
                               (JSON..=) "PlatformVersion" Prelude.<$> platformVersion,
                               (JSON..=) "PropagateTags" Prelude.<$> propagateTags,
                               (JSON..=) "ReferenceId" Prelude.<$> referenceId,
                               (JSON..=) "TagList" Prelude.<$> tagList,
                               (JSON..=) "TaskCount" Prelude.<$> taskCount]))}
instance JSON.ToJSON EcsParametersProperty where
  toJSON EcsParametersProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["TaskDefinitionArn" JSON..= taskDefinitionArn]
              (Prelude.catMaybes
                 [(JSON..=) "CapacityProviderStrategy"
                    Prelude.<$> capacityProviderStrategy,
                  (JSON..=) "EnableECSManagedTags" Prelude.<$> enableECSManagedTags,
                  (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand,
                  (JSON..=) "Group" Prelude.<$> group,
                  (JSON..=) "LaunchType" Prelude.<$> launchType,
                  (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration,
                  (JSON..=) "PlacementConstraints" Prelude.<$> placementConstraints,
                  (JSON..=) "PlacementStrategies" Prelude.<$> placementStrategies,
                  (JSON..=) "PlatformVersion" Prelude.<$> platformVersion,
                  (JSON..=) "PropagateTags" Prelude.<$> propagateTags,
                  (JSON..=) "ReferenceId" Prelude.<$> referenceId,
                  (JSON..=) "TagList" Prelude.<$> tagList,
                  (JSON..=) "TaskCount" Prelude.<$> taskCount])))
instance Property "CapacityProviderStrategy" EcsParametersProperty where
  type PropertyType "CapacityProviderStrategy" EcsParametersProperty = [CapacityProviderStrategyItemProperty]
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {capacityProviderStrategy = Prelude.pure newValue, ..}
instance Property "EnableECSManagedTags" EcsParametersProperty where
  type PropertyType "EnableECSManagedTags" EcsParametersProperty = Value Prelude.Bool
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {enableECSManagedTags = Prelude.pure newValue, ..}
instance Property "EnableExecuteCommand" EcsParametersProperty where
  type PropertyType "EnableExecuteCommand" EcsParametersProperty = Value Prelude.Bool
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {enableExecuteCommand = Prelude.pure newValue, ..}
instance Property "Group" EcsParametersProperty where
  type PropertyType "Group" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {group = Prelude.pure newValue, ..}
instance Property "LaunchType" EcsParametersProperty where
  type PropertyType "LaunchType" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {launchType = Prelude.pure newValue, ..}
instance Property "NetworkConfiguration" EcsParametersProperty where
  type PropertyType "NetworkConfiguration" EcsParametersProperty = NetworkConfigurationProperty
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {networkConfiguration = Prelude.pure newValue, ..}
instance Property "PlacementConstraints" EcsParametersProperty where
  type PropertyType "PlacementConstraints" EcsParametersProperty = [PlacementConstraintProperty]
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {placementConstraints = Prelude.pure newValue, ..}
instance Property "PlacementStrategies" EcsParametersProperty where
  type PropertyType "PlacementStrategies" EcsParametersProperty = [PlacementStrategyProperty]
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {placementStrategies = Prelude.pure newValue, ..}
instance Property "PlatformVersion" EcsParametersProperty where
  type PropertyType "PlatformVersion" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty
        {platformVersion = Prelude.pure newValue, ..}
instance Property "PropagateTags" EcsParametersProperty where
  type PropertyType "PropagateTags" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {propagateTags = Prelude.pure newValue, ..}
instance Property "ReferenceId" EcsParametersProperty where
  type PropertyType "ReferenceId" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {referenceId = Prelude.pure newValue, ..}
instance Property "TagList" EcsParametersProperty where
  type PropertyType "TagList" EcsParametersProperty = [Tag]
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {tagList = Prelude.pure newValue, ..}
instance Property "TaskCount" EcsParametersProperty where
  type PropertyType "TaskCount" EcsParametersProperty = Value Prelude.Integer
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {taskCount = Prelude.pure newValue, ..}
instance Property "TaskDefinitionArn" EcsParametersProperty where
  type PropertyType "TaskDefinitionArn" EcsParametersProperty = Value Prelude.Text
  set newValue EcsParametersProperty {..}
    = EcsParametersProperty {taskDefinitionArn = newValue, ..}