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

Store supported grafana versions in file #594

Merged
merged 2 commits into from
Oct 9, 2024
Merged

Conversation

K-Phoen
Copy link
Member

@K-Phoen K-Phoen commented Oct 9, 2024

No description provided.

@K-Phoen K-Phoen requested a review from a team as a code owner October 9, 2024 19:21
@K-Phoen K-Phoen self-assigned this Oct 9, 2024
Copy link

github-actions bot commented Oct 9, 2024

Note: in addition to the changes introduced by this PR, the diff includes unreleased changes living in main.

🔎 Changes to grafana-foundation-sdk@next+cog-v0.0.x

diff --git a/go/LICENSE.md b/LICENSE
similarity index 99%
rename from go/LICENSE.md
rename to LICENSE
index c319da33..bfbbbcf3 100644
--- a/go/LICENSE.md
+++ b/LICENSE
@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-Copyright [yyyy] [name of copyright owner]
+Copyright 2024 Grafana Labs
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/README.md b/README.md
index bab21a4c..d68e29eb 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ of versions of Grafana, in the following languages:
 > [schemas exposed by Grafana][kind-registry].
 
 > [!TIP]
-> This branch contains **types and builders generated for Grafana `main`.**
+> This branch contains **types and builders generated for Grafana `next`.**
 
 ## Navigating the SDK
 
