src

Go monorepo.
git clone git://code.dwrz.net/src
Log | Files | Refs

auto.go (932B)


      1 package defaults
      2 
      3 import (
      4 	"github.com/aws/aws-sdk-go-v2/aws"
      5 	"runtime"
      6 	"strings"
      7 )
      8 
      9 var getGOOS = func() string {
     10 	return runtime.GOOS
     11 }
     12 
     13 // ResolveDefaultsModeAuto is used to determine the effective aws.DefaultsMode when the mode
     14 // is set to aws.DefaultsModeAuto.
     15 func ResolveDefaultsModeAuto(region string, environment aws.RuntimeEnvironment) aws.DefaultsMode {
     16 	goos := getGOOS()
     17 	if goos == "android" || goos == "ios" {
     18 		return aws.DefaultsModeMobile
     19 	}
     20 
     21 	var currentRegion string
     22 	if len(environment.EnvironmentIdentifier) > 0 {
     23 		currentRegion = environment.Region
     24 	}
     25 
     26 	if len(currentRegion) == 0 && len(environment.EC2InstanceMetadataRegion) > 0 {
     27 		currentRegion = environment.EC2InstanceMetadataRegion
     28 	}
     29 
     30 	if len(region) > 0 && len(currentRegion) > 0 {
     31 		if strings.EqualFold(region, currentRegion) {
     32 			return aws.DefaultsModeInRegion
     33 		}
     34 		return aws.DefaultsModeCrossRegion
     35 	}
     36 
     37 	return aws.DefaultsModeStandard
     38 }