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 }