1package ram 2 3import ( 4 "os" 5 6 "github.com/denverdino/aliyungo/common" 7) 8 9const ( 10 // RAMDefaultEndpoint is the default API endpoint of RAM services 11 RAMDefaultEndpoint = "https://ram.aliyuncs.com" 12 RAMAPIVersion = "2015-05-01" 13) 14 15type RamClient struct { 16 common.Client 17} 18 19func NewClient(accessKeyId string, accessKeySecret string) RamClientInterface { 20 return NewClientWithSecurityToken(accessKeyId, accessKeySecret, "") 21} 22 23func NewClientWithSecurityToken(accessKeyId string, accessKeySecret string, securityToken string) RamClientInterface { 24 endpoint := os.Getenv("RAM_ENDPOINT") 25 if endpoint == "" { 26 endpoint = RAMDefaultEndpoint 27 } 28 29 return NewClientWithEndpointAndSecurityToken(endpoint, accessKeyId, accessKeySecret, securityToken) 30} 31 32func NewClientWithEndpoint(endpoint string, accessKeyId string, accessKeySecret string) RamClientInterface { 33 return NewClientWithEndpointAndSecurityToken(endpoint, accessKeyId, accessKeySecret, "") 34} 35 36func NewClientWithEndpointAndSecurityToken(endpoint string, accessKeyId string, accessKeySecret string, securityToken string) RamClientInterface { 37 client := &RamClient{} 38 client.WithEndpoint(endpoint). 39 WithVersion(RAMAPIVersion). 40 WithAccessKeyId(accessKeyId). 41 WithAccessKeySecret(accessKeySecret). 42 WithSecurityToken(securityToken). 43 InitClient() 44 return client 45} 46