halkyon.io/api@v1.0.0-rc.6/capability-info/v1beta1/types.go (about) 1 package v1beta1 2 3 import ( 4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 5 "k8s.io/apimachinery/pkg/runtime/schema" 6 "strings" 7 ) 8 9 const Kind string = "CapabilityInfo" 10 11 // EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! 12 // NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. 13 14 // CapabilityInfoSpec defines the desired state of CapabilityInfo 15 type CapabilityInfoSpec struct { 16 // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster 17 // Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file 18 // Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html 19 Versions string `json:"versions"` 20 Category string `json:"category"` 21 Type string `json:"type"` 22 } 23 24 const CapabilityInfoVersionSeparator = " / " 25 26 func VersionsAsString(versions ...string) string { 27 return strings.Join(versions, CapabilityInfoVersionSeparator) 28 } 29 30 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 31 32 // CapabilityInfo is the Schema for the capability info API 33 // +kubebuilder:resource:path=capabilityinfos 34 // +genclient 35 // +genclient:nonNamespaced 36 type CapabilityInfo struct { 37 metav1.TypeMeta `json:",inline"` 38 metav1.ObjectMeta `json:"metadata,omitempty"` 39 40 Spec CapabilityInfoSpec `json:"spec,omitempty"` 41 } 42 43 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 44 45 // CapabilityInfoList contains a list of CapabilityInfo 46 type CapabilityInfoList struct { 47 metav1.TypeMeta `json:",inline"` 48 metav1.ListMeta `json:"metadata,omitempty"` 49 Items []CapabilityInfo `json:"items"` 50 } 51 52 func (in *CapabilityInfo) GetGroupVersionKind() schema.GroupVersionKind { 53 return SchemeGroupVersion.WithKind(Kind) 54 }