mirror of https://github.com/grafana/grafana.git
K8s/Dashboards: Fix panics in Dashboards v2alpha1 API (#102123)
* K8s/Dashboards: Fix panics in Dashboards v2alpha1 API Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Update generated code to use the `MappingType` properly Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> --------- Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
This commit is contained in:
parent
f1470de478
commit
3f270d1de0
|
|
@ -42,6 +42,9 @@ dashboard: {
|
|||
}
|
||||
go: {
|
||||
enabled: true
|
||||
config: {
|
||||
allowMarshalEmptyDisjunctions: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -263,15 +263,12 @@ ValueMapping: ValueMap | RangeMap | RegexMap | SpecialValueMap
|
|||
// `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
// `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
// `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
MappingType: "value" | "range" | "regex" | "special" @cog(kind="enum",memberNames="ValueToText|RangeToText|RegexToText|SpecialValue")
|
||||
MappingType: "value" | "range" | "regex" | "special"
|
||||
|
||||
// Maps text values to a color or different display text and color.
|
||||
// For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.
|
||||
ValueMap: {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "value"
|
||||
type: "value"
|
||||
type: MappingType & "value"
|
||||
// Map with <value_to_match>: ValueMappingResult. For example: { "10": { text: "Perfection!", color: "green" } }
|
||||
options: [string]: ValueMappingResult
|
||||
}
|
||||
|
|
@ -279,10 +276,7 @@ ValueMap: {
|
|||
// Maps numerical ranges to a display text and color.
|
||||
// For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
RangeMap: {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "range"
|
||||
type: "range"
|
||||
type: MappingType & "range"
|
||||
// Range to match against and the result to apply when the value is within the range
|
||||
options: {
|
||||
// Min value of the range. It can be null which means -Infinity
|
||||
|
|
@ -297,10 +291,7 @@ RangeMap: {
|
|||
// Maps regular expressions to replacement text and a color.
|
||||
// For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
RegexMap: {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "regex"
|
||||
type: "regex"
|
||||
type: MappingType & "regex"
|
||||
// Regular expression to match against and the result to apply when the value matches the regex
|
||||
options: {
|
||||
// Regular expression to match against
|
||||
|
|
@ -314,10 +305,7 @@ RegexMap: {
|
|||
// See SpecialValueMatch to see the list of special values.
|
||||
// For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
SpecialValueMap: {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "special"
|
||||
type: "special"
|
||||
type: MappingType & "special"
|
||||
options: {
|
||||
// Special value to match against
|
||||
match: SpecialValueMatch
|
||||
|
|
@ -562,11 +550,11 @@ RowsLayoutRowKind: {
|
|||
}
|
||||
|
||||
RowsLayoutRowSpec: {
|
||||
title?: string
|
||||
collapsed: bool
|
||||
conditionalRendering?: ConditionalRenderingGroupKind
|
||||
repeat?: RowRepeatOptions
|
||||
layout: GridLayoutKind | ResponsiveGridLayoutKind | TabsLayoutKind
|
||||
title?: string
|
||||
collapsed: bool
|
||||
conditionalRendering?: ConditionalRenderingGroupKind
|
||||
repeat?: RowRepeatOptions
|
||||
layout: GridLayoutKind | ResponsiveGridLayoutKind | TabsLayoutKind
|
||||
}
|
||||
|
||||
ResponsiveGridLayoutKind: {
|
||||
|
|
@ -586,9 +574,9 @@ ResponsiveGridLayoutItemKind: {
|
|||
}
|
||||
|
||||
ResponsiveGridLayoutItemSpec: {
|
||||
element: ElementReference
|
||||
repeat?: ResponsiveGridRepeatOptions
|
||||
conditionalRendering?: ConditionalRenderingGroupKind
|
||||
element: ElementReference
|
||||
repeat?: ResponsiveGridRepeatOptions
|
||||
conditionalRendering?: ConditionalRenderingGroupKind
|
||||
}
|
||||
|
||||
TabsLayoutKind: {
|
||||
|
|
@ -925,40 +913,40 @@ AdhocVariableKind: {
|
|||
}
|
||||
|
||||
ConditionalRenderingGroupKind: {
|
||||
kind: "ConditionalRenderingGroup"
|
||||
spec: ConditionalRenderingGroupSpec
|
||||
kind: "ConditionalRenderingGroup"
|
||||
spec: ConditionalRenderingGroupSpec
|
||||
}
|
||||
|
||||
ConditionalRenderingGroupSpec: {
|
||||
condition: "and" | "or"
|
||||
items: [...ConditionalRenderingVariableKind | ConditionalRenderingDataKind | ConditionalRenderingTimeIntervalKind]
|
||||
condition: "and" | "or"
|
||||
items: [...ConditionalRenderingVariableKind | ConditionalRenderingDataKind | ConditionalRenderingTimeIntervalKind]
|
||||
}
|
||||
|
||||
ConditionalRenderingVariableKind: {
|
||||
kind: "ConditionalRenderingVariable"
|
||||
spec: ConditionalRenderingVariableSpec
|
||||
kind: "ConditionalRenderingVariable"
|
||||
spec: ConditionalRenderingVariableSpec
|
||||
}
|
||||
|
||||
ConditionalRenderingVariableSpec: {
|
||||
variable: string
|
||||
operator: "equals" | "notEquals"
|
||||
value: string
|
||||
variable: string
|
||||
operator: "equals" | "notEquals"
|
||||
value: string
|
||||
}
|
||||
|
||||
ConditionalRenderingDataKind: {
|
||||
kind: "ConditionalRenderingData"
|
||||
spec: ConditionalRenderingDataSpec
|
||||
kind: "ConditionalRenderingData"
|
||||
spec: ConditionalRenderingDataSpec
|
||||
}
|
||||
|
||||
ConditionalRenderingDataSpec: {
|
||||
value: bool
|
||||
value: bool
|
||||
}
|
||||
|
||||
ConditionalRenderingTimeIntervalKind: {
|
||||
kind: "ConditionalRenderingTimeInterval"
|
||||
spec: ConditionalRenderingTimeIntervalSpec
|
||||
kind: "ConditionalRenderingTimeInterval"
|
||||
spec: ConditionalRenderingTimeIntervalSpec
|
||||
}
|
||||
|
||||
ConditionalRenderingTimeIntervalSpec: {
|
||||
value: string
|
||||
value: string
|
||||
}
|
||||
|
|
@ -407,10 +407,7 @@ func NewDashboardValueMapping() *DashboardValueMapping {
|
|||
// For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardValueMap struct {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "value"
|
||||
Type string `json:"type"`
|
||||
Type DashboardMappingType `json:"type"`
|
||||
// Map with <value_to_match>: ValueMappingResult. For example: { "10": { text: "Perfection!", color: "green" } }
|
||||
Options map[string]DashboardValueMappingResult `json:"options"`
|
||||
}
|
||||
|
|
@ -418,10 +415,25 @@ type DashboardValueMap struct {
|
|||
// NewDashboardValueMap creates a new DashboardValueMap object.
|
||||
func NewDashboardValueMap() *DashboardValueMap {
|
||||
return &DashboardValueMap{
|
||||
Type: "value",
|
||||
Type: DashboardMappingTypeValue,
|
||||
}
|
||||
}
|
||||
|
||||
// Supported value mapping types
|
||||
// `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.
|
||||
// `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
// `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
// `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardMappingType string
|
||||
|
||||
const (
|
||||
DashboardMappingTypeValue DashboardMappingType = "value"
|
||||
DashboardMappingTypeRange DashboardMappingType = "range"
|
||||
DashboardMappingTypeRegex DashboardMappingType = "regex"
|
||||
DashboardMappingTypeSpecial DashboardMappingType = "special"
|
||||
)
|
||||
|
||||
// Result used as replacement with text and color when the value matches
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardValueMappingResult struct {
|
||||
|
|
@ -444,10 +456,7 @@ func NewDashboardValueMappingResult() *DashboardValueMappingResult {
|
|||
// For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardRangeMap struct {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "range"
|
||||
Type string `json:"type"`
|
||||
Type DashboardMappingType `json:"type"`
|
||||
// Range to match against and the result to apply when the value is within the range
|
||||
Options DashboardV2alpha1RangeMapOptions `json:"options"`
|
||||
}
|
||||
|
|
@ -455,7 +464,7 @@ type DashboardRangeMap struct {
|
|||
// NewDashboardRangeMap creates a new DashboardRangeMap object.
|
||||
func NewDashboardRangeMap() *DashboardRangeMap {
|
||||
return &DashboardRangeMap{
|
||||
Type: "range",
|
||||
Type: DashboardMappingTypeRange,
|
||||
Options: *NewDashboardV2alpha1RangeMapOptions(),
|
||||
}
|
||||
}
|
||||
|
|
@ -464,10 +473,7 @@ func NewDashboardRangeMap() *DashboardRangeMap {
|
|||
// For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardRegexMap struct {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "regex"
|
||||
Type string `json:"type"`
|
||||
Type DashboardMappingType `json:"type"`
|
||||
// Regular expression to match against and the result to apply when the value matches the regex
|
||||
Options DashboardV2alpha1RegexMapOptions `json:"options"`
|
||||
}
|
||||
|
|
@ -475,7 +481,7 @@ type DashboardRegexMap struct {
|
|||
// NewDashboardRegexMap creates a new DashboardRegexMap object.
|
||||
func NewDashboardRegexMap() *DashboardRegexMap {
|
||||
return &DashboardRegexMap{
|
||||
Type: "regex",
|
||||
Type: DashboardMappingTypeRegex,
|
||||
Options: *NewDashboardV2alpha1RegexMapOptions(),
|
||||
}
|
||||
}
|
||||
|
|
@ -485,17 +491,14 @@ func NewDashboardRegexMap() *DashboardRegexMap {
|
|||
// For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
// +k8s:openapi-gen=true
|
||||
type DashboardSpecialValueMap struct {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "special"
|
||||
Type string `json:"type"`
|
||||
Type DashboardMappingType `json:"type"`
|
||||
Options DashboardV2alpha1SpecialValueMapOptions `json:"options"`
|
||||
}
|
||||
|
||||
// NewDashboardSpecialValueMap creates a new DashboardSpecialValueMap object.
|
||||
func NewDashboardSpecialValueMap() *DashboardSpecialValueMap {
|
||||
return &DashboardSpecialValueMap{
|
||||
Type: "special",
|
||||
Type: DashboardMappingTypeSpecial,
|
||||
Options: *NewDashboardV2alpha1SpecialValueMapOptions(),
|
||||
}
|
||||
}
|
||||
|
|
@ -1820,8 +1823,7 @@ func (resource DashboardPanelKindOrLibraryPanelKind) MarshalJSON() ([]byte, erro
|
|||
if resource.LibraryPanelKind != nil {
|
||||
return json.Marshal(resource.LibraryPanelKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardPanelKindOrLibraryPanelKind` from JSON.
|
||||
|
|
@ -1890,8 +1892,7 @@ func (resource DashboardValueMapOrRangeMapOrRegexMapOrSpecialValueMap) MarshalJS
|
|||
if resource.SpecialValueMap != nil {
|
||||
return json.Marshal(resource.SpecialValueMap)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardValueMapOrRangeMapOrRegexMapOrSpecialValueMap` from JSON.
|
||||
|
|
@ -1968,8 +1969,7 @@ func (resource DashboardGridLayoutItemKindOrGridLayoutRowKind) MarshalJSON() ([]
|
|||
if resource.GridLayoutRowKind != nil {
|
||||
return json.Marshal(resource.GridLayoutRowKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardGridLayoutItemKindOrGridLayoutRowKind` from JSON.
|
||||
|
|
@ -2034,8 +2034,7 @@ func (resource DashboardGridLayoutKindOrResponsiveGridLayoutKindOrTabsLayoutKind
|
|||
if resource.TabsLayoutKind != nil {
|
||||
return json.Marshal(resource.TabsLayoutKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardGridLayoutKindOrResponsiveGridLayoutKindOrTabsLayoutKind` from JSON.
|
||||
|
|
@ -2108,8 +2107,7 @@ func (resource DashboardConditionalRenderingVariableKindOrConditionalRenderingDa
|
|||
if resource.ConditionalRenderingTimeIntervalKind != nil {
|
||||
return json.Marshal(resource.ConditionalRenderingTimeIntervalKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardConditionalRenderingVariableKindOrConditionalRenderingDataKindOrConditionalRenderingTimeIntervalKind` from JSON.
|
||||
|
|
@ -2182,8 +2180,7 @@ func (resource DashboardGridLayoutKindOrRowsLayoutKindOrResponsiveGridLayoutKind
|
|||
if resource.ResponsiveGridLayoutKind != nil {
|
||||
return json.Marshal(resource.ResponsiveGridLayoutKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardGridLayoutKindOrRowsLayoutKindOrResponsiveGridLayoutKind` from JSON.
|
||||
|
|
@ -2276,8 +2273,7 @@ func (resource DashboardQueryVariableKindOrTextVariableKindOrConstantVariableKin
|
|||
if resource.AdhocVariableKind != nil {
|
||||
return json.Marshal(resource.AdhocVariableKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardQueryVariableKindOrTextVariableKindOrConstantVariableKindOrDatasourceVariableKindOrIntervalVariableKindOrCustomVariableKindOrGroupByVariableKindOrAdhocVariableKind` from JSON.
|
||||
|
|
@ -2388,7 +2384,7 @@ func (resource DashboardStringOrArrayOfString) MarshalJSON() ([]byte, error) {
|
|||
return json.Marshal(resource.ArrayOfString)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of scalars")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardStringOrArrayOfString` from JSON.
|
||||
|
|
@ -2443,7 +2439,7 @@ func (resource DashboardStringOrFloat64) MarshalJSON() ([]byte, error) {
|
|||
return json.Marshal(resource.Float64)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of scalars")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardStringOrFloat64` from JSON.
|
||||
|
|
@ -2504,8 +2500,7 @@ func (resource DashboardGridLayoutKindOrRowsLayoutKindOrResponsiveGridLayoutKind
|
|||
if resource.TabsLayoutKind != nil {
|
||||
return json.Marshal(resource.TabsLayoutKind)
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("no value for disjunction of refs")
|
||||
return []byte("null"), nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON implements a custom JSON unmarshalling logic to decode `DashboardGridLayoutKindOrRowsLayoutKindOrResponsiveGridLayoutKindOrTabsLayoutKind` from JSON.
|
||||
|
|
|
|||
|
|
@ -3237,10 +3237,9 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardRangeMap(ref common.ReferenceCa
|
|||
Properties: map[string]spec.Schema{
|
||||
"type": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "And this is no longer producing valid TS / Go output type: MappingType & \"range\"",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"options": {
|
||||
|
|
@ -3268,10 +3267,9 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardRegexMap(ref common.ReferenceCa
|
|||
Properties: map[string]spec.Schema{
|
||||
"type": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "And this is no longer producing valid TS / Go output type: MappingType & \"regex\"",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"options": {
|
||||
|
|
@ -3795,10 +3793,9 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardSpecialValueMap(ref common.Refe
|
|||
Properties: map[string]spec.Schema{
|
||||
"type": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "And this is no longer producing valid TS / Go output type: MappingType & \"special\"",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"options": {
|
||||
|
|
@ -4463,10 +4460,9 @@ func schema_pkg_apis_dashboard_v2alpha1_DashboardValueMap(ref common.ReferenceCa
|
|||
Properties: map[string]spec.Schema{
|
||||
"type": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "And this is no longer producing valid TS / Go output type: MappingType & \"value\"",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
Default: "",
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"options": {
|
||||
|
|
|
|||
|
|
@ -333,10 +333,7 @@ export const defaultValueMapping = (): ValueMapping => (defaultValueMap());
|
|||
// Maps text values to a color or different display text and color.
|
||||
// For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.
|
||||
export interface ValueMap {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "value"
|
||||
type: "value";
|
||||
type: MappingType & "value";
|
||||
// Map with <value_to_match>: ValueMappingResult. For example: { "10": { text: "Perfection!", color: "green" } }
|
||||
options: Record<string, ValueMappingResult>;
|
||||
}
|
||||
|
|
@ -346,6 +343,15 @@ export const defaultValueMap = (): ValueMap => ({
|
|||
options: {},
|
||||
});
|
||||
|
||||
// Supported value mapping types
|
||||
// `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.
|
||||
// `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
// `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
// `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
export type MappingType = "value" | "range" | "regex" | "special";
|
||||
|
||||
export const defaultMappingType = (): MappingType => ("value");
|
||||
|
||||
// Result used as replacement with text and color when the value matches
|
||||
export interface ValueMappingResult {
|
||||
// Text to display when the value matches
|
||||
|
|
@ -364,10 +370,7 @@ export const defaultValueMappingResult = (): ValueMappingResult => ({
|
|||
// Maps numerical ranges to a display text and color.
|
||||
// For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.
|
||||
export interface RangeMap {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "range"
|
||||
type: "range";
|
||||
type: MappingType & "range";
|
||||
// Range to match against and the result to apply when the value is within the range
|
||||
options: {
|
||||
// Min value of the range. It can be null which means -Infinity
|
||||
|
|
@ -391,10 +394,7 @@ export const defaultRangeMap = (): RangeMap => ({
|
|||
// Maps regular expressions to replacement text and a color.
|
||||
// For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.
|
||||
export interface RegexMap {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "regex"
|
||||
type: "regex";
|
||||
type: MappingType & "regex";
|
||||
// Regular expression to match against and the result to apply when the value matches the regex
|
||||
options: {
|
||||
// Regular expression to match against
|
||||
|
|
@ -416,10 +416,7 @@ export const defaultRegexMap = (): RegexMap => ({
|
|||
// See SpecialValueMatch to see the list of special values.
|
||||
// For example, you can configure a special value mapping so that null values appear as N/A.
|
||||
export interface SpecialValueMap {
|
||||
// TODO (@radiohead): Something broke in cog / app SDK codegen
|
||||
// And this is no longer producing valid TS / Go output
|
||||
// type: MappingType & "special"
|
||||
type: "special";
|
||||
type: MappingType & "special";
|
||||
options: {
|
||||
// Special value to match against
|
||||
match: SpecialValueMatch;
|
||||
|
|
|
|||
Loading…
Reference in New Issue