Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sandbox/dashboard v1 + v2 #722

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

Sandbox/dashboard v1 + v2 #722

wants to merge 3 commits into from

Conversation

K-Phoen
Copy link
Member

@K-Phoen K-Phoen commented Jan 24, 2025

Relates to #653

Spiritual successor of #664

@K-Phoen K-Phoen changed the title Sandbox/dashboard v1 v2 Sandbox/dashboard v1 + v2 Jan 24, 2025
Copy link

github-actions bot commented Jan 24, 2025

Note: the diff show code changes that would be introduced by this PR to the output of the config/foundation_sdk.dev.yaml codegen pipeline (dev version of the Foundation SDK).

🔎 Changes to config/foundation_sdk.dev.yaml

diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/accesspolicy_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/accesspolicy_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/accesspolicy_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/accesspolicy_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,57 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package accesspolicy
-
-import (
-	"strings"
-)
-
-// AccessPolicyConverter accepts a `AccessPolicy` object and generates the Go code to build this object using builders.
-func AccessPolicyConverter(input AccessPolicy) string {
-	calls := []string{
-		`accesspolicy.NewAccessPolicyBuilder()`,
-	}
-	var buffer strings.Builder
-
-	{
-		buffer.WriteString(`Scope(`)
-		arg0 := ResourceRefConverter(input.Scope)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	{
-		buffer.WriteString(`Role(`)
-		arg0 := RoleRefConverter(input.Role)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.Rules != nil && len(input.Rules) >= 1 {
-		for _, item := range input.Rules {
-
-			buffer.WriteString(`Rules(`)
-			arg0 := AccessRuleConverter(item)
-			buffer.WriteString(arg0)
-
-			buffer.WriteString(")")
-
-			calls = append(calls, buffer.String())
-			buffer.Reset()
-
-		}
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/accessrule_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/accessrule_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/accessrule_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/accessrule_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,57 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package accesspolicy
-
-import (
-	"fmt"
-	"strings"
-)
-
-// AccessRuleConverter accepts a `AccessRule` object and generates the Go code to build this object using builders.
-func AccessRuleConverter(input AccessRule) string {
-	calls := []string{
-		`accesspolicy.NewAccessRuleBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Kind != "" && input.Kind != "*" {
-
-		buffer.WriteString(`Kind(`)
-		arg0 := fmt.Sprintf("%#v", input.Kind)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Verb != "" {
-
-		buffer.WriteString(`Verb(`)
-		arg0 := fmt.Sprintf("%#v", input.Verb)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Target != nil && *input.Target != "" {
-
-		buffer.WriteString(`Target(`)
-		arg0 := fmt.Sprintf("%#v", *input.Target)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/resourceref_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/resourceref_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/resourceref_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/resourceref_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package accesspolicy
-
-import (
-	"fmt"
-	"strings"
-)
-
-// ResourceRefConverter accepts a `ResourceRef` object and generates the Go code to build this object using builders.
-func ResourceRefConverter(input ResourceRef) string {
-	calls := []string{
-		`accesspolicy.NewResourceRefBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Kind != "" {
-
-		buffer.WriteString(`Kind(`)
-		arg0 := fmt.Sprintf("%#v", input.Kind)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/roleref_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/roleref_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/accesspolicy/roleref_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/accesspolicy/roleref_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package accesspolicy
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// RoleRefConverter accepts a `RoleRef` object and generates the Go code to build this object using builders.
-func RoleRefConverter(input RoleRef) string {
-	calls := []string{
-		`accesspolicy.NewRoleRefBuilder()`,
-	}
-	var buffer strings.Builder
-
-	{
-		buffer.WriteString(`Kind(`)
-		arg0 := cog.Dump(input.Kind)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Xname != "" {
-
-		buffer.WriteString(`Xname(`)
-		arg0 := fmt.Sprintf("%#v", input.Xname)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/contactpoint_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/contactpoint_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/contactpoint_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/contactpoint_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,94 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// ContactPointConverter accepts a `ContactPoint` object and generates the Go code to build this object using builders.
-func ContactPointConverter(input ContactPoint) string {
-	calls := []string{
-		`alerting.NewContactPointBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.DisableResolveMessage != nil {
-
-		buffer.WriteString(`DisableResolveMessage(`)
-		arg0 := fmt.Sprintf("%#v", *input.DisableResolveMessage)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Name != nil && *input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", *input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Provenance != nil && *input.Provenance != "" {
-
-		buffer.WriteString(`Provenance(`)
-		arg0 := fmt.Sprintf("%#v", *input.Provenance)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	{
-		buffer.WriteString(`Settings(`)
-		arg0 := cog.Dump(input.Settings)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	{
-		buffer.WriteString(`Type(`)
-		arg0 := cog.Dump(input.Type)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.Uid != nil && *input.Uid != "" {
-
-		buffer.WriteString(`Uid(`)
-		arg0 := fmt.Sprintf("%#v", *input.Uid)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/matcher_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/matcher_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/matcher_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/matcher_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,59 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// MatcherConverter accepts a `Matcher` object and generates the Go code to build this object using builders.
-func MatcherConverter(input Matcher) string {
-	calls := []string{
-		`alerting.NewMatcherBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Name != nil && *input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", *input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Type != nil {
-
-		buffer.WriteString(`Type(`)
-		arg0 := cog.Dump(*input.Type)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Value != nil && *input.Value != "" {
-
-		buffer.WriteString(`Value(`)
-		arg0 := fmt.Sprintf("%#v", *input.Value)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/mutetiming_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/mutetiming_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/mutetiming_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/mutetiming_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// MuteTimingConverter accepts a `MuteTiming` object and generates the Go code to build this object using builders.
-func MuteTimingConverter(input MuteTiming) string {
-	calls := []string{
-		`alerting.NewMuteTimingBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Name != nil && *input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", *input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.TimeIntervals != nil && len(input.TimeIntervals) >= 1 {
-
-		buffer.WriteString(`TimeIntervals(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.TimeIntervals {
-			tmptime_intervalsarg1 := TimeIntervalConverter(arg1)
-			tmparg0 = append(tmparg0, tmptime_intervalsarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.TimeInterval]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationpolicy_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationpolicy_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationpolicy_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationpolicy_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,216 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// NotificationPolicyConverter accepts a `NotificationPolicy` object and generates the Go code to build this object using builders.
-func NotificationPolicyConverter(input NotificationPolicy) string {
-	calls := []string{
-		`alerting.NewNotificationPolicyBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.ActiveTimeIntervals != nil && len(input.ActiveTimeIntervals) >= 1 {
-
-		buffer.WriteString(`ActiveTimeIntervals(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.ActiveTimeIntervals {
-			tmpactive_time_intervalsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpactive_time_intervalsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Continue != nil {
-
-		buffer.WriteString(`Continue(`)
-		arg0 := fmt.Sprintf("%#v", *input.Continue)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GroupBy != nil && len(input.GroupBy) >= 1 {
-
-		buffer.WriteString(`GroupBy(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.GroupBy {
-			tmpgroup_byarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpgroup_byarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GroupInterval != nil && *input.GroupInterval != "" {
-
-		buffer.WriteString(`GroupInterval(`)
-		arg0 := fmt.Sprintf("%#v", *input.GroupInterval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GroupWait != nil && *input.GroupWait != "" {
-
-		buffer.WriteString(`GroupWait(`)
-		arg0 := fmt.Sprintf("%#v", *input.GroupWait)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Match != nil {
-
-		buffer.WriteString(`Match(`)
-		arg0 := "map[string]string{"
-		for key, arg1 := range input.Match {
-			tmpmatcharg1 := fmt.Sprintf("%#v", arg1)
-			arg0 += "\t" + fmt.Sprintf("%#v", key) + ": " + tmpmatcharg1 + ","
-		}
-		arg0 += "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.MatchRe != nil {
-
-		buffer.WriteString(`MatchRe(`)
-		arg0 := cog.Dump(*input.MatchRe)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Matchers != nil {
-
-		buffer.WriteString(`Matchers(`)
-		arg0 := cog.Dump(*input.Matchers)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.MuteTimeIntervals != nil && len(input.MuteTimeIntervals) >= 1 {
-
-		buffer.WriteString(`MuteTimeIntervals(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.MuteTimeIntervals {
-			tmpmute_time_intervalsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpmute_time_intervalsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.ObjectMatchers != nil {
-
-		buffer.WriteString(`ObjectMatchers(`)
-		arg0 := cog.Dump(*input.ObjectMatchers)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Provenance != nil {
-
-		buffer.WriteString(`Provenance(`)
-		arg0 := cog.Dump(*input.Provenance)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Receiver != nil && *input.Receiver != "" {
-
-		buffer.WriteString(`Receiver(`)
-		arg0 := fmt.Sprintf("%#v", *input.Receiver)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RepeatInterval != nil && *input.RepeatInterval != "" {
-
-		buffer.WriteString(`RepeatInterval(`)
-		arg0 := fmt.Sprintf("%#v", *input.RepeatInterval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Routes != nil && len(input.Routes) >= 1 {
-
-		buffer.WriteString(`Routes(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Routes {
-			tmproutesarg1 := NotificationPolicyConverter(arg1)
-			tmparg0 = append(tmparg0, tmproutesarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.NotificationPolicy]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationsettings_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationsettings_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationsettings_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationsettings_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,103 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// NotificationSettingsConverter accepts a `NotificationSettings` object and generates the Go code to build this object using builders.
-func NotificationSettingsConverter(input NotificationSettings) string {
-	calls := []string{
-		`alerting.NewNotificationSettingsBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.GroupBy != nil && len(input.GroupBy) >= 1 {
-
-		buffer.WriteString(`GroupBy(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.GroupBy {
-			tmpgroup_byarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpgroup_byarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GroupInterval != nil && *input.GroupInterval != "" {
-
-		buffer.WriteString(`GroupInterval(`)
-		arg0 := fmt.Sprintf("%#v", *input.GroupInterval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GroupWait != nil && *input.GroupWait != "" {
-
-		buffer.WriteString(`GroupWait(`)
-		arg0 := fmt.Sprintf("%#v", *input.GroupWait)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.MuteTimeIntervals != nil && len(input.MuteTimeIntervals) >= 1 {
-
-		buffer.WriteString(`MuteTimeIntervals(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.MuteTimeIntervals {
-			tmpmute_time_intervalsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpmute_time_intervalsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Receiver != "" {
-
-		buffer.WriteString(`Receiver(`)
-		arg0 := fmt.Sprintf("%#v", input.Receiver)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RepeatInterval != nil && *input.RepeatInterval != "" {
-
-		buffer.WriteString(`RepeatInterval(`)
-		arg0 := fmt.Sprintf("%#v", *input.RepeatInterval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationtemplate_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationtemplate_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/notificationtemplate_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/notificationtemplate_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// NotificationTemplateConverter accepts a `NotificationTemplate` object and generates the Go code to build this object using builders.
-func NotificationTemplateConverter(input NotificationTemplate) string {
-	calls := []string{
-		`alerting.NewNotificationTemplateBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Name != nil && *input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", *input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Provenance != nil {
-
-		buffer.WriteString(`Provenance(`)
-		arg0 := cog.Dump(*input.Provenance)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Template != nil && *input.Template != "" {
-
-		buffer.WriteString(`Template(`)
-		arg0 := fmt.Sprintf("%#v", *input.Template)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Version != nil && *input.Version != "" {
-
-		buffer.WriteString(`Version(`)
-		arg0 := fmt.Sprintf("%#v", *input.Version)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/query_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/query_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/query_converter_gen.go	2025-01-27 12:35:26.927214943 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/query_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,86 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// QueryConverter accepts a `Query` object and generates the Go code to build this object using builders.
-func QueryConverter(input Query) string {
-	calls := []string{
-		`alerting.NewQueryBuilder(` + fmt.Sprintf("%#v", *input.RefId) + `)`,
-	}
-	var buffer strings.Builder
-	if input.DatasourceUid != nil && *input.DatasourceUid != "" {
-
-		buffer.WriteString(`DatasourceUid(`)
-		arg0 := fmt.Sprintf("%#v", *input.DatasourceUid)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Model != nil {
-
-		buffer.WriteString(`Model(`)
-		arg0 := cog.ConvertDataqueryToCode(input.Model)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.QueryType != nil && *input.QueryType != "" {
-
-		buffer.WriteString(`QueryType(`)
-		arg0 := fmt.Sprintf("%#v", *input.QueryType)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RefId != nil && *input.RefId != "" {
-
-		buffer.WriteString(`RefId(`)
-		arg0 := fmt.Sprintf("%#v", *input.RefId)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RelativeTimeRange != nil && input.RelativeTimeRange.From != nil && input.RelativeTimeRange.To != nil {
-
-		buffer.WriteString(`RelativeTimeRange(`)
-		arg0 := cog.Dump(*input.RelativeTimeRange.From)
-		buffer.WriteString(arg0)
-		buffer.WriteString(", ")
-		arg1 := cog.Dump(*input.RelativeTimeRange.To)
-		buffer.WriteString(arg1)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/recordrule_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/recordrule_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/recordrule_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/recordrule_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// RecordRuleConverter accepts a `RecordRule` object and generates the Go code to build this object using builders.
-func RecordRuleConverter(input RecordRule) string {
-	calls := []string{
-		`alerting.NewRecordRuleBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.From != "" {
-
-		buffer.WriteString(`From(`)
-		arg0 := fmt.Sprintf("%#v", input.From)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Metric != "" {
-
-		buffer.WriteString(`Metric(`)
-		arg0 := fmt.Sprintf("%#v", input.Metric)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/rule_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/rule_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/rule_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/rule_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,254 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// RuleConverter accepts a `Rule` object and generates the Go code to build this object using builders.
-func RuleConverter(input Rule) string {
-	calls := []string{
-		`alerting.NewRuleBuilder(` + fmt.Sprintf("%#v", input.Title) + `)`,
-	}
-	var buffer strings.Builder
-	if input.Annotations != nil {
-
-		buffer.WriteString(`Annotations(`)
-		arg0 := "map[string]string{"
-		for key, arg1 := range input.Annotations {
-			tmpannotationsarg1 := fmt.Sprintf("%#v", arg1)
-			arg0 += "\t" + fmt.Sprintf("%#v", key) + ": " + tmpannotationsarg1 + ","
-		}
-		arg0 += "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Condition != "" {
-
-		buffer.WriteString(`Condition(`)
-		arg0 := fmt.Sprintf("%#v", input.Condition)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Data != nil && len(input.Data) >= 1 {
-
-		buffer.WriteString(`Queries(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Data {
-			tmpdataarg1 := QueryConverter(arg1)
-			tmparg0 = append(tmparg0, tmpdataarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.Query]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	{
-		buffer.WriteString(`ExecErrState(`)
-		arg0 := cog.Dump(input.ExecErrState)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.FolderUID != "" {
-
-		buffer.WriteString(`FolderUID(`)
-		arg0 := fmt.Sprintf("%#v", input.FolderUID)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.For != "" {
-
-		buffer.WriteString(`For(`)
-		arg0 := fmt.Sprintf("%#v", input.For)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Id != nil {
-
-		buffer.WriteString(`Id(`)
-		arg0 := fmt.Sprintf("%#v", *input.Id)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.IsPaused != nil {
-
-		buffer.WriteString(`IsPaused(`)
-		arg0 := fmt.Sprintf("%#v", *input.IsPaused)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Labels != nil {
-
-		buffer.WriteString(`Labels(`)
-		arg0 := "map[string]string{"
-		for key, arg1 := range input.Labels {
-			tmplabelsarg1 := fmt.Sprintf("%#v", arg1)
-			arg0 += "\t" + fmt.Sprintf("%#v", key) + ": " + tmplabelsarg1 + ","
-		}
-		arg0 += "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	{
-		buffer.WriteString(`NoDataState(`)
-		arg0 := cog.Dump(input.NoDataState)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.NotificationSettings != nil {
-
-		buffer.WriteString(`NotificationSettings(`)
-		arg0 := NotificationSettingsConverter(*input.NotificationSettings)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	{
-		buffer.WriteString(`OrgID(`)
-		arg0 := fmt.Sprintf("%#v", input.OrgID)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-	}
-
-	if input.Provenance != nil {
-
-		buffer.WriteString(`Provenance(`)
-		arg0 := cog.Dump(*input.Provenance)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Record != nil {
-
-		buffer.WriteString(`Record(`)
-		arg0 := RecordRuleConverter(*input.Record)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RuleGroup != "" {
-
-		buffer.WriteString(`RuleGroup(`)
-		arg0 := fmt.Sprintf("%#v", input.RuleGroup)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Title != "" {
-
-		buffer.WriteString(`Title(`)
-		arg0 := fmt.Sprintf("%#v", input.Title)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Uid != nil && *input.Uid != "" {
-
-		buffer.WriteString(`Uid(`)
-		arg0 := fmt.Sprintf("%#v", *input.Uid)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Updated != nil {
-
-		buffer.WriteString(`Updated(`)
-		arg0 := fmt.Sprintf("%#v", *input.Updated)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/rulegroup_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/rulegroup_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/rulegroup_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/rulegroup_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,76 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-)
-
-// RuleGroupConverter accepts a `RuleGroup` object and generates the Go code to build this object using builders.
-func RuleGroupConverter(input RuleGroup) string {
-	calls := []string{
-		`alerting.NewRuleGroupBuilder(` + fmt.Sprintf("%#v", *input.Title) + `)`,
-	}
-	var buffer strings.Builder
-	if input.FolderUid != nil && *input.FolderUid != "" {
-
-		buffer.WriteString(`FolderUid(`)
-		arg0 := fmt.Sprintf("%#v", *input.FolderUid)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Interval != nil {
-
-		buffer.WriteString(`Interval(`)
-		arg0 := cog.Dump(*input.Interval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Rules != nil && len(input.Rules) >= 1 {
-
-		buffer.WriteString(`Rules(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Rules {
-			tmprulesarg1 := RuleConverter(arg1)
-			tmparg0 = append(tmparg0, tmprulesarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.Rule]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Title != nil && *input.Title != "" {
-
-		buffer.WriteString(`Title(`)
-		arg0 := fmt.Sprintf("%#v", *input.Title)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeinterval_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeinterval_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeinterval_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeinterval_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// TimeIntervalConverter accepts a `TimeInterval` object and generates the Go code to build this object using builders.
-func TimeIntervalConverter(input TimeInterval) string {
-	calls := []string{
-		`alerting.NewTimeIntervalBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Name != nil && *input.Name != "" {
-
-		buffer.WriteString(`Name(`)
-		arg0 := fmt.Sprintf("%#v", *input.Name)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.TimeIntervals != nil && len(input.TimeIntervals) >= 1 {
-
-		buffer.WriteString(`TimeIntervals(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.TimeIntervals {
-			tmptime_intervalsarg1 := TimeIntervalItemConverter(arg1)
-			tmparg0 = append(tmparg0, tmptime_intervalsarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.TimeIntervalItem]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeintervalitem_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeintervalitem_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeintervalitem_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeintervalitem_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,118 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// TimeIntervalItemConverter accepts a `TimeIntervalItem` object and generates the Go code to build this object using builders.
-func TimeIntervalItemConverter(input TimeIntervalItem) string {
-	calls := []string{
-		`alerting.NewTimeIntervalItemBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.DaysOfMonth != nil && len(input.DaysOfMonth) >= 1 {
-
-		buffer.WriteString(`DaysOfMonth(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.DaysOfMonth {
-			tmpdays_of_montharg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpdays_of_montharg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Location != nil && *input.Location != "" {
-
-		buffer.WriteString(`Location(`)
-		arg0 := fmt.Sprintf("%#v", *input.Location)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Months != nil && len(input.Months) >= 1 {
-
-		buffer.WriteString(`Months(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Months {
-			tmpmonthsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpmonthsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Times != nil && len(input.Times) >= 1 {
-
-		buffer.WriteString(`Times(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Times {
-			tmptimesarg1 := TimeIntervalTimeRangeConverter(arg1)
-			tmparg0 = append(tmparg0, tmptimesarg1)
-		}
-		arg0 := "[]cog.Builder[alerting.TimeIntervalTimeRange]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Weekdays != nil && len(input.Weekdays) >= 1 {
-
-		buffer.WriteString(`Weekdays(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Weekdays {
-			tmpweekdaysarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpweekdaysarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Years != nil && len(input.Years) >= 1 {
-
-		buffer.WriteString(`Years(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Years {
-			tmpyearsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmpyearsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeintervaltimerange_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeintervaltimerange_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/alerting/timeintervaltimerange_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/alerting/timeintervaltimerange_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,45 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package alerting
-
-import (
-	"fmt"
-	"strings"
-)
-
-// TimeIntervalTimeRangeConverter accepts a `TimeIntervalTimeRange` object and generates the Go code to build this object using builders.
-func TimeIntervalTimeRangeConverter(input TimeIntervalTimeRange) string {
-	calls := []string{
-		`alerting.NewTimeIntervalTimeRangeBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.EndTime != nil && *input.EndTime != "" {
-
-		buffer.WriteString(`EndTime(`)
-		arg0 := fmt.Sprintf("%#v", *input.EndTime)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.StartTime != nil && *input.StartTime != "" {
-
-		buffer.WriteString(`StartTime(`)
-		arg0 := fmt.Sprintf("%#v", *input.StartTime)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/panel_builder_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/panel_builder_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/panel_builder_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/panel_builder_gen.go	2025-01-27 12:34:49.638428980 +0000
@@ -8,6 +8,7 @@
 import (
 	cog "github.com/grafana/cog/generated/go/cog"
 	variants "github.com/grafana/cog/generated/go/cog/variants"
+	common "github.com/grafana/cog/generated/go/common"
 	dashboard "github.com/grafana/cog/generated/go/dashboard"
 )
 
@@ -97,7 +98,7 @@
 }
 
 // The datasource used in all targets.
-func (builder *PanelBuilder) Datasource(datasource dashboard.DataSourceRef) *PanelBuilder {
+func (builder *PanelBuilder) Datasource(datasource common.DataSourceRef /* ReplaceReference[dashboard.DataSourceRef → common.DataSourceRef] */) *PanelBuilder {
 	builder.internal.Datasource = &datasource
 
 	return builder
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/panel_converter_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/panel_converter_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/panel_converter_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/panel_converter_gen.go	1970-01-01 00:00:00.000000000 +0000
@@ -1,597 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-//
-// Using jennies:
-//     GoConverter
-
-package annotationslist
-
-import (
-	"fmt"
-	"strings"
-
-	cog "github.com/grafana/cog/generated/go/cog"
-	dashboard "github.com/grafana/cog/generated/go/dashboard"
-)
-
-// PanelConverter accepts a `Panel` object and generates the Go code to build this object using builders.
-func PanelConverter(input dashboard.Panel) string {
-	calls := []string{
-		`annotationslist.NewPanelBuilder()`,
-	}
-	var buffer strings.Builder
-	if input.Id != nil {
-
-		buffer.WriteString(`Id(`)
-		arg0 := fmt.Sprintf("%#v", *input.Id)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Targets != nil && len(input.Targets) >= 1 {
-
-		buffer.WriteString(`Targets(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Targets {
-			tmptargetsarg1 := cog.ConvertDataqueryToCode(arg1)
-			tmparg0 = append(tmparg0, tmptargetsarg1)
-		}
-		arg0 := "[]cog.Builder[variants.Dataquery]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Title != nil && *input.Title != "" {
-
-		buffer.WriteString(`Title(`)
-		arg0 := fmt.Sprintf("%#v", *input.Title)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Description != nil && *input.Description != "" {
-
-		buffer.WriteString(`Description(`)
-		arg0 := fmt.Sprintf("%#v", *input.Description)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Transparent != nil && *input.Transparent != false {
-
-		buffer.WriteString(`Transparent(`)
-		arg0 := fmt.Sprintf("%#v", *input.Transparent)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Datasource != nil {
-
-		buffer.WriteString(`Datasource(`)
-		arg0 := cog.Dump(*input.Datasource)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GridPos != nil {
-
-		buffer.WriteString(`GridPos(`)
-		arg0 := cog.Dump(*input.GridPos)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GridPos != nil && input.GridPos.H != 9 {
-
-		buffer.WriteString(`Height(`)
-		arg0 := fmt.Sprintf("%#v", input.GridPos.H)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.GridPos != nil && input.GridPos.W != 12 {
-
-		buffer.WriteString(`Span(`)
-		arg0 := fmt.Sprintf("%#v", input.GridPos.W)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Links != nil && len(input.Links) >= 1 {
-
-		buffer.WriteString(`Links(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Links {
-			tmplinksarg1 := dashboard.DashboardLinkConverter(arg1)
-			tmparg0 = append(tmparg0, tmplinksarg1)
-		}
-		arg0 := "[]cog.Builder[dashboard.DashboardLink]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Repeat != nil && *input.Repeat != "" {
-
-		buffer.WriteString(`Repeat(`)
-		arg0 := fmt.Sprintf("%#v", *input.Repeat)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.RepeatDirection != nil {
-
-		buffer.WriteString(`RepeatDirection(`)
-		arg0 := cog.Dump(*input.RepeatDirection)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.MaxPerRow != nil {
-
-		buffer.WriteString(`MaxPerRow(`)
-		arg0 := fmt.Sprintf("%#v", *input.MaxPerRow)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.MaxDataPoints != nil {
-
-		buffer.WriteString(`MaxDataPoints(`)
-		arg0 := fmt.Sprintf("%#v", *input.MaxDataPoints)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Transformations != nil && len(input.Transformations) >= 1 {
-
-		buffer.WriteString(`Transformations(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Transformations {
-			tmptransformationsarg1 := cog.Dump(arg1)
-			tmparg0 = append(tmparg0, tmptransformationsarg1)
-		}
-		arg0 := "[]dashboard.DataTransformerConfig{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Interval != nil && *input.Interval != "" {
-
-		buffer.WriteString(`Interval(`)
-		arg0 := fmt.Sprintf("%#v", *input.Interval)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.TimeFrom != nil && *input.TimeFrom != "" {
-
-		buffer.WriteString(`TimeFrom(`)
-		arg0 := fmt.Sprintf("%#v", *input.TimeFrom)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.TimeShift != nil && *input.TimeShift != "" {
-
-		buffer.WriteString(`TimeShift(`)
-		arg0 := fmt.Sprintf("%#v", *input.TimeShift)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.HideTimeOverride != nil {
-
-		buffer.WriteString(`HideTimeOverride(`)
-		arg0 := fmt.Sprintf("%#v", *input.HideTimeOverride)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.LibraryPanel != nil {
-
-		buffer.WriteString(`LibraryPanel(`)
-		arg0 := cog.Dump(*input.LibraryPanel)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.CacheTimeout != nil && *input.CacheTimeout != "" {
-
-		buffer.WriteString(`CacheTimeout(`)
-		arg0 := fmt.Sprintf("%#v", *input.CacheTimeout)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.QueryCachingTTL != nil {
-
-		buffer.WriteString(`QueryCachingTTL(`)
-		arg0 := fmt.Sprintf("%#v", *input.QueryCachingTTL)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.DisplayName != nil && *input.FieldConfig.Defaults.DisplayName != "" {
-
-		buffer.WriteString(`DisplayName(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.DisplayName)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Unit != nil && *input.FieldConfig.Defaults.Unit != "" {
-
-		buffer.WriteString(`Unit(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.Unit)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Decimals != nil {
-
-		buffer.WriteString(`Decimals(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.Decimals)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Min != nil {
-
-		buffer.WriteString(`Min(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.Min)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Max != nil {
-
-		buffer.WriteString(`Max(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.Max)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Mappings != nil && len(input.FieldConfig.Defaults.Mappings) >= 1 {
-
-		buffer.WriteString(`Mappings(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.FieldConfig.Defaults.Mappings {
-			tmpmappingsarg1 := cog.Dump(arg1)
-			tmparg0 = append(tmparg0, tmpmappingsarg1)
-		}
-		arg0 := "[]dashboard.ValueMapping{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Thresholds != nil {
-
-		buffer.WriteString(`Thresholds(`)
-		arg0 := dashboard.ThresholdsConfigConverter(*input.FieldConfig.Defaults.Thresholds)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Color != nil {
-
-		buffer.WriteString(`ColorScheme(`)
-		arg0 := dashboard.FieldColorConverter(*input.FieldConfig.Defaults.Color)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.Links != nil && len(input.FieldConfig.Defaults.Links) >= 1 {
-
-		buffer.WriteString(`DataLinks(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.FieldConfig.Defaults.Links {
-			tmplinksarg1 := dashboard.DashboardLinkConverter(arg1)
-			tmparg0 = append(tmparg0, tmplinksarg1)
-		}
-		arg0 := "[]cog.Builder[dashboard.DashboardLink]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Defaults.NoValue != nil && *input.FieldConfig.Defaults.NoValue != "" {
-
-		buffer.WriteString(`NoValue(`)
-		arg0 := fmt.Sprintf("%#v", *input.FieldConfig.Defaults.NoValue)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Overrides != nil && len(input.FieldConfig.Overrides) >= 1 {
-
-		buffer.WriteString(`Overrides(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.FieldConfig.Overrides {
-			tmpoverridesarg1 := dashboard.DashboardFieldConfigSourceOverridesConverter(arg1)
-			tmparg0 = append(tmparg0, tmpoverridesarg1)
-		}
-		arg0 := "[]cog.Builder[dashboard.DashboardFieldConfigSourceOverrides]{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.FieldConfig != nil && input.FieldConfig.Overrides != nil && len(input.FieldConfig.Overrides) >= 1 {
-		for _, item := range input.FieldConfig.Overrides {
-
-			buffer.WriteString(`WithOverride(`)
-			arg0 := cog.Dump(item.Matcher)
-			buffer.WriteString(arg0)
-			buffer.WriteString(", ")
-			tmparg1 := []string{}
-			for _, arg1 := range item.Properties {
-				tmppropertiesarg1 := cog.Dump(arg1)
-				tmparg1 = append(tmparg1, tmppropertiesarg1)
-			}
-			arg1 := "[]dashboard.DynamicConfigValue{" + strings.Join(tmparg1, ",\n") + "}"
-			buffer.WriteString(arg1)
-
-			buffer.WriteString(")")
-
-			calls = append(calls, buffer.String())
-			buffer.Reset()
-
-		}
-	}
-	if input.Options != nil && input.Options.(*Options).OnlyFromThisDashboard != false {
-
-		buffer.WriteString(`OnlyFromThisDashboard(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).OnlyFromThisDashboard)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).OnlyInTimeRange != false {
-
-		buffer.WriteString(`OnlyInTimeRange(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).OnlyInTimeRange)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).Tags != nil && len(input.Options.(*Options).Tags) >= 1 {
-
-		buffer.WriteString(`Tags(`)
-		tmparg0 := []string{}
-		for _, arg1 := range input.Options.(*Options).Tags {
-			tmptagsarg1 := fmt.Sprintf("%#v", arg1)
-			tmparg0 = append(tmparg0, tmptagsarg1)
-		}
-		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).Limit != 10 {
-
-		buffer.WriteString(`Limit(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).Limit)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).ShowUser != true {
-
-		buffer.WriteString(`ShowUser(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).ShowUser)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).ShowTime != true {
-
-		buffer.WriteString(`ShowTime(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).ShowTime)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).ShowTags != true {
-
-		buffer.WriteString(`ShowTags(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).ShowTags)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).NavigateToPanel != true {
-
-		buffer.WriteString(`NavigateToPanel(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).NavigateToPanel)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).NavigateBefore != "" && input.Options.(*Options).NavigateBefore != "10m" {
-
-		buffer.WriteString(`NavigateBefore(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).NavigateBefore)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-	if input.Options != nil && input.Options.(*Options).NavigateAfter != "" && input.Options.(*Options).NavigateAfter != "10m" {
-
-		buffer.WriteString(`NavigateAfter(`)
-		arg0 := fmt.Sprintf("%#v", input.Options.(*Options).NavigateAfter)
-		buffer.WriteString(arg0)
-
-		buffer.WriteString(")")
-
-		calls = append(calls, buffer.String())
-		buffer.Reset()
-
-	}
-
-	return strings.Join(calls, ".\t\n")
-}
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/types_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/types_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/types_gen.go	2025-01-27 12:35:26.928214938 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/types_gen.go	2025-01-27 12:34:49.638428980 +0000
@@ -12,7 +12,6 @@
 
 	cog "github.com/grafana/cog/generated/go/cog"
 	variants "github.com/grafana/cog/generated/go/cog/variants"
-	dashboard "github.com/grafana/cog/generated/go/dashboard"
 )
 
 type Options struct {
@@ -270,12 +269,5 @@
 
 			return options, nil
 		},
-		GoConverter: func(inputPanel any) string {
-			if panel, ok := inputPanel.(*dashboard.Panel); ok {
-				return PanelConverter(*panel)
-			}
-
-			return PanelConverter(inputPanel.(dashboard.Panel))
-		},
 	}
 }
diff --new-file --unidirectional-new-file '--color=never' --unified --recursive '--exclude=.git' '--exclude=gradle.properties' '--exclude=pyproject.toml' '--exclude=package.json' '--exclude=*.md' /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/visualization_builder_gen.go /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/visualization_builder_gen.go
--- /tmp/foundation-workspace-main/foundation-sdk/go/annotationslist/visualization_builder_gen.go	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/foundation-workspace-current/foundation-sdk/go/annotationslist/visualization_builder_gen.go	2025-01-27 12:34:49.638428980 +0000
@@ -0,0 +1,274 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+//
+// Using jennies:
+//     GoBuilder
+
+package annotationslist
+
+import (
+	cog "github.com/grafana/cog/generated/go/cog"
+	dashboardv2 "github.com/grafana/cog/generated/go/dashboardv2"
+)
+
+var _ cog.Builder[dashboardv2.VizConfigKind] = (*VisualizationBuilder)(nil)
+
+type VisualizationBuilder struct {
+	internal *dashboardv2.VizConfigKind
+	errors   map[string]cog.BuildErrors
+}
+
+func NewVisualizationBuilder() *VisualizationBuilder {
+	resource := dashboardv2.NewVizConfigKind()
+	builder := &VisualizationBuilder{
+		internal: resource,
+		errors:   make(map[string]cog.BuildErrors),
+	}
+	builder.internal.Kind = "annolist"
+
+	return builder
+}
+
+func (builder *VisualizationBuilder) Build() (dashboardv2.VizConfigKind, error) {
+	if err := builder.internal.Validate(); err != nil {
+		return dashboardv2.VizConfigKind{}, err
+	}
+
+	return *builder.internal, nil
+}
+
+// The display value for this field.  This supports template variables blank is auto
+func (builder *VisualizationBuilder) DisplayName(displayName string) *VisualizationBuilder {
+	builder.internal.Spec.FieldConfig.Defaults.DisplayName = &displayName
+
+	return builder
+}
+
+// This can be used by data sources that return and explicit naming structure for values and labels
+// When this property is configured, this value is used rather than the default naming strategy.
+func (builder *VisualizationBuilder) DisplayNameFromDS(displayNameFromDS string) *VisualizationBuilder {
+	builder.internal.Spec.FieldConfig.Defaults.DisplayNameFromDS = &displayNameFromDS
+
+	return builder
+}
+
+// Human readable field metadata
+func (builder *VisualizationBuilder) Description(description string) *VisualizationBuilder {
+	builder.internal.Spec.FieldConfig.Defaults.Description = &description
+
+	return builder
+}
+
+// An explicit path to the field in the datasource.  When the frame meta includes a...*[Comment body truncated]*

@K-Phoen K-Phoen self-assigned this Jan 24, 2025
@K-Phoen K-Phoen force-pushed the sandbox/dashboard-v1-v2 branch 2 times, most recently from ea02e74 to 363627f Compare January 26, 2025 02:16
@K-Phoen K-Phoen changed the base branch from main to better-inspect January 26, 2025 02:16
@K-Phoen K-Phoen mentioned this pull request Jan 26, 2025
Base automatically changed from better-inspect to main January 27, 2025 10:35
@K-Phoen K-Phoen force-pushed the sandbox/dashboard-v1-v2 branch from d239f90 to dfc3e3c Compare January 27, 2025 11:57
@K-Phoen K-Phoen force-pushed the sandbox/dashboard-v1-v2 branch from dfc3e3c to e65dbab Compare January 27, 2025 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant