1/* Do not change, this code is generated from Golang structs */
2
3import { FieldConfig } from '@grafana/data';
4
5export interface ChannelAuthCheckConfig {
6  role?: string;
7}
8export interface ChannelAuthConfig {
9  subscribe?: ChannelAuthCheckConfig;
10  publish?: ChannelAuthCheckConfig;
11}
12export interface ChangeLogOutputConfig {
13  fieldName: string;
14  channel: string;
15}
16export interface RemoteWriteOutputConfig {
17  uid: string;
18  sampleMilliseconds: number;
19}
20export interface ThresholdOutputConfig {
21  fieldName: string;
22  channel: string;
23}
24export interface NumberCompareFrameConditionConfig {
25  fieldName: string;
26  op: string;
27  value: number;
28}
29export interface MultipleFrameConditionCheckerConfig {
30  conditionType: string;
31  conditions: FrameConditionCheckerConfig[];
32}
33export interface FrameConditionCheckerConfig {
34  type: Omit<keyof FrameConditionCheckerConfig, 'type'>;
35  multiple?: MultipleFrameConditionCheckerConfig;
36  numberCompare?: NumberCompareFrameConditionConfig;
37}
38export interface ConditionalOutputConfig {
39  condition?: FrameConditionCheckerConfig;
40  output?: FrameOutputterConfig;
41}
42export interface RedirectOutputConfig {
43  channel: string;
44}
45export interface MultipleOutputterConfig {
46  outputs: FrameOutputterConfig[];
47}
48export interface ManagedStreamOutputConfig {}
49export interface FrameOutputterConfig {
50  type: Omit<keyof FrameOutputterConfig, 'type'>;
51  managedStream?: ManagedStreamOutputConfig;
52  multiple?: MultipleOutputterConfig;
53  redirect?: RedirectOutputConfig;
54  conditional?: ConditionalOutputConfig;
55  threshold?: ThresholdOutputConfig;
56  remoteWrite?: RemoteWriteOutputConfig;
57  loki?: LokiOutputConfig;
58  changeLog?: ChangeLogOutputConfig;
59}
60export interface MultipleFrameProcessorConfig {
61  processors: FrameProcessorConfig[];
62}
63export interface KeepFieldsFrameProcessorConfig {
64  fieldNames: string[];
65}
66export interface DropFieldsFrameProcessorConfig {
67  fieldNames: string[];
68}
69export interface FrameProcessorConfig {
70  type: Omit<keyof FrameProcessorConfig, 'type'>;
71  dropFields?: DropFieldsFrameProcessorConfig;
72  keepFields?: KeepFieldsFrameProcessorConfig;
73  multiple?: MultipleFrameProcessorConfig;
74}
75export interface JsonFrameConverterConfig {}
76export interface AutoInfluxConverterConfig {
77  frameFormat: string;
78}
79export interface ExactJsonConverterConfig {
80  fields: Field[];
81}
82export interface Label {
83  name: string;
84  value: string;
85}
86export interface Field {
87  name: string;
88  type: number;
89  value: string;
90  labels?: Label[];
91  config?: FieldConfig;
92}
93export interface AutoJsonConverterConfig {
94  fieldTips?: { [key: string]: Field };
95}
96export interface ConverterConfig {
97  type: Omit<keyof ConverterConfig, 'type'>;
98  jsonAuto?: AutoJsonConverterConfig;
99  jsonExact?: ExactJsonConverterConfig;
100  influxAuto?: AutoInfluxConverterConfig;
101  jsonFrame?: JsonFrameConverterConfig;
102}
103export interface LokiOutputConfig {
104  uid: string;
105}
106export interface RedirectDataOutputConfig {
107  channel: string;
108}
109export interface DataOutputterConfig {
110  type: Omit<keyof DataOutputterConfig, 'type'>;
111  redirect?: RedirectDataOutputConfig;
112  loki?: LokiOutputConfig;
113}
114export interface MultipleSubscriberConfig {
115  subscribers: SubscriberConfig[];
116}
117export interface SubscriberConfig {
118  type: Omit<keyof SubscriberConfig, 'type'>;
119  multiple?: MultipleSubscriberConfig;
120}
121export interface ChannelRuleSettings {
122  auth?: ChannelAuthConfig;
123  subscribers?: SubscriberConfig[];
124  dataOutputs?: DataOutputterConfig[];
125  converter?: ConverterConfig;
126  frameProcessors?: FrameProcessorConfig[];
127  frameOutputs?: FrameOutputterConfig[];
128}
129export interface ChannelRule {
130  pattern: string;
131  settings: ChannelRuleSettings;
132}
133