-
Notifications
You must be signed in to change notification settings - Fork 0
/
function_types.go
76 lines (62 loc) · 2.33 KB
/
function_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
duckv1 "knative.dev/pkg/apis/duck/v1"
"github.com/zeiss/typhoon/pkg/apis/common/v1alpha1"
)
// +genclient
// +genreconciler
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Function is an addressable object that executes function code.
type Function struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec FunctionSpec `json:"spec,omitempty"`
Status FunctionStatus `json:"status,omitempty"`
}
var (
_ v1alpha1.Reconcilable = (*Function)(nil)
_ v1alpha1.AdapterConfigurable = (*Function)(nil)
_ v1alpha1.EventSource = (*Function)(nil)
_ v1alpha1.EventSender = (*Function)(nil)
)
// FunctionSpec holds the desired state of the Function Specification
type FunctionSpec struct {
Runtime string `json:"runtime"`
Entrypoint string `json:"entrypoint"`
Code string `json:"code"`
ResponseIsEvent bool `json:"responseIsEvent,omitempty"`
EventStore EventStoreConnection `json:"eventStore,omitempty"`
// Support sending to an event sink instead of replying,
// as well as setting the CloudEvents 'type' and 'source' attributes
// using CloudEventOverrides (hack).
duckv1.SourceSpec `json:",inline"`
// Adapter spec overrides parameters.
// +optional
AdapterOverrides *v1alpha1.AdapterOverrides `json:"adapterOverrides,omitempty"`
}
// EventStoreConnection contains the data to connect to
// an EventStore instance
type EventStoreConnection struct {
// URI is the gRPC location to the EventStore
URI string `json:"uri"`
}
// FunctionStatus defines the observed state of the Function.
type FunctionStatus struct {
v1alpha1.Status `json:",inline"`
ConfigMap *FunctionConfigMapIdentity `json:"configMap,omitempty"`
}
// FunctionConfigMapIdentity represents the identity of the ConfigMap
// containing the code of a Function.
type FunctionConfigMapIdentity struct {
Name string `json:"name"`
ResourceVersion string `json:"resourceVersion"`
}
// FunctionList is a list of Function resources
//
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type FunctionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []Function `json:"items"`
}