code: func NewDefaultUpdateJob(config *aurora.TaskConfig) *UpdateJob {
  
  	req := aurora.NewJobUpdateRequest()
  	req.TaskConfig = config
  	req.Settings = NewUpdateSettings()
  
  	job := NewJob().(*AuroraJob)
  	job.jobConfig.TaskConfig = config
  
  	// Rebuild resource map from TaskConfig
  	for _, ptr := range config.Resources {
  		if ptr.NumCpus != nil {
  			job.resources[CPU].NumCpus = ptr.NumCpus
  			continue // Guard against Union violations that Go won't enforce
  		}
  
  		if ptr.RamMb != nil {
  			job.resources[RAM].RamMb = ptr.RamMb
  			continue
  		}
  
  		if ptr.DiskMb != nil {
  			job.resources[DISK].DiskMb = ptr.DiskMb
  			continue
  		}
  
  		if ptr.NumGpus != nil {
  			job.resources[GPU] = &aurora.Resource{NumGpus: ptr.NumGpus}
  			continue
  		}
  	}
  
  	// Mirrors defaults set by Pystachio
  	req.Settings.UpdateGroupSize = 1
  	req.Settings.WaitForBatchCompletion = false
  	req.Settings.MinWaitInInstanceRunningMs = 45000
  	req.Settings.MaxPerInstanceFailures = 0
  	req.Settings.MaxFailedInstances = 0
  	req.Settings.RollbackOnFailure = true
  
  	//TODO(rdelvalle): Deep copy job struct to avoid unexpected behavior
  	return &UpdateJob{Job: job, req: req}
  }
docs: // Create a default UpdateJob object.