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  }