Documentation ¶
Index ¶
- Constants
- type ClouditEngine
- type RequestOpts
- type RestClient
- func (client *RestClient) AuthenticatedHeaders() map[string]string
- func (client *RestClient) CreateRequestBaseURL(engine ClouditEngine, parts ...string) string
- func (client *RestClient) Delete(url string, opts *RequestOpts) (*http.Response, error)
- func (client *RestClient) Get(url string, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *RestClient) Patch(url string, JSONBody interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *RestClient) Post(url string, body interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *RestClient) Put(url string, body interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *RestClient) Request(method, url string, options RequestOpts) (*http.Response, error)
- type Result
- type UnexpectedResponseCodeError
- type UserAgent
Constants ¶
View Source
const (
DefaultUserAgent = "cloudit/1.0.0"
)
DefaultUserAgent is the default User-Agent string set in the request header.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClouditEngine ¶
type ClouditEngine string
ClouditEngine is type of cloud service in cloudit
const ( IAM ClouditEngine = "iam" ACE ClouditEngine = "ace" DNA ClouditEngine = "dna" )
type RequestOpts ¶
type RequestOpts struct { // JSONBody, if provided, will be encoded as JSON and used as the body of the HTTP request. The // content type of the request will default to "application/json" unless overridden by MoreHeaders. // It's an error to specify both a JSONBody and a RawBody. JSONBody interface{} // RawBody contains an io.ReadSeeker that will be consumed by the request directly. No content-type // will be set unless one is provided explicitly by MoreHeaders. RawBody io.ReadSeeker // JSONResponse, if provided, will be populated with the contents of the response body parsed as // JSON. JSONResponse interface{} // OkCodes contains a list of numeric HTTP status codes that should be interpreted as success. If // the response has a different code, an error will be returned. OkCodes []int // MoreHeaders specifies additional HTTP headers to be provide on the request. If a header is // provided with a blank value (""), that header will be *omitted* instead: use this to suppress // the default Accept header or an inferred Content-Type, for example. MoreHeaders map[string]string }
RequestOpts customizes the behavior of the provider.Request() method.
type RestClient ¶
type RestClient struct { // IdentityBase is the base URL used for a particular provider's identity // service - it will be used when issuing authenticatation requests. It // should point to the root resource of the identity service, not a specific // identity version. IdentityBase string // IdentityEndpoint is the identity endpoint. This may be a specific version // of the identity service. If this is the case, this endpoint is used rather // than querying versions first. IdentityEndpoint string // ClouditVersion ClouditVersion string // TenantId for Cloudit User TenantID string // TokenID is the ID of the most recently issued valid token. TokenID string // HTTPClient allows users to interject arbitrary http, https, or other transit behaviors. HTTPClient http.Client // UserAgent represents the User-Agent header in the HTTP request. UserAgent UserAgent // ReauthFunc is the function used to re-authenticate the user if the request // fails with a 401 HTTP response code. This a needed because there may be multiple // authentication functions for different Identity service versions. ReauthFunc func() error }
func (*RestClient) AuthenticatedHeaders ¶
func (client *RestClient) AuthenticatedHeaders() map[string]string
AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests.
func (*RestClient) CreateRequestBaseURL ¶
func (client *RestClient) CreateRequestBaseURL(engine ClouditEngine, parts ...string) string
func (*RestClient) Delete ¶
func (client *RestClient) Delete(url string, opts *RequestOpts) (*http.Response, error)
func (*RestClient) Get ¶
func (client *RestClient) Get(url string, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
func (*RestClient) Patch ¶
func (client *RestClient) Patch(url string, JSONBody interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
func (*RestClient) Post ¶
func (client *RestClient) Post(url string, body interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
func (*RestClient) Put ¶
func (client *RestClient) Put(url string, body interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)
func (*RestClient) Request ¶
func (client *RestClient) Request(method, url string, options RequestOpts) (*http.Response, error)
Request performs an HTTP request using the RestClient's current HTTPClient. An authentication header will automatically be provided.
type Result ¶
type Result struct { // Body is the payload of the HTTP response from the server. In most cases, // this will be the deserialized JSON structure. Body interface{} // Header contains the HTTP header structure from the original response. Header http.Header // Err is an error that occurred during the operation. It's deferred until // extraction to make it easier to chain the Extract call. Err error }
func (Result) ExtractInto ¶
type UnexpectedResponseCodeError ¶
type UnexpectedResponseCodeError struct { URL string Method string Expected []int Actual int Body []byte }
UnexpectedResponseCodeError is returned by the Request method when a response code other than those listed in OkCodes is encountered.
func (*UnexpectedResponseCodeError) Error ¶
func (err *UnexpectedResponseCodeError) Error() string
Click to show internal directories.
Click to hide internal directories.