in ShortHand/lambda/convert.py [0:0]
def convert_template(template):
    resources = {}
    counts = {}
    for ident, props in convert(template.get("Resources", [])):
        resource = {}
        if len(ident) == 1:
            name = None
            resource["Type"] = ident[0]
        else:
            name = ident[0]
            resource["Type"] = ident[1]
        resource["Properties"] = props
        types = resolve.resource(resource["Type"])
        if len(types) != 1:
            raise Exception("Ambiguous or unknown resource type: {}".format(resource["Type"]))
        resource["Type"] = types[0]
        # Handle un-named resources
        if not name:
            name = resource["Type"].split("::")[-1]
            if resource["Type"] not in counts:
                counts[resource["Type"]] = 1
            else:
                counts[resource["Type"]] += 1
            while "{}{}".format(name, counts[resource["Type"]]) in resources:
                counts[resource["Type"]] += 1
            name = "{}{}".format(name, counts[resource["Type"]])
        resources[name] = resource
    template["Resources"] = resources
    return template