// Returns a single group by its ID
func resource_aws_autoscaling_group_retrieve(id string, autoscalingconn *autoscaling.AutoScaling) (*autoscaling.AutoScalingGroup, error) {
	describeOpts := autoscaling.DescribeAutoScalingGroups{
		Names: []string{id},
	}

	log.Printf("[DEBUG] AutoScaling Group describe configuration: %#v", describeOpts)

	describeGroups, err := autoscalingconn.DescribeAutoScalingGroups(&describeOpts)

	if err != nil {
		return nil, fmt.Errorf("Error retrieving AutoScaling groups: %s", err)
	}

	// Verify AWS returned our sg
	if len(describeGroups.AutoScalingGroups) != 1 ||
		describeGroups.AutoScalingGroups[0].Name != id {
		if err != nil {
			return nil, fmt.Errorf("Unable to find AutoScaling group: %#v", describeGroups.AutoScalingGroups)
		}
	}

	g := describeGroups.AutoScalingGroups[0]

	return &g, nil
}
// Returns a single group by its ID
func resource_aws_launch_configuration_retrieve(id string, autoscalingconn *autoscaling.AutoScaling) (*autoscaling.LaunchConfiguration, error) {
	describeOpts := autoscaling.DescribeLaunchConfigurations{
		Names: []string{id},
	}

	log.Printf("[DEBUG] launch configuration describe configuration: %#v", describeOpts)

	describConfs, err := autoscalingconn.DescribeLaunchConfigurations(&describeOpts)

	if err != nil {
		return nil, fmt.Errorf("Error retrieving launch configuration: %s", err)
	}

	// Verify AWS returned our launch configuration
	if len(describConfs.LaunchConfigurations) != 1 ||
		describConfs.LaunchConfigurations[0].Name != id {
		if err != nil {
			return nil, fmt.Errorf("Unable to find launch configuration: %#v", describConfs.LaunchConfigurations)
		}
	}

	l := describConfs.LaunchConfigurations[0]

	return &l, nil
}