/
createsubscription_types.go
73 lines (59 loc) · 2.36 KB
/
createsubscription_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
/*
Copyright 2021. Alexis de Talhouët
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
)
// CreateSubscriptionSpec defines the desired state of CreateSubscription
type CreateSubscriptionSpec struct {
// Defines the NETCONF session to use
MountPoint string `json:"mountPoint"`
// Timeout defines the timeout for the NETCONF transaction
// defaults to 1 seconds
// +kubebuilder:default:=1
Timeout int32 `json:"timeout,omitempty"`
// Defines the stream to subscribe to
Stream string `json:"stream,omitempty"`
// Defines the start-time to listen to changes.
StartTime string `json:"startTime,omitempty"`
// Defines the time when to stop listen to changes.
StopTime string `json:"stopTime,omitempty"`
// Used to forward received notification to kafka
KafkaSink KafkaSink `json:"kafkaSink,omitempty"`
}
//+kubebuilder:object:root=true
//+kubebuilder:subresource:status
// CreateSubscription is the Schema for the createsubscriptions API
type CreateSubscription struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CreateSubscriptionSpec `json:"spec,omitempty"`
RPCStatus `json:"status,omitempty"`
}
//+kubebuilder:object:root=true
// CreateSubscriptionList contains a list of CreateSubscription
type CreateSubscriptionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CreateSubscription `json:"items"`
}
func init() {
SchemeBuilder.Register(&CreateSubscription{}, &CreateSubscriptionList{})
}
func (obj *CreateSubscription) GetMountPointNamespacedName(mountpoint string) string {
return types.NamespacedName{Namespace: obj.Namespace, Name: mountpoint}.String()
}
func (obj *CreateSubscription) GetNamespacedName() string {
return types.NamespacedName{Namespace: obj.Namespace, Name: obj.Name}.String()
}