@fi-ts/api 0.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/buf/validate/validate_pb.d.ts +4766 -0
  2. package/buf/validate/validate_pb.js +356 -0
  3. package/buf/validate/validate_pb.ts +4967 -0
  4. package/fits/api/v1/common_pb.d.ts +372 -0
  5. package/fits/api/v1/common_pb.js +276 -0
  6. package/fits/api/v1/common_pb.ts +447 -0
  7. package/fits/api/v1/health_pb.d.ts +190 -0
  8. package/fits/api/v1/health_pb.js +100 -0
  9. package/fits/api/v1/health_pb.ts +229 -0
  10. package/fits/api/v1/ip_pb.d.ts +549 -0
  11. package/fits/api/v1/ip_pb.js +137 -0
  12. package/fits/api/v1/ip_pb.ts +643 -0
  13. package/fits/api/v1/method_pb.d.ts +116 -0
  14. package/fits/api/v1/method_pb.js +38 -0
  15. package/fits/api/v1/method_pb.ts +142 -0
  16. package/fits/api/v1/partition_pb.d.ts +251 -0
  17. package/fits/api/v1/partition_pb.js +62 -0
  18. package/fits/api/v1/partition_pb.ts +300 -0
  19. package/fits/api/v1/predefined_rules_pb.d.ts +90 -0
  20. package/fits/api/v1/predefined_rules_pb.js +93 -0
  21. package/fits/api/v1/predefined_rules_pb.ts +127 -0
  22. package/fits/api/v1/project_pb.d.ts +366 -0
  23. package/fits/api/v1/project_pb.js +73 -0
  24. package/fits/api/v1/project_pb.ts +430 -0
  25. package/fits/api/v1/tenant_pb.d.ts +370 -0
  26. package/fits/api/v1/tenant_pb.js +73 -0
  27. package/fits/api/v1/tenant_pb.ts +435 -0
  28. package/fits/api/v1/token_pb.d.ts +522 -0
  29. package/fits/api/v1/token_pb.js +118 -0
  30. package/fits/api/v1/token_pb.ts +600 -0
  31. package/fits/api/v1/user_pb.d.ts +108 -0
  32. package/fits/api/v1/user_pb.js +34 -0
  33. package/fits/api/v1/user_pb.ts +139 -0
  34. package/fits/api/v1/version_pb.d.ts +88 -0
  35. package/fits/api/v1/version_pb.js +32 -0
  36. package/fits/api/v1/version_pb.ts +114 -0
  37. package/fits/api/v1/vpn_pb.d.ts +55 -0
  38. package/fits/api/v1/vpn_pb.js +14 -0
  39. package/fits/api/v1/vpn_pb.ts +72 -0
  40. package/package.json +25 -0
