code: func NewVolumeResource(ctx context.Context,
  	name string,
  	dockerVolumeName string,
  	scope string,
  	autoprovision bool,
  	driver string,
  	driverOptions map[string]string,
  	labels map[string]string,
  	client dockerapi.DockerClient) (*VolumeResource, error) {
  
  	if scope == TaskScope && autoprovision {
  		return nil, errors.Errorf("volume [%s] : task scoped volume could not be autoprovisioned", name)
  	}
  
  	v := &VolumeResource{
  		Name: name,
  		VolumeConfig: DockerVolumeConfig{
  			Scope:            scope,
  			Autoprovision:    autoprovision,
  			Driver:           driver,
  			DriverOpts:       driverOptions,
  			Labels:           labels,
  			DockerVolumeName: dockerVolumeName,
  		},
  		client: client,
  		ctx:    ctx,
  	}
  	v.initStatusToTransitions()
  	return v, nil
  }
docs: // NewVolumeResource returns a docker volume wrapper object