1package config 2 3import "context" 4 5// UseARNRegionProvider is an interface for retrieving external configuration value for UseARNRegion 6type UseARNRegionProvider interface { 7 GetS3UseARNRegion(ctx context.Context) (value bool, found bool, err error) 8} 9 10// ResolveUseARNRegion extracts the first instance of a UseARNRegion from the config slice. 11// Additionally returns a boolean to indicate if the value was found in provided configs, and error if one is encountered. 12func ResolveUseARNRegion(ctx context.Context, configs []interface{}) (value bool, found bool, err error) { 13 for _, cfg := range configs { 14 if p, ok := cfg.(UseARNRegionProvider); ok { 15 value, found, err = p.GetS3UseARNRegion(ctx) 16 if err != nil || found { 17 break 18 } 19 } 20 } 21 return 22} 23