Documentation
¶
Index ¶
- Constants
- func GetHTTPError(err error) (int, string)
- func MakeErrorFromHTTP(resp *http.Response) error
- func UrlForFunction(name string) string
- type Archive
- type ArchiveType
- type BuildStatus
- type Builder
- type Checksum
- type ChecksumType
- type EnvironmentReference
- type EnvironmentSpec
- type Error
- type FunctionLoadRequest
- type FunctionPackageRef
- type FunctionReference
- type FunctionReferenceType
- type FunctionSpec
- type HTTPTriggerSpec
- type KubernetesWatchTriggerSpec
- type MessageQueueTriggerSpec
- type PackageRef
- type PackageSpec
- type PackageStatus
- type Runtime
- type TimeTriggerSpec
Constants ¶
const ( BuildStatusPending = "pending" BuildStatusRunning = "running" BuildStatusSucceeded = "succeeded" BuildStatusFailed = "failed" )
const ( ErrorInternal = iota ErrorNotAuthorized ErrorNotFound ErrorNameExists ErrorInvalidArgument ErrorNoSpace ErrorNotImplmented ErrorChecksumFail ErrorSizeLimitExceeded )
const (
ArchiveLiteralSizeLimit int64 = 256 * 1024
)
const ( // FunctionReferenceFunctionName means that the function // reference is simply by function name. FunctionReferenceTypeFunctionName = "name" )
Variables ¶
This section is empty.
Functions ¶
func GetHTTPError ¶
func MakeErrorFromHTTP ¶
func UrlForFunction ¶
Types ¶
type Archive ¶
type Archive struct {
// Type defines how the package is specified: literal or URL.
Type ArchiveType `json:"type"`
// Literal contents of the package. Can be used for
// encoding packages below TODO (256KB?) size.
Literal []byte `json:"literal"`
// URL references a package.
URL string `json:"url"`
// Checksum ensures the integrity of packages
// refereced by URL. Ignored for literals.
Checksum Checksum `json:"checksum"`
}
Package contains or references a collection of source or binary files.
type ArchiveType ¶
type ArchiveType string
ArchiveType is either literal or URL, indicating whether the package is specified in the Archive struct or externally.
const ( // ArchiveTypeLiteral means the package contents are specified in the Literal field of // resource itself. ArchiveTypeLiteral ArchiveType = "literal" // ArchiveTypeUrl means the package contents are at the specified URL. ArchiveTypeUrl ArchiveType = "url" )
type BuildStatus ¶
type BuildStatus string
type Checksum ¶
type Checksum struct {
Type ChecksumType `json:"type"`
Sum string `json:"sum"`
}
Checksum of package contents when the contents are stored outside the Package struct. Type is the checksum algorithm; "sha256" is the only currently supported one. Sum is hex encoded.
type ChecksumType ¶
type ChecksumType string
ChecksumType specifies the checksum algorithm, such as sha256, used for a checksum.
const (
ChecksumTypeSHA256 ChecksumType = "sha256"
)
type EnvironmentReference ¶
type EnvironmentSpec ¶
type EnvironmentSpec struct {
// Environment API version
Version int `json:"version"`
// Runtime container image etc.; required
Runtime Runtime `json:"runtime"`
// Optional
Builder Builder `json:"builder"`
// Optional, but strongly encouraged. Used to populate
// links from UI, CLI, etc.
DocumentationURL string `json:"documentationurl"`
}
type Error ¶
type Error struct {
Code errorCode `json:"code"`
Message string `json:"message"`
}
Errors returned by the Fission API.
func (Error) Description ¶
func (Error) HTTPStatus ¶
type FunctionLoadRequest ¶
type FunctionLoadRequest struct {
// FilePath is an absolute filesystem path to the
// function. What exactly is stored here is
// env-specific. Optional.
FilePath string `json:"filepath"`
// Entrypoint has an environment-specific meaning;
// usually, it defines a function within a module
// containing multiple functions. Optional; default is
// environment-specific.
EntryPoint string `json:"entrypoint"`
// URL to expose this function at. Optional; defaults
// to "/".
URL string `json:"url"`
}
Fission-Environment interface. The following types are not exposed in the Fission API, but rather used by Fission to talk to environments.
type FunctionPackageRef ¶
type FunctionPackageRef struct {
PackageRef PackageRef `json:"packageref"`
// FunctionName specifies a specific function within the package. This allows
// functions to share packages, by having different functions within the same
// package.
//
// Fission itself does not interpret this path. It is passed verbatim to
// build and runtime environments.
//
// This is optional: if unspecified, the environment has a default name.
FunctionName string `json:"functionName"`
}
type FunctionReference ¶
type FunctionReference struct {
// Type indicates whether this function reference is by name or selector. For now,
// the only supported reference type is by name. Future reference types:
// * Function by label or annotation
// * Branch or tag of a versioned function
// * A "rolling upgrade" from one version of a function to another
Type FunctionReferenceType `json:"type"`
// Name of the function.
Name string `json:"name"`
}
type FunctionReferenceType ¶
type FunctionReferenceType string
type FunctionSpec ¶
type FunctionSpec struct {
// Environment is the build and runtime environment that this function is
// associated with. An Environment with this name should exist, otherwise the
// function cannot be invoked.
Environment EnvironmentReference `json:"environment"`
// Reference to a package containing deployment and optionally the source
Package FunctionPackageRef `json:"package"`
}
FunctionSpec describes the contents of the function.
type HTTPTriggerSpec ¶
type HTTPTriggerSpec struct {
Host string `json:"host"`
RelativeURL string `json:"relativeurl"`
Method string `json:"method"`
FunctionReference FunctionReference `json:"functionref"`
}
type KubernetesWatchTriggerSpec ¶
type KubernetesWatchTriggerSpec struct {
Namespace string `json:"namespace"`
Type string `json:"type"`
LabelSelector map[string]string `json:"labelselector"`
FunctionReference FunctionReference `json:"functionref"`
}
type MessageQueueTriggerSpec ¶
type MessageQueueTriggerSpec struct {
FunctionReference FunctionReference `json:"functionref"`
MessageQueueType string `json:"messageQueueType"`
Topic string `json:"topic"`
ResponseTopic string `json:"respTopic,omitempty"`
ContentType string `json:"contentType"`
}
MessageQueueTriggerSpec defines a binding from a topic in a message queue to a function.
type PackageRef ¶
type PackageRef struct {
Namespace string `json:"namespace"`
Name string `json:"name"`
// Including resource version in the reference forces the function to be updated on
// package update, making it possible to cache the function based on its metadata.
ResourceVersion string `json:"resourceversion"`
}
type PackageSpec ¶
type PackageSpec struct {
Environment EnvironmentReference `json:"environment"`
Source Archive `json:"source"`
Deployment Archive `json:"deployment"`
}
type PackageStatus ¶
type PackageStatus struct {
BuildStatus BuildStatus `json:"buildstatus"`
BuildLog string `json:"buildlog"` // output of the build (errors etc)
}
type Runtime ¶
type Runtime struct {
// Image for containing the language runtime.
Image string `json:"image"`
// LoadEndpointPort defines the port on which the
// server listens for function load
// requests. Optional; default 8888.
LoadEndpointPort int32 `json:"loadendpointport"`
// LoadEndpointPath defines the relative URL on which
// the server listens for function load
// requests. Optional; default "/specialize".
LoadEndpointPath string `json:"loadendpointpath"`
// FunctionEndpointPort defines the port on which the
// server listens for function requests. Optional;
// default 8888.
FunctionEndpointPort int32 `json:"functionendpointport"`
}
type TimeTriggerSpec ¶
type TimeTriggerSpec struct {
Cron string `json:"cron"`
FunctionReference `json:"functionref"`
}
TimeTrigger invokes the specific function at a time or times specified by a cron string.