func (spec *workSpec) AddWorkUnit(name string, data map[string]interface{}, meta coordinate.WorkUnitMeta) (coordinate.WorkUnit, error) { repr := restdata.WorkUnit{} repr.Name = name repr.Data = data repr.Meta = &meta unit := workUnit{workSpec: spec} err := spec.PostTo(spec.Representation.WorkUnitsURL, map[string]interface{}{}, repr, &unit.Representation) if err == nil { unit.URL, err = spec.Template(unit.Representation.URL, map[string]interface{}{}) } if err == nil { return &unit, nil } return nil, err }