datahub/account.go (85 lines of code) (raw):

package datahub /* only support aliyun account now */ import ( "fmt" ) type Account interface { fmt.Stringer GetAccountId() string GetAccountKey() string GetSecurityToken() string } type AliyunAccount struct { // Aliyun Access key ID AccessId string // Aliyun Secret Access Key AccessKey string } // create new instance func NewAliyunAccount(accessId, accessKey string) *AliyunAccount { return &AliyunAccount{ AccessId: accessId, AccessKey: accessKey, } } func (a AliyunAccount) String() string { return fmt.Sprintf("accessId: %s, accessKey: %s", a.AccessId, a.AccessKey) } func (a AliyunAccount) GetAccountId() string { return a.AccessId } func (a AliyunAccount) GetAccountKey() string { return a.AccessKey } func (a AliyunAccount) GetSecurityToken() string { return "" } type StsCredential struct { // Access key ID AccessId string // Secret Access Key AccessKey string // Security Token SecurityToken string } // create new instance func NewStsCredential(accessId, accessKey, securityToken string) *StsCredential { return &StsCredential{ AccessId: accessId, AccessKey: accessKey, SecurityToken: securityToken, } } func (a StsCredential) String() string { return fmt.Sprintf("accessId: %s, accessKey: %s, securityToken: %s", a.AccessId, a.AccessKey, a.SecurityToken) } func (a StsCredential) GetAccountId() string { return a.AccessId } func (a StsCredential) GetAccountKey() string { return a.AccessKey } func (a StsCredential) GetSecurityToken() string { return a.SecurityToken } type DwarfCredential struct { AccessId string AccessKey string SecurityToken string DwarfToken string DwarfSign string } func NewDwarfCredential(accessId, accessKey, securityToken, dwarfToken, dwarfSign string) *DwarfCredential { return &DwarfCredential{ AccessId: accessId, AccessKey: accessKey, SecurityToken: securityToken, DwarfToken: dwarfToken, DwarfSign: dwarfSign, } } func (a DwarfCredential) String() string { return fmt.Sprintf("accessId: %s, accessKey: %s, securityToken: %s, dwarfToken:%s, dwarfSign:%s", a.AccessId, a.AccessKey, a.SecurityToken, a.DwarfToken, a.DwarfSign) } func (a DwarfCredential) GetAccountId() string { return a.AccessId } func (a DwarfCredential) GetAccountKey() string { return a.AccessKey } func (a DwarfCredential) GetSecurityToken() string { return a.SecurityToken }