code: func (s *Scheduler) executeStackUpdate(input *updateStackInput) error {
  	stack, err := s.stack(input.StackName)
  	if err != nil {
  		return err
  	}
  
  	i := &cloudformation.UpdateStackInput{
  		StackName:  input.StackName,
  		Parameters: updateParameters(input.Parameters, stack, input.Template),
  		Tags:       input.Tags,
  	}
  	if input.Template != nil {
  		i.TemplateURL = input.Template.URL
  	} else {
  		i.UsePreviousTemplate = aws.Bool(true)
  	}
  
  	_, err = s.cloudformation.UpdateStack(i)
  	if err != nil {
  		if err, ok := err.(awserr.Error); ok {
  			if err.Code() == "ValidationError" && err.Message() == "No updates are to be performed." {
  				return nil
  			}
  		}
  
  		return fmt.Errorf("error updating stack: %v", err)
  	}
  
  	return nil
  }
docs: // executeStackUpdate performs a stack update.