38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package client
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// ProxyConfiguration is the type that contains the proxy configurations of the OpsGenieClient.
|
|
type ProxyConfiguration struct {
|
|
Host string
|
|
Port int
|
|
Username string
|
|
Password string
|
|
ProxyURI string
|
|
Protocol string
|
|
}
|
|
|
|
// HTTPTransportSettings is the type that contains the HTTP transport layer configurations of the OpsGenieClient.
|
|
type HTTPTransportSettings struct {
|
|
ConnectionTimeout time.Duration
|
|
RequestTimeout time.Duration
|
|
MaxRetryAttempts int
|
|
}
|
|
|
|
// toString is an internal method that formats and returns proxy configurations of the OpsGenieClient.
|
|
func (proxy *ProxyConfiguration) toString() string {
|
|
if proxy.ProxyURI != "" {
|
|
return proxy.ProxyURI
|
|
}
|
|
if proxy.Protocol == "" {
|
|
proxy.Protocol = "http"
|
|
}
|
|
if proxy.Username != "" && proxy.Password != "" {
|
|
return fmt.Sprintf("%s://%s:%s@%s:%d", proxy.Protocol, proxy.Username, proxy.Password, proxy.Host, proxy.Port)
|
|
}
|
|
return fmt.Sprintf("%s://%s:%d", proxy.Protocol, proxy.Host, proxy.Port)
|
|
}
|