From 57f28a89bbe6363d457403f353a3d78b81c02f21 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 6 Jun 2016 13:25:27 -0400 Subject: [PATCH 1/2] [#95] add support for AWS::Lambda::Version and AWS::Lambda::Alias --- .../model/resource/Lambda.scala | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala index 584b054b..5fed2963 100644 --- a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala +++ b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala @@ -27,7 +27,7 @@ object Runtime { case class `AWS::Lambda::Function`(name: String, Code: Code, - Description: Option[String], + Description: Option[Token[String]], Handler: String, Runtime: Runtime, MemorySize: Option[Token[Int]] = None, @@ -92,3 +92,47 @@ object `AWS::Lambda::EventSourceMapping` extends DefaultJsonProtocol { implicit val format: JsonFormat[`AWS::Lambda::EventSourceMapping`] = jsonFormat7(`AWS::Lambda::EventSourceMapping`.apply) } +case class `AWS::Lambda::Version`(name: String, + FunctionName: Token[ResourceRef[`AWS::Lambda::Function`]], + Description: Option[String] = None, + CodeSha256: Option[Token[String]] = None, + override val Condition: Option[ConditionRef] = None) + extends Resource[`AWS::Lambda::Version`] + with HasArn { + + override def arn = `Fn::GetAtt`(Seq(name, "Arn")) + + def version = `Fn::GetAtt`(Seq(name, "Version")) + + def when(newCondition: Option[ConditionRef] = Condition) = copy(Condition = newCondition) +} + +object `AWS::Lambda::Version` extends DefaultJsonProtocol { + implicit val format: JsonFormat[`AWS::Lambda::Version`] = jsonFormat5( + `AWS::Lambda::Version`.apply) +} + +case class `AWS::Lambda::Alias`(name: String, + AliasName: Token[String], + FunctionName: Token[ResourceRef[`AWS::Lambda::Function`]], + FunctionVersion: Token[String], + Description: Option[Token[String]] = None, + override val Condition: Option[ConditionRef] = None) + extends Resource[`AWS::Lambda::Alias`] + with HasArn { + + override def arn = `Fn::GetAtt`(Seq(name, "Arn")) + + def when(newCondition: Option[ConditionRef] = Condition) = copy(Condition = newCondition) +} + +object `AWS::Lambda::Alias` extends DefaultJsonProtocol { + //implicit val format: JsonFormat[`AWS::Lambda::Alias`] = jsonFormat6(`AWS::Lambda::Alias`.apply) + implicit val format: JsonFormat[`AWS::Lambda::Alias`] = jsonFormat(`AWS::Lambda::Alias`.apply, + "name", + "Name", + "FunctionName", + "FunctionVersion", + "Description", + "Condition") +} From 80a02888093f0434217cb303cb784b38faaa3a2c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 6 Jun 2016 13:29:20 -0400 Subject: [PATCH 2/2] Revert breaking change to Lambda::Function which I did not intend to include in this patch --- .../monsanto/arch/cloudformation/model/resource/Lambda.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala index 5fed2963..3807b734 100644 --- a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala +++ b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/Lambda.scala @@ -27,7 +27,7 @@ object Runtime { case class `AWS::Lambda::Function`(name: String, Code: Code, - Description: Option[Token[String]], + Description: Option[String], Handler: String, Runtime: Runtime, MemorySize: Option[Token[Int]] = None,