code: func ParseConsulCAConfig(raw map[string]interface{}) (*ConsulCAProviderConfig, error) {
  	var config ConsulCAProviderConfig
  	decodeConf := &mapstructure.DecoderConfig{
  		DecodeHook:       mapstructure.StringToTimeDurationHookFunc(),
  		Result:           &config,
  		WeaklyTypedInput: true,
  	}
  
  	decoder, err := mapstructure.NewDecoder(decodeConf)
  	if err != nil {
  		return nil, err
  	}
  
  	if err := decoder.Decode(raw); err != nil {
  		return nil, fmt.Errorf("error decoding config: %s", err)
  	}
  
  	return &config, nil
  }
docs: // ParseConsulCAConfig takes a raw config map and returns a parsed
  // ConsulCAProviderConfig.