{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "Template to create multiple instances.",

  "Parameters" : {
    "KeyName" : {
      "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",
      "Type" : "String"
    },
    "InstanceType" : {
      "Description" : "Instance type",
      "Type" : "String",
      "Default" : "m1.small",
      "AllowedValues" : [ "t1.micro", "m1.small", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "c1.medium", "c1.xlarge", "cc1.4xlarge" ],
      "ConstraintDescription" : "must be a valid EC2 instance type."
    },
    "ImageId" : {
      "Description" : "Name of the image to use",
      "Type" : "String",
      "Default" : "F17-x86_64-cfntools"
    },
    "NumInstances": {
      "Default": "1",
      "MinValue": "1",
      "MaxValue": "100",
      "Description" : "Number of instances to create",
      "Type": "Number"
    }
  },

  "Resources" : {
    "JobServerGroup" : {
      "Type" : "OS::Heat::InstanceGroup",
      "Properties" : {
        "LaunchConfigurationName" : { "Ref" : "JobServerConfig" },
        "Size" : {"Ref": "NumInstances"},
        "AvailabilityZones" : { "Fn::GetAZs" : "" }
      }
    },

    "JobServerConfig" : {
      "Type" : "AWS::AutoScaling::LaunchConfiguration",
      "Properties": {
        "ImageId"           : { "Ref" : "ImageId" },
        "InstanceType"      : { "Ref" : "InstanceType" },
        "KeyName"           : { "Ref" : "KeyName" },
        "NovaSchedulerHints": [ {"Key": "part", "Value": "long"},
                                {"Key": "ready", "Value": "short"} ],
        "UserData"          : { "Fn::Base64" : { "Fn::Join" : ["", [
          "#!/bin/bash -v\n"
        ]]}}
      }
    }
  }
}
