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.