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

Identifiers formatting wip #383

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

Identifiers formatting wip #383

wants to merge 14 commits into from

Conversation

K-Phoen
Copy link
Member

@K-Phoen K-Phoen commented May 15, 2024

It's really easy to have inconsistent formatting for identifiers (type names, variables, classes, fields, ...)

This processing is split across various places: different jennies and templates mainly.

What about applying language-specific formatting conventions on the intermediate representations instead? It would guarantee a consistent output, and unclutter jennies+templates.

This PR experiments with this idea.

Would help with #235

Copy link

github-actions bot commented May 15, 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/accesspolicy/accesspolicy_builder_gen.go b/go/accesspolicy/accesspolicy_builder_gen.go
deleted file mode 100644
index 19c05ce..0000000
--- a/go/accesspolicy/accesspolicy_builder_gen.go
+++ /dev/null
@@ -1,80 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package accesspolicy
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[AccessPolicy] = (*AccessPolicyBuilder)(nil)
-
-type AccessPolicyBuilder struct {
-	internal *AccessPolicy
-	errors   map[string]cog.BuildErrors
-}
-
-func NewAccessPolicyBuilder() *AccessPolicyBuilder {
-	resource := &AccessPolicy{}
-	builder := &AccessPolicyBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *AccessPolicyBuilder) Build() (AccessPolicy, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("AccessPolicy", err)...)
-	}
-
-	if len(errs) != 0 {
-		return AccessPolicy{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// The scope where these policies should apply
-func (builder *AccessPolicyBuilder) Scope(scope cog.Builder[ResourceRef]) *AccessPolicyBuilder {
-	scopeResource, err := scope.Build()
-	if err != nil {
-		builder.errors["scope"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Scope = scopeResource
-
-	return builder
-}
-
-// The role that must apply this policy
-func (builder *AccessPolicyBuilder) Role(role cog.Builder[RoleRef]) *AccessPolicyBuilder {
-	roleResource, err := role.Build()
-	if err != nil {
-		builder.errors["role"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Role = roleResource
-
-	return builder
-}
-
-// The set of rules to apply.  Note that * is required to modify
-// access policy rules, and that "none" will reject all actions
-func (builder *AccessPolicyBuilder) Rules(rules cog.Builder[AccessRule]) *AccessPolicyBuilder {
-	rulesResource, err := rules.Build()
-	if err != nil {
-		builder.errors["rules"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Rules = append(builder.internal.Rules, rulesResource)
-
-	return builder
-}
-
-func (builder *AccessPolicyBuilder) applyDefaults() {
-}
diff --git a/go/accesspolicy/accessrule_builder_gen.go b/go/accesspolicy/accessrule_builder_gen.go
deleted file mode 100644
index 22d0720..0000000
--- a/go/accesspolicy/accessrule_builder_gen.go
+++ /dev/null
@@ -1,66 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package accesspolicy
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[AccessRule] = (*AccessRuleBuilder)(nil)
-
-type AccessRuleBuilder struct {
-	internal *AccessRule
-	errors   map[string]cog.BuildErrors
-}
-
-func NewAccessRuleBuilder() *AccessRuleBuilder {
-	resource := &AccessRule{}
-	builder := &AccessRuleBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *AccessRuleBuilder) Build() (AccessRule, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("AccessRule", err)...)
-	}
-
-	if len(errs) != 0 {
-		return AccessRule{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// The kind this rule applies to (dashboards, alert, etc)
-func (builder *AccessRuleBuilder) Kind(kind string) *AccessRuleBuilder {
-	builder.internal.Kind = kind
-
-	return builder
-}
-
-// READ, WRITE, CREATE, DELETE, ...
-// should move to k8s style verbs like: "get", "list", "watch", "create", "update", "patch", "delete"
-func (builder *AccessRuleBuilder) Verb(verb string) *AccessRuleBuilder {
-	builder.internal.Verb = verb
-
-	return builder
-}
-
-// Specific sub-elements like "alert.rules" or "dashboard.permissions"????
-func (builder *AccessRuleBuilder) Target(target string) *AccessRuleBuilder {
-	builder.internal.Target = &target
-
-	return builder
-}
-
-func (builder *AccessRuleBuilder) applyDefaults() {
-	builder.Kind("*")
-}
diff --git a/go/accesspolicy/resourceref_builder_gen.go b/go/accesspolicy/resourceref_builder_gen.go
deleted file mode 100644
index 5d6b526..0000000
--- a/go/accesspolicy/resourceref_builder_gen.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package accesspolicy
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[ResourceRef] = (*ResourceRefBuilder)(nil)
-
-type ResourceRefBuilder struct {
-	internal *ResourceRef
-	errors   map[string]cog.BuildErrors
-}
-
-func NewResourceRefBuilder() *ResourceRefBuilder {
-	resource := &ResourceRef{}
-	builder := &ResourceRefBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *ResourceRefBuilder) Build() (ResourceRef, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("ResourceRef", err)...)
-	}
-
-	if len(errs) != 0 {
-		return ResourceRef{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *ResourceRefBuilder) Kind(kind string) *ResourceRefBuilder {
-	builder.internal.Kind = kind
-
-	return builder
-}
-
-func (builder *ResourceRefBuilder) Name(name string) *ResourceRefBuilder {
-	builder.internal.Name = name
-
-	return builder
-}
-
-func (builder *ResourceRefBuilder) applyDefaults() {
-}
diff --git a/go/accesspolicy/roleref_builder_gen.go b/go/accesspolicy/roleref_builder_gen.go
deleted file mode 100644
index de2d256..0000000
--- a/go/accesspolicy/roleref_builder_gen.go
+++ /dev/null
@@ -1,63 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package accesspolicy
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[RoleRef] = (*RoleRefBuilder)(nil)
-
-type RoleRefBuilder struct {
-	internal *RoleRef
-	errors   map[string]cog.BuildErrors
-}
-
-func NewRoleRefBuilder() *RoleRefBuilder {
-	resource := &RoleRef{}
-	builder := &RoleRefBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *RoleRefBuilder) Build() (RoleRef, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("RoleRef", err)...)
-	}
-
-	if len(errs) != 0 {
-		return RoleRef{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// Policies can apply to roles, teams, or users
-// Applying policies to individual users is supported, but discouraged
-func (builder *RoleRefBuilder) Kind(kind RoleRefKind) *RoleRefBuilder {
-	builder.internal.Kind = kind
-
-	return builder
-}
-
-func (builder *RoleRefBuilder) Name(name string) *RoleRefBuilder {
-	builder.internal.Name = name
-
-	return builder
-}
-
-func (builder *RoleRefBuilder) Xname(xname string) *RoleRefBuilder {
-	builder.internal.Xname = xname
-
-	return builder
-}
-
-func (builder *RoleRefBuilder) applyDefaults() {
-}
diff --git a/go/alerting/contactpoint_builder_gen.go b/go/alerting/contactpoint_builder_gen.go
deleted file mode 100644
index 4c4895e..0000000
--- a/go/alerting/contactpoint_builder_gen.go
+++ /dev/null
@@ -1,103 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	"errors"
-
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[ContactPoint] = (*ContactPointBuilder)(nil)
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-type ContactPointBuilder struct {
-	internal *ContactPoint
-	errors   map[string]cog.BuildErrors
-}
-
-func NewContactPointBuilder() *ContactPointBuilder {
-	resource := &ContactPoint{}
-	builder := &ContactPointBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *ContactPointBuilder) Build() (ContactPoint, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("ContactPoint", err)...)
-	}
-
-	if len(errs) != 0 {
-		return ContactPoint{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) DisableResolveMessage(disableResolveMessage bool) *ContactPointBuilder {
-	builder.internal.DisableResolveMessage = &disableResolveMessage
-
-	return builder
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) Name(name string) *ContactPointBuilder {
-	builder.internal.Name = &name
-
-	return builder
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) Provenance(provenance string) *ContactPointBuilder {
-	builder.internal.Provenance = &provenance
-
-	return builder
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) Settings(settings Json) *ContactPointBuilder {
-	builder.internal.Settings = settings
-
-	return builder
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) Type(typeArg ContactPointType) *ContactPointBuilder {
-	builder.internal.Type = typeArg
-
-	return builder
-}
-
-// EmbeddedContactPoint is the contact point type that is used
-// by grafanas embedded alertmanager implementation.
-func (builder *ContactPointBuilder) Uid(uid string) *ContactPointBuilder {
-	if !(len([]rune(uid)) >= 1) {
-		builder.errors["uid"] = cog.MakeBuildErrors("uid", errors.New("len([]rune(uid)) must be >= 1"))
-		return builder
-	}
-	if !(len([]rune(uid)) <= 40) {
-		builder.errors["uid"] = cog.MakeBuildErrors("uid", errors.New("len([]rune(uid)) must be <= 40"))
-		return builder
-	}
-	builder.internal.Uid = &uid
-
-	return builder
-}
-
-func (builder *ContactPointBuilder) applyDefaults() {
-}
diff --git a/go/alerting/matcher_builder_gen.go b/go/alerting/matcher_builder_gen.go
deleted file mode 100644
index f76f81f..0000000
--- a/go/alerting/matcher_builder_gen.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[Matcher] = (*MatcherBuilder)(nil)
-
-type MatcherBuilder struct {
-	internal *Matcher
-	errors   map[string]cog.BuildErrors
-}
-
-func NewMatcherBuilder() *MatcherBuilder {
-	resource := &Matcher{}
-	builder := &MatcherBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *MatcherBuilder) Build() (Matcher, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("Matcher", err)...)
-	}
-
-	if len(errs) != 0 {
-		return Matcher{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *MatcherBuilder) Name(name string) *MatcherBuilder {
-	builder.internal.Name = &name
-
-	return builder
-}
-
-func (builder *MatcherBuilder) Type(typeArg MatchType) *MatcherBuilder {
-	builder.internal.Type = &typeArg
-
-	return builder
-}
-
-func (builder *MatcherBuilder) Value(value string) *MatcherBuilder {
-	builder.internal.Value = &value
-
-	return builder
-}
-
-func (builder *MatcherBuilder) applyDefaults() {
-}
diff --git a/go/alerting/mutetiming_builder_gen.go b/go/alerting/mutetiming_builder_gen.go
deleted file mode 100644
index 84726ac..0000000
--- a/go/alerting/mutetiming_builder_gen.go
+++ /dev/null
@@ -1,64 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[MuteTiming] = (*MuteTimingBuilder)(nil)
-
-type MuteTimingBuilder struct {
-	internal *MuteTiming
-	errors   map[string]cog.BuildErrors
-}
-
-func NewMuteTimingBuilder() *MuteTimingBuilder {
-	resource := &MuteTiming{}
-	builder := &MuteTimingBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *MuteTimingBuilder) Build() (MuteTiming, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("MuteTiming", err)...)
-	}
-
-	if len(errs) != 0 {
-		return MuteTiming{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *MuteTimingBuilder) Name(name string) *MuteTimingBuilder {
-	builder.internal.Name = &name
-
-	return builder
-}
-
-func (builder *MuteTimingBuilder) TimeIntervals(timeIntervals []cog.Builder[TimeInterval]) *MuteTimingBuilder {
-	timeIntervalsResources := make([]TimeInterval, 0, len(timeIntervals))
-	for _, r1 := range timeIntervals {
-		timeIntervalsDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["time_intervals"] = err.(cog.BuildErrors)
-			return builder
-		}
-		timeIntervalsResources = append(timeIntervalsResources, timeIntervalsDepth1)
-	}
-	builder.internal.TimeIntervals = timeIntervalsResources
-
-	return builder
-}
-
-func (builder *MuteTimingBuilder) applyDefaults() {
-}
diff --git a/go/alerting/notificationpolicy_builder_gen.go b/go/alerting/notificationpolicy_builder_gen.go
deleted file mode 100644
index 6e5da26..0000000
--- a/go/alerting/notificationpolicy_builder_gen.go
+++ /dev/null
@@ -1,158 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[NotificationPolicy] = (*NotificationPolicyBuilder)(nil)
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-type NotificationPolicyBuilder struct {
-	internal *NotificationPolicy
-	errors   map[string]cog.BuildErrors
-}
-
-func NewNotificationPolicyBuilder() *NotificationPolicyBuilder {
-	resource := &NotificationPolicy{}
-	builder := &NotificationPolicyBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *NotificationPolicyBuilder) Build() (NotificationPolicy, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("NotificationPolicy", err)...)
-	}
-
-	if len(errs) != 0 {
-		return NotificationPolicy{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Continue(continueArg bool) *NotificationPolicyBuilder {
-	builder.internal.Continue = &continueArg
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) GroupBy(groupBy []string) *NotificationPolicyBuilder {
-	builder.internal.GroupBy = groupBy
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) GroupInterval(groupInterval string) *NotificationPolicyBuilder {
-	builder.internal.GroupInterval = &groupInterval
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) GroupWait(groupWait string) *NotificationPolicyBuilder {
-	builder.internal.GroupWait = &groupWait
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Match(match map[string]string) *NotificationPolicyBuilder {
-	builder.internal.Match = match
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) MatchRe(matchRe MatchRegexps) *NotificationPolicyBuilder {
-	builder.internal.MatchRe = &matchRe
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Matchers(matchers Matchers) *NotificationPolicyBuilder {
-	builder.internal.Matchers = &matchers
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) MuteTimeIntervals(muteTimeIntervals []string) *NotificationPolicyBuilder {
-	builder.internal.MuteTimeIntervals = muteTimeIntervals
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) ObjectMatchers(objectMatchers ObjectMatchers) *NotificationPolicyBuilder {
-	builder.internal.ObjectMatchers = &objectMatchers
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Provenance(provenance Provenance) *NotificationPolicyBuilder {
-	builder.internal.Provenance = &provenance
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Receiver(receiver string) *NotificationPolicyBuilder {
-	builder.internal.Receiver = &receiver
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) RepeatInterval(repeatInterval string) *NotificationPolicyBuilder {
-	builder.internal.RepeatInterval = &repeatInterval
-
-	return builder
-}
-
-// A Route is a node that contains definitions of how to handle alerts. This is modified
-// from the upstream alertmanager in that it adds the ObjectMatchers property.
-func (builder *NotificationPolicyBuilder) Routes(routes []cog.Builder[NotificationPolicy]) *NotificationPolicyBuilder {
-	routesResources := make([]NotificationPolicy, 0, len(routes))
-	for _, r1 := range routes {
-		routesDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["routes"] = err.(cog.BuildErrors)
-			return builder
-		}
-		routesResources = append(routesResources, routesDepth1)
-	}
-	builder.internal.Routes = routesResources
-
-	return builder
-}
-
-func (builder *NotificationPolicyBuilder) applyDefaults() {
-}
diff --git a/go/alerting/notificationsettings_builder_gen.go b/go/alerting/notificationsettings_builder_gen.go
deleted file mode 100644
index f5f0abf..0000000
--- a/go/alerting/notificationsettings_builder_gen.go
+++ /dev/null
@@ -1,80 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[NotificationSettings] = (*NotificationSettingsBuilder)(nil)
-
-type NotificationSettingsBuilder struct {
-	internal *NotificationSettings
-	errors   map[string]cog.BuildErrors
-}
-
-func NewNotificationSettingsBuilder() *NotificationSettingsBuilder {
-	resource := &NotificationSettings{}
-	builder := &NotificationSettingsBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) Build() (NotificationSettings, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("NotificationSettings", err)...)
-	}
-
-	if len(errs) != 0 {
-		return NotificationSettings{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *NotificationSettingsBuilder) GroupBy(groupBy []string) *NotificationSettingsBuilder {
-	builder.internal.GroupBy = groupBy
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) GroupInterval(groupInterval string) *NotificationSettingsBuilder {
-	builder.internal.GroupInterval = &groupInterval
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) GroupWait(groupWait string) *NotificationSettingsBuilder {
-	builder.internal.GroupWait = &groupWait
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) MuteTimeIntervals(muteTimeIntervals []string) *NotificationSettingsBuilder {
-	builder.internal.MuteTimeIntervals = muteTimeIntervals
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) Receiver(receiver string) *NotificationSettingsBuilder {
-	builder.internal.Receiver = receiver
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) RepeatInterval(repeatInterval string) *NotificationSettingsBuilder {
-	builder.internal.RepeatInterval = &repeatInterval
-
-	return builder
-}
-
-func (builder *NotificationSettingsBuilder) applyDefaults() {
-	builder.GroupBy([]string{"alertname", "grafana_folder"})
-}
diff --git a/go/alerting/notificationtemplate_builder_gen.go b/go/alerting/notificationtemplate_builder_gen.go
deleted file mode 100644
index 7087deb..0000000
--- a/go/alerting/notificationtemplate_builder_gen.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[NotificationTemplate] = (*NotificationTemplateBuilder)(nil)
-
-type NotificationTemplateBuilder struct {
-	internal *NotificationTemplate
-	errors   map[string]cog.BuildErrors
-}
-
-func NewNotificationTemplateBuilder() *NotificationTemplateBuilder {
-	resource := &NotificationTemplate{}
-	builder := &NotificationTemplateBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *NotificationTemplateBuilder) Build() (NotificationTemplate, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("NotificationTemplate", err)...)
-	}
-
-	if len(errs) != 0 {
-		return NotificationTemplate{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *NotificationTemplateBuilder) Name(name string) *NotificationTemplateBuilder {
-	builder.internal.Name = &name
-
-	return builder
-}
-
-func (builder *NotificationTemplateBuilder) Provenance(provenance Provenance) *NotificationTemplateBuilder {
-	builder.internal.Provenance = &provenance
-
-	return builder
-}
-
-func (builder *NotificationTemplateBuilder) Template(template string) *NotificationTemplateBuilder {
-	builder.internal.Template = &template
-
-	return builder
-}
-
-func (builder *NotificationTemplateBuilder) applyDefaults() {
-}
diff --git a/go/alerting/query_builder_gen.go b/go/alerting/query_builder_gen.go
deleted file mode 100644
index 94b524f..0000000
--- a/go/alerting/query_builder_gen.go
+++ /dev/null
@@ -1,87 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-	cogvariants "github.com/grafana/grafana-foundation-sdk/go/cog/variants"
-)
-
-var _ cog.Builder[Query] = (*QueryBuilder)(nil)
-
-type QueryBuilder struct {
-	internal *Query
-	errors   map[string]cog.BuildErrors
-}
-
-func NewQueryBuilder(refId string) *QueryBuilder {
-	resource := &Query{}
-	builder := &QueryBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	builder.internal.RefId = &refId
-
-	return builder
-}
-
-func (builder *QueryBuilder) Build() (Query, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("Query", err)...)
-	}
-
-	if len(errs) != 0 {
-		return Query{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *QueryBuilder) DatasourceUid(datasourceUid string) *QueryBuilder {
-	builder.internal.DatasourceUid = &datasourceUid
-
-	return builder
-}
-
-func (builder *QueryBuilder) Model(model cog.Builder[cogvariants.Dataquery]) *QueryBuilder {
-	modelResource, err := model.Build()
-	if err != nil {
-		builder.errors["model"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Model = modelResource
-
-	return builder
-}
-
-func (builder *QueryBuilder) QueryType(queryType string) *QueryBuilder {
-	builder.internal.QueryType = &queryType
-
-	return builder
-}
-
-func (builder *QueryBuilder) RefId(refId string) *QueryBuilder {
-	builder.internal.RefId = &refId
-
-	return builder
-}
-
-func (builder *QueryBuilder) RelativeTimeRange(from Duration, to Duration) *QueryBuilder {
-	if builder.internal.RelativeTimeRange == nil {
-		builder.internal.RelativeTimeRange = &RelativeTimeRange{}
-	}
-	builder.internal.RelativeTimeRange.From = &from
-	if builder.internal.RelativeTimeRange == nil {
-		builder.internal.RelativeTimeRange = &RelativeTimeRange{}
-	}
-	builder.internal.RelativeTimeRange.To = &to
-
-	return builder
-}
-
-func (builder *QueryBuilder) applyDefaults() {
-}
diff --git a/go/alerting/rule_builder_gen.go b/go/alerting/rule_builder_gen.go
deleted file mode 100644
index 6e66fe8..0000000
--- a/go/alerting/rule_builder_gen.go
+++ /dev/null
@@ -1,208 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	"errors"
-	"time"
-
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[Rule] = (*RuleBuilder)(nil)
-
-type RuleBuilder struct {
-	internal *Rule
-	errors   map[string]cog.BuildErrors
-}
-
-func NewRuleBuilder(title string) *RuleBuilder {
-	resource := &Rule{}
-	builder := &RuleBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	if !(len([]rune(title)) >= 1) {
-		builder.errors["title"] = cog.MakeBuildErrors("title", errors.New("len([]rune(title)) must be >= 1"))
-		return builder
-	}
-	if !(len([]rune(title)) <= 190) {
-		builder.errors["title"] = cog.MakeBuildErrors("title", errors.New("len([]rune(title)) must be <= 190"))
-		return builder
-	}
-	builder.internal.Title = title
-
-	return builder
-}
-
-func (builder *RuleBuilder) Build() (Rule, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("Rule", err)...)
-	}
-
-	if len(errs) != 0 {
-		return Rule{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *RuleBuilder) Annotations(annotations map[string]string) *RuleBuilder {
-	builder.internal.Annotations = annotations
-
-	return builder
-}
-
-func (builder *RuleBuilder) Condition(condition string) *RuleBuilder {
-	builder.internal.Condition = condition
-
-	return builder
-}
-
-func (builder *RuleBuilder) Queries(data []cog.Builder[Query]) *RuleBuilder {
-	dataResources := make([]Query, 0, len(data))
-	for _, r1 := range data {
-		dataDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["data"] = err.(cog.BuildErrors)
-			return builder
-		}
-		dataResources = append(dataResources, dataDepth1)
-	}
-	builder.internal.Data = dataResources
-
-	return builder
-}
-
-func (builder *RuleBuilder) WithQuery(data cog.Builder[Query]) *RuleBuilder {
-	dataResource, err := data.Build()
-	if err != nil {
-		builder.errors["data"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Data = append(builder.internal.Data, dataResource)
-
-	return builder
-}
-
-func (builder *RuleBuilder) ExecErrState(execErrState RuleExecErrState) *RuleBuilder {
-	builder.internal.ExecErrState = execErrState
-
-	return builder
-}
-
-func (builder *RuleBuilder) FolderUID(folderUID string) *RuleBuilder {
-	builder.internal.FolderUID = folderUID
-
-	return builder
-}
-
-// The amount of time, in seconds, for which the rule must be breached for the rule to be considered to be Firing.
-// Before this time has elapsed, the rule is only considered to be Pending.
-func (builder *RuleBuilder) For(forArg string) *RuleBuilder {
-	builder.internal.For = forArg
-
-	return builder
-}
-
-func (builder *RuleBuilder) Id(id int64) *RuleBuilder {
-	builder.internal.Id = &id
-
-	return builder
-}
-
-func (builder *RuleBuilder) IsPaused(isPaused bool) *RuleBuilder {
-	builder.internal.IsPaused = &isPaused
-
-	return builder
-}
-
-func (builder *RuleBuilder) Labels(labels map[string]string) *RuleBuilder {
-	builder.internal.Labels = labels
-
-	return builder
-}
-
-func (builder *RuleBuilder) NoDataState(noDataState RuleNoDataState) *RuleBuilder {
-	builder.internal.NoDataState = noDataState
-
-	return builder
-}
-
-func (builder *RuleBuilder) NotificationSettings(notificationSettings cog.Builder[NotificationSettings]) *RuleBuilder {
-	notificationSettingsResource, err := notificationSettings.Build()
-	if err != nil {
-		builder.errors["notification_settings"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.NotificationSettings = &notificationSettingsResource
-
-	return builder
-}
-
-func (builder *RuleBuilder) OrgID(orgID int64) *RuleBuilder {
-	builder.internal.OrgID = orgID
-
-	return builder
-}
-
-func (builder *RuleBuilder) Provenance(provenance Provenance) *RuleBuilder {
-	builder.internal.Provenance = &provenance
-
-	return builder
-}
-
-func (builder *RuleBuilder) RuleGroup(ruleGroup string) *RuleBuilder {
-	if !(len([]rune(ruleGroup)) >= 1) {
-		builder.errors["ruleGroup"] = cog.MakeBuildErrors("ruleGroup", errors.New("len([]rune(ruleGroup)) must be >= 1"))
-		return builder
-	}
-	if !(len([]rune(ruleGroup)) <= 190) {
-		builder.errors["ruleGroup"] = cog.MakeBuildErrors("ruleGroup", errors.New("len([]rune(ruleGroup)) must be <= 190"))
-		return builder
-	}
-	builder.internal.RuleGroup = ruleGroup
-
-	return builder
-}
-
-func (builder *RuleBuilder) Title(title string) *RuleBuilder {
-	if !(len([]rune(title)) >= 1) {
-		builder.errors["title"] = cog.MakeBuildErrors("title", errors.New("len([]rune(title)) must be >= 1"))
-		return builder
-	}
-	if !(len([]rune(title)) <= 190) {
-		builder.errors["title"] = cog.MakeBuildErrors("title", errors.New("len([]rune(title)) must be <= 190"))
-		return builder
-	}
-	builder.internal.Title = title
-
-	return builder
-}
-
-func (builder *RuleBuilder) Uid(uid string) *RuleBuilder {
-	if !(len([]rune(uid)) >= 1) {
-		builder.errors["uid"] = cog.MakeBuildErrors("uid", errors.New("len([]rune(uid)) must be >= 1"))
-		return builder
-	}
-	if !(len([]rune(uid)) <= 40) {
-		builder.errors["uid"] = cog.MakeBuildErrors("uid", errors.New("len([]rune(uid)) must be <= 40"))
-		return builder
-	}
-	builder.internal.Uid = &uid
-
-	return builder
-}
-
-func (builder *RuleBuilder) Updated(updated time.Time) *RuleBuilder {
-	builder.internal.Updated = &updated
-
-	return builder
-}
-
-func (builder *RuleBuilder) applyDefaults() {
-}
diff --git a/go/alerting/rulegroup_builder_gen.go b/go/alerting/rulegroup_builder_gen.go
deleted file mode 100644
index 416765e..0000000
--- a/go/alerting/rulegroup_builder_gen.go
+++ /dev/null
@@ -1,90 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[RuleGroup] = (*RuleGroupBuilder)(nil)
-
-type RuleGroupBuilder struct {
-	internal *RuleGroup
-	errors   map[string]cog.BuildErrors
-}
-
-func NewRuleGroupBuilder(title string) *RuleGroupBuilder {
-	resource := &RuleGroup{}
-	builder := &RuleGroupBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	builder.internal.Title = &title
-
-	return builder
-}
-
-func (builder *RuleGroupBuilder) Build() (RuleGroup, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("RuleGroup", err)...)
-	}
-
-	if len(errs) != 0 {
-		return RuleGroup{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *RuleGroupBuilder) FolderUid(folderUid string) *RuleGroupBuilder {
-	builder.internal.FolderUid = &folderUid
-
-	return builder
-}
-
-// The interval, in seconds, at which all rules in the group are evaluated.
-// If a group contains many rules, the rules are evaluated sequentially.
-func (builder *RuleGroupBuilder) Interval(interval Duration) *RuleGroupBuilder {
-	builder.internal.Interval = &interval
-
-	return builder
-}
-
-func (builder *RuleGroupBuilder) Rules(rules []cog.Builder[Rule]) *RuleGroupBuilder {
-	rulesResources := make([]Rule, 0, len(rules))
-	for _, r1 := range rules {
-		rulesDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["rules"] = err.(cog.BuildErrors)
-			return builder
-		}
-		rulesResources = append(rulesResources, rulesDepth1)
-	}
-	builder.internal.Rules = rulesResources
-
-	return builder
-}
-
-func (builder *RuleGroupBuilder) WithRule(rules cog.Builder[Rule]) *RuleGroupBuilder {
-	rulesResource, err := rules.Build()
-	if err != nil {
-		builder.errors["rules"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Rules = append(builder.internal.Rules, rulesResource)
-
-	return builder
-}
-
-func (builder *RuleGroupBuilder) Title(title string) *RuleGroupBuilder {
-	builder.internal.Title = &title
-
-	return builder
-}
-
-func (builder *RuleGroupBuilder) applyDefaults() {
-}
diff --git a/go/alerting/timeinterval_builder_gen.go b/go/alerting/timeinterval_builder_gen.go
deleted file mode 100644
index 5cb84c4..0000000
--- a/go/alerting/timeinterval_builder_gen.go
+++ /dev/null
@@ -1,64 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[TimeInterval] = (*TimeIntervalBuilder)(nil)
-
-type TimeIntervalBuilder struct {
-	internal *TimeInterval
-	errors   map[string]cog.BuildErrors
-}
-
-func NewTimeIntervalBuilder() *TimeIntervalBuilder {
-	resource := &TimeInterval{}
-	builder := &TimeIntervalBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *TimeIntervalBuilder) Build() (TimeInterval, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("TimeInterval", err)...)
-	}
-
-	if len(errs) != 0 {
-		return TimeInterval{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *TimeIntervalBuilder) Name(name string) *TimeIntervalBuilder {
-	builder.internal.Name = &name
-
-	return builder
-}
-
-func (builder *TimeIntervalBuilder) TimeIntervals(timeIntervals []cog.Builder[TimeIntervalItem]) *TimeIntervalBuilder {
-	timeIntervalsResources := make([]TimeIntervalItem, 0, len(timeIntervals))
-	for _, r1 := range timeIntervals {
-		timeIntervalsDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["time_intervals"] = err.(cog.BuildErrors)
-			return builder
-		}
-		timeIntervalsResources = append(timeIntervalsResources, timeIntervalsDepth1)
-	}
-	builder.internal.TimeIntervals = timeIntervalsResources
-
-	return builder
-}
-
-func (builder *TimeIntervalBuilder) applyDefaults() {
-}
diff --git a/go/alerting/timeintervalitem_builder_gen.go b/go/alerting/timeintervalitem_builder_gen.go
deleted file mode 100644
index e5df78f..0000000
--- a/go/alerting/timeintervalitem_builder_gen.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[TimeIntervalItem] = (*TimeIntervalItemBuilder)(nil)
-
-type TimeIntervalItemBuilder struct {
-	internal *TimeIntervalItem
-	errors   map[string]cog.BuildErrors
-}
-
-func NewTimeIntervalItemBuilder() *TimeIntervalItemBuilder {
-	resource := &TimeIntervalItem{}
-	builder := &TimeIntervalItemBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Build() (TimeIntervalItem, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("TimeIntervalItem", err)...)
-	}
-
-	if len(errs) != 0 {
-		return TimeIntervalItem{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *TimeIntervalItemBuilder) DaysOfMonth(daysOfMonth []string) *TimeIntervalItemBuilder {
-	builder.internal.DaysOfMonth = daysOfMonth
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Location(location string) *TimeIntervalItemBuilder {
-	builder.internal.Location = &location
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Months(months []string) *TimeIntervalItemBuilder {
-	builder.internal.Months = months
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Times(times []cog.Builder[TimeIntervalTimeRange]) *TimeIntervalItemBuilder {
-	timesResources := make([]TimeIntervalTimeRange, 0, len(times))
-	for _, r1 := range times {
-		timesDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["times"] = err.(cog.BuildErrors)
-			return builder
-		}
-		timesResources = append(timesResources, timesDepth1)
-	}
-	builder.internal.Times = timesResources
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Weekdays(weekdays []string) *TimeIntervalItemBuilder {
-	builder.internal.Weekdays = weekdays
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) Years(years []string) *TimeIntervalItemBuilder {
-	builder.internal.Years = years
-
-	return builder
-}
-
-func (builder *TimeIntervalItemBuilder) applyDefaults() {
-}
diff --git a/go/alerting/timeintervaltimerange_builder_gen.go b/go/alerting/timeintervaltimerange_builder_gen.go
deleted file mode 100644
index 6a03574..0000000
--- a/go/alerting/timeintervaltimerange_builder_gen.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package alerting
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[TimeIntervalTimeRange] = (*TimeIntervalTimeRangeBuilder)(nil)
-
-type TimeIntervalTimeRangeBuilder struct {
-	internal *TimeIntervalTimeRange
-	errors   map[string]cog.BuildErrors
-}
-
-func NewTimeIntervalTimeRangeBuilder() *TimeIntervalTimeRangeBuilder {
-	resource := &TimeIntervalTimeRange{}
-	builder := &TimeIntervalTimeRangeBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *TimeIntervalTimeRangeBuilder) Build() (TimeIntervalTimeRange, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("TimeIntervalTimeRange", err)...)
-	}
-
-	if len(errs) != 0 {
-		return TimeIntervalTimeRange{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *TimeIntervalTimeRangeBuilder) EndTime(endTime string) *TimeIntervalTimeRangeBuilder {
-	builder.internal.EndTime = &endTime
-
-	return builder
-}
-
-func (builder *TimeIntervalTimeRangeBuilder) StartTime(startTime string) *TimeIntervalTimeRangeBuilder {
-	builder.internal.StartTime = &startTime
-
-	return builder
-}
-
-func (builder *TimeIntervalTimeRangeBuilder) applyDefaults() {
-}
diff --git a/go/alerting/types_gen.go b/go/alerting/types_gen.go
index f81d0b1..ca2ddce 100644
--- a/go/alerting/types_gen.go
+++ b/go/alerting/types_gen.go
@@ -165,12 +165,18 @@ type Rule struct {
 	NotificationSettings *NotificationSettings `json:"notification_settings,omitempty"`
 	OrgID                int64                 `json:"orgID"`
 	Provenance           *Provenance           `json:"provenance,omitempty"`
+	Record               *Record               `json:"record,omitempty"`
 	RuleGroup            string                `json:"ruleGroup"`
 	Title                string                `json:"title"`
 	Uid                  *string               `json:"uid,omitempty"`
 	Updated              *time.Time            `json:"updated,omitempty"`
 }
 
+type Record struct {
+	From   string `json:"from"`
+	Metric string `json:"metric"`
+}
+
 // RelativeTimeRange is the per query start and end time
 // for requests.
 type RelativeTimeRange struct {
diff --git a/go/annotationslist/panel_builder_gen.go b/go/annotationslist/panel_builder_gen.go
deleted file mode 100644
index 2881eb1..0000000
--- a/go/annotationslist/panel_builder_gen.go
+++ /dev/null
@@ -1,511 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package annotationslist
-
-import (
-	"errors"
-
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-	cogvariants "github.com/grafana/grafana-foundation-sdk/go/cog/variants"
-	dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard"
-)
-
-var _ cog.Builder[dashboard.Panel] = (*PanelBuilder)(nil)
-
-// Dashboard panels are the basic visualization building blocks.
-type PanelBuilder struct {
-	internal *dashboard.Panel
-	errors   map[string]cog.BuildErrors
-}
-
-func NewPanelBuilder() *PanelBuilder {
-	resource := &dashboard.Panel{}
-	builder := &PanelBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	builder.internal.Type = "annolist"
-
-	return builder
-}
-
-func (builder *PanelBuilder) Build() (dashboard.Panel, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("Panel", err)...)
-	}
-
-	if len(errs) != 0 {
-		return dashboard.Panel{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.
-func (builder *PanelBuilder) Id(id uint32) *PanelBuilder {
-	builder.internal.Id = &id
-
-	return builder
-}
-
-// Depends on the panel plugin. See the plugin documentation for details.
-func (builder *PanelBuilder) Targets(targets []cog.Builder[cogvariants.Dataquery]) *PanelBuilder {
-	targetsResources := make([]cogvariants.Dataquery, 0, len(targets))
-	for _, r1 := range targets {
-		targetsDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["targets"] = err.(cog.BuildErrors)
-			return builder
-		}
-		targetsResources = append(targetsResources, targetsDepth1)
-	}
-	builder.internal.Targets = targetsResources
-
-	return builder
-}
-
-// Depends on the panel plugin. See the plugin documentation for details.
-func (builder *PanelBuilder) WithTarget(targets cog.Builder[cogvariants.Dataquery]) *PanelBuilder {
-	targetsResource, err := targets.Build()
-	if err != nil {
-		builder.errors["targets"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.Targets = append(builder.internal.Targets, targetsResource)
-
-	return builder
-}
-
-// Panel title.
-func (builder *PanelBuilder) Title(title string) *PanelBuilder {
-	builder.internal.Title = &title
-
-	return builder
-}
-
-// Panel description.
-func (builder *PanelBuilder) Description(description string) *PanelBuilder {
-	builder.internal.Description = &description
-
-	return builder
-}
-
-// Whether to display the panel without a background.
-func (builder *PanelBuilder) Transparent(transparent bool) *PanelBuilder {
-	builder.internal.Transparent = &transparent
-
-	return builder
-}
-
-// The datasource used in all targets.
-func (builder *PanelBuilder) Datasource(datasource dashboard.DataSourceRef) *PanelBuilder {
-	builder.internal.Datasource = &datasource
-
-	return builder
-}
-
-// Grid position.
-func (builder *PanelBuilder) GridPos(gridPos dashboard.GridPos) *PanelBuilder {
-	builder.internal.GridPos = &gridPos
-
-	return builder
-}
-
-// Panel height. The height is the number of rows from the top edge of the panel.
-func (builder *PanelBuilder) Height(h uint32) *PanelBuilder {
-	if !(h > 0) {
-		builder.errors["h"] = cog.MakeBuildErrors("h", errors.New("h must be > 0"))
-		return builder
-	}
-	if builder.internal.GridPos == nil {
-		builder.internal.GridPos = &dashboard.GridPos{}
-	}
-	builder.internal.GridPos.H = h
-
-	return builder
-}
-
-// Panel width. The width is the number of columns from the left edge of the panel.
-func (builder *PanelBuilder) Span(w uint32) *PanelBuilder {
-	if !(w > 0) {
-		builder.errors["w"] = cog.MakeBuildErrors("w", errors.New("w must be > 0"))
-		return builder
-	}
-	if !(w <= 24) {
-		builder.errors["w"] = cog.MakeBuildErrors("w", errors.New("w must be <= 24"))
-		return builder
-	}
-	if builder.internal.GridPos == nil {
-		builder.internal.GridPos = &dashboard.GridPos{}
-	}
-	builder.internal.GridPos.W = w
-
-	return builder
-}
-
-// Panel links.
-func (builder *PanelBuilder) Links(links []cog.Builder[dashboard.DashboardLink]) *PanelBuilder {
-	linksResources := make([]dashboard.DashboardLink, 0, len(links))
-	for _, r1 := range links {
-		linksDepth1, err := r1.Build()
-		if err != nil {
-			builder.errors["links"] = err.(cog.BuildErrors)
-			return builder
-		}
-		linksResources = append(linksResources, linksDepth1)
-	}
-	builder.internal.Links = linksResources
-
-	return builder
-}
-
-// Name of template variable to repeat for.
-func (builder *PanelBuilder) Repeat(repeat string) *PanelBuilder {
-	builder.internal.Repeat = &repeat
-
-	return builder
-}
-
-// Direction to repeat in if 'repeat' is set.
-// `h` for horizontal, `v` for vertical.
-func (builder *PanelBuilder) RepeatDirection(repeatDirection dashboard.PanelRepeatDirection) *PanelBuilder {
-	builder.internal.RepeatDirection = &repeatDirection
-
-	return builder
-}
-
-// Option for repeated panels that controls max items per row
-// Only relevant for horizontally repeated panels
-func (builder *PanelBuilder) MaxPerRow(maxPerRow float64) *PanelBuilder {
-	builder.internal.MaxPerRow = &maxPerRow
-
-	return builder
-}
-
-// The maximum number of data points that the panel queries are retrieving.
-func (builder *PanelBuilder) MaxDataPoints(maxDataPoints float64) *PanelBuilder {
-	builder.internal.MaxDataPoints = &maxDataPoints
-
-	return builder
-}
-
-// List of transformations that are applied to the panel data before rendering.
-// When there are multiple transformations, Grafana applies them in the order they are listed.
-// Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.
-func (builder *PanelBuilder) Transformations(transformations []dashboard.DataTransformerConfig) *PanelBuilder {
-	builder.internal.Transformations = transformations
-
-	return builder
-}
-
-// List of transformations that are applied to the panel data before rendering.
-// When there are multiple transformations, Grafana applies them in the order they are listed.
-// Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.
-func (builder *PanelBuilder) WithTransformation(transformations dashboard.DataTransformerConfig) *PanelBuilder {
-	builder.internal.Transformations = append(builder.internal.Transformations, transformations)
-
-	return builder
-}
-
-// The min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.
-// This value must be formatted as a number followed by a valid time
-// identifier like: "40s", "3d", etc.
-// See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
-func (builder *PanelBuilder) Interval(interval string) *PanelBuilder {
-	builder.internal.Interval = &interval
-
-	return builder
-}
-
-// Overrides the relative time range for individual panels,
-// which causes them to be different than what is selected in
-// the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different
-// time periods or days on the same dashboard.
-// The value is formatted as time operation like: `now-5m` (Last 5 minutes), `now/d` (the day so far),
-// `now-5d/d`(Last 5 days), `now/w` (This week so far), `now-2y/y` (Last 2 years).
-// Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
-// See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
-func (builder *PanelBuilder) TimeFrom(timeFrom string) *PanelBuilder {
-	builder.internal.TimeFrom = &timeFrom
-
-	return builder
-}
-
-// Overrides the time range for individual panels by shifting its start and end relative to the time picker.
-// For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting `2h`.
-// Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
-// See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
-func (builder *PanelBuilder) TimeShift(timeShift string) *PanelBuilder {
-	builder.internal.TimeShift = &timeShift
-
-	return builder
-}
-
-// Controls if the timeFrom or timeShift overrides are shown in the panel header
-func (builder *PanelBuilder) HideTimeOverride(hideTimeOverride bool) *PanelBuilder {
-	builder.internal.HideTimeOverride = &hideTimeOverride
-
-	return builder
-}
-
-// Dynamically load the panel
-func (builder *PanelBuilder) LibraryPanel(libraryPanel dashboard.LibraryPanelRef) *PanelBuilder {
-	builder.internal.LibraryPanel = &libraryPanel
-
-	return builder
-}
-
-// Sets panel queries cache timeout.
-func (builder *PanelBuilder) CacheTimeout(cacheTimeout string) *PanelBuilder {
-	builder.internal.CacheTimeout = &cacheTimeout
-
-	return builder
-}
-
-// Overrides the data source configured time-to-live for a query cache item in milliseconds
-func (builder *PanelBuilder) QueryCachingTTL(queryCachingTTL float64) *PanelBuilder {
-	builder.internal.QueryCachingTTL = &queryCachingTTL
-
-	return builder
-}
-
-// The display value for this field.  This supports template variables blank is auto
-func (builder *PanelBuilder) DisplayName(displayName string) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.DisplayName = &displayName
-
-	return builder
-}
-
-// Unit a field should use. The unit you select is applied to all fields except time.
-// You can use the units ID availables in Grafana or a custom unit.
-// Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts
-// As custom unit, you can use the following formats:
-// `suffix:<suffix>` for custom unit that should go after value.
-// `prefix:<prefix>` for custom unit that should go before value.
-// `time:<format>` For custom date time formats type for example `time:YYYY-MM-DD`.
-// `si:<base scale><unit characters>` for custom SI units. For example: `si: mF`. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.
-// `count:<unit>` for a custom count unit.
-// `currency:<unit>` for custom a currency unit.
-func (builder *PanelBuilder) Unit(unit string) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.Unit = &unit
-
-	return builder
-}
-
-// Specify the number of decimals Grafana includes in the rendered value.
-// If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.
-// For example 1.1234 will display as 1.12 and 100.456 will display as 100.
-// To display all decimals, set the unit to `String`.
-func (builder *PanelBuilder) Decimals(decimals float64) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.Decimals = &decimals
-
-	return builder
-}
-
-// The minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
-func (builder *PanelBuilder) Min(min float64) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.Min = &min
-
-	return builder
-}
-
-// The maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
-func (builder *PanelBuilder) Max(max float64) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.Max = &max
-
-	return builder
-}
-
-// Convert input values into a display string
-func (builder *PanelBuilder) Mappings(mappings []dashboard.ValueMapping) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.Mappings = mappings
-
-	return builder
-}
-
-// Map numeric values to states
-func (builder *PanelBuilder) Thresholds(thresholds cog.Builder[dashboard.ThresholdsConfig]) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	thresholdsResource, err := thresholds.Build()
-	if err != nil {
-		builder.errors["fieldConfig.defaults.thresholds"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.FieldConfig.Defaults.Thresholds = &thresholdsResource
-
-	return builder
-}
-
-// Panel color configuration
-func (builder *PanelBuilder) ColorScheme(color cog.Builder[dashboard.FieldColor]) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	colorResource, err := color.Build()
-	if err != nil {
-		builder.errors["fieldConfig.defaults.color"] = err.(cog.BuildErrors)
-		return builder
-	}
-	builder.internal.FieldConfig.Defaults.Color = &colorResource
-
-	return builder
-}
-
-// Alternative to empty string
-func (builder *PanelBuilder) NoValue(noValue string) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Defaults.NoValue = &noValue
-
-	return builder
-}
-
-// Overrides are the options applied to specific fields overriding the defaults.
-func (builder *PanelBuilder) Overrides(overrides []struct {
-	Matcher    dashboard.MatcherConfig        `json:"matcher"`
-	Properties []dashboard.DynamicConfigValue `json:"properties"`
-}) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Overrides = overrides
-
-	return builder
-}
-
-// Overrides are the options applied to specific fields overriding the defaults.
-func (builder *PanelBuilder) WithOverride(matcher dashboard.MatcherConfig, properties []dashboard.DynamicConfigValue) *PanelBuilder {
-	if builder.internal.FieldConfig == nil {
-		builder.internal.FieldConfig = &dashboard.FieldConfigSource{}
-	}
-	builder.internal.FieldConfig.Overrides = append(builder.internal.FieldConfig.Overrides, struct {
-		Matcher    dashboard.MatcherConfig        `json:"matcher"`
-		Properties []dashboard.DynamicConfigValue `json:"properties"`
-	}{
-		Matcher:    matcher,
-		Properties: properties,
-	})
-
-	return builder
-}
-
-func (builder *PanelBuilder) OnlyFromThisDashboard(onlyFromThisDashboard bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).OnlyFromThisDashboard = onlyFromThisDashboard
-
-	return builder
-}
-
-func (builder *PanelBuilder) OnlyInTimeRange(onlyInTimeRange bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).OnlyInTimeRange = onlyInTimeRange
-
-	return builder
-}
-
-func (builder *PanelBuilder) Limit(limit uint32) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).Limit = limit
-
-	return builder
-}
-
-func (builder *PanelBuilder) ShowUser(showUser bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).ShowUser = showUser
-
-	return builder
-}
-
-func (builder *PanelBuilder) ShowTime(showTime bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).ShowTime = showTime
-
-	return builder
-}
-
-func (builder *PanelBuilder) ShowTags(showTags bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).ShowTags = showTags
-
-	return builder
-}
-
-func (builder *PanelBuilder) NavigateToPanel(navigateToPanel bool) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).NavigateToPanel = navigateToPanel
-
-	return builder
-}
-
-func (builder *PanelBuilder) NavigateBefore(navigateBefore string) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).NavigateBefore = navigateBefore
-
-	return builder
-}
-
-func (builder *PanelBuilder) NavigateAfter(navigateAfter string) *PanelBuilder {
-	if builder.internal.Options == nil {
-		builder.internal.Options = &Options{}
-	}
-	builder.internal.Options.(*Options).NavigateAfter = navigateAfter
-
-	return builder
-}
-
-func (builder *PanelBuilder) applyDefaults() {
-	builder.Transparent(false)
-	builder.Height(9)
-	builder.Span(12)
-	builder.OnlyFromThisDashboard(false)
-	builder.OnlyInTimeRange(false)
-	builder.Limit(10)
-	builder.ShowUser(true)
-	builder.ShowTime(true)
-	builder.ShowTags(true)
-	builder.NavigateToPanel(true)
-	builder.NavigateBefore("10m")
-	builder.NavigateAfter("10m")
-}
diff --git a/go/azuremonitor/appinsightsgroupbyquery_builder_gen.go b/go/azuremonitor/appinsightsgroupbyquery_builder_gen.go
deleted file mode 100644
index 199d9a1..0000000
--- a/go/azuremonitor/appinsightsgroupbyquery_builder_gen.go
+++ /dev/null
@@ -1,56 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package azuremonitor
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[AppInsightsGroupByQuery] = (*AppInsightsGroupByQueryBuilder)(nil)
-
-type AppInsightsGroupByQueryBuilder struct {
-	internal *AppInsightsGroupByQuery
-	errors   map[string]cog.BuildErrors
-}
-
-func NewAppInsightsGroupByQueryBuilder() *AppInsightsGroupByQueryBuilder {
-	resource := &AppInsightsGroupByQuery{}
-	builder := &AppInsightsGroupByQueryBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	builder.internal.Kind = "AppInsightsGroupByQuery"
-
-	return builder
-}
-
-func (builder *AppInsightsGroupByQueryBuilder) Build() (AppInsightsGroupByQuery, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("AppInsightsGroupByQuery", err)...)
-	}
-
-	if len(errs) != 0 {
-		return AppInsightsGroupByQuery{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *AppInsightsGroupByQueryBuilder) RawQuery(rawQuery string) *AppInsightsGroupByQueryBuilder {
-	builder.internal.RawQuery = &rawQuery
-
-	return builder
-}
-
-func (builder *AppInsightsGroupByQueryBuilder) MetricName(metricName string) *AppInsightsGroupByQueryBuilder {
-	builder.internal.MetricName = metricName
-
-	return builder
-}
-
-func (builder *AppInsightsGroupByQueryBuilder) applyDefaults() {
-}
diff --git a/go/azuremonitor/appinsightsmetricnamequery_builder_gen.go b/go/azuremonitor/appinsightsmetricnamequery_builder_gen.go
deleted file mode 100644
index d87c9b7..0000000
--- a/go/azuremonitor/appinsightsmetricnamequery_builder_gen.go
+++ /dev/null
@@ -1,50 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package azuremonitor
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[AppInsightsMetricNameQuery] = (*AppInsightsMetricNameQueryBuilder)(nil)
-
-type AppInsightsMetricNameQueryBuilder struct {
-	internal *AppInsightsMetricNameQuery
-	errors   map[string]cog.BuildErrors
-}
-
-func NewAppInsightsMetricNameQueryBuilder() *AppInsightsMetricNameQueryBuilder {
-	resource := &AppInsightsMetricNameQuery{}
-	builder := &AppInsightsMetricNameQueryBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-	builder.internal.Kind = "AppInsightsMetricNameQuery"
-
-	return builder
-}
-
-func (builder *AppInsightsMetricNameQueryBuilder) Build() (AppInsightsMetricNameQuery, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("AppInsightsMetricNameQuery", err)...)
-	}
-
-	if len(errs) != 0 {
-		return AppInsightsMetricNameQuery{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-func (builder *AppInsightsMetricNameQueryBuilder) RawQuery(rawQuery string) *AppInsightsMetricNameQueryBuilder {
-	builder.internal.RawQuery = &rawQuery
-
-	return builder
-}
-
-func (builder *AppInsightsMetricNameQueryBuilder) applyDefaults() {
-}
diff --git a/go/azuremonitor/azurelogsquery_builder_gen.go b/go/azuremonitor/azurelogsquery_builder_gen.go
deleted file mode 100644
index 48a2d9a..0000000
--- a/go/azuremonitor/azurelogsquery_builder_gen.go
+++ /dev/null
@@ -1,107 +0,0 @@
-// Code generated - EDITING IS FUTILE. DO NOT EDIT.
-
-package azuremonitor
-
-import (
-	cog "github.com/grafana/grafana-foundation-sdk/go/cog"
-)
-
-var _ cog.Builder[AzureLogsQuery] = (*AzureLogsQueryBuilder)(nil)
-
-// Azure Monitor Logs sub-query properties
-type AzureLogsQueryBuilder struct {
-	internal *AzureLogsQuery
-	errors   map[string]cog.BuildErrors
-}
-
-func NewAzureLogsQueryBuilder() *AzureLogsQueryBuilder {
-	resource := &AzureLogsQuery{}
-	builder := &AzureLogsQueryBuilder{
-		internal: resource,
-		errors:   make(map[string]cog.BuildErrors),
-	}
-
-	builder.applyDefaults()
-
-	return builder
-}
-
-func (builder *AzureLogsQueryBuilder) Build() (AzureLogsQuery, error) {
-	var errs cog.BuildErrors
-
-	for _, err := range builder.errors {
-		errs = append(errs, cog.MakeBuildErrors("AzureLogsQuery", err)...)
-	}
-
-	if len(errs) != 0 {
-		return AzureLogsQuery{}, errs
-	}
-
-	return *builder.internal, nil
-}
-
-// KQL query to be executed.
-func (builder *AzureLogsQueryBuilder) Query(query string) *AzureLogsQueryBuilder {
-	builder.internal.Query = &query
-
-	return builder
-}
-
-// Specifies the format results should be returned as.
-func (builder *AzureLogsQueryBuilder) ResultFormat(resultFormat ResultFormat) *AzureLogsQueryBuilder {
-	builder.internal.ResultFormat = &resultFormat
-
-	return builder
-}
-
-// Array of resource URIs to be queried.
-func (builder *AzureLogsQueryBuilder) Resources(resources []string) *AzureLogsQueryBuilder {
-	builder.internal.Resources = resources
-
-	return builder
-}
-
-// If set to true the dashboard time range will be used as a filter for the query. Otherwise the query time ranges will be used. Defaults to false.
-func (builder *AzureLogsQueryBuilder) DashboardTime(dashboardTime bool) *AzureLogsQueryBuilder {
-	builder.internal.DashboardTime = &dashboardTime
-
-	return builder
-}
-
-// If dashboardTime is set to true this value dictates which column the time filter will be applied to. Defaults to the first tables timeSpan column, the first datetime column found, or TimeGenerated
-func (builder *AzureLogsQueryBuilder) TimeColumn(timeColumn string) *AzureLogsQueryBuilder {
-	builder.internal.TimeColumn = &timeColumn
-
-	return builder
-}
-
-// If set to true the query will be run as a basic logs query
-func (builder *AzureLogsQueryBuilder) BasicLogsQuery(basicLogsQuery bool) *AzureLogsQueryBuilder {
-	builder.internal.BasicLogsQuery = &basicLogsQuery
-
-	return builder
-}
-
-// Workspace ID. This was removed in Grafana 8, but remains for backwards compat.
-func (builder *AzureLogsQueryBuilder) Workspace(workspace stri...*[Comment body truncated]*

Base automatically changed from no-schema-embed-in-builders to main May 20, 2024 10:07
@K-Phoen K-Phoen force-pushed the identifiers-formatting-wip branch from b96ab50 to 71786c6 Compare May 20, 2024 10:33
@K-Phoen K-Phoen force-pushed the identifiers-formatting-wip branch from 8016720 to 25e6a46 Compare June 7, 2024 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant