code: func (task *Task) BuildLinuxResourceSpec() (specs.LinuxResources, error) {
  	linuxResourceSpec := specs.LinuxResources{}
  
  	// If task level CPU limits are requested, set CPU quota + CPU period
  	// Else set CPU shares
  	if task.CPU > 0 {
  		linuxCPUSpec, err := task.buildExplicitLinuxCPUSpec()
  		if err != nil {
  			return specs.LinuxResources{}, err
  		}
  		linuxResourceSpec.CPU = &linuxCPUSpec
  	} else {
  		linuxCPUSpec := task.buildImplicitLinuxCPUSpec()
  		linuxResourceSpec.CPU = &linuxCPUSpec
  	}
  
  	// Validate and build task memory spec
  	// NOTE: task memory specifications are optional
  	if task.Memory > 0 {
  		linuxMemorySpec, err := task.buildLinuxMemorySpec()
  		if err != nil {
  			return specs.LinuxResources{}, err
  		}
  		linuxResourceSpec.Memory = &linuxMemorySpec
  	}
  
  	return linuxResourceSpec, nil
  }
docs: // BuildLinuxResourceSpec returns a linuxResources object for the task cgroup