code: func (d *Duration) UnmarshalJSON(data []byte) error {
  	if len(data) == 0 {
  		return nil
  	}
  	var stringVar string
  	if err := json.Unmarshal(data, &stringVar); err != nil {
  		return trace.Wrap(err)
  	}
  	if stringVar == teleport.DurationNever {
  		*d = Duration(0)
  	} else {
  		out, err := time.ParseDuration(stringVar)
  		if err != nil {
  			return trace.BadParameter(err.Error())
  		}
  		*d = Duration(out)
  	}
  	return nil
  }
docs: // UnmarshalJSON marshals Duration to string