module Stratosphere.ECS.Service.AdvancedConfigurationProperty ( AdvancedConfigurationProperty(..), mkAdvancedConfigurationProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Value data AdvancedConfigurationProperty = -- | See: AdvancedConfigurationProperty {haddock_workaround_ :: (), -- | See: alternateTargetGroupArn :: (Value Prelude.Text), -- | See: productionListenerRule :: (Prelude.Maybe (Value Prelude.Text)), -- | See: roleArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: testListenerRule :: (Prelude.Maybe (Value Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkAdvancedConfigurationProperty :: Value Prelude.Text -> AdvancedConfigurationProperty mkAdvancedConfigurationProperty alternateTargetGroupArn = AdvancedConfigurationProperty {haddock_workaround_ = (), alternateTargetGroupArn = alternateTargetGroupArn, productionListenerRule = Prelude.Nothing, roleArn = Prelude.Nothing, testListenerRule = Prelude.Nothing} instance ToResourceProperties AdvancedConfigurationProperty where toResourceProperties AdvancedConfigurationProperty {..} = ResourceProperties {awsType = "AWS::ECS::Service.AdvancedConfiguration", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["AlternateTargetGroupArn" JSON..= alternateTargetGroupArn] (Prelude.catMaybes [(JSON..=) "ProductionListenerRule" Prelude.<$> productionListenerRule, (JSON..=) "RoleArn" Prelude.<$> roleArn, (JSON..=) "TestListenerRule" Prelude.<$> testListenerRule]))} instance JSON.ToJSON AdvancedConfigurationProperty where toJSON AdvancedConfigurationProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AlternateTargetGroupArn" JSON..= alternateTargetGroupArn] (Prelude.catMaybes [(JSON..=) "ProductionListenerRule" Prelude.<$> productionListenerRule, (JSON..=) "RoleArn" Prelude.<$> roleArn, (JSON..=) "TestListenerRule" Prelude.<$> testListenerRule]))) instance Property "AlternateTargetGroupArn" AdvancedConfigurationProperty where type PropertyType "AlternateTargetGroupArn" AdvancedConfigurationProperty = Value Prelude.Text set newValue AdvancedConfigurationProperty {..} = AdvancedConfigurationProperty {alternateTargetGroupArn = newValue, ..} instance Property "ProductionListenerRule" AdvancedConfigurationProperty where type PropertyType "ProductionListenerRule" AdvancedConfigurationProperty = Value Prelude.Text set newValue AdvancedConfigurationProperty {..} = AdvancedConfigurationProperty {productionListenerRule = Prelude.pure newValue, ..} instance Property "RoleArn" AdvancedConfigurationProperty where type PropertyType "RoleArn" AdvancedConfigurationProperty = Value Prelude.Text set newValue AdvancedConfigurationProperty {..} = AdvancedConfigurationProperty {roleArn = Prelude.pure newValue, ..} instance Property "TestListenerRule" AdvancedConfigurationProperty where type PropertyType "TestListenerRule" AdvancedConfigurationProperty = Value Prelude.Text set newValue AdvancedConfigurationProperty {..} = AdvancedConfigurationProperty {testListenerRule = Prelude.pure newValue, ..}