module Stratosphere.ECS.Service ( module Exports, Service(..), mkService ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ECS.Service.CapacityProviderStrategyItemProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.DeploymentConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.DeploymentControllerProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.ForceNewDeploymentProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.LoadBalancerProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.NetworkConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.PlacementConstraintProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.PlacementStrategyProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.ServiceConnectConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.ServiceRegistryProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.ServiceVolumeConfigurationProperty as Exports import {-# SOURCE #-} Stratosphere.ECS.Service.VpcLatticeConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data Service = -- | See: Service {haddock_workaround_ :: (), -- | See: availabilityZoneRebalancing :: (Prelude.Maybe (Value Prelude.Text)), -- | See: capacityProviderStrategy :: (Prelude.Maybe [CapacityProviderStrategyItemProperty]), -- | See: cluster :: (Prelude.Maybe (Value Prelude.Text)), -- | See: deploymentConfiguration :: (Prelude.Maybe DeploymentConfigurationProperty), -- | See: deploymentController :: (Prelude.Maybe DeploymentControllerProperty), -- | See: desiredCount :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: enableECSManagedTags :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: enableExecuteCommand :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: forceNewDeployment :: (Prelude.Maybe ForceNewDeploymentProperty), -- | See: healthCheckGracePeriodSeconds :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: launchType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: loadBalancers :: (Prelude.Maybe [LoadBalancerProperty]), -- | See: networkConfiguration :: (Prelude.Maybe NetworkConfigurationProperty), -- | See: placementConstraints :: (Prelude.Maybe [PlacementConstraintProperty]), -- | See: placementStrategies :: (Prelude.Maybe [PlacementStrategyProperty]), -- | See: platformVersion :: (Prelude.Maybe (Value Prelude.Text)), -- | See: propagateTags :: (Prelude.Maybe (Value Prelude.Text)), -- | See: role :: (Prelude.Maybe (Value Prelude.Text)), -- | See: schedulingStrategy :: (Prelude.Maybe (Value Prelude.Text)), -- | See: serviceConnectConfiguration :: (Prelude.Maybe ServiceConnectConfigurationProperty), -- | See: serviceName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: serviceRegistries :: (Prelude.Maybe [ServiceRegistryProperty]), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: taskDefinition :: (Prelude.Maybe (Value Prelude.Text)), -- | See: volumeConfigurations :: (Prelude.Maybe [ServiceVolumeConfigurationProperty]), -- | See: vpcLatticeConfigurations :: (Prelude.Maybe [VpcLatticeConfigurationProperty])} deriving stock (Prelude.Eq, Prelude.Show) mkService :: Service mkService = Service {haddock_workaround_ = (), availabilityZoneRebalancing = Prelude.Nothing, capacityProviderStrategy = Prelude.Nothing, cluster = Prelude.Nothing, deploymentConfiguration = Prelude.Nothing, deploymentController = Prelude.Nothing, desiredCount = Prelude.Nothing, enableECSManagedTags = Prelude.Nothing, enableExecuteCommand = Prelude.Nothing, forceNewDeployment = Prelude.Nothing, healthCheckGracePeriodSeconds = Prelude.Nothing, launchType = Prelude.Nothing, loadBalancers = Prelude.Nothing, networkConfiguration = Prelude.Nothing, placementConstraints = Prelude.Nothing, placementStrategies = Prelude.Nothing, platformVersion = Prelude.Nothing, propagateTags = Prelude.Nothing, role = Prelude.Nothing, schedulingStrategy = Prelude.Nothing, serviceConnectConfiguration = Prelude.Nothing, serviceName = Prelude.Nothing, serviceRegistries = Prelude.Nothing, tags = Prelude.Nothing, taskDefinition = Prelude.Nothing, volumeConfigurations = Prelude.Nothing, vpcLatticeConfigurations = Prelude.Nothing} instance ToResourceProperties Service where toResourceProperties Service {..} = ResourceProperties {awsType = "AWS::ECS::Service", supportsTags = Prelude.True, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AvailabilityZoneRebalancing" Prelude.<$> availabilityZoneRebalancing, (JSON..=) "CapacityProviderStrategy" Prelude.<$> capacityProviderStrategy, (JSON..=) "Cluster" Prelude.<$> cluster, (JSON..=) "DeploymentConfiguration" Prelude.<$> deploymentConfiguration, (JSON..=) "DeploymentController" Prelude.<$> deploymentController, (JSON..=) "DesiredCount" Prelude.<$> desiredCount, (JSON..=) "EnableECSManagedTags" Prelude.<$> enableECSManagedTags, (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand, (JSON..=) "ForceNewDeployment" Prelude.<$> forceNewDeployment, (JSON..=) "HealthCheckGracePeriodSeconds" Prelude.<$> healthCheckGracePeriodSeconds, (JSON..=) "LaunchType" Prelude.<$> launchType, (JSON..=) "LoadBalancers" Prelude.<$> loadBalancers, (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration, (JSON..=) "PlacementConstraints" Prelude.<$> placementConstraints, (JSON..=) "PlacementStrategies" Prelude.<$> placementStrategies, (JSON..=) "PlatformVersion" Prelude.<$> platformVersion, (JSON..=) "PropagateTags" Prelude.<$> propagateTags, (JSON..=) "Role" Prelude.<$> role, (JSON..=) "SchedulingStrategy" Prelude.<$> schedulingStrategy, (JSON..=) "ServiceConnectConfiguration" Prelude.<$> serviceConnectConfiguration, (JSON..=) "ServiceName" Prelude.<$> serviceName, (JSON..=) "ServiceRegistries" Prelude.<$> serviceRegistries, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TaskDefinition" Prelude.<$> taskDefinition, (JSON..=) "VolumeConfigurations" Prelude.<$> volumeConfigurations, (JSON..=) "VpcLatticeConfigurations" Prelude.<$> vpcLatticeConfigurations])} instance JSON.ToJSON Service where toJSON Service {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AvailabilityZoneRebalancing" Prelude.<$> availabilityZoneRebalancing, (JSON..=) "CapacityProviderStrategy" Prelude.<$> capacityProviderStrategy, (JSON..=) "Cluster" Prelude.<$> cluster, (JSON..=) "DeploymentConfiguration" Prelude.<$> deploymentConfiguration, (JSON..=) "DeploymentController" Prelude.<$> deploymentController, (JSON..=) "DesiredCount" Prelude.<$> desiredCount, (JSON..=) "EnableECSManagedTags" Prelude.<$> enableECSManagedTags, (JSON..=) "EnableExecuteCommand" Prelude.<$> enableExecuteCommand, (JSON..=) "ForceNewDeployment" Prelude.<$> forceNewDeployment, (JSON..=) "HealthCheckGracePeriodSeconds" Prelude.<$> healthCheckGracePeriodSeconds, (JSON..=) "LaunchType" Prelude.<$> launchType, (JSON..=) "LoadBalancers" Prelude.<$> loadBalancers, (JSON..=) "NetworkConfiguration" Prelude.<$> networkConfiguration, (JSON..=) "PlacementConstraints" Prelude.<$> placementConstraints, (JSON..=) "PlacementStrategies" Prelude.<$> placementStrategies, (JSON..=) "PlatformVersion" Prelude.<$> platformVersion, (JSON..=) "PropagateTags" Prelude.<$> propagateTags, (JSON..=) "Role" Prelude.<$> role, (JSON..=) "SchedulingStrategy" Prelude.<$> schedulingStrategy, (JSON..=) "ServiceConnectConfiguration" Prelude.<$> serviceConnectConfiguration, (JSON..=) "ServiceName" Prelude.<$> serviceName, (JSON..=) "ServiceRegistries" Prelude.<$> serviceRegistries, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TaskDefinition" Prelude.<$> taskDefinition, (JSON..=) "VolumeConfigurations" Prelude.<$> volumeConfigurations, (JSON..=) "VpcLatticeConfigurations" Prelude.<$> vpcLatticeConfigurations])) instance Property "AvailabilityZoneRebalancing" Service where type PropertyType "AvailabilityZoneRebalancing" Service = Value Prelude.Text set newValue Service {..} = Service {availabilityZoneRebalancing = Prelude.pure newValue, ..} instance Property "CapacityProviderStrategy" Service where type PropertyType "CapacityProviderStrategy" Service = [CapacityProviderStrategyItemProperty] set newValue Service {..} = Service {capacityProviderStrategy = Prelude.pure newValue, ..} instance Property "Cluster" Service where type PropertyType "Cluster" Service = Value Prelude.Text set newValue Service {..} = Service {cluster = Prelude.pure newValue, ..} instance Property "DeploymentConfiguration" Service where type PropertyType "DeploymentConfiguration" Service = DeploymentConfigurationProperty set newValue Service {..} = Service {deploymentConfiguration = Prelude.pure newValue, ..} instance Property "DeploymentController" Service where type PropertyType "DeploymentController" Service = DeploymentControllerProperty set newValue Service {..} = Service {deploymentController = Prelude.pure newValue, ..} instance Property "DesiredCount" Service where type PropertyType "DesiredCount" Service = Value Prelude.Integer set newValue Service {..} = Service {desiredCount = Prelude.pure newValue, ..} instance Property "EnableECSManagedTags" Service where type PropertyType "EnableECSManagedTags" Service = Value Prelude.Bool set newValue Service {..} = Service {enableECSManagedTags = Prelude.pure newValue, ..} instance Property "EnableExecuteCommand" Service where type PropertyType "EnableExecuteCommand" Service = Value Prelude.Bool set newValue Service {..} = Service {enableExecuteCommand = Prelude.pure newValue, ..} instance Property "ForceNewDeployment" Service where type PropertyType "ForceNewDeployment" Service = ForceNewDeploymentProperty set newValue Service {..} = Service {forceNewDeployment = Prelude.pure newValue, ..} instance Property "HealthCheckGracePeriodSeconds" Service where type PropertyType "HealthCheckGracePeriodSeconds" Service = Value Prelude.Integer set newValue Service {..} = Service {healthCheckGracePeriodSeconds = Prelude.pure newValue, ..} instance Property "LaunchType" Service where type PropertyType "LaunchType" Service = Value Prelude.Text set newValue Service {..} = Service {launchType = Prelude.pure newValue, ..} instance Property "LoadBalancers" Service where type PropertyType "LoadBalancers" Service = [LoadBalancerProperty] set newValue Service {..} = Service {loadBalancers = Prelude.pure newValue, ..} instance Property "NetworkConfiguration" Service where type PropertyType "NetworkConfiguration" Service = NetworkConfigurationProperty set newValue Service {..} = Service {networkConfiguration = Prelude.pure newValue, ..} instance Property "PlacementConstraints" Service where type PropertyType "PlacementConstraints" Service = [PlacementConstraintProperty] set newValue Service {..} = Service {placementConstraints = Prelude.pure newValue, ..} instance Property "PlacementStrategies" Service where type PropertyType "PlacementStrategies" Service = [PlacementStrategyProperty] set newValue Service {..} = Service {placementStrategies = Prelude.pure newValue, ..} instance Property "PlatformVersion" Service where type PropertyType "PlatformVersion" Service = Value Prelude.Text set newValue Service {..} = Service {platformVersion = Prelude.pure newValue, ..} instance Property "PropagateTags" Service where type PropertyType "PropagateTags" Service = Value Prelude.Text set newValue Service {..} = Service {propagateTags = Prelude.pure newValue, ..} instance Property "Role" Service where type PropertyType "Role" Service = Value Prelude.Text set newValue Service {..} = Service {role = Prelude.pure newValue, ..} instance Property "SchedulingStrategy" Service where type PropertyType "SchedulingStrategy" Service = Value Prelude.Text set newValue Service {..} = Service {schedulingStrategy = Prelude.pure newValue, ..} instance Property "ServiceConnectConfiguration" Service where type PropertyType "ServiceConnectConfiguration" Service = ServiceConnectConfigurationProperty set newValue Service {..} = Service {serviceConnectConfiguration = Prelude.pure newValue, ..} instance Property "ServiceName" Service where type PropertyType "ServiceName" Service = Value Prelude.Text set newValue Service {..} = Service {serviceName = Prelude.pure newValue, ..} instance Property "ServiceRegistries" Service where type PropertyType "ServiceRegistries" Service = [ServiceRegistryProperty] set newValue Service {..} = Service {serviceRegistries = Prelude.pure newValue, ..} instance Property "Tags" Service where type PropertyType "Tags" Service = [Tag] set newValue Service {..} = Service {tags = Prelude.pure newValue, ..} instance Property "TaskDefinition" Service where type PropertyType "TaskDefinition" Service = Value Prelude.Text set newValue Service {..} = Service {taskDefinition = Prelude.pure newValue, ..} instance Property "VolumeConfigurations" Service where type PropertyType "VolumeConfigurations" Service = [ServiceVolumeConfigurationProperty] set newValue Service {..} = Service {volumeConfigurations = Prelude.pure newValue, ..} instance Property "VpcLatticeConfigurations" Service where type PropertyType "VpcLatticeConfigurations" Service = [VpcLatticeConfigurationProperty] set newValue Service {..} = Service {vpcLatticeConfigurations = Prelude.pure newValue, ..}