api/v1alpha1/sonar_group.go (32 lines of code) (raw):

package v1alpha1 import ( "github.com/epam/edp-sonar-operator/api/common" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // SonarGroupSpec defines the desired state of SonarGroup. type SonarGroupSpec struct { // Name is a group name. // Name should be unique across all groups. // Do not edit this field after creation. Otherwise, the group will be recreated. // +required // +kubebuilder:validation:MaxLength=255 // +kubebuilder:example="sonar-users" Name string `json:"name"` // Description of sonar group. // +optional // +kubebuilder:validation:MaxLength=200 // +kubebuilder:example="Default group for new users" Description string `json:"description,omitempty"` // Permissions is a list of permissions assigned to group. // +nullable // +optional // +kubebuilder:example={admin, provisioning} Permissions []string `json:"permissions,omitempty"` // SonarRef is a reference to Sonar custom resource. // +required SonarRef common.SonarRef `json:"sonarRef"` } // SonarGroupStatus defines the observed state of SonarGroup. type SonarGroupStatus struct { // Value is a status of the group. // +optional Value string `json:"value,omitempty"` // Error is an error message if something went wrong. // +optional Error string `json:"error,omitempty"` } // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:storageversion // SonarGroup is the Schema for the sonar group API. type SonarGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec SonarGroupSpec `json:"spec,omitempty"` Status SonarGroupStatus `json:"status,omitempty"` } func (in *SonarGroup) GetSonarRef() common.SonarRef { return in.Spec.SonarRef } // +kubebuilder:object:root=true // SonarGroupList contains a list of SonarGroup. type SonarGroupList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []SonarGroup `json:"items"` } func init() { SchemeBuilder.Register(&SonarGroup{}, &SonarGroupList{}) }