module Stratosphere.CodeDeploy.DeploymentGroup.ECSServiceProperty (
        ECSServiceProperty(..), mkECSServiceProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ECSServiceProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html>
    ECSServiceProperty {ECSServiceProperty -> ()
haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-clustername>
                        ECSServiceProperty -> Value Text
clusterName :: (Value Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-servicename>
                        ECSServiceProperty -> Value Text
serviceName :: (Value Prelude.Text)}
  deriving stock (ECSServiceProperty -> ECSServiceProperty -> Bool
(ECSServiceProperty -> ECSServiceProperty -> Bool)
-> (ECSServiceProperty -> ECSServiceProperty -> Bool)
-> Eq ECSServiceProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ECSServiceProperty -> ECSServiceProperty -> Bool
== :: ECSServiceProperty -> ECSServiceProperty -> Bool
$c/= :: ECSServiceProperty -> ECSServiceProperty -> Bool
/= :: ECSServiceProperty -> ECSServiceProperty -> Bool
Prelude.Eq, Int -> ECSServiceProperty -> ShowS
[ECSServiceProperty] -> ShowS
ECSServiceProperty -> String
(Int -> ECSServiceProperty -> ShowS)
-> (ECSServiceProperty -> String)
-> ([ECSServiceProperty] -> ShowS)
-> Show ECSServiceProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ECSServiceProperty -> ShowS
showsPrec :: Int -> ECSServiceProperty -> ShowS
$cshow :: ECSServiceProperty -> String
show :: ECSServiceProperty -> String
$cshowList :: [ECSServiceProperty] -> ShowS
showList :: [ECSServiceProperty] -> ShowS
Prelude.Show)
mkECSServiceProperty ::
  Value Prelude.Text -> Value Prelude.Text -> ECSServiceProperty
mkECSServiceProperty :: Value Text -> Value Text -> ECSServiceProperty
mkECSServiceProperty Value Text
clusterName Value Text
serviceName
  = ECSServiceProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), clusterName :: Value Text
clusterName = Value Text
clusterName,
       serviceName :: Value Text
serviceName = Value Text
serviceName}
instance ToResourceProperties ECSServiceProperty where
  toResourceProperties :: ECSServiceProperty -> ResourceProperties
toResourceProperties ECSServiceProperty {()
Value Text
haddock_workaround_ :: ECSServiceProperty -> ()
clusterName :: ECSServiceProperty -> Value Text
serviceName :: ECSServiceProperty -> Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
serviceName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CodeDeploy::DeploymentGroup.ECSService",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ClusterName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
clusterName,
                       Key
"ServiceName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serviceName]}
instance JSON.ToJSON ECSServiceProperty where
  toJSON :: ECSServiceProperty -> Value
toJSON ECSServiceProperty {()
Value Text
haddock_workaround_ :: ECSServiceProperty -> ()
clusterName :: ECSServiceProperty -> Value Text
serviceName :: ECSServiceProperty -> Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
serviceName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ClusterName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
clusterName,
         Key
"ServiceName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serviceName]
instance Property "ClusterName" ECSServiceProperty where
  type PropertyType "ClusterName" ECSServiceProperty = Value Prelude.Text
  set :: PropertyType "ClusterName" ECSServiceProperty
-> ECSServiceProperty -> ECSServiceProperty
set PropertyType "ClusterName" ECSServiceProperty
newValue ECSServiceProperty {()
Value Text
haddock_workaround_ :: ECSServiceProperty -> ()
clusterName :: ECSServiceProperty -> Value Text
serviceName :: ECSServiceProperty -> Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
serviceName :: Value Text
..}
    = ECSServiceProperty {clusterName :: Value Text
clusterName = PropertyType "ClusterName" ECSServiceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
serviceName :: Value Text
haddock_workaround_ :: ()
serviceName :: Value Text
..}
instance Property "ServiceName" ECSServiceProperty where
  type PropertyType "ServiceName" ECSServiceProperty = Value Prelude.Text
  set :: PropertyType "ServiceName" ECSServiceProperty
-> ECSServiceProperty -> ECSServiceProperty
set PropertyType "ServiceName" ECSServiceProperty
newValue ECSServiceProperty {()
Value Text
haddock_workaround_ :: ECSServiceProperty -> ()
clusterName :: ECSServiceProperty -> Value Text
serviceName :: ECSServiceProperty -> Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
serviceName :: Value Text
..}
    = ECSServiceProperty {serviceName :: Value Text
serviceName = PropertyType "ServiceName" ECSServiceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
haddock_workaround_ :: ()
clusterName :: Value Text
..}