// // Code generated by grafana-app-sdk. DO NOT EDIT. // package v0alpha1 import ( "fmt" "github.com/grafana/grafana-app-sdk/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "time" ) // +k8s:openapi-gen=true type Plugin struct { metav1.TypeMeta `json:",inline" yaml:",inline"` metav1.ObjectMeta `json:"metadata" yaml:"metadata"` // Spec is the spec of the Plugin Spec PluginSpec `json:"spec" yaml:"spec"` Status PluginStatus `json:"status" yaml:"status"` } func (o *Plugin) GetSpec() any { return o.Spec } func (o *Plugin) SetSpec(spec any) error { cast, ok := spec.(PluginSpec) if !ok { return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec) } o.Spec = cast return nil } func (o *Plugin) GetSubresources() map[string]any { return map[string]any{ "status": o.Status, } } func (o *Plugin) GetSubresource(name string) (any, bool) { switch name { case "status": return o.Status, true default: return nil, false } } func (o *Plugin) SetSubresource(name string, value any) error { switch name { case "status": cast, ok := value.(PluginStatus) if !ok { return fmt.Errorf("cannot set status type %#v, not of type PluginStatus", value) } o.Status = cast return nil default: return fmt.Errorf("subresource '%s' does not exist", name) } } func (o *Plugin) GetStaticMetadata() resource.StaticMetadata { gvk := o.GroupVersionKind() return resource.StaticMetadata{ Name: o.ObjectMeta.Name, Namespace: o.ObjectMeta.Namespace, Group: gvk.Group, Version: gvk.Version, Kind: gvk.Kind, } } func (o *Plugin) SetStaticMetadata(metadata resource.StaticMetadata) { o.Name = metadata.Name o.Namespace = metadata.Namespace o.SetGroupVersionKind(schema.GroupVersionKind{ Group: metadata.Group, Version: metadata.Version, Kind: metadata.Kind, }) } func (o *Plugin) GetCommonMetadata() resource.CommonMetadata { dt := o.DeletionTimestamp var deletionTimestamp *time.Time if dt != nil { deletionTimestamp = &dt.Time } // Legacy ExtraFields support extraFields := make(map[string]any) if o.Annotations != nil { extraFields["annotations"] = o.Annotations } if o.ManagedFields != nil { extraFields["managedFields"] = o.ManagedFields } if o.OwnerReferences != nil { extraFields["ownerReferences"] = o.OwnerReferences } return resource.CommonMetadata{ UID: string(o.UID), ResourceVersion: o.ResourceVersion, Generation: o.Generation, Labels: o.Labels, CreationTimestamp: o.CreationTimestamp.Time, DeletionTimestamp: deletionTimestamp, Finalizers: o.Finalizers, UpdateTimestamp: o.GetUpdateTimestamp(), CreatedBy: o.GetCreatedBy(), UpdatedBy: o.GetUpdatedBy(), ExtraFields: extraFields, } } func (o *Plugin) SetCommonMetadata(metadata resource.CommonMetadata) { o.UID = types.UID(metadata.UID) o.ResourceVersion = metadata.ResourceVersion o.Generation = metadata.Generation o.Labels = metadata.Labels o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp) if metadata.DeletionTimestamp != nil { dt := metav1.NewTime(*metadata.DeletionTimestamp) o.DeletionTimestamp = &dt } else { o.DeletionTimestamp = nil } o.Finalizers = metadata.Finalizers if o.Annotations == nil { o.Annotations = make(map[string]string) } if !metadata.UpdateTimestamp.IsZero() { o.SetUpdateTimestamp(metadata.UpdateTimestamp) } if metadata.CreatedBy != "" { o.SetCreatedBy(metadata.CreatedBy) } if metadata.UpdatedBy != "" { o.SetUpdatedBy(metadata.UpdatedBy) } // Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields if metadata.ExtraFields != nil { if annotations, ok := metadata.ExtraFields["annotations"]; ok { if cast, ok := annotations.(map[string]string); ok { o.Annotations = cast } } if managedFields, ok := metadata.ExtraFields["managedFields"]; ok { if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok { o.ManagedFields = cast } } if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok { if cast, ok := ownerReferences.([]metav1.OwnerReference); ok { o.OwnerReferences = cast } } } } func (o *Plugin) GetCreatedBy() string { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } return o.ObjectMeta.Annotations["grafana.com/createdBy"] } func (o *Plugin) SetCreatedBy(createdBy string) { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy } func (o *Plugin) GetUpdateTimestamp() time.Time { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"]) return parsed } func (o *Plugin) SetUpdateTimestamp(updateTimestamp time.Time) { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339) } func (o *Plugin) GetUpdatedBy() string { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } return o.ObjectMeta.Annotations["grafana.com/updatedBy"] } func (o *Plugin) SetUpdatedBy(updatedBy string) { if o.ObjectMeta.Annotations == nil { o.ObjectMeta.Annotations = make(map[string]string) } o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy } func (o *Plugin) Copy() resource.Object { return resource.CopyObject(o) } func (o *Plugin) DeepCopyObject() runtime.Object { return o.Copy() } func (o *Plugin) DeepCopy() *Plugin { cpy := &Plugin{} o.DeepCopyInto(cpy) return cpy } func (o *Plugin) DeepCopyInto(dst *Plugin) { dst.TypeMeta.APIVersion = o.TypeMeta.APIVersion dst.TypeMeta.Kind = o.TypeMeta.Kind o.ObjectMeta.DeepCopyInto(&dst.ObjectMeta) o.Spec.DeepCopyInto(&dst.Spec) o.Status.DeepCopyInto(&dst.Status) } // Interface compliance compile-time check var _ resource.Object = &Plugin{} // +k8s:openapi-gen=true type PluginList struct { metav1.TypeMeta `json:",inline" yaml:",inline"` metav1.ListMeta `json:"metadata" yaml:"metadata"` Items []Plugin `json:"items" yaml:"items"` } func (o *PluginList) DeepCopyObject() runtime.Object { return o.Copy() } func (o *PluginList) Copy() resource.ListObject { cpy := &PluginList{ TypeMeta: o.TypeMeta, Items: make([]Plugin, len(o.Items)), } o.ListMeta.DeepCopyInto(&cpy.ListMeta) for i := 0; i < len(o.Items); i++ { if item, ok := o.Items[i].Copy().(*Plugin); ok { cpy.Items[i] = *item } } return cpy } func (o *PluginList) GetItems() []resource.Object { items := make([]resource.Object, len(o.Items)) for i := 0; i < len(o.Items); i++ { items[i] = &o.Items[i] } return items } func (o *PluginList) SetItems(items []resource.Object) { o.Items = make([]Plugin, len(items)) for i := 0; i < len(items); i++ { o.Items[i] = *items[i].(*Plugin) } } func (o *PluginList) DeepCopy() *PluginList { cpy := &PluginList{} o.DeepCopyInto(cpy) return cpy } func (o *PluginList) DeepCopyInto(dst *PluginList) { resource.CopyObjectInto(dst, o) } // Interface compliance compile-time check var _ resource.ListObject = &PluginList{} // Copy methods for all subresource types // DeepCopy creates a full deep copy of Spec func (s *PluginSpec) DeepCopy() *PluginSpec { cpy := &PluginSpec{} s.DeepCopyInto(cpy) return cpy } // DeepCopyInto deep copies Spec into another Spec object func (s *PluginSpec) DeepCopyInto(dst *PluginSpec) { resource.CopyObjectInto(dst, s) } // DeepCopy creates a full deep copy of PluginStatus func (s *PluginStatus) DeepCopy() *PluginStatus { cpy := &PluginStatus{} s.DeepCopyInto(cpy) return cpy } // DeepCopyInto deep copies PluginStatus into another PluginStatus object func (s *PluginStatus) DeepCopyInto(dst *PluginStatus) { resource.CopyObjectInto(dst, s) }