Documentation
¶
Index ¶
- Constants
- Variables
- func BoolPtr(literal bool) *bool
- func CreateFormPartName(template string, keyName string, keyValue string) string
- func Float32Ptr(literal float32) *float32
- func Float64Ptr(literal float64) *float64
- func HasBadFirstOrLastChar(str string) bool
- func Int64Ptr(literal int64) *int64
- func IsJSONMimeType(mimeType string) bool
- func IsJSONPatchMimeType(mimeType string) bool
- func PrettyPrint(result interface{}, resultName string)
- func StringNilMapper(s *string) string
- func StringPtr(literal string) *string
- func UserHomeDir() string
- func ValidateNotNil(object interface{}, errorMsg string) error
- func ValidateStruct(param interface{}, paramName string) error
- type DetailedResponse
- type FormData
- type RequestBuilder
- func (requestBuilder *RequestBuilder) AddFormData(fieldName string, fileName string, contentType string, contents interface{}) *RequestBuilder
- func (requestBuilder *RequestBuilder) AddHeader(name string, value string) *RequestBuilder
- func (requestBuilder *RequestBuilder) AddQuery(name string, value string) *RequestBuilder
- func (requestBuilder *RequestBuilder) Build() (*http.Request, error)
- func (requestBuilder *RequestBuilder) ConstructHTTPURL(endPoint string, pathSegments []string, pathParameters []string) *RequestBuilder
- func (requestBuilder *RequestBuilder) SetBodyContent(contentType string, jsonContent interface{}, jsonPatchContent interface{}, ...) (*RequestBuilder, error)
- func (requestBuilder *RequestBuilder) SetBodyContentForMultipart(contentType string, content interface{}, writer io.Writer) error
- func (requestBuilder *RequestBuilder) SetBodyContentJSON(bodyContent interface{}) (*RequestBuilder, error)
- func (requestBuilder *RequestBuilder) SetBodyContentStream(bodyContent io.Reader) (*RequestBuilder, error)
- func (requestBuilder *RequestBuilder) SetBodyContentString(bodyContent string) (*RequestBuilder, error)
- type ServiceOptions
- type TokenInfo
- type TokenManager
- type WatsonService
- func (service *WatsonService) DisableSSLVerification()
- func (service *WatsonService) Request(req *http.Request, result interface{}) (*DetailedResponse, error)
- func (service *WatsonService) SetDefaultHeaders(headers http.Header)
- func (service *WatsonService) SetHTTPClient(client *http.Client)
- func (service *WatsonService) SetIAMAPIKey(iamAPIKey string) error
- func (service *WatsonService) SetIAMAccessToken(iamAccessToken string)
- func (service *WatsonService) SetTokenManager(iamAPIKey string, iamAccessToken string, iamURL string) error
- func (service *WatsonService) SetURL(url string) error
- func (service *WatsonService) SetUsernameAndPassword(username string, password string) error
Constants ¶
const ( POST = http.MethodPost GET = http.MethodGet DELETE = http.MethodDelete PUT = http.MethodPut PATCH = http.MethodPatch )
common HTTP methods
const ( Accept = "Accept" ApplicationJSON = "application/json" ContentDisposition = "Content-Disposition" ContentType = "Content-Type" FormURLEncodedHeader = "application/x-www-form-urlencoded" )
common headers
const ( DefaultIAMURL = "https://iam.bluemix.net/identity/token" DefaultContentType = "application/x-www-form-urlencoded" DefaultAuthorization = "Basic Yng6Yng=" RequestTokenGrantType = "urn:ibm:params:oauth:grant-type:apikey" RequestTokenResponseType = "cloud_iam" RefreshTokenGrantType = "refresh_token" )
for handling token management
const ( APIKey = "apikey" ICPPrefix = "icp-" UserAgent = "User-Agent" Authorization = "Authorization" Bearer = "Bearer" IBM_CREDENTIAL_FILE_ENV = "IBM_CREDENTIALS_FILE" DEFAULT_CREDENTIAL_FILE_NAME = "ibm-credentials.env" URL = "url" USERNAME = "username" PASSWORD = "password" IAM_API_KEY = "iam_apikey" IAM_URL = "iam_url" )
common constants for core
const Version = "0.1.1"
Version of the SDK
Variables ¶
var Validate *validator.Validate
Validate single instance of Validate, it caches struct info
Functions ¶
func CreateFormPartName ¶
CreateFormPartName - creates a parameterized name for a multipart form part based on a template and a key name and value.
func Float32Ptr ¶
Float32Ptr : return pointer to float32 literal
func Float64Ptr ¶
Float64Ptr : return pointer to float64 literal
func HasBadFirstOrLastChar ¶ added in v0.2.2
HasBadFirstOrLastChar checks if the string starts with `{` or `"` or ends with `}` or `"`
func IsJSONMimeType ¶
IsJSONMimeType : Returns true iff the specified mimeType value represents a "JSON" mimetype.
func IsJSONPatchMimeType ¶
IsJSONPatchMimeType : Returns true iff the specified mimeType value represents a "JSON Patch" mimetype.
func StringNilMapper ¶
StringNilMapper - de-references the parameter 's' and returns the result, or "" if 's' is nil
func UserHomeDir ¶ added in v0.4.0
func UserHomeDir() string
UserHomeDir returns the user home directory
func ValidateNotNil ¶
ValidateNotNil - returns the specified error if 'object' is nil, nil otherwise
func ValidateStruct ¶
ValidateStruct - validates 'param' (assumed to be a struct) according to the annotations attached to its fields
Types ¶
type DetailedResponse ¶
type DetailedResponse struct { StatusCode int // HTTP status code Headers http.Header // HTTP response headers Result interface{} // response from service }
DetailedResponse : Generic response for Watson API
func (*DetailedResponse) GetHeaders ¶
func (response *DetailedResponse) GetHeaders() http.Header
GetHeaders returns the headers
func (*DetailedResponse) GetResult ¶
func (response *DetailedResponse) GetResult() interface{}
GetResult returns the result from the service
func (*DetailedResponse) GetStatusCode ¶
func (response *DetailedResponse) GetStatusCode() int
GetStatusCode returns the HTTP status code
func (*DetailedResponse) String ¶
func (response *DetailedResponse) String() string
type FormData ¶
type FormData struct {
// contains filtered or unexported fields
}
A FormData stores information for form data
type RequestBuilder ¶
type RequestBuilder struct { Method string URL *url.URL Header http.Header Body io.Reader Query map[string]string Form map[string]FormData }
A RequestBuilder is an HTTP request to be sent to the service
func NewRequestBuilder ¶
func NewRequestBuilder(method string) *RequestBuilder
NewRequestBuilder : Initiates a new request
func (*RequestBuilder) AddFormData ¶
func (requestBuilder *RequestBuilder) AddFormData(fieldName string, fileName string, contentType string, contents interface{}) *RequestBuilder
AddFormData makes an entry for Form data
func (*RequestBuilder) AddHeader ¶
func (requestBuilder *RequestBuilder) AddHeader(name string, value string) *RequestBuilder
AddHeader adds header name and value
func (*RequestBuilder) AddQuery ¶
func (requestBuilder *RequestBuilder) AddQuery(name string, value string) *RequestBuilder
AddQuery adds Query name and value
func (*RequestBuilder) Build ¶
func (requestBuilder *RequestBuilder) Build() (*http.Request, error)
Build the request
func (*RequestBuilder) ConstructHTTPURL ¶
func (requestBuilder *RequestBuilder) ConstructHTTPURL(endPoint string, pathSegments []string, pathParameters []string) *RequestBuilder
ConstructHTTPURL creates a properly encoded URL with path parameters.
func (*RequestBuilder) SetBodyContent ¶
func (requestBuilder *RequestBuilder) SetBodyContent(contentType string, jsonContent interface{}, jsonPatchContent interface{}, nonJSONContent interface{}) (*RequestBuilder, error)
SetBodyContent - sets the body content from one of three different sources, based on the content type
func (*RequestBuilder) SetBodyContentForMultipart ¶
func (requestBuilder *RequestBuilder) SetBodyContentForMultipart(contentType string, content interface{}, writer io.Writer) error
SetBodyContentForMultipart - sets the body content for a part in a multi-part form
func (*RequestBuilder) SetBodyContentJSON ¶
func (requestBuilder *RequestBuilder) SetBodyContentJSON(bodyContent interface{}) (*RequestBuilder, error)
SetBodyContentJSON - set the body content from a JSON structure
func (*RequestBuilder) SetBodyContentStream ¶
func (requestBuilder *RequestBuilder) SetBodyContentStream(bodyContent io.Reader) (*RequestBuilder, error)
SetBodyContentStream - set the body content from an io.Reader instance
func (*RequestBuilder) SetBodyContentString ¶
func (requestBuilder *RequestBuilder) SetBodyContentString(bodyContent string) (*RequestBuilder, error)
SetBodyContentString - set the body content from a string
type ServiceOptions ¶
type ServiceOptions struct { Version string URL string Username string Password string IAMApiKey string IAMAccessToken string IAMURL string }
ServiceOptions Service options
type TokenInfo ¶
type TokenInfo struct { AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` TokenType string `json:"token_type"` ExpiresIn int64 `json:"expires_in"` Expiration int64 `json:"expiration"` }
TokenInfo : Response struct from token request
type TokenManager ¶
type TokenManager struct {
// contains filtered or unexported fields
}
TokenManager : IAM token information
func NewTokenManager ¶
func NewTokenManager(iamAPIkey string, iamURL string, userAccessToken string) *TokenManager
NewTokenManager : Instantiate TokenManager
func (*TokenManager) GetToken ¶
func (tm *TokenManager) GetToken() string
GetToken : Return token set by user or fresh token The source of the token is determined by the following logic: 1. If user provides their own managed access token, assume it is valid and send it 2. If this class is managing tokens and does not yet have one, make a request for one 3. If this class is managing tokens and the token has expired refresh it. In case the refresh token is expired, get a new one If this class is managing tokens and has a valid token stored, send it
func (*TokenManager) SetAccessToken ¶
func (tm *TokenManager) SetAccessToken(userAccessToken string)
SetAccessToken : sets a self-managed IAM access token. The access token should be valid and not yet expired.
func (*TokenManager) SetIAMAPIKey ¶
func (tm *TokenManager) SetIAMAPIKey(key string)
SetIAMAPIKey : Set API key so that SDK manages token
type WatsonService ¶
type WatsonService struct { Options *ServiceOptions DefaultHeaders http.Header TokenManager *TokenManager Client *http.Client UserAgent string }
WatsonService Base Service
func NewWatsonService ¶
func NewWatsonService(options *ServiceOptions, serviceName, displayName string) (*WatsonService, error)
NewWatsonService Instantiate a Watson Service
func (*WatsonService) DisableSSLVerification ¶
func (service *WatsonService) DisableSSLVerification()
DisableSSLVerification skips SSL verification
func (*WatsonService) Request ¶
func (service *WatsonService) Request(req *http.Request, result interface{}) (*DetailedResponse, error)
Request performs the HTTP request
func (*WatsonService) SetDefaultHeaders ¶
func (service *WatsonService) SetDefaultHeaders(headers http.Header)
SetDefaultHeaders sets HTTP headers to be sent in every request.
func (*WatsonService) SetHTTPClient ¶
func (service *WatsonService) SetHTTPClient(client *http.Client)
SetHTTPClient updates the client handling the requests
func (*WatsonService) SetIAMAPIKey ¶
func (service *WatsonService) SetIAMAPIKey(iamAPIKey string) error
SetIAMAPIKey Sets the IAM API key
func (*WatsonService) SetIAMAccessToken ¶
func (service *WatsonService) SetIAMAccessToken(iamAccessToken string)
SetIAMAccessToken Sets the IAM access token
func (*WatsonService) SetTokenManager ¶
func (service *WatsonService) SetTokenManager(iamAPIKey string, iamAccessToken string, iamURL string) error
SetTokenManager Sets the Token Manager for IAM Authentication
func (*WatsonService) SetURL ¶
func (service *WatsonService) SetURL(url string) error
SetURL sets the service URL
func (*WatsonService) SetUsernameAndPassword ¶
func (service *WatsonService) SetUsernameAndPassword(username string, password string) error
SetUsernameAndPassword Sets the Username and Password