code: func (s *Scheduler) Services(appID string) (map[string]string, error) {
  	stackName, err := s.stackName(appID)
  	if err != nil {
  		return nil, err
  	}
  
  	stack, err := s.stack(aws.String(stackName))
  	if err != nil {
  		return nil, fmt.Errorf("error describing stack: %v", err)
  	}
  
  	o := output(stack, servicesOutput)
  	if o == nil {
  		// Nothing to do but wait until the outputs are set.
  		if *stack.StackStatus == cloudformation.StackStatusCreateInProgress {
  			return nil, nil
  		}
  
  		return nil, fmt.Errorf("stack didn't provide a \"%s\" output key", servicesOutput)
  	}
  
  	return extractProcessData(*o.OutputValue), nil
  }
docs: // Services returns a map that maps the name of the process (e.g. web) to the
  // ARN of the associated ECS service.