]>
Commit | Line | Data |
---|---|---|
bae9f6d2 JC |
1 | package credentials |
2 | ||
3 | import ( | |
4 | "github.com/aws/aws-sdk-go/aws/awserr" | |
5 | ) | |
6 | ||
7 | // StaticProviderName provides a name of Static provider | |
8 | const StaticProviderName = "StaticProvider" | |
9 | ||
10 | var ( | |
11 | // ErrStaticCredentialsEmpty is emitted when static credentials are empty. | |
12 | // | |
13 | // @readonly | |
14 | ErrStaticCredentialsEmpty = awserr.New("EmptyStaticCreds", "static credentials are empty", nil) | |
15 | ) | |
16 | ||
17 | // A StaticProvider is a set of credentials which are set programmatically, | |
18 | // and will never expire. | |
19 | type StaticProvider struct { | |
20 | Value | |
21 | } | |
22 | ||
23 | // NewStaticCredentials returns a pointer to a new Credentials object | |
24 | // wrapping a static credentials value provider. | |
25 | func NewStaticCredentials(id, secret, token string) *Credentials { | |
26 | return NewCredentials(&StaticProvider{Value: Value{ | |
27 | AccessKeyID: id, | |
28 | SecretAccessKey: secret, | |
29 | SessionToken: token, | |
30 | }}) | |
31 | } | |
32 | ||
33 | // NewStaticCredentialsFromCreds returns a pointer to a new Credentials object | |
34 | // wrapping the static credentials value provide. Same as NewStaticCredentials | |
35 | // but takes the creds Value instead of individual fields | |
36 | func NewStaticCredentialsFromCreds(creds Value) *Credentials { | |
37 | return NewCredentials(&StaticProvider{Value: creds}) | |
38 | } | |
39 | ||
40 | // Retrieve returns the credentials or error if the credentials are invalid. | |
41 | func (s *StaticProvider) Retrieve() (Value, error) { | |
42 | if s.AccessKeyID == "" || s.SecretAccessKey == "" { | |
43 | return Value{ProviderName: StaticProviderName}, ErrStaticCredentialsEmpty | |
44 | } | |
45 | ||
46 | if len(s.Value.ProviderName) == 0 { | |
47 | s.Value.ProviderName = StaticProviderName | |
48 | } | |
49 | return s.Value, nil | |
50 | } | |
51 | ||
52 | // IsExpired returns if the credentials are expired. | |
53 | // | |
54 | // For StaticProvider, the credentials never expired. | |
55 | func (s *StaticProvider) IsExpired() bool { | |
56 | return false | |
57 | } |