Documentation
¶
Index ¶
- Constants
- func NewCredentials(command string, options ...func(*ProcessProvider)) *credentials.Credentials
- func NewCredentialsCommand(command *exec.Cmd, options ...func(*ProcessProvider)) *credentials.Credentials
- func NewCredentialsTimeout(command string, timeout time.Duration) *credentials.Credentials
- type ProcessProvider
Constants ¶
const ( // ProviderName is the name this credentials provider will label any // returned credentials Value with. ProviderName = `ProcessProvider` // ErrCodeProcessProviderParse error parsing process output ErrCodeProcessProviderParse = "ProcessProviderParseError" // ErrCodeProcessProviderVersion version error in output ErrCodeProcessProviderVersion = "ProcessProviderVersionError" // ErrCodeProcessProviderRequired required attribute missing in output ErrCodeProcessProviderRequired = "ProcessProviderRequiredError" // ErrCodeProcessProviderExecution execution of command failed ErrCodeProcessProviderExecution = "ProcessProviderExecutionError" // DefaultDuration is the default amount of time in minutes that the // credentials will be valid for. DefaultDuration = time.Duration(15) * time.Minute // DefaultBufSize limits buffer size from growing to an enormous // amount due to a faulty process. DefaultBufSize = 1024 // DefaultTimeout default limit on time a process can run. DefaultTimeout = time.Duration(1) * time.Minute )
Variables ¶
This section is empty.
Functions ¶
func NewCredentials ¶
func NewCredentials(command string, options ...func(*ProcessProvider)) *credentials.Credentials
NewCredentials returns a pointer to a new Credentials object wrapping the ProcessProvider. The credentials will expire every 15 minutes by default.
func NewCredentialsCommand ¶
func NewCredentialsCommand(command *exec.Cmd, options ...func(*ProcessProvider)) *credentials.Credentials
NewCredentialsCommand returns a pointer to a new Credentials object with the specified command, and default timeout, duration and max buffer size.
func NewCredentialsTimeout ¶
func NewCredentialsTimeout(command string, timeout time.Duration) *credentials.Credentials
NewCredentialsTimeout returns a pointer to a new Credentials object with the specified command and timeout, and default duration and max buffer size.
Types ¶
type ProcessProvider ¶
type ProcessProvider struct {
credentials.Expiry
// Expiry duration of the credentials. Defaults to 15 minutes if not set.
Duration time.Duration
// ExpiryWindow will allow the credentials to trigger refreshing prior to
// the credentials actually expiring. This is beneficial so race conditions
// with expiring credentials do not cause request to fail unexpectedly
// due to ExpiredTokenException exceptions.
//
// So a ExpiryWindow of 10s would cause calls to IsExpired() to return true
// 10 seconds before the credentials are actually expired.
//
// If ExpiryWindow is 0 or less it will be ignored.
ExpiryWindow time.Duration
// MaxBufSize limits memory usage from growing to an enormous
// amount due to a faulty process.
MaxBufSize int
// Timeout limits the time a process can run.
Timeout time.Duration
// contains filtered or unexported fields
}
ProcessProvider satisfies the credentials.Provider interface, and is a client to retrieve credentials from a process.
func (*ProcessProvider) IsExpired ¶
func (p *ProcessProvider) IsExpired() bool
IsExpired returns true if the credentials retrieved are expired, or not yet retrieved.
func (*ProcessProvider) Retrieve ¶
func (p *ProcessProvider) Retrieve() (credentials.Value, error)
Retrieve executes the 'credential_process' and returns the credentials.