grafana / cog

Code Generation with a human touch
Apache License 2.0
43 stars 2 forks source link

Use same datasource reference to all dataqueries #560

Closed spinillos closed 2 days ago

spinillos commented 1 week ago

Closes https://github.com/grafana/cog/issues/554

It creates a compiler pass that uses the same dashboard.DataSourceRef reference to all dataqueries for the datasource field.

github-actions[bot] commented 1 week ago

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` ```patch diff --git a/go/azuremonitor/azuremonitorquery_builder_gen.go b/go/azuremonitor/azuremonitorquery_builder_gen.go index 98dfacc..52bf6e8 100644 --- a/go/azuremonitor/azuremonitorquery_builder_gen.go +++ b/go/azuremonitor/azuremonitorquery_builder_gen.go @@ -5,6 +5,7 @@ package azuremonitor import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*AzureMonitorQueryBuilder)(nil) @@ -162,7 +163,7 @@ func (builder *AzureMonitorQueryBuilder) Region(region string) *AzureMonitorQuer // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *AzureMonitorQueryBuilder) Datasource(datasource any) *AzureMonitorQueryBuilder { +func (builder *AzureMonitorQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *AzureMonitorQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/azuremonitor/types_gen.go b/go/azuremonitor/types_gen.go index 8de4bf8..2adc516 100644 --- a/go/azuremonitor/types_gen.go +++ b/go/azuremonitor/types_gen.go @@ -8,6 +8,7 @@ import ( "fmt" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) type AzureMonitorQuery struct { @@ -43,7 +44,7 @@ type AzureMonitorQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // Used only for exemplar queries from Prometheus Query *string `json:"query,omitempty"` } diff --git a/go/cloudwatch/cloudwatchannotationquery_builder_gen.go b/go/cloudwatch/cloudwatchannotationquery_builder_gen.go index 90eef3a..0fa5ccc 100644 --- a/go/cloudwatch/cloudwatchannotationquery_builder_gen.go +++ b/go/cloudwatch/cloudwatchannotationquery_builder_gen.go @@ -5,6 +5,7 @@ package cloudwatch import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*CloudWatchAnnotationQueryBuilder)(nil) @@ -161,7 +162,7 @@ func (builder *CloudWatchAnnotationQueryBuilder) AlarmNamePrefix(alarmNamePrefix // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *CloudWatchAnnotationQueryBuilder) Datasource(datasource any) *CloudWatchAnnotationQueryBuilder { +func (builder *CloudWatchAnnotationQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *CloudWatchAnnotationQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/cloudwatch/cloudwatchlogsquery_builder_gen.go b/go/cloudwatch/cloudwatchlogsquery_builder_gen.go index 674fe6f..4ffee79 100644 --- a/go/cloudwatch/cloudwatchlogsquery_builder_gen.go +++ b/go/cloudwatch/cloudwatchlogsquery_builder_gen.go @@ -5,6 +5,7 @@ package cloudwatch import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*CloudWatchLogsQueryBuilder)(nil) @@ -126,7 +127,7 @@ func (builder *CloudWatchLogsQueryBuilder) LogGroupNames(logGroupNames []string) // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *CloudWatchLogsQueryBuilder) Datasource(datasource any) *CloudWatchLogsQueryBuilder { +func (builder *CloudWatchLogsQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *CloudWatchLogsQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/cloudwatch/cloudwatchmetricsquery_builder_gen.go b/go/cloudwatch/cloudwatchmetricsquery_builder_gen.go index 2d8a264..1d29760 100644 --- a/go/cloudwatch/cloudwatchmetricsquery_builder_gen.go +++ b/go/cloudwatch/cloudwatchmetricsquery_builder_gen.go @@ -5,6 +5,7 @@ package cloudwatch import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*CloudWatchMetricsQueryBuilder)(nil) @@ -194,7 +195,7 @@ func (builder *CloudWatchMetricsQueryBuilder) Sql(sql cog.Builder[SQLExpression] // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *CloudWatchMetricsQueryBuilder) Datasource(datasource any) *CloudWatchMetricsQueryBuilder { +func (builder *CloudWatchMetricsQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *CloudWatchMetricsQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/cloudwatch/types_gen.go b/go/cloudwatch/types_gen.go index eeec289..0d8d635 100644 --- a/go/cloudwatch/types_gen.go +++ b/go/cloudwatch/types_gen.go @@ -8,6 +8,7 @@ import ( "fmt" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) type MetricStat struct { @@ -84,7 +85,7 @@ type CloudWatchMetricsQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // @deprecated use statistic Statistics []string `json:"statistics,omitempty"` } @@ -226,7 +227,7 @@ type CloudWatchLogsQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` } func (resource CloudWatchLogsQuery) ImplementsDataqueryVariant() {} @@ -289,7 +290,7 @@ type CloudWatchAnnotationQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // @deprecated use statistic Statistics []string `json:"statistics,omitempty"` } diff --git a/go/common/datasourceref_builder_gen.go b/go/common/datasourceref_builder_gen.go deleted file mode 100644 index fdf3f97..0000000 --- a/go/common/datasourceref_builder_gen.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package common - -import ( - cog "github.com/grafana/grafana-foundation-sdk/go/cog" -) - -var _ cog.Builder[DataSourceRef] = (*DataSourceRefBuilder)(nil) - -type DataSourceRefBuilder struct { - internal *DataSourceRef - errors map[string]cog.BuildErrors -} - -func NewDataSourceRefBuilder() *DataSourceRefBuilder { - resource := &DataSourceRef{} - builder := &DataSourceRefBuilder{ - internal: resource, - errors: make(map[string]cog.BuildErrors), - } - - builder.applyDefaults() - - return builder -} - -func (builder *DataSourceRefBuilder) Build() (DataSourceRef, error) { - var errs cog.BuildErrors - - for _, err := range builder.errors { - errs = append(errs, cog.MakeBuildErrors("DataSourceRef", err)...) - } - - if len(errs) != 0 { - return DataSourceRef{}, errs - } - - return *builder.internal, nil -} - -// The plugin type-id -func (builder *DataSourceRefBuilder) Type(typeArg string) *DataSourceRefBuilder { - builder.internal.Type = &typeArg - - return builder -} - -// Specific datasource instance -func (builder *DataSourceRefBuilder) Uid(uid string) *DataSourceRefBuilder { - builder.internal.Uid = &uid - - return builder -} - -// Datasource API version -func (builder *DataSourceRefBuilder) ApiVersion(apiVersion string) *DataSourceRefBuilder { - builder.internal.ApiVersion = &apiVersion - - return builder -} - -func (builder *DataSourceRefBuilder) applyDefaults() { -} diff --git a/go/common/types_gen.go b/go/common/types_gen.go index f5d6c0c..61fc4a4 100644 --- a/go/common/types_gen.go +++ b/go/common/types_gen.go @@ -825,15 +825,6 @@ const ( VariableFormatIDQueryParam VariableFormatID = "queryparam" ) -type DataSourceRef struct { - // The plugin type-id - Type *string `json:"type,omitempty"` - // Specific datasource instance - Uid *string `json:"uid,omitempty"` - // Datasource API version - ApiVersion *string `json:"apiVersion,omitempty"` -} - // Links to a resource (image/svg path) type ResourceDimensionConfig struct { Mode ResourceDimensionMode `json:"mode"` diff --git a/go/elasticsearch/dataquery_builder_gen.go b/go/elasticsearch/dataquery_builder_gen.go index 947677d..396b69d 100644 --- a/go/elasticsearch/dataquery_builder_gen.go +++ b/go/elasticsearch/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package elasticsearch import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -103,7 +104,7 @@ func (builder *DataqueryBuilder) QueryType(queryType string) *DataqueryBuilder { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *DataqueryBuilder) Datasource(datasource any) *DataqueryBuilder { +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/elasticsearch/types_gen.go b/go/elasticsearch/types_gen.go index cc028af..3a625ac 100644 --- a/go/elasticsearch/types_gen.go +++ b/go/elasticsearch/types_gen.go @@ -8,6 +8,7 @@ import ( "fmt" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) type BucketAggregation = DateHistogramOrHistogramOrTermsOrFiltersOrGeoHashGridOrNested @@ -520,7 +521,7 @@ type Dataquery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` } func (resource Dataquery) ImplementsDataqueryVariant() {} diff --git a/go/expr/typeclassicconditions_builder_gen.go b/go/expr/typeclassicconditions_builder_gen.go index 6f9eac0..c36bf05 100644 --- a/go/expr/typeclassicconditions_builder_gen.go +++ b/go/expr/typeclassicconditions_builder_gen.go @@ -5,6 +5,7 @@ package expr import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeClassicConditionsBuilder)(nil) @@ -63,14 +64,7 @@ func (builder *TypeClassicConditionsBuilder) Conditions(conditions []struct { } // The datasource -func (builder *TypeClassicConditionsBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeClassicConditionsBuilder { +func (builder *TypeClassicConditionsBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeClassicConditionsBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/expr/typemath_builder_gen.go b/go/expr/typemath_builder_gen.go index 9600664..de669d1 100644 --- a/go/expr/typemath_builder_gen.go +++ b/go/expr/typemath_builder_gen.go @@ -7,6 +7,7 @@ import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeMathBuilder)(nil) @@ -44,14 +45,7 @@ func (builder *TypeMathBuilder) Build() (variants.Dataquery, error) { } // The datasource -func (builder *TypeMathBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeMathBuilder { +func (builder *TypeMathBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeMathBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/expr/typereduce_builder_gen.go b/go/expr/typereduce_builder_gen.go index 1a2d9d5..35ee318 100644 --- a/go/expr/typereduce_builder_gen.go +++ b/go/expr/typereduce_builder_gen.go @@ -7,6 +7,7 @@ import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeReduceBuilder)(nil) @@ -44,14 +45,7 @@ func (builder *TypeReduceBuilder) Build() (variants.Dataquery, error) { } // The datasource -func (builder *TypeReduceBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeReduceBuilder { +func (builder *TypeReduceBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeReduceBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/expr/typeresample_builder_gen.go b/go/expr/typeresample_builder_gen.go index 509594e..5cd423c 100644 --- a/go/expr/typeresample_builder_gen.go +++ b/go/expr/typeresample_builder_gen.go @@ -7,6 +7,7 @@ import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeResampleBuilder)(nil) @@ -44,14 +45,7 @@ func (builder *TypeResampleBuilder) Build() (variants.Dataquery, error) { } // The datasource -func (builder *TypeResampleBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeResampleBuilder { +func (builder *TypeResampleBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeResampleBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/expr/types_gen.go b/go/expr/types_gen.go index 3d0826d..67602d3 100644 --- a/go/expr/types_gen.go +++ b/go/expr/types_gen.go @@ -8,6 +8,7 @@ import ( "fmt" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) type Expr = TypeMathOrTypeReduceOrTypeResampleOrTypeClassicConditionsOrTypeThresholdOrTypeSql @@ -31,14 +32,7 @@ func VariantConfig() variants.DataqueryConfig { type TypeMath struct { // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // General math expression Expression string `json:"expression"` // true if query is disabled (ie should not be returned to the dashboard) @@ -96,14 +90,7 @@ func (resource TypeMath) ImplementsDataqueryVariant() {} type TypeReduce struct { // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // Reference to single query result Expression string `json:"expression"` // true if query is disabled (ie should not be returned to the dashboard) @@ -181,14 +168,7 @@ func (resource TypeReduce) ImplementsDataqueryVariant() {} type TypeResample struct { // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // The downsample function // Possible enum values: // - `"sum"` @@ -280,14 +260,7 @@ type TypeClassicConditions struct { } `json:"reducer"` } `json:"conditions"` // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // true if query is disabled (ie should not be returned to the dashboard) // NOTE: this does not always imply that the query should not be executed since // the results from a hidden query may be used as the input to other queries (SSE etc) @@ -357,14 +330,7 @@ type TypeThreshold struct { } `json:"unloadEvaluator,omitempty"` } `json:"conditions"` // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // Reference to single query result Expression string `json:"expression"` // true if query is disabled (ie should not be returned to the dashboard) @@ -422,15 +388,8 @@ func (resource TypeThreshold) ImplementsDataqueryVariant() {} type TypeSql struct { // The datasource - Datasource *struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` - } `json:"datasource,omitempty"` - Expression string `json:"expression"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` + Expression string `json:"expression"` // true if query is disabled (ie should not be returned to the dashboard) // NOTE: this does not always imply that the query should not be executed since // the results from a hidden query may be used as the input to other queries (SSE etc) diff --git a/go/expr/typesql_builder_gen.go b/go/expr/typesql_builder_gen.go index 3d632fa..b0831f6 100644 --- a/go/expr/typesql_builder_gen.go +++ b/go/expr/typesql_builder_gen.go @@ -7,6 +7,7 @@ import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeSqlBuilder)(nil) @@ -44,14 +45,7 @@ func (builder *TypeSqlBuilder) Build() (variants.Dataquery, error) { } // The datasource -func (builder *TypeSqlBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeSqlBuilder { +func (builder *TypeSqlBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeSqlBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/expr/typethreshold_builder_gen.go b/go/expr/typethreshold_builder_gen.go index 3f52163..bc631c4 100644 --- a/go/expr/typethreshold_builder_gen.go +++ b/go/expr/typethreshold_builder_gen.go @@ -7,6 +7,7 @@ import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TypeThresholdBuilder)(nil) @@ -63,14 +64,7 @@ func (builder *TypeThresholdBuilder) Conditions(conditions []struct { } // The datasource -func (builder *TypeThresholdBuilder) Datasource(datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -}) *TypeThresholdBuilder { +func (builder *TypeThresholdBuilder) Datasource(datasource dashboard.DataSourceRef) *TypeThresholdBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/googlecloudmonitoring/cloudmonitoringquery_builder_gen.go b/go/googlecloudmonitoring/cloudmonitoringquery_builder_gen.go index 82ae910..bdabdaf 100644 --- a/go/googlecloudmonitoring/cloudmonitoringquery_builder_gen.go +++ b/go/googlecloudmonitoring/cloudmonitoringquery_builder_gen.go @@ -5,6 +5,7 @@ package googlecloudmonitoring import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*CloudMonitoringQueryBuilder)(nil) @@ -125,7 +126,7 @@ func (builder *CloudMonitoringQueryBuilder) PromQLQuery(promQLQuery cog.Builder[ // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *CloudMonitoringQueryBuilder) Datasource(datasource any) *CloudMonitoringQueryBuilder { +func (builder *CloudMonitoringQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *CloudMonitoringQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/googlecloudmonitoring/types_gen.go b/go/googlecloudmonitoring/types_gen.go index f547bf9..fb9b073 100644 --- a/go/googlecloudmonitoring/types_gen.go +++ b/go/googlecloudmonitoring/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 CloudMonitoringQuery struct { @@ -34,7 +35,7 @@ type CloudMonitoringQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // Time interval in milliseconds. IntervalMs *float64 `json:"intervalMs,omitempty"` } diff --git a/go/grafanapyroscope/dataquery_builder_gen.go b/go/grafanapyroscope/dataquery_builder_gen.go index 0adaef2..a816190 100644 --- a/go/grafanapyroscope/dataquery_builder_gen.go +++ b/go/grafanapyroscope/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package grafanapyroscope import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -103,7 +104,7 @@ func (builder *DataqueryBuilder) QueryType(queryType string) *DataqueryBuilder { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *DataqueryBuilder) Datasource(datasource any) *DataqueryBuilder { +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/grafanapyroscope/types_gen.go b/go/grafanapyroscope/types_gen.go index 245efe1..bcf049f 100644 --- a/go/grafanapyroscope/types_gen.go +++ b/go/grafanapyroscope/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 PyroscopeQueryType string @@ -40,7 +41,7 @@ type Dataquery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` } func (resource Dataquery) ImplementsDataqueryVariant() {} diff --git a/go/loki/dataquery_builder_gen.go b/go/loki/dataquery_builder_gen.go index fb45a1a..546c6c6 100644 --- a/go/loki/dataquery_builder_gen.go +++ b/go/loki/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package loki import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -123,7 +124,7 @@ func (builder *DataqueryBuilder) QueryType(queryType string) *DataqueryBuilder { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *DataqueryBuilder) Datasource(datasource any) *DataqueryBuilder { +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/loki/types_gen.go b/go/loki/types_gen.go index 20df8f8..5778e38 100644 --- a/go/loki/types_gen.go +++ b/go/loki/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 QueryEditorMode string @@ -68,7 +69,7 @@ type Dataquery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` } func (resource Dataquery) ImplementsDataqueryVariant() {} diff --git a/go/parca/dataquery_builder_gen.go b/go/parca/dataquery_builder_gen.go index 48ad244..c1b8a46 100644 --- a/go/parca/dataquery_builder_gen.go +++ b/go/parca/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package parca import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -82,7 +83,7 @@ func (builder *DataqueryBuilder) QueryType(queryType string) *DataqueryBuilder { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *DataqueryBuilder) Datasource(datasource any) *DataqueryBuilder { +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/parca/types_gen.go b/go/parca/types_gen.go index 5132b6c..dbf37cd 100644 --- a/go/parca/types_gen.go +++ b/go/parca/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 ParcaQueryType string @@ -34,7 +35,7 @@ type Dataquery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` } func (resource Dataquery) ImplementsDataqueryVariant() {} diff --git a/go/prometheus/dataquery_builder_gen.go b/go/prometheus/dataquery_builder_gen.go index 0d445d0..dff2a86 100644 --- a/go/prometheus/dataquery_builder_gen.go +++ b/go/prometheus/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package prometheus import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -131,7 +132,7 @@ func (builder *DataqueryBuilder) QueryType(queryType string) *DataqueryBuilder { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *DataqueryBuilder) Datasource(datasource any) *DataqueryBuilder { +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/prometheus/types_gen.go b/go/prometheus/types_gen.go index 5152150..fa2a7a1 100644 --- a/go/prometheus/types_gen.go +++ b/go/prometheus/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 QueryEditorMode string @@ -54,7 +55,7 @@ type Dataquery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // An additional lower limit for the step parameter of the Prometheus query and for the // `$__interval` and `$__rate_interval` variables. Interval *string `json:"interval,omitempty"` diff --git a/go/tempo/tempoquery_builder_gen.go b/go/tempo/tempoquery_builder_gen.go index 927c576..c8ef348 100644 --- a/go/tempo/tempoquery_builder_gen.go +++ b/go/tempo/tempoquery_builder_gen.go @@ -5,6 +5,7 @@ package tempo import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*TempoQueryBuilder)(nil) @@ -176,7 +177,7 @@ func (builder *TempoQueryBuilder) TableType(tableType SearchTableType) *TempoQue // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null -func (builder *TempoQueryBuilder) Datasource(datasource any) *TempoQueryBuilder { +func (builder *TempoQueryBuilder) Datasource(datasource dashboard.DataSourceRef) *TempoQueryBuilder { builder.internal.Datasource = &datasource return builder diff --git a/go/tempo/types_gen.go b/go/tempo/types_gen.go index cf75c75..da4f94d 100644 --- a/go/tempo/types_gen.go +++ b/go/tempo/types_gen.go @@ -8,6 +8,7 @@ import ( "fmt" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) type TempoQuery struct { @@ -49,7 +50,7 @@ type TempoQuery struct { // For non mixed scenarios this is undefined. // TODO find a better way to do this ^ that's friendly to schema // TODO this shouldn't be unknown but DataSourceRef | null - Datasource any `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // For metric queries, the step size to use Step *string `json:"step,omitempty"` } diff --git a/go/testdata/dataquery_builder_gen.go b/go/testdata/dataquery_builder_gen.go index 997482f..0efc84e 100644 --- a/go/testdata/dataquery_builder_gen.go +++ b/go/testdata/dataquery_builder_gen.go @@ -5,6 +5,7 @@ package testdata import ( cog "github.com/grafana/grafana-foundation-sdk/go/cog" variants "github.com/grafana/grafana-foundation-sdk/go/cog/variants" + dashboard "github.com/grafana/grafana-foundation-sdk/go/dashboard" ) var _ cog.Builder[variants.Dataquery] = (*DataqueryBuilder)(nil) @@ -81,13 +82,8 @@ func (builder *DataqueryBuilder) CsvWave(csvWave []cog.Builder[CSVWave]) *Dataqu } // The datasource -func (builder *DataqueryBuilder) Datasource(datasource cog.Builder[Datasource]) *DataqueryBuilder { - datasourceResource, err := datasource.Build() - if err != nil { - builder.errors["datasource"] = err.(cog.BuildErrors) - return builder - } - builder.internal.Datasource = &datasourceResource +func (builder *DataqueryBuilder) Datasource(datasource dashboard.DataSourceRef) *DataqueryBuilder { + builder.internal.Datasource = &datasource return builder } diff --git a/go/testdata/datasource_builder_gen.go b/go/testdata/datasource_builder_gen.go deleted file mode 100644 index 6a1cb76..0000000 --- a/go/testdata/datasource_builder_gen.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package testdata - -import ( - cog "github.com/grafana/grafana-foundation-sdk/go/cog" -) - -var _ cog.Builder[Datasource] = (*DatasourceBuilder)(nil) - -type DatasourceBuilder struct { - internal *Datasource - errors map[string]cog.BuildErrors -} - -func NewDatasourceBuilder() *DatasourceBuilder { - resource := &Datasource{} - builder := &DatasourceBuilder{ - internal: resource, - errors: make(map[string]cog.BuildErrors), - } - - builder.applyDefaults() - - return builder -} - -func (builder *DatasourceBuilder) Build() (Datasource, error) { - var errs cog.BuildErrors - - for _, err := range builder.errors { - errs = append(errs, cog.MakeBuildErrors("Datasource", err)...) - } - - if len(errs) != 0 { - return Datasource{}, errs - } - - return *builder.internal, nil -} - -// The apiserver version -func (builder *DatasourceBuilder) ApiVersion(apiVersion string) *DatasourceBuilder { - builder.internal.ApiVersion = &apiVersion - - return builder -} - -// The datasource plugin type -func (builder *DatasourceBuilder) Type(typeArg string) *DatasourceBuilder { - builder.internal.Type = typeArg - - return builder -} - -// Datasource UID (NOTE: name in k8s) -func (builder *DatasourceBuilder) Uid(uid string) *DatasourceBuilder { - builder.internal.Uid = &uid - - return builder -} - -func (builder *DatasourceBuilder) applyDefaults() { -} diff --git a/go/testdata/types_gen.go b/go/testdata/types_gen.go index ebe76ea..1f038ec 100644 --- a/go/testdata/types_gen.go +++ b/go/testdata/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 CSVWave struct { @@ -15,15 +16,6 @@ type CSVWave struct { ValuesCSV *string `json:"valuesCSV,omitempty"` } -type Datasource struct { - // The apiserver version - ApiVersion *string `json:"apiVersion,omitempty"` - // The datasource plugin type - Type string `json:"type"` - // Datasource UID (NOTE: name in k8s) - Uid *string `json:"uid,omitempty"` -} - type NodesQuery struct { Count *int64 `json:"count,omitempty"` Seed *int64 `json:"seed,omitempty"` @@ -115,7 +107,7 @@ type Dataquery struct { CsvFileName *string `json:"csvFileName,omitempty"` CsvWave []CSVWave `json:"csvWave,omitempty"` // The datasource - Datasource *Datasource `json:"datasource,omitempty"` + Datasource *dashboard.DataSourceRef `json:"datasource,omitempty"` // Drop percentage (the chance we will lose a point 0-100) DropPercent *float64 `json:"dropPercent,omitempty"` // Possible enum values: diff --git a/java/src/main/java/com/grafana/foundation/azuremonitor/AzureMonitorQuery.java b/java/src/main/java/com/grafana/foundation/azuremonitor/AzureMonitorQuery.java index 71d31aa..218381d 100644 --- a/java/src/main/java/com/grafana/foundation/azuremonitor/AzureMonitorQuery.java +++ b/java/src/main/java/com/grafana/foundation/azuremonitor/AzureMonitorQuery.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; +import com.grafana.foundation.dashboard.DataSourceRef; public class AzureMonitorQuery implements com.grafana.foundation.cog.variants.Dataquery { // A unique identifier for the query within the list of targets. @@ -71,7 +72,7 @@ public class AzureMonitorQuery implements com.grafana.foundation.cog.variants.Da // TODO this shouldn't be unknown but DataSourceRef | null @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public Object datasource; + public DataSourceRef datasource; // Used only for exemplar queries from Prometheus @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("query") @@ -159,7 +160,7 @@ public class AzureMonitorQuery implements com.grafana.foundation.cog.variants.Da return this; } - public Builder datasource(Object datasource) { + public Builder datasource(DataSourceRef datasource) { this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchAnnotationQuery.java b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchAnnotationQuery.java index 551d8a3..df30232 100644 --- a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchAnnotationQuery.java +++ b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchAnnotationQuery.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.Map; +import com.grafana.foundation.dashboard.DataSourceRef; import java.util.List; // Shape of a CloudWatch Annotation query @@ -86,7 +87,7 @@ public class CloudWatchAnnotationQuery implements com.grafana.foundation.cog.var // TODO this shouldn't be unknown but DataSourceRef | null @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public Object datasource; + public DataSourceRef datasource; // @deprecated use statistic @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("statistics") @@ -180,7 +181,7 @@ public class CloudWatchAnnotationQuery implements com.grafana.foundation.cog.var return this; } - public Builder datasource(Object datasource) { + public Builder datasource(DataSourceRef datasource) { this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchLogsQuery.java b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchLogsQuery.java index a40098b..90d6262 100644 --- a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchLogsQuery.java +++ b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchLogsQuery.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; +import com.grafana.foundation.dashboard.DataSourceRef; // Shape of a CloudWatch Logs query public class CloudWatchLogsQuery implements com.grafana.foundation.cog.variants.Dataquery { @@ -56,7 +57,7 @@ public class CloudWatchLogsQuery implements com.grafana.foundation.cog.variants. // TODO this shouldn't be unknown but DataSourceRef | null @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public Object datasource; + public DataSourceRef datasource; public String toJSON() throws JsonProcessingException { ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); @@ -121,7 +122,7 @@ public class CloudWatchLogsQuery implements com.grafana.foundation.cog.variants. return this; } - public Builder datasource(Object datasource) { + public Builder datasource(DataSourceRef datasource) { this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchMetricsQuery.java b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchMetricsQuery.java index 2abfe20..a4ffae8 100644 --- a/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchMetricsQuery.java +++ b/java/src/main/java/com/grafana/foundation/cloudwatch/CloudWatchMetricsQuery.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.Map; +import com.grafana.foundation.dashboard.DataSourceRef; import java.util.List; // Shape of a CloudWatch Metrics query @@ -98,7 +99,7 @@ public class CloudWatchMetricsQuery implements com.grafana.foundation.cog.varian // TODO this shouldn't be unknown but DataSourceRef | null @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public Object datasource; + public DataSourceRef datasource; // @deprecated use statistic @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("statistics") @@ -217,7 +218,7 @@ public class CloudWatchMetricsQuery implements com.grafana.foundation.cog.varian return this; } - public Builder datasource(Object datasource) { + public Builder datasource(DataSourceRef datasource) { this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/common/Constants.java b/java/src/main/java/com/grafana/foundation/common/Constants.java index be9af52..cc841b4 100644 --- a/java/src/main/java/com/grafana/foundation/common/Constants.java +++ b/java/src/main/java/com/grafana/foundation/common/Constants.java @@ -3,6 +3,6 @@ package com.grafana.foundation.common; public class Constants { - public static final String TimeZoneBrowser = "browser"; public static final String TimeZoneUtc = "utc"; + public static final String TimeZoneBrowser = "browser"; } diff --git a/java/src/main/java/com/grafana/foundation/common/DataSourceRef.java b/java/src/main/java/com/grafana/foundation/common/DataSourceRef.java deleted file mode 100644 index fecaf33..0000000 --- a/java/src/main/java/com/grafana/foundation/common/DataSourceRef.java +++ /dev/null @@ -1,55 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.common; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class DataSourceRef { - // The plugin type-id - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("type") - public String type; - // Specific datasource instance - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - // Datasource API version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final DataSourceRef internal; - - public Builder() { - this.internal = new DataSourceRef(); - } - public Builder type(String type) { - this.internal.type = type; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - public DataSourceRef build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/elasticsearch/Dataquery.java b/java/src/main/java/com/grafana/foundation/elasticsearch/Dataquery.java index 0c98cf6..f388787 100644 --- a/java/src/main/java/com/grafana/foundation/elasticsearch/Dataquery.java +++ b/java/src/main/java/com/grafana/foundation/elasticsearch/Dataquery.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; +import com.grafana.foundation.dashboard.DataSourceRef; public class Dataquery implements com.grafana.foundation.cog.variants.Dataquery { // Alias pattern @@ -50,7 +51,7 @@ public class Dataquery implements com.grafana.foundation.cog.variants.Dataquery // TODO this shouldn't be unknown but DataSourceRef | null @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public Object datasource; + public DataSourceRef datasource; public String toJSON() throws JsonProcessingException { ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); @@ -104,7 +105,7 @@ public class Dataquery implements com.grafana.foundation.cog.variants.Dataquery return this; } - public Builder datasource(Object datasource) { + public Builder datasource(DataSourceRef datasource) { this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeClassicConditionsDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeClassicConditionsDatasource.java deleted file mode 100644 index a92daf7..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeClassicConditionsDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeClassicConditionsDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeClassicConditionsDatasource internal; - - public Builder() { - this.internal = new ExprTypeClassicConditionsDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeClassicConditionsDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeMathDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeMathDatasource.java deleted file mode 100644 index 9208330..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeMathDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeMathDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeMathDatasource internal; - - public Builder() { - this.internal = new ExprTypeMathDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeMathDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeReduceDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeReduceDatasource.java deleted file mode 100644 index 9505681..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeReduceDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeReduceDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeReduceDatasource internal; - - public Builder() { - this.internal = new ExprTypeReduceDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeReduceDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeResampleDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeResampleDatasource.java deleted file mode 100644 index 1195e2f..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeResampleDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeResampleDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeResampleDatasource internal; - - public Builder() { - this.internal = new ExprTypeResampleDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeResampleDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeSqlDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeSqlDatasource.java deleted file mode 100644 index e54962b..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeSqlDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeSqlDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeSqlDatasource internal; - - public Builder() { - this.internal = new ExprTypeSqlDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeSqlDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/ExprTypeThresholdDatasource.java b/java/src/main/java/com/grafana/foundation/expr/ExprTypeThresholdDatasource.java deleted file mode 100644 index b41ebd3..0000000 --- a/java/src/main/java/com/grafana/foundation/expr/ExprTypeThresholdDatasource.java +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated - EDITING IS FUTILE. DO NOT EDIT. - -package com.grafana.foundation.expr; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.fasterxml.jackson.annotation.JsonInclude; - -public class ExprTypeThresholdDatasource { - // The apiserver version - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("apiVersion") - public String apiVersion; - // The datasource plugin type - @JsonProperty("type") - public String type; - // Datasource UID (NOTE: name in k8s) - @JsonInclude(JsonInclude.Include.NON_NULL) - @JsonProperty("uid") - public String uid; - - public String toJSON() throws JsonProcessingException { - ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); - return ow.writeValueAsString(this); - } - - - public static class Builder implements com.grafana.foundation.cog.Builder { - private final ExprTypeThresholdDatasource internal; - - public Builder() { - this.internal = new ExprTypeThresholdDatasource(); - this.internal.type = "__expr__"; - } - public Builder apiVersion(String apiVersion) { - this.internal.apiVersion = apiVersion; - return this; - } - - public Builder uid(String uid) { - this.internal.uid = uid; - return this; - } - public ExprTypeThresholdDatasource build() { - return this.internal; - } - } -} diff --git a/java/src/main/java/com/grafana/foundation/expr/TypeClassicConditions.java b/java/src/main/java/com/grafana/foundation/expr/TypeClassicConditions.java index 0e2c6fb..37e46ed 100644 --- a/java/src/main/java/com/grafana/foundation/expr/TypeClassicConditions.java +++ b/java/src/main/java/com/grafana/foundation/expr/TypeClassicConditions.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonSetter; import com.fasterxml.jackson.annotation.Nulls; import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; +import com.grafana.foundation.dashboard.DataSourceRef; public class TypeClassicConditions implements com.grafana.foundation.cog.variants.Dataquery { @JsonSetter(nulls = Nulls.AS_EMPTY) @@ -18,7 +19,7 @@ public class TypeClassicConditions implements com.grafana.foundation.cog.variant // The datasource @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public ExprTypeClassicConditionsDatasource datasource; + public DataSourceRef datasource; // true if query is disabled (ie should not be returned to the dashboard) // NOTE: this does not always imply that the query should not be executed since // the results from a hidden query may be used as the input to other queries (SSE etc) @@ -76,8 +77,8 @@ public class TypeClassicConditions implements com.grafana.foundation.cog.variant return this; } - public Builder datasource(com.grafana.foundation.cog.Builder datasource) { - this.internal.datasource = datasource.build(); + public Builder datasource(DataSourceRef datasource) { + this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/expr/TypeMath.java b/java/src/main/java/com/grafana/foundation/expr/TypeMath.java index e5dc085..34cbb8c 100644 --- a/java/src/main/java/com/grafana/foundation/expr/TypeMath.java +++ b/java/src/main/java/com/grafana/foundation/expr/TypeMath.java @@ -7,12 +7,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; +import com.grafana.foundation.dashboard.DataSourceRef; public class TypeMath implements com.grafana.foundation.cog.variants.Dataquery { // The datasource @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public ExprTypeMathDatasource datasource; + public DataSourceRef datasource; // General math expression @JsonProperty("expression") public String expression; @@ -68,8 +69,8 @@ public class TypeMath implements com.grafana.foundation.cog.variants.Dataquery { this.internal = new TypeMath(); this.internal.type = "math"; } - public Builder datasource(com.grafana.foundation.cog.Builder datasource) { - this.internal.datasource = datasource.build(); + public Builder datasource(DataSourceRef datasource) { + this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/expr/TypeReduce.java b/java/src/main/java/com/grafana/foundation/expr/TypeReduce.java index ed28ce6..ae61442 100644 --- a/java/src/main/java/com/grafana/foundation/expr/TypeReduce.java +++ b/java/src/main/java/com/grafana/foundation/expr/TypeReduce.java @@ -7,12 +7,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; +import com.grafana.foundation.dashboard.DataSourceRef; public class TypeReduce implements com.grafana.foundation.cog.variants.Dataquery { // The datasource @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public ExprTypeReduceDatasource datasource; + public DataSourceRef datasource; // Reference to single query result @JsonProperty("expression") public String expression; @@ -84,8 +85,8 @@ public class TypeReduce implements com.grafana.foundation.cog.variants.Dataquery this.internal = new TypeReduce(); this.internal.type = "reduce"; } - public Builder datasource(com.grafana.foundation.cog.Builder datasource) { - this.internal.datasource = datasource.build(); + public Builder datasource(DataSourceRef datasource) { + this.internal.datasource = datasource; return this; } diff --git a/java/src/main/java/com/grafana/foundation/expr/TypeResample.java b/java/src/main/java/com/grafana/foundation/expr/TypeResample.java index a2508ed..a8294a1 100644 --- a/java/src/main/java/com/grafana/foundation/expr/TypeResample.java +++ b/java/src/main/java/com/grafana/foundation/expr/TypeResample.java @@ -7,12 +7,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.annotation.JsonInclude; +import com.grafana.foundation.dashboard.DataSourceRef; public class TypeResample implements com.grafana.foundation.cog.variants.Dataquery { // The datasource @JsonInclude(JsonInclude.Include.NON_NULL) @JsonProperty("datasource") - public ExprTypeResampleDatasource datasource; + public DataSourceRef datasource; // The downsample function // Possible enum values: // - `"sum"` @@ -91,8 +92,8 @@ public class TypeResample implements com.grafana.foundation.cog.variants.Dataque this.internal = new TypeResample(); this.internal.type = "resample"; } - ...*[Comment body truncated]*