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