oss/credentials/credentials.go (34 lines of code) (raw):

package credentials import ( "context" "time" ) type Credentials struct { AccessKeyID string // Access key ID AccessKeySecret string // Access Key Secret SecurityToken string // Security Token Expires *time.Time // The time the credentials will expire at. } func (v Credentials) Expired() bool { if v.Expires != nil { return !v.Expires.After(time.Now().Round(0)) } return false } func (v Credentials) HasKeys() bool { return len(v.AccessKeyID) > 0 && len(v.AccessKeySecret) > 0 } type CredentialsProvider interface { GetCredentials(ctx context.Context) (Credentials, error) } // CredentialsProviderFunc provides a helper wrapping a function value to // satisfy the CredentialsProvider interface. type CredentialsProviderFunc func(context.Context) (Credentials, error) // GetCredentials delegates to the function value the CredentialsProviderFunc wraps. func (fn CredentialsProviderFunc) GetCredentials(ctx context.Context) (Credentials, error) { return fn(ctx) } type AnonymousCredentialsProvider struct{} func NewAnonymousCredentialsProvider() CredentialsProvider { return &AnonymousCredentialsProvider{} } func (*AnonymousCredentialsProvider) GetCredentials(_ context.Context) (Credentials, error) { return Credentials{AccessKeyID: "", AccessKeySecret: ""}, nil }