...

Source file src/github.com/aws/aws-sdk-go-v2/credentials/static_provider.go

Documentation: github.com/aws/aws-sdk-go-v2/credentials

     1  package credentials
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/aws/aws-sdk-go-v2/aws"
     7  )
     8  
     9  const (
    10  	// StaticCredentialsName provides a name of Static provider
    11  	StaticCredentialsName = "StaticCredentials"
    12  )
    13  
    14  // StaticCredentialsEmptyError is emitted when static credentials are empty.
    15  type StaticCredentialsEmptyError struct{}
    16  
    17  func (*StaticCredentialsEmptyError) Error() string {
    18  	return "static credentials are empty"
    19  }
    20  
    21  // A StaticCredentialsProvider is a set of credentials which are set, and will
    22  // never expire.
    23  type StaticCredentialsProvider struct {
    24  	Value aws.Credentials
    25  }
    26  
    27  // NewStaticCredentialsProvider return a StaticCredentialsProvider initialized with the AWS
    28  // credentials passed in.
    29  func NewStaticCredentialsProvider(key, secret, session string) StaticCredentialsProvider {
    30  	return StaticCredentialsProvider{
    31  		Value: aws.Credentials{
    32  			AccessKeyID:     key,
    33  			SecretAccessKey: secret,
    34  			SessionToken:    session,
    35  		},
    36  	}
    37  }
    38  
    39  // Retrieve returns the credentials or error if the credentials are invalid.
    40  func (s StaticCredentialsProvider) Retrieve(_ context.Context) (aws.Credentials, error) {
    41  	v := s.Value
    42  	if v.AccessKeyID == "" || v.SecretAccessKey == "" {
    43  		return aws.Credentials{
    44  			Source: StaticCredentialsName,
    45  		}, &StaticCredentialsEmptyError{}
    46  	}
    47  
    48  	if len(v.Source) == 0 {
    49  		v.Source = StaticCredentialsName
    50  	}
    51  
    52  	return v, nil
    53  }
    54  

View as plain text