Cloudwatch: Fix some schema todos (#66664)

* Cloudwatch: fix todos

* Cloudwatch: Run make-gen
pull/66725/head
Alex Khomenko 2 years ago committed by GitHub
parent 15b469bd12
commit 49eb9db698
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 210
      pkg/tsdb/cloudwatch/kinds/dataquery/types_dataquery_gen.go
  2. 4
      public/app/plugins/datasource/cloudwatch/__mocks__/sqlUtils.ts
  3. 5
      public/app/plugins/datasource/cloudwatch/dataquery.cue
  4. 5
      public/app/plugins/datasource/cloudwatch/dataquery.gen.ts
  5. 8
      public/app/plugins/datasource/cloudwatch/expressions.ts
  6. 15
      public/app/plugins/datasource/cloudwatch/types.ts

@ -56,6 +56,16 @@ const (
CloudWatchMetricsQuerySqlFromPropertyTypeString CloudWatchMetricsQuerySqlFromPropertyType = "string"
)
// Defines values for CloudWatchMetricsQuerySqlGroupByExpressionsParametersType.
const (
CloudWatchMetricsQuerySqlGroupByExpressionsParametersTypeFunctionParameter CloudWatchMetricsQuerySqlGroupByExpressionsParametersType = "functionParameter"
)
// Defines values for CloudWatchMetricsQuerySqlGroupByExpressionsPropertyType.
const (
CloudWatchMetricsQuerySqlGroupByExpressionsPropertyTypeString CloudWatchMetricsQuerySqlGroupByExpressionsPropertyType = "string"
)
// Defines values for CloudWatchMetricsQuerySqlGroupByType.
const (
CloudWatchMetricsQuerySqlGroupByTypeAnd CloudWatchMetricsQuerySqlGroupByType = "and"
@ -82,6 +92,16 @@ const (
CloudWatchMetricsQuerySqlSelectTypeFunction CloudWatchMetricsQuerySqlSelectType = "function"
)
// Defines values for CloudWatchMetricsQuerySqlWhereExpressionsParametersType.
const (
CloudWatchMetricsQuerySqlWhereExpressionsParametersTypeFunctionParameter CloudWatchMetricsQuerySqlWhereExpressionsParametersType = "functionParameter"
)
// Defines values for CloudWatchMetricsQuerySqlWhereExpressionsPropertyType.
const (
CloudWatchMetricsQuerySqlWhereExpressionsPropertyTypeString CloudWatchMetricsQuerySqlWhereExpressionsPropertyType = "string"
)
// Defines values for CloudWatchMetricsQuerySqlWhereType.
const (
CloudWatchMetricsQuerySqlWhereTypeAnd CloudWatchMetricsQuerySqlWhereType = "and"
@ -107,6 +127,16 @@ const (
MetricQueryTypeN1 MetricQueryType = 1
)
// Defines values for QueryEditorArrayExpressionExpressionsParametersType.
const (
QueryEditorArrayExpressionExpressionsParametersTypeFunctionParameter QueryEditorArrayExpressionExpressionsParametersType = "functionParameter"
)
// Defines values for QueryEditorArrayExpressionExpressionsPropertyType.
const (
QueryEditorArrayExpressionExpressionsPropertyTypeString QueryEditorArrayExpressionExpressionsPropertyType = "string"
)
// Defines values for QueryEditorArrayExpressionType.
const (
QueryEditorArrayExpressionTypeAnd QueryEditorArrayExpressionType = "and"
@ -194,6 +224,16 @@ const (
SQLExpressionFromPropertyTypeString SQLExpressionFromPropertyType = "string"
)
// Defines values for SQLExpressionGroupByExpressionsParametersType.
const (
SQLExpressionGroupByExpressionsParametersTypeFunctionParameter SQLExpressionGroupByExpressionsParametersType = "functionParameter"
)
// Defines values for SQLExpressionGroupByExpressionsPropertyType.
const (
SQLExpressionGroupByExpressionsPropertyTypeString SQLExpressionGroupByExpressionsPropertyType = "string"
)
// Defines values for SQLExpressionGroupByType.
const (
SQLExpressionGroupByTypeAnd SQLExpressionGroupByType = "and"
@ -220,6 +260,16 @@ const (
SQLExpressionSelectTypeFunction SQLExpressionSelectType = "function"
)
// Defines values for SQLExpressionWhereExpressionsParametersType.
const (
SQLExpressionWhereExpressionsParametersTypeFunctionParameter SQLExpressionWhereExpressionsParametersType = "functionParameter"
)
// Defines values for SQLExpressionWhereExpressionsPropertyType.
const (
SQLExpressionWhereExpressionsPropertyTypeString SQLExpressionWhereExpressionsPropertyType = "string"
)
// Defines values for SQLExpressionWhereType.
const (
SQLExpressionWhereTypeAnd SQLExpressionWhereType = "and"
@ -354,9 +404,8 @@ type CloudWatchMetricsQuery struct {
Sql *struct {
From *CloudWatchMetricsQuerySqlFrom `json:"from,omitempty"`
GroupBy *struct {
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
Expressions interface{} `json:"expressions"`
Type CloudWatchMetricsQuerySqlGroupByType `json:"type"`
Expressions []CloudWatchMetricsQuerySqlGroupByExpressionsItem `json:"expressions"`
Type CloudWatchMetricsQuerySqlGroupByType `json:"type"`
} `json:"groupBy,omitempty"`
Limit *int64 `json:"limit,omitempty"`
OrderBy *struct {
@ -377,9 +426,8 @@ type CloudWatchMetricsQuery struct {
Type CloudWatchMetricsQuerySqlSelectType `json:"type"`
} `json:"select,omitempty"`
Where *struct {
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
Expressions interface{} `json:"expressions"`
Type CloudWatchMetricsQuerySqlWhereType `json:"type"`
Expressions []CloudWatchMetricsQuerySqlWhereExpressionsItem `json:"expressions"`
Type CloudWatchMetricsQuerySqlWhereType `json:"type"`
} `json:"where,omitempty"`
} `json:"sql,omitempty"`
SqlExpression *string `json:"sqlExpression,omitempty"`
@ -419,6 +467,33 @@ type CloudWatchMetricsQuerySqlFrom struct {
union json.RawMessage
}
// CloudWatchMetricsQuerySqlGroupByExpressionsParametersType defines model for CloudWatchMetricsQuery.Sql.GroupBy.Expressions.Parameters.Type.
type CloudWatchMetricsQuerySqlGroupByExpressionsParametersType string
// CloudWatchMetricsQuerySqlGroupByExpressionsPropertyType defines model for CloudWatchMetricsQuery.Sql.GroupBy.Expressions.Property.Type.
type CloudWatchMetricsQuerySqlGroupByExpressionsPropertyType string
// CloudWatchMetricsQuerySqlGroupByExpressionsItem defines model for CloudWatchMetricsQuery.sql.groupBy.expressions.Item.
type CloudWatchMetricsQuerySqlGroupByExpressionsItem struct {
Name *string `json:"name,omitempty"`
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
Operator *struct {
Name *string `json:"name,omitempty"`
Value *interface{} `json:"value,omitempty"`
} `json:"operator,omitempty"`
Parameters []struct {
Name *string `json:"name,omitempty"`
Type CloudWatchMetricsQuerySqlGroupByExpressionsParametersType `json:"type"`
} `json:"parameters,omitempty"`
Property *struct {
Name *string `json:"name,omitempty"`
Type CloudWatchMetricsQuerySqlGroupByExpressionsPropertyType `json:"type"`
} `json:"property,omitempty"`
Type *interface{} `json:"type,omitempty"`
union json.RawMessage
}
// CloudWatchMetricsQuerySqlGroupByType defines model for CloudWatchMetricsQuery.Sql.GroupBy.Type.
type CloudWatchMetricsQuerySqlGroupByType string
@ -434,6 +509,33 @@ type CloudWatchMetricsQuerySqlSelectParametersType string
// CloudWatchMetricsQuerySqlSelectType defines model for CloudWatchMetricsQuery.Sql.Select.Type.
type CloudWatchMetricsQuerySqlSelectType string
// CloudWatchMetricsQuerySqlWhereExpressionsParametersType defines model for CloudWatchMetricsQuery.Sql.Where.Expressions.Parameters.Type.
type CloudWatchMetricsQuerySqlWhereExpressionsParametersType string
// CloudWatchMetricsQuerySqlWhereExpressionsPropertyType defines model for CloudWatchMetricsQuery.Sql.Where.Expressions.Property.Type.
type CloudWatchMetricsQuerySqlWhereExpressionsPropertyType string
// CloudWatchMetricsQuerySqlWhereExpressionsItem defines model for CloudWatchMetricsQuery.sql.where.expressions.Item.
type CloudWatchMetricsQuerySqlWhereExpressionsItem struct {
Name *string `json:"name,omitempty"`
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
Operator *struct {
Name *string `json:"name,omitempty"`
Value *interface{} `json:"value,omitempty"`
} `json:"operator,omitempty"`
Parameters []struct {
Name *string `json:"name,omitempty"`
Type CloudWatchMetricsQuerySqlWhereExpressionsParametersType `json:"type"`
} `json:"parameters,omitempty"`
Property *struct {
Name *string `json:"name,omitempty"`
Type CloudWatchMetricsQuerySqlWhereExpressionsPropertyType `json:"type"`
} `json:"property,omitempty"`
Type *interface{} `json:"type,omitempty"`
union json.RawMessage
}
// CloudWatchMetricsQuerySqlWhereType defines model for CloudWatchMetricsQuery.Sql.Where.Type.
type CloudWatchMetricsQuerySqlWhereType string
@ -474,9 +576,35 @@ type MetricStat struct {
// QueryEditorArrayExpression defines model for QueryEditorArrayExpression.
type QueryEditorArrayExpression struct {
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
Expressions interface{} `json:"expressions"`
Type QueryEditorArrayExpressionType `json:"type"`
Expressions []QueryEditorArrayExpressionExpressionsItem `json:"expressions"`
Type QueryEditorArrayExpressionType `json:"type"`
}
// QueryEditorArrayExpressionExpressionsParametersType defines model for QueryEditorArrayExpression.Expressions.Parameters.Type.
type QueryEditorArrayExpressionExpressionsParametersType string
// QueryEditorArrayExpressionExpressionsPropertyType defines model for QueryEditorArrayExpression.Expressions.Property.Type.
type QueryEditorArrayExpressionExpressionsPropertyType string
// QueryEditorArrayExpressionExpressionsItem defines model for QueryEditorArrayExpression.expressions.Item.
type QueryEditorArrayExpressionExpressionsItem struct {
Name *string `json:"name,omitempty"`
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
Operator *struct {
Name *string `json:"name,omitempty"`
Value *interface{} `json:"value,omitempty"`
} `json:"operator,omitempty"`
Parameters []struct {
Name *string `json:"name,omitempty"`
Type QueryEditorArrayExpressionExpressionsParametersType `json:"type"`
} `json:"parameters,omitempty"`
Property *struct {
Name *string `json:"name,omitempty"`
Type QueryEditorArrayExpressionExpressionsPropertyType `json:"type"`
} `json:"property,omitempty"`
Type *interface{} `json:"type,omitempty"`
union json.RawMessage
}
// QueryEditorArrayExpressionType defines model for QueryEditorArrayExpression.Type.
@ -606,9 +734,8 @@ type QueryEditorPropertyExpressionType string
type SQLExpression struct {
From *SQLExpressionFrom `json:"from,omitempty"`
GroupBy *struct {
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
Expressions interface{} `json:"expressions"`
Type SQLExpressionGroupByType `json:"type"`
Expressions []SQLExpressionGroupByExpressionsItem `json:"expressions"`
Type SQLExpressionGroupByType `json:"type"`
} `json:"groupBy,omitempty"`
Limit *int64 `json:"limit,omitempty"`
OrderBy *struct {
@ -629,9 +756,8 @@ type SQLExpression struct {
Type SQLExpressionSelectType `json:"type"`
} `json:"select,omitempty"`
Where *struct {
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
Expressions interface{} `json:"expressions"`
Type SQLExpressionWhereType `json:"type"`
Expressions []SQLExpressionWhereExpressionsItem `json:"expressions"`
Type SQLExpressionWhereType `json:"type"`
} `json:"where,omitempty"`
}
@ -656,6 +782,33 @@ type SQLExpressionFrom struct {
union json.RawMessage
}
// SQLExpressionGroupByExpressionsParametersType defines model for SQLExpression.GroupBy.Expressions.Parameters.Type.
type SQLExpressionGroupByExpressionsParametersType string
// SQLExpressionGroupByExpressionsPropertyType defines model for SQLExpression.GroupBy.Expressions.Property.Type.
type SQLExpressionGroupByExpressionsPropertyType string
// SQLExpressionGroupByExpressionsItem defines model for SQLExpression.GroupBy.Expressions.Item.
type SQLExpressionGroupByExpressionsItem struct {
Name *string `json:"name,omitempty"`
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
Operator *struct {
Name *string `json:"name,omitempty"`
Value *interface{} `json:"value,omitempty"`
} `json:"operator,omitempty"`
Parameters []struct {
Name *string `json:"name,omitempty"`
Type SQLExpressionGroupByExpressionsParametersType `json:"type"`
} `json:"parameters,omitempty"`
Property *struct {
Name *string `json:"name,omitempty"`
Type SQLExpressionGroupByExpressionsPropertyType `json:"type"`
} `json:"property,omitempty"`
Type *interface{} `json:"type,omitempty"`
union json.RawMessage
}
// SQLExpressionGroupByType defines model for SQLExpression.GroupBy.Type.
type SQLExpressionGroupByType string
@ -671,5 +824,32 @@ type SQLExpressionSelectParametersType string
// SQLExpressionSelectType defines model for SQLExpression.Select.Type.
type SQLExpressionSelectType string
// SQLExpressionWhereExpressionsParametersType defines model for SQLExpression.Where.Expressions.Parameters.Type.
type SQLExpressionWhereExpressionsParametersType string
// SQLExpressionWhereExpressionsPropertyType defines model for SQLExpression.Where.Expressions.Property.Type.
type SQLExpressionWhereExpressionsPropertyType string
// SQLExpressionWhereExpressionsItem defines model for SQLExpression.Where.Expressions.Item.
type SQLExpressionWhereExpressionsItem struct {
Name *string `json:"name,omitempty"`
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
Operator *struct {
Name *string `json:"name,omitempty"`
Value *interface{} `json:"value,omitempty"`
} `json:"operator,omitempty"`
Parameters []struct {
Name *string `json:"name,omitempty"`
Type SQLExpressionWhereExpressionsParametersType `json:"type"`
} `json:"parameters,omitempty"`
Property *struct {
Name *string `json:"name,omitempty"`
Type SQLExpressionWhereExpressionsPropertyType `json:"type"`
} `json:"property,omitempty"`
Type *interface{} `json:"type,omitempty"`
union json.RawMessage
}
// SQLExpressionWhereType defines model for SQLExpression.Where.Type.
type SQLExpressionWhereType string

@ -13,13 +13,13 @@ import {
export function createArray(
expressions: QueryEditorExpression[],
type: QueryEditorExpressionType.And | QueryEditorExpressionType.Or = QueryEditorExpressionType.And
): QueryEditorArrayExpression {
) {
const array = {
type,
expressions,
};
return array;
return array as QueryEditorArrayExpression;
}
export function createOperator(property: string, operator: string, value?: string): QueryEditorOperatorExpression {

@ -121,9 +121,8 @@ composableKinds: DataQuery: {
#QueryEditorPropertyType: "string" @cuetsy(kind="enum")
#QueryEditorArrayExpression: {
type: (#QueryEditorExpressionType & "and") | (#QueryEditorExpressionType & "or")
// TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
expressions: _
type: (#QueryEditorExpressionType & "and") | (#QueryEditorExpressionType & "or")
expressions: [...#QueryEditorExpression] | [...#QueryEditorArrayExpression]
} @cuetsy(kind="interface")
// QueryEditorArrayExpression is added in veneer

@ -139,10 +139,7 @@ export enum QueryEditorPropertyType {
}
export interface QueryEditorArrayExpression {
/**
* TS type expressions: QueryEditorExpression[] | QueryEditorArrayExpression[], extended in veneer
*/
expressions: unknown;
expressions: (Array<QueryEditorExpression> | Array<QueryEditorArrayExpression>);
type: (QueryEditorExpressionType.And | QueryEditorExpressionType.Or);
}

@ -3,8 +3,8 @@ import {
QueryEditorOperator as QueryEditorOperatorBase,
QueryEditorOperatorValueType,
QueryEditorExpressionType,
QueryEditorArrayExpression as QueryEditorArrayExpressionBase,
QueryEditorExpression as QueryEditorExpressionBase,
QueryEditorArrayExpression,
} from './dataquery.gen';
export {
QueryEditorPropertyType,
@ -13,6 +13,7 @@ export {
QueryEditorGroupByExpression,
QueryEditorFunctionExpression,
QueryEditorFunctionParameterExpression,
QueryEditorArrayExpression,
} from './dataquery.gen';
export { QueryEditorExpressionType };
@ -25,9 +26,4 @@ export interface QueryEditorOperatorExpression extends QueryEditorOperatorExpres
operator: QueryEditorOperator<QueryEditorOperatorValueType>;
}
export interface QueryEditorArrayExpression extends QueryEditorArrayExpressionBase {
type: QueryEditorExpressionType.And | QueryEditorExpressionType.Or;
expressions: QueryEditorExpression[] | QueryEditorArrayExpression[];
}
export type QueryEditorExpression = QueryEditorArrayExpression | QueryEditorExpressionBase;

@ -3,28 +3,17 @@ import { DataFrame, DataSourceRef } from '@grafana/data';
import { DataQuery } from '@grafana/schema';
import * as raw from './dataquery.gen';
import { QueryEditorArrayExpression } from './expressions';
export * from './dataquery.gen';
// QueryEditorArrayExpression has a recursive property, so cannot be defined in cue
export interface SQLExpression extends raw.SQLExpression {
where?: QueryEditorArrayExpression;
groupBy?: QueryEditorArrayExpression;
}
export type CloudWatchQuery =
| CloudWatchMetricsQuery
| raw.CloudWatchMetricsQuery
| raw.CloudWatchLogsQuery
| raw.CloudWatchAnnotationQuery
| CloudWatchDefaultQuery;
export interface CloudWatchMetricsQuery extends raw.CloudWatchMetricsQuery {
sql?: SQLExpression;
}
// We want to allow setting defaults for both Logs and Metrics queries
export type CloudWatchDefaultQuery = Omit<raw.CloudWatchLogsQuery, 'queryMode'> & CloudWatchMetricsQuery;
export type CloudWatchDefaultQuery = Omit<raw.CloudWatchLogsQuery, 'queryMode'> & raw.CloudWatchMetricsQuery;
export interface MultiFilters {
[key: string]: string[];

Loading…
Cancel
Save