Cloudwatch: Fix some schema todos (#66664)

* Cloudwatch: fix todos

* Cloudwatch: Run make-gen
This commit is contained in:
Alex Khomenko 2023-04-18 08:46:51 +03:00 committed by GitHub
parent 15b469bd12
commit 49eb9db698
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 204 additions and 43 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,28 +3,17 @@ import { DataFrame, DataSourceRef } from '@grafana/data';
import { DataQuery } from '@grafana/schema'; import { DataQuery } from '@grafana/schema';
import * as raw from './dataquery.gen'; import * as raw from './dataquery.gen';
import { QueryEditorArrayExpression } from './expressions';
export * from './dataquery.gen'; 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 = export type CloudWatchQuery =
| CloudWatchMetricsQuery | raw.CloudWatchMetricsQuery
| raw.CloudWatchLogsQuery | raw.CloudWatchLogsQuery
| raw.CloudWatchAnnotationQuery | raw.CloudWatchAnnotationQuery
| CloudWatchDefaultQuery; | CloudWatchDefaultQuery;
export interface CloudWatchMetricsQuery extends raw.CloudWatchMetricsQuery {
sql?: SQLExpression;
}
// We want to allow setting defaults for both Logs and Metrics queries // 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 { export interface MultiFilters {
[key: string]: string[]; [key: string]: string[];