diff --git a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/CloudFormation.scala b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/CloudFormation.scala index 6fc4bf74..b42bae6f 100644 --- a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/CloudFormation.scala +++ b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/CloudFormation.scala @@ -1,6 +1,6 @@ package com.monsanto.arch.cloudformation.model.resource -import com.monsanto.arch.cloudformation.model.{Token, ConditionRef} +import com.monsanto.arch.cloudformation.model._ import spray.json.JsonFormat /** @@ -38,3 +38,24 @@ object `AWS::CloudFormation::WaitCondition` { implicit val format: JsonFormat[`AWS::CloudFormation::WaitCondition`] = jsonFormat6(`AWS::CloudFormation::WaitCondition`.apply) } +case class `AWS::CloudFormation::Stack`(name: String, + TemplateURL: Token[String], + TimeoutInMinutes: Option[StringBackedInt] = None, + Parameters: Option[Map[String, String]] = None, + NotificationARNs: Option[Seq[Token[String]]] = None, + override val Condition: Option[ConditionRef] = None) + extends Resource[`AWS::CloudFormation::Stack`] + with HasArn { + + override def arn = `Fn::GetAtt`(Seq(name, "Arn")) + + def when(newCondition: Option[ConditionRef] = Condition) = copy(Condition = newCondition) +} + +object `AWS::CloudFormation::Stack` { + + import spray.json.DefaultJsonProtocol._ + + implicit val format: JsonFormat[`AWS::CloudFormation::Stack`] = jsonFormat6( + `AWS::CloudFormation::Stack`.apply) +}