code: func (task *Task) SetTerminalReason(reason string) {
  	seelog.Infof("Task [%s]: attempting to set terminal reason for task [%s]", task.Arn, reason)
  	task.terminalReasonOnce.Do(func() {
  		seelog.Infof("Task [%s]: setting terminal reason for task [%s]", task.Arn, reason)
  
  		// Converts the first letter of terminal reason into capital letter
  		words := strings.Fields(reason)
  		words[0] = strings.Title(words[0])
  		task.terminalReason = strings.Join(words, " ")
  	})
  }
docs: // SetTerminalReason sets the terminalReason string and this can only be set
  // once per the task's lifecycle. This field does not accept updates.