From 382a8367f5cb7ffaa1c4b13a73ed25d013cbbbbd Mon Sep 17 00:00:00 2001 From: Brian Rodgers Date: Wed, 2 Sep 2015 11:36:12 -0500 Subject: [PATCH] Make BlockDeviceMapping constructor private, add more specific factory methods. --- .../model/resource/AutoScaling.scala | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/AutoScaling.scala b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/AutoScaling.scala index 18385a21..70b35f5c 100644 --- a/src/main/scala/com/monsanto/arch/cloudformation/model/resource/AutoScaling.scala +++ b/src/main/scala/com/monsanto/arch/cloudformation/model/resource/AutoScaling.scala @@ -47,7 +47,7 @@ case class `AWS::AutoScaling::LaunchConfiguration`( object `AWS::AutoScaling::LaunchConfiguration` extends DefaultJsonProtocol { implicit val format: JsonFormat[`AWS::AutoScaling::LaunchConfiguration`] = jsonFormat10(`AWS::AutoScaling::LaunchConfiguration`.apply) } -case class BlockDeviceMapping( +case class BlockDeviceMapping private( DeviceName: Token[String], Ebs: Option[AutoScalingEBS] = None, NoDevice: Option[Token[Boolean]] = None, @@ -55,6 +55,18 @@ case class BlockDeviceMapping( ) object BlockDeviceMapping extends DefaultJsonProtocol { implicit val format: JsonFormat[BlockDeviceMapping] = jsonFormat4(BlockDeviceMapping.apply) + + def ebs( + DeviceName: Token[String], + Ebs: AutoScalingEBS, + NoDevice: Option[Token[Boolean]] = None + ) = BlockDeviceMapping(DeviceName, Some(Ebs), NoDevice, None) + + def virtual( + DeviceName: Token[String], + VirtualName: Token[String], + NoDevice: Option[Token[Boolean]] = None + ) = BlockDeviceMapping(DeviceName, None, NoDevice, Some(VirtualName)) } case class AutoScalingEBS(