@@ -26,10 +26,13 @@ your Grafana instance.
 | Grafana Version                | `cog` Version | Branch |
 | ------------------------------ | ------------- | ------ |
 | `next` (Grafana's main branch) | `v0.0.x`      | [next+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/next%2Bcog-v0.0.x) |
-| `v10.4.x`                      | `v0.0.x`      | [v10.4.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.4.x%2Bcog-v0.0.x) |
-| `v10.3.x`                      | `v0.0.x`      | [v10.3.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.3.x%2Bcog-v0.0.x) |
-| `v10.2.x`                      | `v0.0.x`      | [v10.2.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.2.x%2Bcog-v0.0.x) |
-| `v10.1.x`                      | `v0.0.x`      | [v10.1.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.1.x%2Bcog-v0.0.x) |
+| `v11.2.x` | `v0.0.x`      | [v11.2.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v11.2.x%2Bcog-v0.0.x) |
+| `v11.1.x` | `v0.0.x`      | [v11.1.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v11.1.x%2Bcog-v0.0.x) |
+| `v11.0.x` | `v0.0.x`      | [v11.0.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v11.0.x%2Bcog-v0.0.x) |
+| `v10.4.x` | `v0.0.x`      | [v10.4.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.4.x%2Bcog-v0.0.x) |
+| `v10.3.x` | `v0.0.x`      | [v10.3.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.3.x%2Bcog-v0.0.x) |
+| `v10.2.x` | `v0.0.x`      | [v10.2.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.2.x%2Bcog-v0.0.x) |
+| `v10.1.x` | `v0.0.x`      | [v10.1.x+cog-v0.0.x](https://github.com/grafana/grafana-foundation-sdk/tree/v10.1.x%2Bcog-v0.0.x) |
 
 ## Maturity
 
diff --git a/java/LICENSE.md b/go/LICENSE
similarity index 99%
rename from java/LICENSE.md
rename to go/LICENSE
index c319da33..bfbbbcf3 100644
--- a/java/LICENSE.md
+++ b/go/LICENSE
@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-Copyright [yyyy] [name of copyright owner]
+Copyright 2024 Grafana Labs
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/go/accesspolicy/accesspolicy_converter_gen.go b/go/accesspolicy/accesspolicy_converter_gen.go
new file mode 100644
index 00000000..8dee6c16
--- /dev/null
+++ b/go/accesspolicy/accesspolicy_converter_gen.go
@@ -0,0 +1,53 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package accesspolicy
+
+import (
+	"strings"
+)
+
+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 --git a/go/accesspolicy/accessrule_converter_gen.go b/go/accesspolicy/accessrule_converter_gen.go
new file mode 100644
index 00000000..a645d081
--- /dev/null
+++ b/go/accesspolicy/accessrule_converter_gen.go
@@ -0,0 +1,55 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package accesspolicy
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(input.Target))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/accesspolicy/resourceref_converter_gen.go b/go/accesspolicy/resourceref_converter_gen.go
new file mode 100644
index 00000000..70efe2de
--- /dev/null
+++ b/go/accesspolicy/resourceref_converter_gen.go
@@ -0,0 +1,41 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package accesspolicy
+
+import (
+	"fmt"
+	"strings"
+)
+
+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 --git a/go/accesspolicy/roleref_converter_gen.go b/go/accesspolicy/roleref_converter_gen.go
new file mode 100644
index 00000000..9f514777
--- /dev/null
+++ b/go/accesspolicy/roleref_converter_gen.go
@@ -0,0 +1,55 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package accesspolicy
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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 --git a/go/alerting/contactpoint_converter_gen.go b/go/alerting/contactpoint_converter_gen.go
new file mode 100644
index 00000000..63f7a05c
--- /dev/null
+++ b/go/alerting/contactpoint_converter_gen.go
@@ -0,0 +1,90 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func ContactPointConverter(input ContactPoint) string {
+	calls := []string{
+		`alerting.NewContactPointBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.DisableResolveMessage != nil {
+
+		buffer.WriteString(`DisableResolveMessage(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(input.Uid))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/matcher_converter_gen.go b/go/alerting/matcher_converter_gen.go
new file mode 100644
index 00000000..14586884
--- /dev/null
+++ b/go/alerting/matcher_converter_gen.go
@@ -0,0 +1,55 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(input.Value))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/mutetiming_converter_gen.go b/go/alerting/mutetiming_converter_gen.go
new file mode 100644
index 00000000..22371baa
--- /dev/null
+++ b/go/alerting/mutetiming_converter_gen.go
@@ -0,0 +1,48 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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 --git a/go/alerting/notificationpolicy_converter_gen.go b/go/alerting/notificationpolicy_converter_gen.go
new file mode 100644
index 00000000..f13ec82c
--- /dev/null
+++ b/go/alerting/notificationpolicy_converter_gen.go
@@ -0,0 +1,212 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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 --git a/go/alerting/notificationsettings_converter_gen.go b/go/alerting/notificationsettings_converter_gen.go
new file mode 100644
index 00000000..1d55993a
--- /dev/null
+++ b/go/alerting/notificationsettings_converter_gen.go
@@ -0,0 +1,101 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(input.RepeatInterval))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/notificationtemplate_converter_gen.go b/go/alerting/notificationtemplate_converter_gen.go
new file mode 100644
index 00000000..fdac67d1
--- /dev/null
+++ b/go/alerting/notificationtemplate_converter_gen.go
@@ -0,0 +1,67 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(input.Version))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/query_converter_gen.go b/go/alerting/query_converter_gen.go
new file mode 100644
index 00000000..1422515e
--- /dev/null
+++ b/go/alerting/query_converter_gen.go
@@ -0,0 +1,82 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func QueryConverter(input Query) string {
+	calls := []string{
+		`alerting.NewQueryBuilder(` + fmt.Sprintf("%#v", cog.Unptr(input.RefId)) + `)`,
+	}
+	var buffer strings.Builder
+	if input.DatasourceUid != nil && *input.DatasourceUid != "" {
+
+		buffer.WriteString(`DatasourceUid(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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 --git a/go/alerting/recordrule_converter_gen.go b/go/alerting/recordrule_converter_gen.go
new file mode 100644
index 00000000..6026f547
--- /dev/null
+++ b/go/alerting/recordrule_converter_gen.go
@@ -0,0 +1,41 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+)
+
+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 --git a/go/alerting/rule_converter_gen.go b/go/alerting/rule_converter_gen.go
new file mode 100644
index 00000000..3be3bede
--- /dev/null
+++ b/go/alerting/rule_converter_gen.go
@@ -0,0 +1,250 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(input.Updated))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/rulegroup_converter_gen.go b/go/alerting/rulegroup_converter_gen.go
new file mode 100644
index 00000000..322275c7
--- /dev/null
+++ b/go/alerting/rulegroup_converter_gen.go
@@ -0,0 +1,72 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func RuleGroupConverter(input RuleGroup) string {
+	calls := []string{
+		`alerting.NewRuleGroupBuilder(` + fmt.Sprintf("%#v", cog.Unptr(input.Title)) + `)`,
+	}
+	var buffer strings.Builder
+	if input.FolderUid != nil && *input.FolderUid != "" {
+
+		buffer.WriteString(`FolderUid(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(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", cog.Unptr(input.Title))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/timeinterval_converter_gen.go b/go/alerting/timeinterval_converter_gen.go
new file mode 100644
index 00000000..3148264c
--- /dev/null
+++ b/go/alerting/timeinterval_converter_gen.go
@@ -0,0 +1,48 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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 --git a/go/alerting/timeintervalitem_converter_gen.go b/go/alerting/timeintervalitem_converter_gen.go
new file mode 100644
index 00000000..164e6b60
--- /dev/null
+++ b/go/alerting/timeintervalitem_converter_gen.go
@@ -0,0 +1,116 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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 --git a/go/alerting/timeintervaltimerange_converter_gen.go b/go/alerting/timeintervaltimerange_converter_gen.go
new file mode 100644
index 00000000..f1ec6fb0
--- /dev/null
+++ b/go/alerting/timeintervaltimerange_converter_gen.go
@@ -0,0 +1,43 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package alerting
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+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", cog.Unptr(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", cog.Unptr(input.StartTime))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/alerting/types_gen.go b/go/alerting/types_gen.go
index a346ebb8..29299769 100644
--- a/go/alerting/types_gen.go
+++ b/go/alerting/types_gen.go
@@ -4,6 +4,7 @@ package alerting
 
 import (
 	"encoding/json"
+	"fmt"
 	"time"
 
 	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
@@ -29,25 +30,25 @@ func (resource *Query) UnmarshalJSON(raw []byte) error {
 
 	if fields["datasourceUid"] != nil {
 		if err := json.Unmarshal(fields["datasourceUid"], &resource.DatasourceUid); err != nil {
-			return err
+			return fmt.Errorf("error decoding field 'datasourceUid': %w", err)
 		}
 	}
 
 	if fields["queryType"] != nil {
 		if err := json.Unmarshal(fields["queryType"], &resource.QueryType); err != nil {
-			return err
+			return fmt.Errorf("error decoding field 'queryType': %w", err)
 		}
 	}
 
 	if fields["refId"] != nil {
 		if err := json.Unmarshal(fields["refId"], &resource.RefId); err != nil {
-			return err
+			return fmt.Errorf("error decoding field 'refId': %w", err)
 		}
 	}
 
 	if fields["relativeTimeRange"] != nil {
 		if err := json.Unmarshal(fields["relativeTimeRange"], &resource.RelativeTimeRange); err != nil {
-			return err
+			return fmt.Errorf("error decoding field 'relativeTimeRange': %w", err)
 		}
 	}
 
diff --git a/go/annotationslist/panel_converter_gen.go b/go/annotationslist/panel_converter_gen.go
new file mode 100644
index 00000000..c9259d1e
--- /dev/null
+++ b/go/annotationslist/panel_converter_gen.go
@@ -0,0 +1,559 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package annotationslist
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+	dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard"
+)
+
+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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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", cog.Unptr(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.NoValue != nil && *input.FieldConfig.Defaults.NoValue != "" {
+
+		buffer.WriteString(`NoValue(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(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).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 --git a/go/annotationslist/types_gen.go b/go/annotationslist/types_gen.go
index 680bb99b..ee342966 100644
--- a/go/annotationslist/types_gen.go
+++ b/go/annotationslist/types_gen.go
@@ -6,6 +6,7 @@ import (
 	"encoding/json"
 
 	variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants"
+	dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard"
 )
 
 type Options struct {
@@ -75,5 +76,12 @@ func VariantConfig() variants.PanelcfgConfig {
 
 			return options, nil
 		},
+		GoConverter: func(inputPanel any) string {
+			if panel, ok := inputPanel.(*dashboard.Panel); ok {
+				return PanelConverter(*panel)
+			}
+
+			return PanelConverter(inputPanel.(dashboard.Panel))
+		},
 	}
 }
diff --git a/go/azuremonitor/appinsightsgroupbyquery_converter_gen.go b/go/azuremonitor/appinsightsgroupbyquery_converter_gen.go
new file mode 100644
index 00000000..0fa5142a
--- /dev/null
+++ b/go/azuremonitor/appinsightsgroupbyquery_converter_gen.go
@@ -0,0 +1,43 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package azuremonitor
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func AppInsightsGroupByQueryConverter(input AppInsightsGroupByQuery) string {
+	calls := []string{
+		`azuremonitor.NewAppInsightsGroupByQueryBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.RawQuery != nil && *input.RawQuery != "" {
+
+		buffer.WriteString(`RawQuery(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.RawQuery))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.MetricName != "" {
+
+		buffer.WriteString(`MetricName(`)
+		arg0 := fmt.Sprintf("%#v", input.MetricName)
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/azuremonitor/appinsightsmetricnamequery_converter_gen.go b/go/azuremonitor/appinsightsmetricnamequery_converter_gen.go
new file mode 100644
index 00000000..2ba66bd4
--- /dev/null
+++ b/go/azuremonitor/appinsightsmetricnamequery_converter_gen.go
@@ -0,0 +1,31 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package azuremonitor
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func AppInsightsMetricNameQueryConverter(input AppInsightsMetricNameQuery) string {
+	calls := []string{
+		`azuremonitor.NewAppInsightsMetricNameQueryBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.RawQuery != nil && *input.RawQuery != "" {
+
+		buffer.WriteString(`RawQuery(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.RawQuery))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/azuremonitor/azurelogsquery_converter_gen.go b/go/azuremonitor/azurelogsquery_converter_gen.go
new file mode 100644
index 00000000..37a2969b
--- /dev/null
+++ b/go/azuremonitor/azurelogsquery_converter_gen.go
@@ -0,0 +1,132 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package azuremonitor
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func AzureLogsQueryConverter(input AzureLogsQuery) string {
+	calls := []string{
+		`azuremonitor.NewAzureLogsQueryBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.Query != nil && *input.Query != "" {
+
+		buffer.WriteString(`Query(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Query))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.ResultFormat != nil {
+
+		buffer.WriteString(`ResultFormat(`)
+		arg0 := cog.Dump(*input.ResultFormat)
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Resources != nil && len(input.Resources) >= 1 {
+
+		buffer.WriteString(`Resources(`)
+		tmparg0 := []string{}
+		for _, arg1 := range input.Resources {
+			tmpresourcesarg1 := fmt.Sprintf("%#v", arg1)
+			tmparg0 = append(tmparg0, tmpresourcesarg1)
+		}
+		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.DashboardTime != nil {
+
+		buffer.WriteString(`DashboardTime(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.DashboardTime))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.TimeColumn != nil && *input.TimeColumn != "" {
+
+		buffer.WriteString(`TimeColumn(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.TimeColumn))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.BasicLogsQuery != nil {
+
+		buffer.WriteString(`BasicLogsQuery(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.BasicLogsQuery))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Workspace != nil && *input.Workspace != "" {
+
+		buffer.WriteString(`Workspace(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Workspace))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Resource != nil && *input.Resource != "" {
+
+		buffer.WriteString(`Resource(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Resource))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.IntersectTime != nil {
+
+		buffer.WriteString(`IntersectTime(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.IntersectTime))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/azuremonitor/azuremetricdimension_converter_gen.go b/go/azuremonitor/azuremetricdimension_converter_gen.go
new file mode 100644
index 00000000..6eb15df1
--- /dev/null
+++ b/go/azuremonitor/azuremetricdimension_converter_gen.go
@@ -0,0 +1,72 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package azuremonitor
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func AzureMetricDimensionConverter(input AzureMetricDimension) string {
+	calls := []string{
+		`azuremonitor.NewAzureMetricDimensionBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.Dimension != nil && *input.Dimension != "" {
+
+		buffer.WriteString(`Dimension(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Dimension))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Operator != nil && *input.Operator != "" {
+
+		buffer.WriteString(`Operator(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Operator))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Filters != nil && len(input.Filters) >= 1 {
+
+		buffer.WriteString(`Filters(`)
+		tmparg0 := []string{}
+		for _, arg1 := range input.Filters {
+			tmpfiltersarg1 := fmt.Sprintf("%#v", arg1)
+			tmparg0 = append(tmparg0, tmpfiltersarg1)
+		}
+		arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Filter != nil && *input.Filter != "" {
+
+		buffer.WriteString(`Filter(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Filter))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+
+	return strings.Join(calls, ".\t\n")
+}
diff --git a/go/azuremonitor/azuremetricquery_converter_gen.go b/go/azuremonitor/azuremetricquery_converter_gen.go
new file mode 100644
index 00000000..085c12c6
--- /dev/null
+++ b/go/azuremonitor/azuremetricquery_converter_gen.go
@@ -0,0 +1,250 @@
+// Code generated - EDITING IS FUTILE. DO NOT EDIT.
+
+package azuremonitor
+
+import (
+	"fmt"
+	"strings"
+
+	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
+)
+
+func AzureMetricQueryConverter(input AzureMetricQuery) string {
+	calls := []string{
+		`azuremonitor.NewAzureMetricQueryBuilder()`,
+	}
+	var buffer strings.Builder
+	if input.Resources != nil && len(input.Resources) >= 1 {
+
+		buffer.WriteString(`Resources(`)
+		tmparg0 := []string{}
+		for _, arg1 := range input.Resources {
+			tmpresourcesarg1 := AzureMonitorResourceConverter(arg1)
+			tmparg0 = append(tmparg0, tmpresourcesarg1)
+		}
+		arg0 := "[]cog.Builder[azuremonitor.AzureMonitorResource]{" + strings.Join(tmparg0, ",\n") + "}"
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.MetricNamespace != nil && *input.MetricNamespace != "" {
+
+		buffer.WriteString(`MetricNamespace(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.MetricNamespace))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.CustomNamespace != nil && *input.CustomNamespace != "" {
+
+		buffer.WriteString(`CustomNamespace(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.CustomNamespace))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.MetricName != nil && *input.MetricName != "" {
+
+		buffer.WriteString(`MetricName(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.MetricName))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Region != nil && *input.Region != "" {
+
+		buffer.WriteString(`Region(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Region))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.TimeGrain != nil && *input.TimeGrain != "" {
+
+		buffer.WriteString(`TimeGrain(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.TimeGrain))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.Aggregation != nil && *input.Aggregation != "" {
+
+		buffer.WriteString(`Aggregation(`)
+		arg0 := fmt.Sprintf("%#v", cog.Unptr(input.Aggregation))
+		buffer.WriteString(arg0)
+
+		buffer.WriteString(")")
+
+		calls = append(calls, buffer.String())
+		buffer.Reset()
+
+	}
+	if input.DimensionFilters != nil && len(input.DimensionFilters) >= 1 {
+
+		buffer.WriteString(`DimensionFilters(`)
+		tmparg0 := []string{}
+		for _, arg1 := range input.DimensionFilters {
+			tmpdimensionFiltersarg1 := AzureMetricDimensionConverter(arg1)
+			tmparg0 = append(tmparg0, tmpdimensionFiltersarg1...*[Comment body truncated]*

@K-Phoen K-Phoen merged commit 25dd953 into main Oct 9, 2024
13 checks passed
@K-Phoen K-Phoen deleted the release-script-tweaks branch October 9, 2024 19:39
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