Documentation ¶
Index ¶
- Constants
- Variables
- func BuildHeaders(opts interface{}) (map[string]string, error)
- func BuildQueryString(opts interface{}) (*url.URL, error)
- func BuildRequestBody(opts interface{}, parent string) (map[string]interface{}, error)
- func BuildSliceRequestBody(opts interface{}) ([]map[string]interface{}, error)
- func ContainsString(s []string, e string) bool
- func ExtractNextURL(links []Link) (string, error)
- func FailOnErrorF(err error, msg string, args ...interface{})
- func IDSliceToQueryString(name string, ids []int) string
- func IntToPointer(i int) *int
- func IntWithinRange(val, min, max int) bool
- func MaybeInt(original int) *int
- func MaybeString(original string) *string
- func NativeMapToStruct(nativeMap interface{}, obj interface{}) error
- func NormalizePathURL(basePath, rawPath string) (string, error)
- func NormalizeURL(url string) string
- func StripLastSlashURL(url string) string
- func TranslateValidationError(err error) error
- func ValidateStruct(s interface{}) error
- func WaitFor(timeout int, predicate func() (bool, error)) error
- type APITokenAPISettings
- type APITokenClientSettings
- type APITokenOptions
- type AuthClientSettings
- type AuthOptions
- type AuthOptionsBuilder
- type AuthResult
- type BaseError
- type CIDR
- type Currency
- type EnabledState
- type EndpointLocator
- type EndpointOpts
- type EnumValidator
- type Err400er
- type Err401er
- type Err403er
- type Err404er
- type Err405er
- type Err408er
- type Err409er
- type Err429er
- type Err500er
- type Err503er
- type ErrAPIKeyProvided
- type ErrAppCredMissingSecret
- type ErrDefault400
- type ErrDefault401
- type ErrDefault403
- type ErrDefault404
- type ErrDefault405
- type ErrDefault408
- type ErrDefault409
- type ErrDefault429
- type ErrDefault500
- type ErrDefault503
- type ErrDomainIDOrDomainName
- type ErrDomainIDWithToken
- type ErrDomainIDWithUserID
- type ErrDomainNameWithToken
- type ErrDomainNameWithUserID
- type ErrEndpointNotFound
- type ErrErrorAfterReauthentication
- type ErrInvalidInput
- type ErrMissingAnyoneOfEnvironmentVariables
- type ErrMissingEnvironmentVariable
- type ErrMissingInput
- type ErrMissingPassword
- type ErrMultipleResourcesFound
- type ErrResourceNotFound
- type ErrResult
- type ErrScopeDomainIDOrDomainName
- type ErrScopeEmpty
- type ErrScopeProjectIDAlone
- type ErrScopeProjectIDOrProjectName
- type ErrServiceNotFound
- type ErrTenantIDProvided
- type ErrTenantNameProvided
- type ErrTimeOut
- type ErrUnableToReauthenticate
- type ErrUnexpectedResponseCode
- type ErrUnexpectedType
- type ErrUserIDWithToken
- type ErrUsernameOrUserID
- type ErrUsernameWithToken
- type GcoreErrorType
- type HeaderResult
- type IPVersion
- type ItemID
- type ItemIDName
- type ItemName
- type JSONRFC1123
- type JSONRFC3339Date
- type JSONRFC3339Milli
- type JSONRFC3339MilliNoZ
- type JSONRFC3339NoZ
- type JSONRFC3339Z
- type JSONRFC3339ZColon
- type JSONRFC3339ZNoT
- type JSONRFC3339ZNoTNoZ
- type JSONRFC3339ZZ
- type JSONUnix
- type Link
- type MAC
- type PasswordAPISettings
- type ProviderClient
- func (client *ProviderClient) AccessToken() string
- func (client *ProviderClient) AuthenticatedHeaders() (m map[string]string)
- func (client *ProviderClient) CopyTokensFrom(other *ProviderClient)
- func (client *ProviderClient) GetAuthResult() AuthResult
- func (client *ProviderClient) IsDebug() bool
- func (client *ProviderClient) IsThrowaway() bool
- func (client *ProviderClient) Reauthenticate(previousToken string) error
- func (client *ProviderClient) RefreshToken() string
- func (client *ProviderClient) Request(method, url string, options *RequestOpts) (*http.Response, error)
- func (client *ProviderClient) SetAPIToken(opt APITokenOptions) error
- func (client *ProviderClient) SetDebug(debug bool)
- func (client *ProviderClient) SetThrowaway(v bool)
- func (client *ProviderClient) SetTokensAndAuthResult(r AuthResult) error
- func (client ProviderClient) ToTokenOptions() TokenOptions
- func (client *ProviderClient) UseTokenLock()
- type RequestOpts
- type Result
- func (r Result) ExtractInto(to interface{}) error
- func (r Result) ExtractIntoMapPtr(to interface{}, label string) error
- func (r Result) ExtractIntoSlicePtr(to interface{}, label string) error
- func (r Result) ExtractIntoStructPtr(to interface{}, label string) error
- func (r Result) PrettyPrintJSON() string
- type ServiceClient
- func (client *ServiceClient) BaseServiceURL(parts ...string) string
- func (client *ServiceClient) Delete(url string, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) DeleteWithResponse(url string, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Get(url string, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Head(url string, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Patch(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Post(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Put(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) Request(method, url string, options *RequestOpts) (*http.Response, error)
- func (client *ServiceClient) ResourceBaseURL() string
- func (client *ServiceClient) ServiceURL(parts ...string) string
- type StatusCodeError
- type TokenAPISettings
- type TokenClientSettings
- type TokenOptions
- type TokenOptionsBuilder
- type URL
- type UserAgent
Constants ¶
const DefaultUserAgent = "gcorecloud/0.0.1"
DefaultUserAgent is the default User-Agent string set in the request header.
const RFC3339Date = "2006-01-02"
RFC3339Date describes a common time format used by some API responses.
const RFC3339Milli = "2006-01-02T15:04:05.999999Z"
RFC3339Milli describes a common time format used by some API responses.
const RFC3339MilliNoZ = "2006-01-02T15:04:05.999999"
RFC3339MilliNoZ is the time format with millis.
const RFC3339NoZ = "2006-01-02T15:04:05"
RFC3339NoZ is the time format used in Heat (Orchestration).
const RFC3339Z = "2006-01-02T15:04:05-0700"
RFC3339Z is the time format used in Heat (Orchestration).
const RFC3339ZColon = "2006-01-02T15:04:05-07:00"
RFC3339ZColon is the time format used in secrets.
const RFC3339ZNoT = "2006-01-02 15:04:05-07:00"
RFC3339ZNoT is the time format used in Zun (Containers Service).
const RFC3339ZNoTNoZ = "2006-01-02 15:04:05"
RFC3339ZNoTNoZ is another time format used in Zun (Containers Service).
const RFC3339ZZ = "2006-01-02T15:04:05Z"
RFC3339ZZ describes a common time format used by some API responses.
Variables ¶
var ( Validate *validator.Validate Trans ut.Translator )
Functions ¶
func BuildHeaders ¶
BuildHeaders is an internal function to be used by request methods in individual resource packages.
It accepts an arbitrary tagged structure and produces a string map that's suitable for use as the HTTP headers of an outgoing request. Field names are mapped to header names based in "h" tags.
type struct Something { Bar string `h:"x_bar"` Baz int `h:"lorem_ipsum"` } instance := Something{ Bar: "AAA", Baz: "BBB", }
will be converted into:
map[string]string{ "x_bar": "AAA", "lorem_ipsum": "BBB", }
Untagged fields and fields left at their zero values are skipped. Integers, booleans and string values are supported.
func BuildQueryString ¶
BuildQueryString is an internal function to be used by request methods in individual resource packages.
It accepts a tagged structure and expands it into a URL struct. Field names are converted into query parameters based on a "q" tag. For example:
type struct Something { Bar string `q:"x_bar"` Baz int `q:"lorem_ipsum"` } instance := Something{ Bar: "AAA", Baz: "BBB", } will be converted into "?x_bar=AAA&lorem_ipsum=BBB". type struct Something { Bar []string `q:"x_bar",delimiter:"comma"` Baz int `q:"lorem_ipsum"` } instance := Something{ Bar: []string{"AAA", "CCC"}, Baz: "BBB", } will be converted into "?x_bar=AAA,CCC&lorem_ipsum=BBB". type struct Something { Bar []string `q:"x_bar"` Baz int `q:"lorem_ipsum"` } instance := Something{ Bar: []string{"AAA", "CCC"}, Baz: "BBB", } will be converted into "?x_bar=AAA&x_bar=CCC&lorem_ipsum=BBB".
The struct's fields may be strings, integers, or boolean values. Fields left at their type's zero value will be omitted from the query.
func BuildRequestBody ¶
func BuildSliceRequestBody ¶
func ContainsString ¶
func ExtractNextURL ¶
ExtractNextURL is an internal function useful for packages of collection resources that are paginated in a certain way.
It attempts to extract the "next" URL from slice of Link structs, or "" if no such URL is present.
func FailOnErrorF ¶
func IDSliceToQueryString ¶
IDSliceToQueryString takes a slice of elements and converts them into a query string. For example, if name=foo and slice=[]int{20, 40, 60}, then the result would be `?name=20&name=40&name=60'
func IntToPointer ¶
IntToPointer is a function for converting integers into integer pointers. This is useful when passing in options to operations.
func IntWithinRange ¶
IntWithinRange returns TRUE if an integer falls within a defined range, and FALSE if not.
func MaybeInt ¶
MaybeInt is an internal function to be used by request methods in individual resource packages.
Like MaybeString, it accepts an int that may or may not be a zero value, and returns either a pointer to its address or nil. It's intended to hint that the JSON serializer should omit its field.
func MaybeString ¶
MaybeString is an internal function to be used by request methods in individual resource packages.
It takes a string that might be a zero value and returns either a pointer to its address or nil. This is useful for allowing users to conveniently omit values from an options struct by leaving them zeroed, but still pass nil to the JSON serializer so they'll be omitted from the request body.
func NativeMapToStruct ¶
func NativeMapToStruct(nativeMap interface{}, obj interface{}) error
NativeMapToStruct converts from map to struct
func NormalizePathURL ¶
NormalizePathURL is used to convert rawPath to a fqdn, using basePath as a reference in the filesystem, if necessary. basePath is assumed to contain either '.' when first used, or the file:// type fqdn of the parent resource. e.g. myFavScript.yaml => file://opt/lib/myFavScript.yaml
func NormalizeURL ¶
NormalizeURL is an internal function to be used by provider clients.
It ensures that each endpoint URL has a closing `/`, as expected by ServiceClient's methods.
func StripLastSlashURL ¶
StripLastSlashURL removes last slash symbols from url
func ValidateStruct ¶
func ValidateStruct(s interface{}) error
func WaitFor ¶
WaitFor polls a predicate function, once per second, up to a timeout limit. This is useful to wait for a resource to transition to a certain state. To handle situations when the predicate might hang indefinitely, the predicate will be prematurely cancelled after the timeout. Resource packages will wrap this in a more convenient function that's specific to a certain resource, but it can also be useful on its own.
Types ¶
type APITokenAPISettings ¶ added in v0.4.32
type APITokenAPISettings struct { APIURL string `json:"url,omitempty"` APIToken string `json:"-"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Region int `json:"region,omitempty"` Project int `json:"project,omitempty"` Version string `json:"version,omitempty"` Debug bool `json:"debug,omitempty"` }
APITokenAPISettings - settings for api token client building
func (APITokenAPISettings) ToAPITokenOptions ¶ added in v0.4.32
func (gs APITokenAPISettings) ToAPITokenOptions() APITokenOptions
ToAPITokenOptions implements APITokenClientSettings interface
func (APITokenAPISettings) ToEndpointOptions ¶ added in v0.4.32
func (gs APITokenAPISettings) ToEndpointOptions() EndpointOpts
ToEndpointOptions implements APITokenClientSettings interface
func (APITokenAPISettings) Validate ¶ added in v0.4.32
func (gs APITokenAPISettings) Validate() error
Validate implements TokenClientSettings interface
type APITokenClientSettings ¶ added in v0.4.32
type APITokenClientSettings interface { ToAPITokenOptions() APITokenOptions ToEndpointOptions() EndpointOpts Validate() error }
APITokenClientSettings interface
type APITokenOptions ¶ added in v0.4.32
APITokenOptions gcore API
type AuthClientSettings ¶
type AuthClientSettings interface { ToAuthOptions() AuthOptions ToEndpointOptions() EndpointOpts Validate() error }
AuthClientSettings interface
type AuthOptions ¶
type AuthOptions struct { APIURL string `json:"-"` AuthURL string `json:"-"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` AllowReauth bool `json:"-"` ClientID string `json:"-"` }
AuthOptions gcore API
func (AuthOptions) ToMap ¶
func (ao AuthOptions) ToMap() map[string]interface{}
ToMap implements AuthOptionsBuilder
type AuthOptionsBuilder ¶
type AuthOptionsBuilder interface {
ToMap() map[string]interface{}
}
AuthOptionsBuilder build auth options to map
type AuthResult ¶
type AuthResult interface { ExtractAccessToken() (string, error) ExtractRefreshToken() (string, error) ExtractTokensPair() (string, string, error) }
AuthResult interface
type CIDR ¶
func ParseCIDRString ¶
func ParseCIDRStringOrNil ¶
func (CIDR) MarshalJSON ¶
MarshalJSON - implements Marshaler interface for CIDR
func (*CIDR) UnmarshalJSON ¶
UnmarshalJSON - implements Unmarshaler interface for CIDR
type Currency ¶
func ParseCurrency ¶
func (Currency) MarshalJSON ¶
MarshalJSON - implements Marshaler interface for Currency
func (*Currency) UnmarshalJSON ¶
UnmarshalJSON - implements Unmarshaler interface for Currency
type EnabledState ¶
type EnabledState *bool
EnabledState is a convenience type, mostly used in Create and Update operations. Because the zero value of a bool is FALSE, we need to use a pointer instead to indicate zero-ness.
var ( Enabled EnabledState = &iTrue Disabled EnabledState = &iFalse )
Convenience vars for EnabledState values.
type EndpointLocator ¶
type EndpointLocator func(EndpointOpts) (string, error)
EndpointLocator is an internal function to be used by provider implementations.
It provides an implementation that locates a single endpoint from a service catalog for a specific ProviderClient based on user-provided EndpointOpts. The provider then uses it to discover related ServiceClients.
func DefaultEndpointLocator ¶
func DefaultEndpointLocator(endpoint string) EndpointLocator
DefaultEndpointLocator - function to prepare API endpoint
type EndpointOpts ¶
type EndpointOpts struct { // Type [required] is the service type for the client (e.g., "cluster", // "nodegroup", "clustertemplates"). Generally, this will be supplied by the service client // function, but a user-given value will be honored if provided. Type string // Name [optional] is the service name for the client (e.g., "k8s") as it // appears in the service catalog. Services can have the same Type but a // different Name, which is why both Type and Name are sometimes needed. Name string // Region [required] is the geographic region in which the endpoint resides, // generally specifying which datacenter should house your resources. // Required only for services that span multiple regions. Region int // Project [required] is GCloud project Project int // version Version string }
EndpointOpts specifies search criteria used by queries against an GCore service. The options must contain enough information to unambiguously identify one, and only one, endpoint within the catalog.
Usually, these are passed to service client factory functions in a provider package, like "gcore.NewClusterTemplateV1()".
func (*EndpointOpts) ApplyDefaults ¶
func (eo *EndpointOpts) ApplyDefaults(t string)
ApplyDefaults is an internal method to be used by provider implementations.
It sets EndpointOpts fields if not already set, including a default type.
type EnumValidator ¶
type Err400er ¶
type Err400er interface {
Error400(ErrUnexpectedResponseCode) error
}
Err400er is the interface resource error types implement to override the error message from a 400 error.
type Err401er ¶
type Err401er interface {
Error401(ErrUnexpectedResponseCode) error
}
Err401er is the interface resource error types implement to override the error message from a 401 error.
type Err403er ¶
type Err403er interface {
Error403(ErrUnexpectedResponseCode) error
}
Err403er is the interface resource error types implement to override the error message from a 403 error.
type Err404er ¶
type Err404er interface {
Error404(ErrUnexpectedResponseCode) error
}
Err404er is the interface resource error types implement to override the error message from a 404 error.
type Err405er ¶
type Err405er interface {
Error405(ErrUnexpectedResponseCode) error
}
Err405er is the interface resource error types implement to override the error message from a 405 error.
type Err408er ¶
type Err408er interface {
Error408(ErrUnexpectedResponseCode) error
}
Err408er is the interface resource error types implement to override the error message from a 408 error.
type Err409er ¶
type Err409er interface {
Error409(ErrUnexpectedResponseCode) error
}
Err409er is the interface resource error types implement to override the error message from a 409 error.
type Err429er ¶
type Err429er interface {
Error429(ErrUnexpectedResponseCode) error
}
Err429er is the interface resource error types implement to override the error message from a 429 error.
type Err500er ¶
type Err500er interface {
Error500(ErrUnexpectedResponseCode) error
}
Err500er is the interface resource error types implement to override the error message from a 500 error.
type Err503er ¶
type Err503er interface {
Error503(ErrUnexpectedResponseCode) error
}
Err503er is the interface resource error types implement to override the error message from a 503 error.
type ErrAPIKeyProvided ¶
type ErrAPIKeyProvided struct{ BaseError }
ErrAPIKeyProvided indicates that an APIKey was provided but can't be used.
func (ErrAPIKeyProvided) Error ¶
func (e ErrAPIKeyProvided) Error() string
type ErrAppCredMissingSecret ¶
type ErrAppCredMissingSecret struct{ BaseError }
ErrAppCredMissingSecret indicates that no Application Credential Secret was provided with Application Credential ID or Name
func (ErrAppCredMissingSecret) Error ¶
func (e ErrAppCredMissingSecret) Error() string
type ErrDefault400 ¶
type ErrDefault400 struct {
ErrUnexpectedResponseCode
}
ErrDefault400 is the default error type returned on a 400 HTTP response code.
func (ErrDefault400) Error ¶
func (e ErrDefault400) Error() string
type ErrDefault401 ¶
type ErrDefault401 struct {
ErrUnexpectedResponseCode
}
ErrDefault401 is the default error type returned on a 401 HTTP response code.
func (ErrDefault401) Error ¶
func (e ErrDefault401) Error() string
type ErrDefault403 ¶
type ErrDefault403 struct {
ErrUnexpectedResponseCode
}
ErrDefault403 is the default error type returned on a 403 HTTP response code.
func (ErrDefault403) Error ¶
func (e ErrDefault403) Error() string
type ErrDefault404 ¶
type ErrDefault404 struct {
ErrUnexpectedResponseCode
}
ErrDefault404 is the default error type returned on a 404 HTTP response code.
func (ErrDefault404) Error ¶
func (e ErrDefault404) Error() string
type ErrDefault405 ¶
type ErrDefault405 struct {
ErrUnexpectedResponseCode
}
ErrDefault405 is the default error type returned on a 405 HTTP response code.
func (ErrDefault405) Error ¶
func (e ErrDefault405) Error() string
type ErrDefault408 ¶
type ErrDefault408 struct {
ErrUnexpectedResponseCode
}
ErrDefault408 is the default error type returned on a 408 HTTP response code.
func (ErrDefault408) Error ¶
func (e ErrDefault408) Error() string
type ErrDefault409 ¶
type ErrDefault409 struct {
ErrUnexpectedResponseCode
}
ErrDefault409 is the default error type returned on a 409 HTTP response code.
func (ErrDefault409) Error ¶
func (e ErrDefault409) Error() string
type ErrDefault429 ¶
type ErrDefault429 struct {
ErrUnexpectedResponseCode
}
ErrDefault429 is the default error type returned on a 429 HTTP response code.
func (ErrDefault429) Error ¶
func (e ErrDefault429) Error() string
type ErrDefault500 ¶
type ErrDefault500 struct {
ErrUnexpectedResponseCode
}
ErrDefault500 is the default error type returned on a 500 HTTP response code.
func (ErrDefault500) Error ¶
func (e ErrDefault500) Error() string
type ErrDefault503 ¶
type ErrDefault503 struct {
ErrUnexpectedResponseCode
}
ErrDefault503 is the default error type returned on a 503 HTTP response code.
func (ErrDefault503) Error ¶
func (e ErrDefault503) Error() string
type ErrDomainIDOrDomainName ¶
type ErrDomainIDOrDomainName struct{ BaseError }
ErrDomainIDOrDomainName indicates that a username was provided, but no domain to scope it. It may also indicate that both a DomainID and a DomainName were provided at once.
func (ErrDomainIDOrDomainName) Error ¶
func (e ErrDomainIDOrDomainName) Error() string
type ErrDomainIDWithToken ¶
type ErrDomainIDWithToken struct{ BaseError }
ErrDomainIDWithToken indicates that a DomainID was provided, but token authentication is being used instead.
func (ErrDomainIDWithToken) Error ¶
func (e ErrDomainIDWithToken) Error() string
type ErrDomainIDWithUserID ¶
type ErrDomainIDWithUserID struct{ BaseError }
ErrDomainIDWithUserID indicates that a DomainID was provided, but unnecessary because a UserID is being used.
func (ErrDomainIDWithUserID) Error ¶
func (e ErrDomainIDWithUserID) Error() string
type ErrDomainNameWithToken ¶
type ErrDomainNameWithToken struct{ BaseError }
ErrDomainNameWithToken indicates that a DomainName was provided, but token authentication is being used instead.s
func (ErrDomainNameWithToken) Error ¶
func (e ErrDomainNameWithToken) Error() string
type ErrDomainNameWithUserID ¶
type ErrDomainNameWithUserID struct{ BaseError }
ErrDomainNameWithUserID indicates that a DomainName was provided, but unnecessary because a UserID is being used.
func (ErrDomainNameWithUserID) Error ¶
func (e ErrDomainNameWithUserID) Error() string
type ErrEndpointNotFound ¶
type ErrEndpointNotFound struct {
BaseError
}
ErrEndpointNotFound is returned when no available endpoints match the provided EndpointOpts. This is also generally returned by provider service factory methods, and usually indicates that a region was specified incorrectly.
func (ErrEndpointNotFound) Error ¶
func (e ErrEndpointNotFound) Error() string
type ErrErrorAfterReauthentication ¶
ErrErrorAfterReauthentication is the error type returned when reauthentication succeeds, but an error occurs afterword (usually an HTTP error).
func (ErrErrorAfterReauthentication) Error ¶
func (e ErrErrorAfterReauthentication) Error() string
type ErrInvalidInput ¶
type ErrInvalidInput struct { ErrMissingInput Value interface{} }
ErrInvalidInput is an error type used for most non-HTTP Gophercloud errors.
func (ErrInvalidInput) Error ¶
func (e ErrInvalidInput) Error() string
type ErrMissingAnyoneOfEnvironmentVariables ¶
ErrMissingAnyoneOfEnvironmentVariables is the error when anyone of the environment variables is required in a particular situation but not provided by the user
func (ErrMissingAnyoneOfEnvironmentVariables) Error ¶
func (e ErrMissingAnyoneOfEnvironmentVariables) Error() string
type ErrMissingEnvironmentVariable ¶
ErrMissingEnvironmentVariable is the error when environment variable is required in a particular situation but not provided by the user
func (ErrMissingEnvironmentVariable) Error ¶
func (e ErrMissingEnvironmentVariable) Error() string
type ErrMissingInput ¶
ErrMissingInput is the error when input is required in a particular situation but not provided by the user
func (ErrMissingInput) Error ¶
func (e ErrMissingInput) Error() string
type ErrMissingPassword ¶
type ErrMissingPassword struct{ BaseError }
ErrMissingPassword indicates that no password was provided and no token is available.
func (ErrMissingPassword) Error ¶
func (e ErrMissingPassword) Error() string
type ErrMultipleResourcesFound ¶
ErrMultipleResourcesFound is the error when trying to retrieve a resource's ID by name and multiple resources have the user-provided name.
func (ErrMultipleResourcesFound) Error ¶
func (e ErrMultipleResourcesFound) Error() string
type ErrResourceNotFound ¶
ErrResourceNotFound is the error when trying to retrieve a resource's ID by name and the resource doesn't exist.
func (ErrResourceNotFound) Error ¶
func (e ErrResourceNotFound) Error() string
type ErrResult ¶
type ErrResult struct {
Result
}
ErrResult is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.
It represents results that only contain a potential error and nothing else. Usually, if the operation executed successfully, the Err field will be nil; otherwise it will be stocked with a relevant error. Use the ExtractErr method to cleanly pull it out.
func (ErrResult) ExtractErr ¶
ExtractErr is a function that extracts error information, or nil, from a result.
type ErrScopeDomainIDOrDomainName ¶
type ErrScopeDomainIDOrDomainName struct{ BaseError }
ErrScopeDomainIDOrDomainName indicates that a domain ID or Name was required in a Scope, but not present.
func (ErrScopeDomainIDOrDomainName) Error ¶
func (e ErrScopeDomainIDOrDomainName) Error() string
type ErrScopeEmpty ¶
type ErrScopeEmpty struct{ BaseError }
ErrScopeEmpty indicates that no credentials were provided in a Scope.
func (ErrScopeEmpty) Error ¶
func (e ErrScopeEmpty) Error() string
type ErrScopeProjectIDAlone ¶
type ErrScopeProjectIDAlone struct{ BaseError }
ErrScopeProjectIDAlone indicates that a ProjectID was provided with other constraints in a Scope.
func (ErrScopeProjectIDAlone) Error ¶
func (e ErrScopeProjectIDAlone) Error() string
type ErrScopeProjectIDOrProjectName ¶
type ErrScopeProjectIDOrProjectName struct{ BaseError }
ErrScopeProjectIDOrProjectName indicates that both a ProjectID and a ProjectName were provided in a Scope.
func (ErrScopeProjectIDOrProjectName) Error ¶
func (e ErrScopeProjectIDOrProjectName) Error() string
type ErrServiceNotFound ¶
type ErrServiceNotFound struct {
BaseError
}
ErrServiceNotFound is returned when no service in a service catalog matches the provided EndpointOpts. This is generally returned by provider service factory methods like "NewComputeV2()" and can mean that a service is not enabled for your account.
func (ErrServiceNotFound) Error ¶
func (e ErrServiceNotFound) Error() string
type ErrTenantIDProvided ¶
type ErrTenantIDProvided struct{ BaseError }
ErrTenantIDProvided indicates that a TenantID was provided but can't be used.
func (ErrTenantIDProvided) Error ¶
func (e ErrTenantIDProvided) Error() string
type ErrTenantNameProvided ¶
type ErrTenantNameProvided struct{ BaseError }
ErrTenantNameProvided indicates that a TenantName was provided but can't be used.
func (ErrTenantNameProvided) Error ¶
func (e ErrTenantNameProvided) Error() string
type ErrTimeOut ¶
type ErrTimeOut struct {
BaseError
}
ErrTimeOut is the error type returned when an operations times out.
func (ErrTimeOut) Error ¶
func (e ErrTimeOut) Error() string
type ErrUnableToReauthenticate ¶
ErrUnableToReauthenticate is the error type returned when reauthentication fails.
func (ErrUnableToReauthenticate) Error ¶
func (e ErrUnableToReauthenticate) Error() string
type ErrUnexpectedResponseCode ¶
type ErrUnexpectedResponseCode struct { BaseError URL string Method string Expected []int Actual int Body []byte }
ErrUnexpectedResponseCode is returned by the Request method when a response code other than those listed in OkCodes is encountered.
func (ErrUnexpectedResponseCode) Error ¶
func (e ErrUnexpectedResponseCode) Error() string
func (ErrUnexpectedResponseCode) GetStatusCode ¶
func (e ErrUnexpectedResponseCode) GetStatusCode() int
GetStatusCode returns the actual status code of the error.
func (*ErrUnexpectedResponseCode) ReadGcoreError ¶
func (e *ErrUnexpectedResponseCode) ReadGcoreError()
type ErrUnexpectedType ¶
ErrUnexpectedType is the error when an unexpected type is encountered
func (ErrUnexpectedType) Error ¶
func (e ErrUnexpectedType) Error() string
type ErrUserIDWithToken ¶
type ErrUserIDWithToken struct{ BaseError }
ErrUserIDWithToken indicates that a UserID was provided, but token authentication is being used instead.
func (ErrUserIDWithToken) Error ¶
func (e ErrUserIDWithToken) Error() string
type ErrUsernameOrUserID ¶
type ErrUsernameOrUserID struct{ BaseError }
ErrUsernameOrUserID indicates that neither username nor userID are specified, or both are at once.
func (ErrUsernameOrUserID) Error ¶
func (e ErrUsernameOrUserID) Error() string
type ErrUsernameWithToken ¶
type ErrUsernameWithToken struct{ BaseError }
ErrUsernameWithToken indicates that a Username was provided, but token authentication is being used instead.
func (ErrUsernameWithToken) Error ¶
func (e ErrUsernameWithToken) Error() string
type GcoreErrorType ¶
type HeaderResult ¶
type HeaderResult struct {
Result
}
HeaderResult is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.
It represents a result that only contains an error (possibly nil) and an http.Header. This is used, for example, by the objectstorage packages in openstack, because most of the operations don't return response bodies, but do have relevant information in headers.
func (HeaderResult) ExtractInto ¶
func (r HeaderResult) ExtractInto(to interface{}) error
ExtractInto allows users to provide an object into which `Extract` will extract the http.Header headers of the result.
type IPVersion ¶
type IPVersion int
IPVersion is a type for the possible IP address versions. Valid instances are IPv4 and IPv6
type ItemIDName ¶
type JSONRFC1123 ¶
JSONRFC1123 describes time.Time in time.RFC1123 format.
func (*JSONRFC1123) UnmarshalJSON ¶
func (jt *JSONRFC1123) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC1123
type JSONRFC3339Date ¶ added in v0.4.32
JSONRFC3339Date describes time.Time in RFC3339Date format
func (*JSONRFC3339Date) MarshalJSON ¶ added in v0.4.32
func (jt *JSONRFC3339Date) MarshalJSON() ([]byte, error)
MarshalJSON - implements Marshaler interface for JSONRFC3339Date
func (*JSONRFC3339Date) UnmarshalJSON ¶ added in v0.4.32
func (jt *JSONRFC3339Date) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339Date
type JSONRFC3339Milli ¶
JSONRFC3339Milli describes time.Time in RFC3339Milli format.
func (*JSONRFC3339Milli) UnmarshalJSON ¶
func (jt *JSONRFC3339Milli) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339Milli
type JSONRFC3339MilliNoZ ¶
JSONRFC3339MilliNoZ describes time.Time in RFC3339MilliNoZ format.
func (*JSONRFC3339MilliNoZ) UnmarshalJSON ¶
func (jt *JSONRFC3339MilliNoZ) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339MilliNoZ
type JSONRFC3339NoZ ¶
JSONRFC3339NoZ describes time.Time in RFC3339NoZ format.
func (*JSONRFC3339NoZ) MarshalJSON ¶
func (jt *JSONRFC3339NoZ) MarshalJSON() ([]byte, error)
MarshalJSON - implements Marshaler interface for JSONRFC3339NoZ
func (*JSONRFC3339NoZ) String ¶
func (jt *JSONRFC3339NoZ) String() string
func (*JSONRFC3339NoZ) UnmarshalJSON ¶
func (jt *JSONRFC3339NoZ) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339NoZ
type JSONRFC3339Z ¶
JSONRFC3339Z describes time.Time in RFC3339Z format.
func (*JSONRFC3339Z) MarshalJSON ¶
func (jt *JSONRFC3339Z) MarshalJSON() ([]byte, error)
MarshalJSON - implements Marshaler interface for JSONRFC3339Z
func (*JSONRFC3339Z) UnmarshalJSON ¶
func (jt *JSONRFC3339Z) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339Z
type JSONRFC3339ZColon ¶ added in v0.4.7
JSONRFC3339ZColon describes time.Time in RFC3339ZColon format.
func (*JSONRFC3339ZColon) MarshalJSON ¶ added in v0.4.7
func (jt *JSONRFC3339ZColon) MarshalJSON() ([]byte, error)
MarshalJSON - implements Marshaler interface for JSONRFC3339ZColon
func (*JSONRFC3339ZColon) UnmarshalJSON ¶ added in v0.4.7
func (jt *JSONRFC3339ZColon) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339ZColon
type JSONRFC3339ZNoT ¶
JSONRFC3339ZNoT describes time.Time in RFC3339ZNoT format.
func (*JSONRFC3339ZNoT) UnmarshalJSON ¶
func (jt *JSONRFC3339ZNoT) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339ZNoT
type JSONRFC3339ZNoTNoZ ¶
JSONRFC3339ZNoTNoZ describes time.Time in RFC3339ZNoTNoZ format.
func (*JSONRFC3339ZNoTNoZ) UnmarshalJSON ¶
func (jt *JSONRFC3339ZNoTNoZ) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339ZNoTNoZ
type JSONRFC3339ZZ ¶
JSONRFC3339ZZ describes time.Time in RFC3339ZZ format
func (*JSONRFC3339ZZ) MarshalJSON ¶
func (jt *JSONRFC3339ZZ) MarshalJSON() ([]byte, error)
MarshalJSON - implements Marshaler interface for JSONRFC3339ZZ
func (*JSONRFC3339ZZ) UnmarshalJSON ¶
func (jt *JSONRFC3339ZZ) UnmarshalJSON(data []byte) error
UnmarshalJSON - implements Unmarshaler interface for JSONRFC3339ZZ
type JSONUnix ¶
JSONUnix describes time.Time in unix format.
func (*JSONUnix) UnmarshalJSON ¶
UnmarshalJSON - implements Unmarshaler interface for JSONUnix
type Link ¶
Link is an internal type to be used in packages of collection resources that are paginated in a certain way.
It's a response substructure common to many paginated collection results that is used to point to related pages. Usually, the one we care about is the one with Rel field set to "next".
type MAC ¶
type MAC struct {
net.HardwareAddr
}
func ParseMacString ¶
func (MAC) MarshalJSON ¶
MarshalJSON - implements Marshaler interface for MAC
func (*MAC) UnmarshalJSON ¶
UnmarshalJSON - implements Unmarshaler interface for MAC
type PasswordAPISettings ¶
type PasswordAPISettings struct { APIURL string `json:"api-url,omitempty"` AuthURL string `json:"auth-url,omitempty"` Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` AllowReauth bool `json:"-"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Region int `json:"region,omitempty"` Project int `json:"project,omitempty"` Version string `json:"version,omitempty"` Debug bool `json:"debug,omitempty"` }
PasswordAPISettings - settings for password client building
func (PasswordAPISettings) ToAuthOptions ¶
func (gs PasswordAPISettings) ToAuthOptions() AuthOptions
ToAuthOptions implements AuthClientSettings interface
func (PasswordAPISettings) ToEndpointOptions ¶
func (gs PasswordAPISettings) ToEndpointOptions() EndpointOpts
ToEndpointOptions implements AuthClientSettings interface
func (PasswordAPISettings) Validate ¶
func (gs PasswordAPISettings) Validate() error
Validate implements AuthClientSettings interface
type ProviderClient ¶
type ProviderClient struct { // IdentityBase is the base URL used for a particular provider's identity // service - it will be used when issuing authentication requests. It // should point to the root resource of the identity service, not a specific // identity version. IdentityBase string // APIURL 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 // AccessTokenID and RefreshTokenID is the IDs of the most recently issued valid tokens. // NOTE: Aside from within a custom ReauthFunc, this field shouldn't be set by an application. // To safely read or write this value, call `AccessToken` or `SetAccessToken` // call `RefreshToken` or `SetRefreshToken`, respectively AccessTokenID string RefreshTokenID string // EndpointLocator describes how this provider discovers the endpoints for // its constituent services. EndpointLocator EndpointLocator // 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 // Throwaway determines whether if this client is a throw-away client. It's a copy of user's provider client // with the token and reauth func zeroed. Such client can be used to perform reauthorization. Throwaway bool // Context is the context passed to the HTTP request. Context context.Context APIToken string // contains filtered or unexported fields }
ProviderClient stores details that are required to interact with any services within a specific provider's API.
Generally, you acquire a ProviderClient by calling the NewClient method in the appropriate provider's child package, providing whatever authentication credentials are required.
func NewProviderClient ¶
func NewProviderClient() *ProviderClient
NewProviderClient - Default constructor
func (*ProviderClient) AccessToken ¶
func (client *ProviderClient) AccessToken() string
AccessToken safely reads the value of the auth token from the ProviderClient. Applications should call this method to access the token instead of the AccessTokenID field
func (*ProviderClient) AuthenticatedHeaders ¶
func (client *ProviderClient) AuthenticatedHeaders() (m map[string]string)
AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests. Blocks if Reauthenticate is in progress.
func (*ProviderClient) CopyTokensFrom ¶
func (client *ProviderClient) CopyTokensFrom(other *ProviderClient)
CopyTokensFrom safely copies the token from another ProviderClient into the this one.
func (*ProviderClient) GetAuthResult ¶
func (client *ProviderClient) GetAuthResult() AuthResult
GetAuthResult returns the result from the request that was used to obtain a provider client's token.
The result is nil when authentication has not yet taken place, when the token was set manually with SetToken(), or when a ReauthFunc was used that does not record the AuthResult.
func (*ProviderClient) IsDebug ¶
func (client *ProviderClient) IsDebug() bool
func (*ProviderClient) IsThrowaway ¶
func (client *ProviderClient) IsThrowaway() bool
IsThrowaway safely reads the value of the client Throwaway field.
func (*ProviderClient) Reauthenticate ¶
func (client *ProviderClient) Reauthenticate(previousToken string) error
Reauthenticate calls client.ReauthFunc in a thread-safe way. If this is called because of a 401 response, the caller may pass the previous token. In this case, the reauthentication can be skipped if another thread has already reauthenticated in the meantime. If no previous token is known, an empty string should be passed instead to force unconditional reauthentication.
func (*ProviderClient) RefreshToken ¶
func (client *ProviderClient) RefreshToken() string
RefreshToken safely reads the value of the auth token from the ProviderClient. Applications should call this method to access the token instead of the RefreshTokenID field
func (*ProviderClient) Request ¶
func (client *ProviderClient) Request(method, url string, options *RequestOpts) (*http.Response, error)
Request performs an HTTP request using the ProviderClient's current HTTPClient. An authentication header will automatically be provided.
func (*ProviderClient) SetAPIToken ¶ added in v0.4.32
func (client *ProviderClient) SetAPIToken(opt APITokenOptions) error
SetAPIToken safely sets the value of the api token in the ProviderClient
func (*ProviderClient) SetDebug ¶
func (client *ProviderClient) SetDebug(debug bool)
SetDebug for request and response
func (*ProviderClient) SetThrowaway ¶
func (client *ProviderClient) SetThrowaway(v bool)
SetThrowaway safely sets the value of the client Throwaway field.
func (*ProviderClient) SetTokensAndAuthResult ¶
func (client *ProviderClient) SetTokensAndAuthResult(r AuthResult) error
SetTokensAndAuthResult safely sets the value of the auth token in the ProviderClient and also records the AuthResult that was returned from the token creation request. Applications may call this in a custom ReauthFunc.
func (ProviderClient) ToTokenOptions ¶
func (client ProviderClient) ToTokenOptions() TokenOptions
ToTokenOptions - TokenOptions from ProviderClient
func (*ProviderClient) UseTokenLock ¶
func (client *ProviderClient) UseTokenLock()
UseTokenLock creates a mutex that is used to allow safe concurrent access to the auth token. If the application's ProviderClient is not used concurrently, this doesn't need to be called.
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.Reader that will be consumed by the request directly. No content-type // will be set unless one is provided explicitly by MoreHeaders. RawBody io.Reader // 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 // ErrorContext specifies the resource error type to return if an error is encountered. // This lets resources override default error messages based on the response status code. ErrorContext error }
RequestOpts customizes the behavior of the provider.Request() method.
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 }
Result is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.
It acts as a base struct that other Result types, returned from request functions, can embed for convenience. All Results capture basic information from the HTTP transaction that was performed, including the response body, HTTP headers, and any errors that happened.
Generally, each Result type will have an Extract method that can be used to further interpret the result's payload in a specific context. Extensions or providers can then provide additional extraction functions to pull out provider- or extension-specific information as well.
func (Result) ExtractInto ¶
ExtractInto allows users to provide an object into which `Extract` will extract the `Result.Body`. This would be useful for OpenStack providers that have different fields in the response object than OpenStack proper.
func (Result) ExtractIntoMapPtr ¶
ExtractIntoMapPtr will unmarshal the Result (r) into the provided interface{} (to).
NOTE: For internal use only
`to` must be a pointer to an underlying map type
If provided, `label` will be filtered out of the response body prior to `r` being unmarshalled into `to`.
func (Result) ExtractIntoSlicePtr ¶
ExtractIntoSlicePtr will unmarshal the Result (r) into the provided interface{} (to).
NOTE: For internal use only
`to` must be a pointer to an underlying slice type
If provided, `label` will be filtered out of the response body prior to `r` being unmarshalled into `to`.
func (Result) ExtractIntoStructPtr ¶
ExtractIntoStructPtr will unmarshal the Result (r) into the provided interface{} (to).
NOTE: For internal use only
`to` must be a pointer to an underlying struct type
If provided, `label` will be filtered out of the response body prior to `r` being unmarshalled into `to`.
func (Result) PrettyPrintJSON ¶
PrettyPrintJSON creates a string containing the full response body as pretty-printed JSON. It's useful for capturing test fixtures and for debugging extraction bugs. If you include its output in an issue related to a buggy extraction function, we will all love you forever.
type ServiceClient ¶
type ServiceClient struct { // ProviderClient is a reference to the provider that implements this service. *ProviderClient // Endpoint is the base URL of the service's API, acquired from a service catalog. // It MUST end with a /. Endpoint string // ResourceBase is the base URL shared by the resources within a service's API. It should include // the API version and, like Endpoint, MUST end with a / if set. If not set, the Endpoint is used // as-is, instead. ResourceBase string // This is the service client type (e.g. cluster, clustertemplates, nodegroup). // NOTE: FOR INTERNAL USE ONLY. DO NOT SET. GCORE CLOUD WILL SET THIS. // It is only exported because it gets set in a different package. Type string // MoreHeaders allows users (or GCore cloud) to set service-wide headers on requests. Put another way, // values set in this field will be set on all the HTTP requests the service client sends. MoreHeaders map[string]string }
ServiceClient stores details required to interact with a specific service API implemented by a provider. Generally, you'll acquire these by calling the appropriate `New` method on a ProviderClient.
func (*ServiceClient) BaseServiceURL ¶
func (client *ServiceClient) BaseServiceURL(parts ...string) string
BaseServiceURL constructs a URL for a resource belonging to this provider
func (*ServiceClient) Delete ¶
func (client *ServiceClient) Delete(url string, opts *RequestOpts) (*http.Response, error)
Delete calls `Request` with the "DELETE" HTTP verb.
func (*ServiceClient) DeleteWithResponse ¶
func (client *ServiceClient) DeleteWithResponse(url string, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
DeleteWithResponse calls `Request` with the "DELETE" HTTP verb.
func (*ServiceClient) Get ¶
func (client *ServiceClient) Get(url string, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
Get calls `Request` with the "GET" HTTP verb.
func (*ServiceClient) Head ¶
func (client *ServiceClient) Head(url string, opts *RequestOpts) (*http.Response, error)
Head calls `Request` with the "HEAD" HTTP verb.
func (*ServiceClient) Patch ¶
func (client *ServiceClient) Patch(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
Patch calls `Request` with the "PATCH" HTTP verb.
func (*ServiceClient) Post ¶
func (client *ServiceClient) Post(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
Post calls `Request` with the "POST" HTTP verb.
func (*ServiceClient) Put ¶
func (client *ServiceClient) Put(url string, jsonBody interface{}, jsonResponse interface{}, opts *RequestOpts) (*http.Response, error)
Put calls `Request` with the "PUT" HTTP verb.
func (*ServiceClient) Request ¶
func (client *ServiceClient) Request(method, url string, options *RequestOpts) (*http.Response, error)
Request carries out the HTTP operation for the service client
func (*ServiceClient) ResourceBaseURL ¶
func (client *ServiceClient) ResourceBaseURL() string
ResourceBaseURL returns the base URL of any resources used by this service. It MUST end with a /.
func (*ServiceClient) ServiceURL ¶
func (client *ServiceClient) ServiceURL(parts ...string) string
ServiceURL constructs a URL for a resource belonging to this provider.
type StatusCodeError ¶
StatusCodeError is a convenience interface to easily allow access to the status code field of the various ErrDefault* types.
By using this interface, you only have to make a single type cast of the returned error to err.(StatusCodeError) and then call GetStatusCode() instead of having a large switch statement checking for each of the ErrDefault* types.
type TokenAPISettings ¶
type TokenAPISettings struct { APIURL string `json:"url,omitempty"` AccessToken string `json:"access,omitempty"` RefreshToken string `json:"refresh,omitempty"` AllowReauth bool `json:"-"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Region int `json:"region,omitempty"` Project int `json:"project,omitempty"` Version string `json:"version,omitempty"` Debug bool `json:"debug,omitempty"` }
TokenAPISettings - settings for token client building
func (TokenAPISettings) ToEndpointOptions ¶
func (gs TokenAPISettings) ToEndpointOptions() EndpointOpts
ToEndpointOptions implements TokenClientSettings interface
func (TokenAPISettings) ToTokenOptions ¶
func (gs TokenAPISettings) ToTokenOptions() TokenOptions
ToTokenOptions implements TokenClientSettings interface
func (TokenAPISettings) Validate ¶
func (gs TokenAPISettings) Validate() error
Validate implements TokenClientSettings interface
type TokenClientSettings ¶
type TokenClientSettings interface { ToTokenOptions() TokenOptions ToEndpointOptions() EndpointOpts Validate() error }
TokenClientSettings interface
type TokenOptions ¶
type TokenOptions struct { APIURL string `json:"-"` AccessToken string `json:"access,omitempty"` RefreshToken string `json:"refresh,omitempty"` AllowReauth bool `json:"-"` }
TokenOptions gcore API
func (TokenOptions) ExtractAccessToken ¶
func (to TokenOptions) ExtractAccessToken() (string, error)
ExtractAccessToken implements AuthResult
func (TokenOptions) ExtractRefreshToken ¶
func (to TokenOptions) ExtractRefreshToken() (string, error)
ExtractRefreshToken implements AuthResult
func (TokenOptions) ExtractTokensPair ¶
func (to TokenOptions) ExtractTokensPair() (string, string, error)
ExtractTokensPair implements AuthResult
func (TokenOptions) ToMap ¶
func (to TokenOptions) ToMap() map[string]interface{}
ToMap implements TokenOptionsBuilder
type TokenOptionsBuilder ¶
type TokenOptionsBuilder interface {
ToMap() map[string]interface{}
}
TokenOptionsBuilder build token options to map
type URL ¶
func MustParseURL ¶
func ParseURLNonMandatory ¶
func (URL) MarshalJSON ¶
MarshalJSON - implements Marshaler interface
func (*URL) UnmarshalJSON ¶
UnmarshalJSON - implements Unmarshaler interface
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
client
|
|
cmd
|
|
Package gcore contains resources for the individual projects.
|
Package gcore contains resources for the individual projects. |
flavor/v1/flavors
Package flavors contains functionality for working GCLoud flavors API resources Example to List Flavors listOpts := flavors.ListOpts{ } allPages, err := flavors.List(flavorClient).AllPages() if err != nil { panic(err) } allFlavors, err := flavors.ExtractFlavors(allPages) if err != nil { panic(err) } for _, flavor := range allFlavors { fmt.Printf("%+v", flavor) } Example to Create a Flavor createOpts := flavors.CreateOpts{ } flavors, err := flavors.Create(flavorClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Flavor flavorID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := flavors.Delete(flavorClient, flavorID).ExtractErr() if err != nil { panic(err) }
|
Package flavors contains functionality for working GCLoud flavors API resources Example to List Flavors listOpts := flavors.ListOpts{ } allPages, err := flavors.List(flavorClient).AllPages() if err != nil { panic(err) } allFlavors, err := flavors.ExtractFlavors(allPages) if err != nil { panic(err) } for _, flavor := range allFlavors { fmt.Printf("%+v", flavor) } Example to Create a Flavor createOpts := flavors.CreateOpts{ } flavors, err := flavors.Create(flavorClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Flavor flavorID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := flavors.Delete(flavorClient, flavorID).ExtractErr() if err != nil { panic(err) } |
flavor/v1/flavors/testing
flavors unit tests
|
flavors unit tests |
heat/v1/stack/resources/testing
resources unit tests
|
resources unit tests |
identity/tokens/testing
tokens unit tests
|
tokens unit tests |
instance/v1/instances/testing
instances unit tests
|
instances unit tests |
keypair/v1/keypairs
Package keypair contains functionality for working GCLoud keypairs API resources Example to List KeyPair listOpts := keypairs.ListOpts{ } allPages, err := keypairs.List(client).AllPages() if err != nil { panic(err) } allKeyPairs, err := keypairs.ExtractKeyPairs(allPages) if err != nil { panic(err) } for _, keypair := range allKeyPairs { fmt.Printf("%+v", keypair) } Example to Create a KeyPair createOpts := keypairs.CreateOpts{ Name": "alice", PublicKey: "", } keypairs, err := keypairs.Create(client, createOpts).Extract() if err != nil { panic(err) } Example to Delete a KeyPair keypairID := "alica" err := keypairs.Delete(client, keypairID).ExtractErr() if err != nil { panic(err) }
|
Package keypair contains functionality for working GCLoud keypairs API resources Example to List KeyPair listOpts := keypairs.ListOpts{ } allPages, err := keypairs.List(client).AllPages() if err != nil { panic(err) } allKeyPairs, err := keypairs.ExtractKeyPairs(allPages) if err != nil { panic(err) } for _, keypair := range allKeyPairs { fmt.Printf("%+v", keypair) } Example to Create a KeyPair createOpts := keypairs.CreateOpts{ Name": "alice", PublicKey: "", } keypairs, err := keypairs.Create(client, createOpts).Extract() if err != nil { panic(err) } Example to Delete a KeyPair keypairID := "alica" err := keypairs.Delete(client, keypairID).ExtractErr() if err != nil { panic(err) } |
keypair/v1/keypairs/testing
keypairs unit tests
|
keypairs unit tests |
loadbalancer/v1/lbpools/testing
loadbalancers unit tests
|
loadbalancers unit tests |
loadbalancer/v1/listeners/testing
listeners unit tests
|
listeners unit tests |
loadbalancer/v1/loadbalancers
Package loadbalancer contains functionality for working GCLoud loadbalancers API resources Example to List LoadBalancer listOpts := loadbalancers.ListOpts{ } allPages, err := loadbalancers.List(loadbalancerClient).AllPages() if err != nil { panic(err) } allLoadBalancers, err := loadbalancers.ExtractLoadBalancers(allPages) if err != nil { panic(err) } for _, loadbalancer := range allLoadBalancers { fmt.Printf("%+v", loadbalancer) } Example to Create a LoadBalancer createOpts := loadbalancers.CreateOpts{ } loadbalancers, err := loadbalancers.Create(loadbalancerClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a LoadBalancer loadbalancerID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := loadbalancers.Delete(loadbalancerClient, loadbalancerID).ExtractErr() if err != nil { panic(err) }
|
Package loadbalancer contains functionality for working GCLoud loadbalancers API resources Example to List LoadBalancer listOpts := loadbalancers.ListOpts{ } allPages, err := loadbalancers.List(loadbalancerClient).AllPages() if err != nil { panic(err) } allLoadBalancers, err := loadbalancers.ExtractLoadBalancers(allPages) if err != nil { panic(err) } for _, loadbalancer := range allLoadBalancers { fmt.Printf("%+v", loadbalancer) } Example to Create a LoadBalancer createOpts := loadbalancers.CreateOpts{ } loadbalancers, err := loadbalancers.Create(loadbalancerClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a LoadBalancer loadbalancerID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := loadbalancers.Delete(loadbalancerClient, loadbalancerID).ExtractErr() if err != nil { panic(err) } |
loadbalancer/v1/loadbalancers/testing
loadbalancers unit tests
|
loadbalancers unit tests |
network/v1/availablenetworks
Package network contains functionality for working GCLoud networks API resources Example to List Network allPages, err := availablenetworks.List(networkClient).AllPages() if err != nil { panic(err) } allNetworks, err := availablenetworks.ExtractNetworks(allPages) if err != nil { panic(err) } for _, network := range allNetworks { fmt.Printf("%+v", network) }
|
Package network contains functionality for working GCLoud networks API resources Example to List Network allPages, err := availablenetworks.List(networkClient).AllPages() if err != nil { panic(err) } allNetworks, err := availablenetworks.ExtractNetworks(allPages) if err != nil { panic(err) } for _, network := range allNetworks { fmt.Printf("%+v", network) } |
network/v1/availablenetworks/testing
networks unit tests
|
networks unit tests |
network/v1/extensions/testing
extensions unit tests
|
extensions unit tests |
network/v1/networks
Package network contains functionality for working GCLoud networks API resources Example to List Network listOpts := networks.ListOpts{ } allPages, err := networks.List(networkClient).AllPages() if err != nil { panic(err) } allNetworks, err := networks.ExtractNetworks(allPages) if err != nil { panic(err) } for _, network := range allNetworks { fmt.Printf("%+v", network) } Example to Create a Network createOpts := networks.CreateOpts{ Name: "network_1", MTU: 1500, } networks, err := networks.Create(networkClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Network networkID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := networks.Delete(networkClient, networkID).ExtractErr() if err != nil { panic(err) }
|
Package network contains functionality for working GCLoud networks API resources Example to List Network listOpts := networks.ListOpts{ } allPages, err := networks.List(networkClient).AllPages() if err != nil { panic(err) } allNetworks, err := networks.ExtractNetworks(allPages) if err != nil { panic(err) } for _, network := range allNetworks { fmt.Printf("%+v", network) } Example to Create a Network createOpts := networks.CreateOpts{ Name: "network_1", MTU: 1500, } networks, err := networks.Create(networkClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Network networkID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := networks.Delete(networkClient, networkID).ExtractErr() if err != nil { panic(err) } |
network/v1/networks/testing
networks unit tests
|
networks unit tests |
router/v1/routers/testing
routers unit tests
|
routers unit tests |
subnet/v1/subnets/testing
subnets unit tests
|
subnets unit tests |
task/v1/tasks/testing
tasks unit tests
|
tasks unit tests |
utils/testing
utils
|
utils |
volume/v1/volumes
Package volume contains functionality for working GCLoud volumes API resources Example to List Volume listOpts := volumes.ListOpts{ } allPages, err := volumes.List(volumeClient).AllPages() if err != nil { panic(err) } allVolumes, err := volumes.ExtractVolumes(allPages) if err != nil { panic(err) } for _, volume := range allVolumes { fmt.Printf("%+v", volume) } Example to Create a Volume createOpts := volumes.CreateOpts{ } volumes, err := volumes.Create(volumeClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Volume volumeID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := volumes.Delete(volumeClient, volumeID).ExtractErr() if err != nil { panic(err) }
|
Package volume contains functionality for working GCLoud volumes API resources Example to List Volume listOpts := volumes.ListOpts{ } allPages, err := volumes.List(volumeClient).AllPages() if err != nil { panic(err) } allVolumes, err := volumes.ExtractVolumes(allPages) if err != nil { panic(err) } for _, volume := range allVolumes { fmt.Printf("%+v", volume) } Example to Create a Volume createOpts := volumes.CreateOpts{ } volumes, err := volumes.Create(volumeClient, createOpts).Extract() if err != nil { panic(err) } Example to Delete a Volume volumeID := "484cda0e-106f-4f4b-bb3f-d413710bbe78" err := volumes.Delete(volumeClient, volumeID).ExtractErr() if err != nil { panic(err) } |
volume/v1/volumes/testing
volumes unit tests
|
volumes unit tests |
Package pagination contains utilities and convenience structs that implement common pagination idioms within OpenStack APIs.
|
Package pagination contains utilities and convenience structs that implement common pagination idioms within OpenStack APIs. |
testing
pagination
|
pagination |
Package testhelper container methods that are useful for writing unit tests.
|
Package testhelper container methods that are useful for writing unit tests. |
gcorecloud
|
gcorecloud |