Documentation
¶
Overview ¶
Package services implements a service client which is used to communicate with Splunk Cloud endpoints, each service being split into its own package.
Index ¶
- Constants
- type AuthnResponseHandler
- type BaseClient
- func (c *BaseClient) BuildHost(serviceCluster string, appendToHost string) string
- func (c *BaseClient) BuildURL(queryValues url.Values, serviceCluster string, urlPathParts ...string) (url.URL, error)
- func (c *BaseClient) BuildURLFromPathParams(queryValues url.Values, serviceCluster string, templ string, ...) (url.URL, error)
- func (c *BaseClient) BuildURLWithTenant(tenant string, tenantScoped bool, region string, queryValues url.Values, ...) (url.URL, error)
- func (c *BaseClient) Delete(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) Do(req *Request) (*http.Response, error)
- func (c *BaseClient) DoRequest(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) Get(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) GetDefaultTenant() string
- func (c *BaseClient) GetURL(serviceCluster string) *url.URL
- func (c *BaseClient) NewRequest(httpMethod, url string, body io.Reader, headers map[string]string) (*Request, error)
- func (c *BaseClient) Patch(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) Post(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) Put(requestParams gdepservices.RequestParams) (*http.Response, error)
- func (c *BaseClient) SetDefaultTenant(tenant string)
- func (c *BaseClient) SetOverrideHost(host string)
- func (c *BaseClient) UpdateTokenContext(ctx *idp.Context)
- type Config
- type ConfigurableRetryConfig
- type ConfigurableRetryResponseHandler
- type DefaultRetryConfig
- type DefaultRetryResponseHandler
- type Request
- type ResponseHandler
- type ResponseOrErrorHandler
- type RetryStrategyConfig
- type ShouldRetry
Constants ¶
const (
AuthorizationType = "Bearer"
)
Declare constants for service package
const (
// DefaultMaxAuthnAttempts defines the maximum number of retries that will be performed for a request encountering an authentication issue
DefaultMaxAuthnAttempts = 1
)
const UserAgent = "client-go"
UserAgent SDK Client Identifier
const Version = "1.12.0-beta.4"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthnResponseHandler ¶
type AuthnResponseHandler struct {
TokenRetriever idp.TokenRetriever
}
AuthnResponseHandler handles logic for updating the client access token in response to 401 errors
func (AuthnResponseHandler) HandleResponse ¶
func (rh AuthnResponseHandler) HandleResponse(client *BaseClient, request *Request, response *http.Response) (*http.Response, error)
HandleResponse will retry a request once after re-authenticating if a 401 response code is encountered
type BaseClient ¶
type BaseClient struct {
// contains filtered or unexported fields
}
A BaseClient for communicating with Splunk Cloud
func NewClient ¶
func NewClient(config *Config) (*BaseClient, error)
NewClient creates a Client with config values passed in
func (*BaseClient) BuildHost ¶
func (c *BaseClient) BuildHost(serviceCluster string, appendToHost string) string
BuildHost returns host including serviceCluster
func (*BaseClient) BuildURL ¶
func (c *BaseClient) BuildURL(queryValues url.Values, serviceCluster string, urlPathParts ...string) (url.URL, error)
BuildURL creates full Splunk Cloud URL using the client's defaultTenant
func (*BaseClient) BuildURLFromPathParams ¶
func (c *BaseClient) BuildURLFromPathParams(queryValues url.Values, serviceCluster string, templ string, pathParams interface{}) (url.URL, error)
BuildURLFromPathParams creates full Splunk Cloud URL from path template and path params
func (*BaseClient) BuildURLWithTenant ¶
func (c *BaseClient) BuildURLWithTenant(tenant string, tenantScoped bool, region string, queryValues url.Values, serviceCluster string, urlPathParts ...string) (url.URL, error)
BuildURLWithTenant creates full Splunk Cloud URL with tenant
func (*BaseClient) Delete ¶
func (c *BaseClient) Delete(requestParams gdepservices.RequestParams) (*http.Response, error)
Delete implements HTTP DELETE call RFC2616 does not explicitly forbid it but in practice some versions of server implementations (tomcat, netty etc) ignore bodies in DELETE requests
func (*BaseClient) Do ¶
func (c *BaseClient) Do(req *Request) (*http.Response, error)
Do sends out request and returns HTTP response
func (*BaseClient) DoRequest ¶
func (c *BaseClient) DoRequest(requestParams gdepservices.RequestParams) (*http.Response, error)
DoRequest creates and execute a new request
func (*BaseClient) Get ¶
func (c *BaseClient) Get(requestParams gdepservices.RequestParams) (*http.Response, error)
Get implements HTTP Get call
func (*BaseClient) GetDefaultTenant ¶
func (c *BaseClient) GetDefaultTenant() string
GetDefaultTenant returns the tenant used to form most request URIs
func (*BaseClient) GetURL ¶
func (c *BaseClient) GetURL(serviceCluster string) *url.URL
GetURL returns the Splunk Cloud scheme/host formed as URL
func (*BaseClient) NewRequest ¶
func (c *BaseClient) NewRequest(httpMethod, url string, body io.Reader, headers map[string]string) (*Request, error)
NewRequest creates a new HTTP Request and set proper header
func (*BaseClient) Patch ¶
func (c *BaseClient) Patch(requestParams gdepservices.RequestParams) (*http.Response, error)
Patch implements HTTP Patch call
func (*BaseClient) Post ¶
func (c *BaseClient) Post(requestParams gdepservices.RequestParams) (*http.Response, error)
Post implements HTTP POST call
func (*BaseClient) Put ¶
func (c *BaseClient) Put(requestParams gdepservices.RequestParams) (*http.Response, error)
Put implements HTTP PUT call
func (*BaseClient) SetDefaultTenant ¶
func (c *BaseClient) SetDefaultTenant(tenant string)
SetDefaultTenant updates the tenant used to form most request URIs
func (*BaseClient) SetOverrideHost ¶
func (c *BaseClient) SetOverrideHost(host string)
SetOverrideHost updates the host to force all requests to be made to `<scheme>://<overrideHost>/...` ignoring Config.Host and serviceCluster values
func (*BaseClient) UpdateTokenContext ¶
func (c *BaseClient) UpdateTokenContext(ctx *idp.Context)
UpdateTokenContext the access token in the Authorization: Bearer header and retains related context information
type Config ¶
type Config struct {
// TokenRetriever to gather access tokens to be sent in the Authorization: Bearer header on client initialization and upon encountering a 401 response
TokenRetriever idp.TokenRetriever
// Token to be sent in the Authorization: Bearer header (not required if TokenRetriever is specified)
Token string
// Tenant is the default Tenant used to form requests
Tenant string
// Host is the (optional) default host or host:port used to form requests, `"scp.splunk.com"` by default.
// NOTE: This is really a root domain, most requests will be formed using `<config.Scheme>://api.<config.Host>/<tenant>/<service>/<version>/...` where `api` could vary by service
Host string
// OverrideHost if set would override the Splunk Cloud root domain (`"scp.splunk.com"` by default) and service settings when forming the host such that requests would be made to `"<scheme>://<overrideHost>/..."` for all services.
// NOTE: Providing a Host and OverrideHost is not valid.
OverrideHost string
// Scheme is the (optional) default HTTP Scheme used to form requests, `"https"` by default
Scheme string
// Timeout is the (optional) default request-level timeout to use, 5 seconds by default
Timeout time.Duration
// ResponseHandlers is an (optional) slice of handlers to call after a response has been
// received in the client - handlers can optionally implement the ResponseOrErrorHandler
// interface as well for handling request errors as well as responses
ResponseHandlers []ResponseHandler
// RetryRequests Knob that will turn on and off retrying incoming service requests when they result in the service returning a 429 TooManyRequests Error or a connection reset error
RetryRequests bool
// RetryStrategyConfig
RetryConfig RetryStrategyConfig
// RoundTripper
RoundTripper http.RoundTripper
// TokenExpireWindow is the (optional) window within which a new token gets retreieved before the existing token expires. Default to 1 minute
TokenExpireWindow time.Duration
// ClientVersion contains the client name and its current version in string format
ClientVersion string
// TenantScoped is bool True if the hostnames are scoped to a specific tenant/region
TenantScoped bool
// Region is the name of the region that the tenant is contained in
Region string
}
Config is used to set the client specific attributes
type ConfigurableRetryConfig ¶
type ConfigurableRetryConfig struct {
// RetryNum defines the number of attempts to retry, if attempts > RetryNum then no more retries are attempted
RetryNum uint
// Interval defines the interval in milliseconds for exponential backoff where backoff = interval * 2^(retry num)
Interval int
// ShouldRetryFn defines a custom function to determine whether or not to retry the request
ShouldRetryFn ShouldRetry
}
ConfigurableRetryConfig that will accept a user configurable RetryNumber and Interval between retries
type ConfigurableRetryResponseHandler ¶
type ConfigurableRetryResponseHandler struct {
ConfigurableRetryConfig ConfigurableRetryConfig
}
ConfigurableRetryResponseHandler handles logic for retrying requests with user configurable settings for Retry number and interval
func (ConfigurableRetryResponseHandler) HandleRequestError ¶
func (configRh ConfigurableRetryResponseHandler) HandleRequestError(client *BaseClient, request *Request, err error) (*http.Response, error)
HandleRequestError will retry a request once a connection reset is encountered using a Configurable exponential BackOff Retry Strategy
func (ConfigurableRetryResponseHandler) HandleResponse ¶
func (configRh ConfigurableRetryResponseHandler) HandleResponse(client *BaseClient, request *Request, response *http.Response) (*http.Response, error)
HandleResponse will retry a request if a 429 is encountered using a configurable exponential BackOff Retry Strategy
type DefaultRetryConfig ¶
type DefaultRetryConfig struct {
}
DefaultRetryConfig that will use a default RetryNumber and a default Interval between retries
type DefaultRetryResponseHandler ¶
type DefaultRetryResponseHandler struct {
DefaultRetryConfig DefaultRetryConfig
}
DefaultRetryResponseHandler handles logic for retrying requests with default settings for Retry number and interval
func (DefaultRetryResponseHandler) HandleRequestError ¶
func (defRh DefaultRetryResponseHandler) HandleRequestError(client *BaseClient, request *Request, err error) (*http.Response, error)
HandleRequestError will retry a request if a connection reset is encountered using a Default exponential BackOff Retry Strategy
func (DefaultRetryResponseHandler) HandleResponse ¶
func (defRh DefaultRetryResponseHandler) HandleResponse(client *BaseClient, request *Request, response *http.Response) (*http.Response, error)
HandleResponse will retry a request once a 429 is encountered using a Default exponential BackOff Retry Strategy
type Request ¶
Request extends net/http.Request to track number of total attempts and error counts by type of error
func (*Request) GetNumErrorsByResponseCode ¶
GetNumErrorsByResponseCode returns number of attempts for a given response code >= 400
func (*Request) IncrementErrorsByType ¶
Increment the number of recorded errors for any previous request attempts, this is used for retrying requests
func (*Request) UpdateToken ¶
UpdateToken replaces the access token in the `Authorization: Bearer` header
type ResponseHandler ¶
type ResponseHandler interface {
HandleResponse(client *BaseClient, request *Request, response *http.Response) (*http.Response, error)
}
ResponseHandler defines the interface for implementing custom response handling logic, request errors are not handled - implement ResponseOrErrorHandler for handling of request errors
type ResponseOrErrorHandler ¶
type ResponseOrErrorHandler interface {
HandleRequestError(client *BaseClient, request *Request, err error) (*http.Response, error)
HandleResponse(client *BaseClient, request *Request, response *http.Response) (*http.Response, error)
}
ResponseOrErrorHandler defines the interface for implementing custom response handling logic including when response is returned for HandleResponse and when request returns with an error for HandleError
type RetryStrategyConfig ¶
type RetryStrategyConfig struct {
DefaultRetryConfig *DefaultRetryConfig
ConfigurableRetryConfig *ConfigurableRetryConfig
}
RetryStrategyConfig to be specified while creating a NewClient
type ShouldRetry ¶
type ShouldRetry func(request *Request, reqErr error, response *http.Response, maxRetries uint) bool
ShouldRetry returns whether or not the request should be retried based on the original request, request error received, response received, and max number of retries specified in the config
Directories
¶
| Path | Synopsis |
|---|---|
|
This files contains models that can't be auto-generated from codegen This files contains models that can't be auto-generated from codegen
|
This files contains models that can't be auto-generated from codegen This files contains models that can't be auto-generated from codegen |