@@ -0,0 +1,300 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
2
+ // @generated from file fits/api/v1/partition.proto (package fits.api.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
+ import type { Labels, Meta } from "./common_pb";
9
+ import { file_fits_api_v1_common } from "./common_pb";
10
+ import { file_fits_api_v1_predefined_rules } from "./predefined_rules_pb";
11
+ import type { Message } from "@bufbuild/protobuf";
12
+
13
+ /**
14
+ * Describes the file fits/api/v1/partition.proto.
15
+ */
16
+ export const file_fits_api_v1_partition: GenFile = /*@__PURE__*/
17
+ fileDesc("ChtmaXRzL2FwaS92MS9wYXJ0aXRpb24ucHJvdG8SC2ZpdHMuYXBpLnYxIsgCCglQYXJ0aXRpb24SFwoCaWQYASABKAlCC7pICHIG0LOusQIBEh8KBG1ldGEYAiABKAsyES5maXRzLmFwaS52MS5NZXRhEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARJDChJib290X2NvbmZpZ3VyYXRpb24YBCABKAsyJy5maXRzLmFwaS52MS5QYXJ0aXRpb25Cb290Q29uZmlndXJhdGlvbhI1CgtkbnNfc2VydmVycxgFIAMoCzIWLmZpdHMuYXBpLnYxLkROU1NlcnZlckIIukgFkgECEAMSNQoLbnRwX3NlcnZlcnMYBiADKAsyFi5maXRzLmFwaS52MS5OVFBTZXJ2ZXJCCLpIBZIBAhAKEiwKFm1nbXRfc2VydmljZV9hZGRyZXNzZXMYByADKAlCDLpICZIBBsiks7ECASJqCg5QYXJ0aXRpb25RdWVyeRIcCgJpZBgBIAEoCUILukgIcgbQs66xAgFIAIgBARIoCgZsYWJlbHMYAiABKAsyEy5maXRzLmFwaS52MS5MYWJlbHNIAYgBAUIFCgNfaWRCCQoHX2xhYmVscyJyChpQYXJ0aXRpb25Cb290Q29uZmlndXJhdGlvbhIeCglpbWFnZV91cmwYASABKAlCC7pICHIG4LOusQIBEh8KCmtlcm5lbF91cmwYAiABKAlCC7pICHIG4LOusQIBEhMKC2NvbW1hbmRsaW5lGAMgASgJIiAKCUROU1NlcnZlchITCgJpcBgBIAEoCUIHukgEcgJwASIpCglOVFBTZXJ2ZXISHAoHYWRkcmVzcxgBIAEoCUILukgIcgbos66xAgEiNQoaUGFydGl0aW9uU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIG0LOusQIBIkkKG1BhcnRpdGlvblNlcnZpY2VMaXN0UmVxdWVzdBIqCgVxdWVyeRgBIAEoCzIbLmZpdHMuYXBpLnYxLlBhcnRpdGlvblF1ZXJ5IkgKG1BhcnRpdGlvblNlcnZpY2VHZXRSZXNwb25zZRIpCglwYXJ0aXRpb24YASABKAsyFi5maXRzLmFwaS52MS5QYXJ0aXRpb24iSgocUGFydGl0aW9uU2VydmljZUxpc3RSZXNwb25zZRIqCgpwYXJ0aXRpb25zGAEgAygLMhYuZml0cy5hcGkudjEuUGFydGl0aW9uMt0BChBQYXJ0aXRpb25TZXJ2aWNlEmIKA0dldBInLmZpdHMuYXBpLnYxLlBhcnRpdGlvblNlcnZpY2VHZXRSZXF1ZXN0GiguZml0cy5hcGkudjEuUGFydGl0aW9uU2VydmljZUdldFJlc3BvbnNlIgjY8xgC4PMYAhJlCgRMaXN0EiguZml0cy5hcGkudjEuUGFydGl0aW9uU2VydmljZUxpc3RSZXF1ZXN0GikuZml0cy5hcGkudjEuUGFydGl0aW9uU2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAJCmgEKD2NvbS5maXRzLmFwaS52MUIOUGFydGl0aW9uUHJvdG9QAVopZ2l0aHViLmNvbS9maS10cy9hcGkvZ28vZml0cy9hcGkvdjE7YXBpdjGiAgNGQViqAgtGaXRzLkFwaS5WMcoCC0ZpdHNcQXBpXFYx4gIXRml0c1xBcGlcVjFcR1BCTWV0YWRhdGHqAg1GaXRzOjpBcGk6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_fits_api_v1_common, file_fits_api_v1_predefined_rules]);
18
+
19
+ /**
20
+ * Partition is a failure domain with machines and switches
21
+ *
22
+ * @generated from message fits.api.v1.Partition
23
+ */
24
+ export type Partition = Message<"fits.api.v1.Partition"> & {
25
+ /**
26
+ * ID of this partition
27
+ *
28
+ * @generated from field: string id = 1;
29
+ */
30
+ id: string;
31
+
32
+ /**
33
+ * Meta for this ip
34
+ *
35
+ * @generated from field: fits.api.v1.Meta meta = 2;
36
+ */
37
+ meta?: Meta | undefined;
38
+
39
+ /**
40
+ * Description of this partition
41
+ *
42
+ * @generated from field: string description = 3;
43
+ */
44
+ description: string;
45
+
46
+ /**
47
+ * PartitionBootConfiguration defines how metal-hammer boots
48
+ *
49
+ * @generated from field: fits.api.v1.PartitionBootConfiguration boot_configuration = 4;
50
+ */
51
+ bootConfiguration?: PartitionBootConfiguration | undefined;
52
+
53
+ /**
54
+ * DNSServers for this partition
55
+ *
56
+ * @generated from field: repeated fits.api.v1.DNSServer dns_servers = 5;
57
+ */
58
+ dnsServers: DNSServer[];
59
+
60
+ /**
61
+ * NTPServers for this partition
62
+ *
63
+ * @generated from field: repeated fits.api.v1.NTPServer ntp_servers = 6;
64
+ */
65
+ ntpServers: NTPServer[];
66
+
67
+ /**
68
+ * ManagementServiceAddresses defines where the management is reachable
69
+ * should be in the form <ip|host>:<port>
70
+ *
71
+ * @generated from field: repeated string mgmt_service_addresses = 7;
72
+ */
73
+ mgmtServiceAddresses: string[];
74
+ };
75
+
76
+ /**
77
+ * Describes the message fits.api.v1.Partition.
78
+ * Use `create(PartitionSchema)` to create a new message.
79
+ */
80
+ export const PartitionSchema: GenMessage<Partition> = /*@__PURE__*/
81
+ messageDesc(file_fits_api_v1_partition, 0);
82
+
83
+ /**
84
+ * PartitionQuery is used to search partitions
85
+ *
86
+ * @generated from message fits.api.v1.PartitionQuery
87
+ */
88
+ export type PartitionQuery = Message<"fits.api.v1.PartitionQuery"> & {
89
+ /**
90
+ * ID of the partition to get
91
+ *
92
+ * @generated from field: optional string id = 1;
93
+ */
94
+ id?: string | undefined;
95
+
96
+ /**
97
+ * Labels lists only partitions containing the given labels
98
+ *
99
+ * @generated from field: optional fits.api.v1.Labels labels = 2;
100
+ */
101
+ labels?: Labels | undefined;
102
+ };
103
+
104
+ /**
105
+ * Describes the message fits.api.v1.PartitionQuery.
106
+ * Use `create(PartitionQuerySchema)` to create a new message.
107
+ */
108
+ export const PartitionQuerySchema: GenMessage<PartitionQuery> = /*@__PURE__*/
109
+ messageDesc(file_fits_api_v1_partition, 1);
110
+
111
+ /**
112
+ * PartitionBootConfiguration defines how metal-hammer boots
113
+ *
114
+ * @generated from message fits.api.v1.PartitionBootConfiguration
115
+ */
116
+ export type PartitionBootConfiguration = Message<"fits.api.v1.PartitionBootConfiguration"> & {
117
+ /**
118
+ * ImageURL the url to download the initrd for the boot image
119
+ *
120
+ * @generated from field: string image_url = 1;
121
+ */
122
+ imageUrl: string;
123
+
124
+ /**
125
+ * KernelURL the url to download the kernel for the boot image
126
+ *
127
+ * @generated from field: string kernel_url = 2;
128
+ */
129
+ kernelUrl: string;
130
+
131
+ /**
132
+ * Commandline the cmdline to the kernel for the boot image
133
+ *
134
+ * @generated from field: string commandline = 3;
135
+ */
136
+ commandline: string;
137
+ };
138
+
139
+ /**
140
+ * Describes the message fits.api.v1.PartitionBootConfiguration.
141
+ * Use `create(PartitionBootConfigurationSchema)` to create a new message.
142
+ */
143
+ export const PartitionBootConfigurationSchema: GenMessage<PartitionBootConfiguration> = /*@__PURE__*/
144
+ messageDesc(file_fits_api_v1_partition, 2);
145
+
146
+ /**
147
+ * DNSServer
148
+ *
149
+ * @generated from message fits.api.v1.DNSServer
150
+ */
151
+ export type DNSServer = Message<"fits.api.v1.DNSServer"> & {
152
+ /**
153
+ * IP address of this dns server
154
+ *
155
+ * @generated from field: string ip = 1;
156
+ */
157
+ ip: string;
158
+ };
159
+
160
+ /**
161
+ * Describes the message fits.api.v1.DNSServer.
162
+ * Use `create(DNSServerSchema)` to create a new message.
163
+ */
164
+ export const DNSServerSchema: GenMessage<DNSServer> = /*@__PURE__*/
165
+ messageDesc(file_fits_api_v1_partition, 3);
166
+
167
+ /**
168
+ * NTPServer
169
+ *
170
+ * @generated from message fits.api.v1.NTPServer
171
+ */
172
+ export type NTPServer = Message<"fits.api.v1.NTPServer"> & {
173
+ /**
174
+ * Address either as ip or hostname
175
+ *
176
+ * @generated from field: string address = 1;
177
+ */
178
+ address: string;
179
+ };
180
+
181
+ /**
182
+ * Describes the message fits.api.v1.NTPServer.
183
+ * Use `create(NTPServerSchema)` to create a new message.
184
+ */
185
+ export const NTPServerSchema: GenMessage<NTPServer> = /*@__PURE__*/
186
+ messageDesc(file_fits_api_v1_partition, 4);
187
+
188
+ /**
189
+ * PartitionServiceGetRequest is the request payload for a partition get request
190
+ *
191
+ * @generated from message fits.api.v1.PartitionServiceGetRequest
192
+ */
193
+ export type PartitionServiceGetRequest = Message<"fits.api.v1.PartitionServiceGetRequest"> & {
194
+ /**
195
+ * ID of the partition to get
196
+ *
197
+ * @generated from field: string id = 1;
198
+ */
199
+ id: string;
200
+ };
201
+
202
+ /**
203
+ * Describes the message fits.api.v1.PartitionServiceGetRequest.
204
+ * Use `create(PartitionServiceGetRequestSchema)` to create a new message.
205
+ */
206
+ export const PartitionServiceGetRequestSchema: GenMessage<PartitionServiceGetRequest> = /*@__PURE__*/
207
+ messageDesc(file_fits_api_v1_partition, 5);
208
+
209
+ /**
210
+ * PartitionServiceListRequest is the request payload for a partition list request
211
+ *
212
+ * @generated from message fits.api.v1.PartitionServiceListRequest
213
+ */
214
+ export type PartitionServiceListRequest = Message<"fits.api.v1.PartitionServiceListRequest"> & {
215
+ /**
216
+ * Query for partitions
217
+ *
218
+ * @generated from field: fits.api.v1.PartitionQuery query = 1;
219
+ */
220
+ query?: PartitionQuery | undefined;
221
+ };
222
+
223
+ /**
224
+ * Describes the message fits.api.v1.PartitionServiceListRequest.
225
+ * Use `create(PartitionServiceListRequestSchema)` to create a new message.
226
+ */
227
+ export const PartitionServiceListRequestSchema: GenMessage<PartitionServiceListRequest> = /*@__PURE__*/
228
+ messageDesc(file_fits_api_v1_partition, 6);
229
+
230
+ /**
231
+ * PartitionServiceGetResponse is the response payload for a partition get request
232
+ *
233
+ * @generated from message fits.api.v1.PartitionServiceGetResponse
234
+ */
235
+ export type PartitionServiceGetResponse = Message<"fits.api.v1.PartitionServiceGetResponse"> & {
236
+ /**
237
+ * Ip the partition
238
+ *
239
+ * @generated from field: fits.api.v1.Partition partition = 1;
240
+ */
241
+ partition?: Partition | undefined;
242
+ };
243
+
244
+ /**
245
+ * Describes the message fits.api.v1.PartitionServiceGetResponse.
246
+ * Use `create(PartitionServiceGetResponseSchema)` to create a new message.
247
+ */
248
+ export const PartitionServiceGetResponseSchema: GenMessage<PartitionServiceGetResponse> = /*@__PURE__*/
249
+ messageDesc(file_fits_api_v1_partition, 7);
250
+
251
+ /**
252
+ * PartitionServiceListResponse is the response payload for a partition list request
253
+ *
254
+ * @generated from message fits.api.v1.PartitionServiceListResponse
255
+ */
256
+ export type PartitionServiceListResponse = Message<"fits.api.v1.PartitionServiceListResponse"> & {
257
+ /**
258
+ * Ips the partitions
259
+ *
260
+ * @generated from field: repeated fits.api.v1.Partition partitions = 1;
261
+ */
262
+ partitions: Partition[];
263
+ };
264
+
265
+ /**
266
+ * Describes the message fits.api.v1.PartitionServiceListResponse.
267
+ * Use `create(PartitionServiceListResponseSchema)` to create a new message.
268
+ */
269
+ export const PartitionServiceListResponseSchema: GenMessage<PartitionServiceListResponse> = /*@__PURE__*/
270
+ messageDesc(file_fits_api_v1_partition, 8);
271
+
272
+ /**
273
+ * PartitionService provides partition management operations.
274
+ *
275
+ * @generated from service fits.api.v1.PartitionService
276
+ */
277
+ export const PartitionService: GenService<{
278
+ /**
279
+ * Returns the partition with the specified ID.
280
+ *
281
+ * @generated from rpc fits.api.v1.PartitionService.Get
282
+ */
283
+ get: {
284
+ methodKind: "unary";
285
+ input: typeof PartitionServiceGetRequestSchema;
286
+ output: typeof PartitionServiceGetResponseSchema;
287
+ },
288
+ /**
289
+ * Returns the list of all partitions.
290
+ *
291
+ * @generated from rpc fits.api.v1.PartitionService.List
292
+ */
293
+ list: {
294
+ methodKind: "unary";
295
+ input: typeof PartitionServiceListRequestSchema;
296
+ output: typeof PartitionServiceListResponseSchema;
297
+ },
298
+ }> = /*@__PURE__*/
299
+ serviceDesc(file_fits_api_v1_partition, 0);
300
+
@@ -0,0 +1,90 @@
1
+ import type { GenExtension, GenFile } from "@bufbuild/protobuf/codegenv2";
2
+ import type { MapRules, RepeatedRules, StringRules } from "../../../buf/validate/validate_pb";
3
+ /**
4
+ * Describes the file fits/api/v1/predefined_rules.proto.
5
+ */
6
+ export declare const file_fits_api_v1_predefined_rules: GenFile;
7
+ /**
8
+ * Macaddress returns true if the given string is a valid macadress
9
+ *
10
+ * @generated from extension: optional bool macaddress = 80048951;
11
+ */
12
+ export declare const macaddress: GenExtension<StringRules, boolean>;
13
+ /**
14
+ * IsName returns true if name field satisfies our requirements
15
+ *
16
+ * @generated from extension: optional bool is_name = 80048952;
17
+ */
18
+ export declare const is_name: GenExtension<StringRules, boolean>;
19
+ /**
20
+ * IsDescription returns true if description field satisfies our requirements
21
+ *
22
+ * @generated from extension: optional bool is_description = 80048953;
23
+ */
24
+ export declare const is_description: GenExtension<StringRules, boolean>;
25
+ /**
26
+ * IsPartition returns true if partition field satisfies our requirements
27
+ *
28
+ * @generated from extension: optional bool is_partition = 80048954;
29
+ */
30
+ export declare const is_partition: GenExtension<StringRules, boolean>;
31
+ /**
32
+ * IsPrefix validates if the given string is a valid prefix
33
+ *
34
+ * @generated from extension: optional bool is_prefix = 80048955;
35
+ */
36
+ export declare const is_prefix: GenExtension<StringRules, boolean>;
37
+ /**
38
+ * IsUri validates if the given string is a valid URI
39
+ *
40
+ * @generated from extension: optional bool is_uri = 80048956;
41
+ */
42
+ export declare const is_uri: GenExtension<StringRules, boolean>;
43
+ /**
44
+ * IsIpOrHostname validates that the given string is either a ip or a hostname
45
+ *
46
+ * @generated from extension: optional bool is_ip_or_hostname = 80048957;
47
+ */
48
+ export declare const is_ip_or_hostname: GenExtension<StringRules, boolean>;
49
+ /**
50
+ * Trimmed enforces the string to be trimmed, e.g. no whitespaces at the begin and end
51
+ *
52
+ * @generated from extension: optional bool trimmed = 80048958;
53
+ */
54
+ export declare const trimmed: GenExtension<StringRules, boolean>;
55
+ /**
56
+ * Prefixes validates if a slice of prefixes in string form are valid
57
+ *
58
+ * @generated from extension: optional bool prefixes = 80058951;
59
+ */
60
+ export declare const prefixes: GenExtension<RepeatedRules, boolean>;
61
+ /**
62
+ * Ips validates if a slice of ips in string form are valid
63
+ *
64
+ * @generated from extension: optional bool ips = 80058952;
65
+ */
66
+ export declare const ips: GenExtension<RepeatedRules, boolean>;
67
+ /**
68
+ * AreHostAndPort validates if a slice of strings are all in the form of <ip | host>:<port>
69
+ *
70
+ * @generated from extension: optional bool are_host_and_port = 80058953;
71
+ */
72
+ export declare const are_host_and_port: GenExtension<RepeatedRules, boolean>;
73
+ /**
74
+ * All Trimmed enforces all strings to be trimmed, e.g. no whitespaces at the begin and end
75
+ *
76
+ * @generated from extension: optional bool all_trimmed = 80058954;
77
+ */
78
+ export declare const all_trimmed: GenExtension<RepeatedRules, boolean>;
79
+ /**
80
+ * Keys and Values trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
81
+ *
82
+ * @generated from extension: optional bool keys_and_values_trimmed = 80068951;
83
+ */
84
+ export declare const keys_and_values_trimmed: GenExtension<MapRules, boolean>;
85
+ /**
86
+ * Keys trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
87
+ *
88
+ * @generated from extension: optional bool keys_trimmed = 80068952;
89
+ */
90
+ export declare const keys_trimmed: GenExtension<MapRules, boolean>;
@@ -0,0 +1,93 @@
1
+ // @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
2
+ // @generated from file fits/api/v1/predefined_rules.proto (package fits.api.v1, syntax proto2)
3
+ /* eslint-disable */
4
+ import { extDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
6
+ /**
7
+ * Describes the file fits/api/v1/predefined_rules.proto.
8
+ */
9
+ export const file_fits_api_v1_predefined_rules = /*@__PURE__*/ fileDesc("CiJmaXRzL2FwaS92MS9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEgtmaXRzLmFwaS52MTq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqPAQoIcHJlZml4ZXMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjHtJYmIAEoCEJTwkhQCk4KEXJlcGVhdGVkLnByZWZpeGVzEhxnaXZlbiBwcmVmaXhlcyBtdXN0IGJlIHZhbGlkGht0aGlzLmFsbChtLCBtLmlzSXBQcmVmaXgoKSlSCHByZWZpeGVzOnUKA2lwcxIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMi0liYgASgIQkPCSEAKPgoMcmVwZWF0ZWQuaXBzEhdnaXZlbiBpcHMgbXVzdCBiZSB2YWxpZBoVdGhpcy5hbGwobSwgbS5pc0lwKCkpUgNpcHM65gEKEWFyZV9ob3N0X2FuZF9wb3J0EhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYybSWJiABKAhCmgHCSJYBCpMBChpyZXBlYXRlZC5hcmVfaG9zdF9hbmRfcG9ydBJQZ2l2ZW4gZW50cmllcyBtdXN0IGFsbCBiZSBpbiB0aGUgZm9ybSBvZiA8aXAgfCBob3N0Pjo8cG9ydD4gYnV0IHBvcnQgaXMgb3B0aW9uYWwaI3RoaXMuYWxsKG0sIG0uaXNIb3N0QW5kUG9ydChmYWxzZSkpUg5hcmVIb3N0QW5kUG9ydDq6AQoLYWxsX3RyaW1tZWQSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjKtJYmIAEoCEJ5wkh2CnQKFHJlcGVhdGVkLmFsbF90cmltbWVkEjJnaXZlbiB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRoodGhpcy5hbGwobSwgbS50cmltKCkuc2l6ZSgpID09IG0uc2l6ZSgpKVIKYWxsVHJpbW1lZDqEAgoXa2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY14KXJiABKAhCsQHCSK0BCqoBChttYXAua2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSNWtleXMgYW5kIHZhbHVlcyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGlR0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpICYmIHRoaXMuYWxsKHYsIHYudHJpbSgpLnNpemUoKSA9PSB2LnNpemUoKSlSFGtleXNBbmRWYWx1ZXNUcmltbWVkOqsBCgxrZXlzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2IKXJiABKAhCbcJIagpoChBtYXAua2V5c190cmltbWVkEiprZXlzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKGssIGsudHJpbSgpLnNpemUoKSA9PSBrLnNpemUoKSlSC2tleXNUcmltbWVkQqABCg9jb20uZml0cy5hcGkudjFCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaKWdpdGh1Yi5jb20vZmktdHMvYXBpL2dvL2ZpdHMvYXBpL3YxO2FwaXYxogIDRkFYqgILRml0cy5BcGkuVjHKAgtGaXRzXEFwaVxWMeICF0ZpdHNcQXBpXFYxXEdQQk1ldGFkYXRh6gINRml0czo6QXBpOjpWMQ", [file_buf_validate_validate]);
10
+ /**
11
+ * Macaddress returns true if the given string is a valid macadress
12
+ *
13
+ * @generated from extension: optional bool macaddress = 80048951;
14
+ */
15
+ export const macaddress = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 0);
16
+ /**
17
+ * IsName returns true if name field satisfies our requirements
18
+ *
19
+ * @generated from extension: optional bool is_name = 80048952;
20
+ */
21
+ export const is_name = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 1);
22
+ /**
23
+ * IsDescription returns true if description field satisfies our requirements
24
+ *
25
+ * @generated from extension: optional bool is_description = 80048953;
26
+ */
27
+ export const is_description = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 2);
28
+ /**
29
+ * IsPartition returns true if partition field satisfies our requirements
30
+ *
31
+ * @generated from extension: optional bool is_partition = 80048954;
32
+ */
33
+ export const is_partition = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 3);
34
+ /**
35
+ * IsPrefix validates if the given string is a valid prefix
36
+ *
37
+ * @generated from extension: optional bool is_prefix = 80048955;
38
+ */
39
+ export const is_prefix = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 4);
40
+ /**
41
+ * IsUri validates if the given string is a valid URI
42
+ *
43
+ * @generated from extension: optional bool is_uri = 80048956;
44
+ */
45
+ export const is_uri = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 5);
46
+ /**
47
+ * IsIpOrHostname validates that the given string is either a ip or a hostname
48
+ *
49
+ * @generated from extension: optional bool is_ip_or_hostname = 80048957;
50
+ */
51
+ export const is_ip_or_hostname = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 6);
52
+ /**
53
+ * Trimmed enforces the string to be trimmed, e.g. no whitespaces at the begin and end
54
+ *
55
+ * @generated from extension: optional bool trimmed = 80048958;
56
+ */
57
+ export const trimmed = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 7);
58
+ /**
59
+ * Prefixes validates if a slice of prefixes in string form are valid
60
+ *
61
+ * @generated from extension: optional bool prefixes = 80058951;
62
+ */
63
+ export const prefixes = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 8);
64
+ /**
65
+ * Ips validates if a slice of ips in string form are valid
66
+ *
67
+ * @generated from extension: optional bool ips = 80058952;
68
+ */
69
+ export const ips = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 9);
70
+ /**
71
+ * AreHostAndPort validates if a slice of strings are all in the form of <ip | host>:<port>
72
+ *
73
+ * @generated from extension: optional bool are_host_and_port = 80058953;
74
+ */
75
+ export const are_host_and_port = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 10);
76
+ /**
77
+ * All Trimmed enforces all strings to be trimmed, e.g. no whitespaces at the begin and end
78
+ *
79
+ * @generated from extension: optional bool all_trimmed = 80058954;
80
+ */
81
+ export const all_trimmed = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 11);
82
+ /**
83
+ * Keys and Values trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
84
+ *
85
+ * @generated from extension: optional bool keys_and_values_trimmed = 80068951;
86
+ */
87
+ export const keys_and_values_trimmed = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 12);
88
+ /**
89
+ * Keys trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
90
+ *
91
+ * @generated from extension: optional bool keys_trimmed = 80068952;
92
+ */
93
+ export const keys_trimmed = /*@__PURE__*/ extDesc(file_fits_api_v1_predefined_rules, 13);
@@ -0,0 +1,127 @@
1
+ // @generated by protoc-gen-es v2.14.1 with parameter "target=ts"
2
+ // @generated from file fits/api/v1/predefined_rules.proto (package fits.api.v1, syntax proto2)
3
+ /* eslint-disable */
4
+
5
+ import type { GenExtension, GenFile } from "@bufbuild/protobuf/codegenv2";
6
+ import { extDesc, fileDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { MapRules, RepeatedRules, StringRules } from "../../../buf/validate/validate_pb";
8
+ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
9
+
10
+ /**
11
+ * Describes the file fits/api/v1/predefined_rules.proto.
12
+ */
13
+ export const file_fits_api_v1_predefined_rules: GenFile = /*@__PURE__*/
14
+ fileDesc("CiJmaXRzL2FwaS92MS9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEgtmaXRzLmFwaS52MTq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqPAQoIcHJlZml4ZXMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjHtJYmIAEoCEJTwkhQCk4KEXJlcGVhdGVkLnByZWZpeGVzEhxnaXZlbiBwcmVmaXhlcyBtdXN0IGJlIHZhbGlkGht0aGlzLmFsbChtLCBtLmlzSXBQcmVmaXgoKSlSCHByZWZpeGVzOnUKA2lwcxIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMi0liYgASgIQkPCSEAKPgoMcmVwZWF0ZWQuaXBzEhdnaXZlbiBpcHMgbXVzdCBiZSB2YWxpZBoVdGhpcy5hbGwobSwgbS5pc0lwKCkpUgNpcHM65gEKEWFyZV9ob3N0X2FuZF9wb3J0EhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYybSWJiABKAhCmgHCSJYBCpMBChpyZXBlYXRlZC5hcmVfaG9zdF9hbmRfcG9ydBJQZ2l2ZW4gZW50cmllcyBtdXN0IGFsbCBiZSBpbiB0aGUgZm9ybSBvZiA8aXAgfCBob3N0Pjo8cG9ydD4gYnV0IHBvcnQgaXMgb3B0aW9uYWwaI3RoaXMuYWxsKG0sIG0uaXNIb3N0QW5kUG9ydChmYWxzZSkpUg5hcmVIb3N0QW5kUG9ydDq6AQoLYWxsX3RyaW1tZWQSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjKtJYmIAEoCEJ5wkh2CnQKFHJlcGVhdGVkLmFsbF90cmltbWVkEjJnaXZlbiB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRoodGhpcy5hbGwobSwgbS50cmltKCkuc2l6ZSgpID09IG0uc2l6ZSgpKVIKYWxsVHJpbW1lZDqEAgoXa2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY14KXJiABKAhCsQHCSK0BCqoBChttYXAua2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSNWtleXMgYW5kIHZhbHVlcyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGlR0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpICYmIHRoaXMuYWxsKHYsIHYudHJpbSgpLnNpemUoKSA9PSB2LnNpemUoKSlSFGtleXNBbmRWYWx1ZXNUcmltbWVkOqsBCgxrZXlzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2IKXJiABKAhCbcJIagpoChBtYXAua2V5c190cmltbWVkEiprZXlzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKGssIGsudHJpbSgpLnNpemUoKSA9PSBrLnNpemUoKSlSC2tleXNUcmltbWVkQqABCg9jb20uZml0cy5hcGkudjFCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaKWdpdGh1Yi5jb20vZmktdHMvYXBpL2dvL2ZpdHMvYXBpL3YxO2FwaXYxogIDRkFYqgILRml0cy5BcGkuVjHKAgtGaXRzXEFwaVxWMeICF0ZpdHNcQXBpXFYxXEdQQk1ldGFkYXRh6gINRml0czo6QXBpOjpWMQ", [file_buf_validate_validate]);
15
+
16
+ /**
17
+ * Macaddress returns true if the given string is a valid macadress
18
+ *
19
+ * @generated from extension: optional bool macaddress = 80048951;
20
+ */
21
+ export const macaddress: GenExtension<StringRules, boolean> = /*@__PURE__*/
22
+ extDesc(file_fits_api_v1_predefined_rules, 0);
23
+
24
+ /**
25
+ * IsName returns true if name field satisfies our requirements
26
+ *
27
+ * @generated from extension: optional bool is_name = 80048952;
28
+ */
29
+ export const is_name: GenExtension<StringRules, boolean> = /*@__PURE__*/
30
+ extDesc(file_fits_api_v1_predefined_rules, 1);
31
+
32
+ /**
33
+ * IsDescription returns true if description field satisfies our requirements
34
+ *
35
+ * @generated from extension: optional bool is_description = 80048953;
36
+ */
37
+ export const is_description: GenExtension<StringRules, boolean> = /*@__PURE__*/
38
+ extDesc(file_fits_api_v1_predefined_rules, 2);
39
+
40
+ /**
41
+ * IsPartition returns true if partition field satisfies our requirements
42
+ *
43
+ * @generated from extension: optional bool is_partition = 80048954;
44
+ */
45
+ export const is_partition: GenExtension<StringRules, boolean> = /*@__PURE__*/
46
+ extDesc(file_fits_api_v1_predefined_rules, 3);
47
+
48
+ /**
49
+ * IsPrefix validates if the given string is a valid prefix
50
+ *
51
+ * @generated from extension: optional bool is_prefix = 80048955;
52
+ */
53
+ export const is_prefix: GenExtension<StringRules, boolean> = /*@__PURE__*/
54
+ extDesc(file_fits_api_v1_predefined_rules, 4);
55
+
56
+ /**
57
+ * IsUri validates if the given string is a valid URI
58
+ *
59
+ * @generated from extension: optional bool is_uri = 80048956;
60
+ */
61
+ export const is_uri: GenExtension<StringRules, boolean> = /*@__PURE__*/
62
+ extDesc(file_fits_api_v1_predefined_rules, 5);
63
+
64
+ /**
65
+ * IsIpOrHostname validates that the given string is either a ip or a hostname
66
+ *
67
+ * @generated from extension: optional bool is_ip_or_hostname = 80048957;
68
+ */
69
+ export const is_ip_or_hostname: GenExtension<StringRules, boolean> = /*@__PURE__*/
70
+ extDesc(file_fits_api_v1_predefined_rules, 6);
71
+
72
+ /**
73
+ * Trimmed enforces the string to be trimmed, e.g. no whitespaces at the begin and end
74
+ *
75
+ * @generated from extension: optional bool trimmed = 80048958;
76
+ */
77
+ export const trimmed: GenExtension<StringRules, boolean> = /*@__PURE__*/
78
+ extDesc(file_fits_api_v1_predefined_rules, 7);
79
+
80
+ /**
81
+ * Prefixes validates if a slice of prefixes in string form are valid
82
+ *
83
+ * @generated from extension: optional bool prefixes = 80058951;
84
+ */
85
+ export const prefixes: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
86
+ extDesc(file_fits_api_v1_predefined_rules, 8);
87
+
88
+ /**
89
+ * Ips validates if a slice of ips in string form are valid
90
+ *
91
+ * @generated from extension: optional bool ips = 80058952;
92
+ */
93
+ export const ips: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
94
+ extDesc(file_fits_api_v1_predefined_rules, 9);
95
+
96
+ /**
97
+ * AreHostAndPort validates if a slice of strings are all in the form of <ip | host>:<port>
98
+ *
99
+ * @generated from extension: optional bool are_host_and_port = 80058953;
100
+ */
101
+ export const are_host_and_port: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
102
+ extDesc(file_fits_api_v1_predefined_rules, 10);
103
+
104
+ /**
105
+ * All Trimmed enforces all strings to be trimmed, e.g. no whitespaces at the begin and end
106
+ *
107
+ * @generated from extension: optional bool all_trimmed = 80058954;
108
+ */
109
+ export const all_trimmed: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
110
+ extDesc(file_fits_api_v1_predefined_rules, 11);
111
+
112
+ /**
113
+ * Keys and Values trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
114
+ *
115
+ * @generated from extension: optional bool keys_and_values_trimmed = 80068951;
116
+ */
117
+ export const keys_and_values_trimmed: GenExtension<MapRules, boolean> = /*@__PURE__*/
118
+ extDesc(file_fits_api_v1_predefined_rules, 12);
119
+
120
+ /**
121
+ * Keys trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
122
+ *
123
+ * @generated from extension: optional bool keys_trimmed = 80068952;
124
+ */
125
+ export const keys_trimmed: GenExtension<MapRules, boolean> = /*@__PURE__*/
126
+ extDesc(file_fits_api_v1_predefined_rules, 13);
127
+