func (cfg Config) GetPFlagSet(prefix string) *pflag.FlagSet {
	cmdFlags := pflag.NewFlagSet("Config", pflag.ExitOnError)
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.readRateLimiter.qps"), defaultConfig.WebAPI.ReadRateLimiter.QPS, "Defines the max rate of calls per second.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.readRateLimiter.burst"), defaultConfig.WebAPI.ReadRateLimiter.Burst, "Defines the maximum burst size.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.writeRateLimiter.qps"), defaultConfig.WebAPI.WriteRateLimiter.QPS, "Defines the max rate of calls per second.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.writeRateLimiter.burst"), defaultConfig.WebAPI.WriteRateLimiter.Burst, "Defines the maximum burst size.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.caching.size"), defaultConfig.WebAPI.Caching.Size, "Defines the maximum number of items to cache.")
	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "webApi.caching.resyncInterval"), defaultConfig.WebAPI.Caching.ResyncInterval.String(), "Defines the sync interval.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.caching.workers"), defaultConfig.WebAPI.Caching.Workers, "Defines the number of workers to start up to process items.")
	cmdFlags.Int(fmt.Sprintf("%v%v", prefix, "webApi.caching.maxSystemFailures"), defaultConfig.WebAPI.Caching.MaxSystemFailures, "Defines the number of failures to fetch a task before failing the task.")
	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "defaultWorkGroup"), defaultConfig.DefaultWorkGroup, "Defines the default workgroup to use when running on Athena unless overwritten by the task.")
	cmdFlags.String(fmt.Sprintf("%v%v", prefix, "defaultCatalog"), defaultConfig.DefaultCatalog, "Defines the default catalog to use when running on Athena unless overwritten by the task.")
	return cmdFlags
}
GetPFlagSet will return strongly types pflags for all fields in Config and its nested types. The format of the
flags is json-name.json-sub-name... etc.
package athena
import (
	"encoding/json"
	"reflect"
	"fmt"
	"github.com/spf13/pflag"
)
func (Config) elemValueOrNil(v interface{}) interface{} {
	if t := reflect.TypeOf(v); t.Kind() == reflect.Ptr {
		if reflect.ValueOf(v).IsNil() {
			return reflect.Zero(t.Elem()).Interface()
		} else {
			return reflect.ValueOf(v).Interface()
		}
	} else if v == nil {
		return reflect.Zero(t).Interface()
	}
	return v
}
func (Config) mustJsonMarshal(v interface{}) string {
	raw, err := json.Marshal(v)
	if err != nil {
		panic(err)
	}
	return string(raw)
}
func (Config) mustMarshalJSON(v json.Marshaler) string {
	raw, err := v.MarshalJSON()
	if err != nil {
		panic(err)
	}
	return string(raw)
}