code: func fixTimeAndHashFields(raw interface{}) error {
  	rawMap, ok := raw.(map[string]interface{})
  	if !ok {
  		return nil
  	}
  
  	if val, ok := rawMap["ExpirationTTL"]; ok {
  		if sval, ok := val.(string); ok {
  			d, err := time.ParseDuration(sval)
  			if err != nil {
  				return err
  			}
  			rawMap["ExpirationTTL"] = d
  		}
  	}
  
  	if val, ok := rawMap["ExpirationTime"]; ok {
  		if sval, ok := val.(string); ok {
  			t, err := time.Parse(time.RFC3339, sval)
  			if err != nil {
  				return err
  			}
  			rawMap["ExpirationTime"] = t
  		}
  	}
  
  	if val, ok := rawMap["CreateTime"]; ok {
  		if sval, ok := val.(string); ok {
  			t, err := time.Parse(time.RFC3339, sval)
  			if err != nil {
  				return err
  			}
  			rawMap["CreateTime"] = t
  		}
  	}
  
  	if val, ok := rawMap["Hash"]; ok {
  		if sval, ok := val.(string); ok {
  			rawMap["Hash"] = []byte(sval)
  		}
  	}
  	return nil
  }
docs: // fixTimeAndHashFields is used to help in decoding the ExpirationTTL, ExpirationTime, CreateTime, and Hash
  // attributes from the ACL Token/Policy create/update requests. It is needed
  // to help mapstructure decode things properly when decodeBody is used.