code: func (manager *metadataManager) parseMetadata(dockerContainer *types.ContainerJSON, task *apitask.Task, containerName string) Metadata {
  	dockerMD := parseDockerContainerMetadata(task.Arn, containerName, dockerContainer)
  	return Metadata{
  		cluster: manager.cluster,
  		taskMetadata: TaskMetadata{
  			containerName:          containerName,
  			taskARN:                task.Arn,
  			taskDefinitionFamily:   task.Family,
  			taskDefinitionRevision: task.Version,
  		},
  		dockerContainerMetadata: dockerMD,
  		containerInstanceARN:    manager.containerInstanceARN,
  		metadataStatus:          MetadataReady,
  		availabilityZone:        manager.availabilityZone,
  		hostPublicIPv4Address:   manager.hostPublicIPv4Address,
  	}
  }
docs: // parseMetadata gathers metadata from a docker container, and task
  // configuration and data then packages it for JSON Marshaling
  // Since we accept incomplete metadata fields, we should not return
  // errors here and handle them at this or the above stage.