code: func NewTaskResponse(task *apitask.Task, containerMap map[string]*apicontainer.DockerContainer) *TaskResponse {
  	containers := []ContainerResponse{}
  	for _, container := range containerMap {
  		if container.Container.IsInternal() {
  			continue
  		}
  		containerResponse := NewContainerResponse(container, task.GetTaskENI())
  		containers = append(containers, containerResponse)
  	}
  
  	knownStatus := task.GetKnownStatus()
  	knownBackendStatus := knownStatus.BackendStatus()
  	desiredStatusInAgent := task.GetDesiredStatus()
  	desiredStatus := desiredStatusInAgent.BackendStatus()
  
  	if (knownBackendStatus == "STOPPED" && desiredStatus != "STOPPED") || (knownBackendStatus == "RUNNING" && desiredStatus == "PENDING") {
  		desiredStatus = ""
  	}
  
  	return &TaskResponse{
  		Arn:           task.Arn,
  		DesiredStatus: desiredStatus,
  		KnownStatus:   knownBackendStatus,
  		Family:        task.Family,
  		Version:       task.Version,
  		Containers:    containers,
  	}
  }
docs: // NewTaskResponse creates a TaskResponse for a task.