@eide/foir-proto-ts 0.3.7 → 0.3.9

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.
@@ -0,0 +1,508 @@
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "import_extension=js"
2
+ // @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { JsonObject, Message } from "@bufbuild/protobuf";
7
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
+
9
+ /**
10
+ * Describes the file integrations/v1/integrations.proto.
11
+ */
12
+ export declare const file_integrations_v1_integrations: GenFile;
13
+
14
+ /**
15
+ * Middleware reference. v1 carries only the URL but is defined as a message
16
+ * so additional fields (timeouts, retry hints, etc.) can be added later
17
+ * without a schema migration.
18
+ *
19
+ * @generated from message integrations.v1.IntegrationMiddleware
20
+ */
21
+ export declare type IntegrationMiddleware = Message<"integrations.v1.IntegrationMiddleware"> & {
22
+ /**
23
+ * @generated from field: string url = 1;
24
+ */
25
+ url: string;
26
+ };
27
+
28
+ /**
29
+ * Describes the message integrations.v1.IntegrationMiddleware.
30
+ * Use `create(IntegrationMiddlewareSchema)` to create a new message.
31
+ */
32
+ export declare const IntegrationMiddlewareSchema: GenMessage<IntegrationMiddleware>;
33
+
34
+ /**
35
+ * External-service credentials. The `values` blob is never populated on
36
+ * read endpoints — it is written separately via the dedicated credentials
37
+ * endpoint and stored encrypted. It is present in the message so admin-UI
38
+ * and CLI write paths can carry authorized values end-to-end in a single
39
+ * request where appropriate.
40
+ *
41
+ * @generated from message integrations.v1.IntegrationCredentials
42
+ */
43
+ export declare type IntegrationCredentials = Message<"integrations.v1.IntegrationCredentials"> & {
44
+ /**
45
+ * @generated from field: integrations.v1.CredentialStrategy strategy = 1;
46
+ */
47
+ strategy: CredentialStrategy;
48
+
49
+ /**
50
+ * @generated from field: optional google.protobuf.Struct values = 2;
51
+ */
52
+ values?: JsonObject;
53
+ };
54
+
55
+ /**
56
+ * Describes the message integrations.v1.IntegrationCredentials.
57
+ * Use `create(IntegrationCredentialsSchema)` to create a new message.
58
+ */
59
+ export declare const IntegrationCredentialsSchema: GenMessage<IntegrationCredentials>;
60
+
61
+ /**
62
+ * A single field in a model seed. Carries the type and any options the
63
+ * CLI/admin UI needs to create the seeded field. Kept deliberately flat —
64
+ * this is a bootstrap schema, not an ongoing declaration. The model's
65
+ * long-term shape lives under `models.<key>`.
66
+ *
67
+ * @generated from message integrations.v1.ModelSeedField
68
+ */
69
+ export declare type ModelSeedField = Message<"integrations.v1.ModelSeedField"> & {
70
+ /**
71
+ * @generated from field: string type = 1;
72
+ */
73
+ type: string;
74
+
75
+ /**
76
+ * @generated from field: bool required = 2;
77
+ */
78
+ required: boolean;
79
+
80
+ /**
81
+ * @generated from field: bool natural_key = 3;
82
+ */
83
+ naturalKey: boolean;
84
+
85
+ /**
86
+ * @generated from field: optional string label = 4;
87
+ */
88
+ label?: string;
89
+
90
+ /**
91
+ * @generated from field: optional string help_text = 5;
92
+ */
93
+ helpText?: string;
94
+
95
+ /**
96
+ * @generated from field: optional google.protobuf.Struct config = 6;
97
+ */
98
+ config?: JsonObject;
99
+ };
100
+
101
+ /**
102
+ * Describes the message integrations.v1.ModelSeedField.
103
+ * Use `create(ModelSeedFieldSchema)` to create a new message.
104
+ */
105
+ export declare const ModelSeedFieldSchema: GenMessage<ModelSeedField>;
106
+
107
+ /**
108
+ * Optional one-time bootstrap schema used at first push if the target model
109
+ * doesn't yet exist. Ignored on every subsequent push — the model's shape
110
+ * lives under `models` from that point on.
111
+ *
112
+ * @generated from message integrations.v1.ModelSeed
113
+ */
114
+ export declare type ModelSeed = Message<"integrations.v1.ModelSeed"> & {
115
+ /**
116
+ * @generated from field: map<string, integrations.v1.ModelSeedField> fields = 1;
117
+ */
118
+ fields: { [key: string]: ModelSeedField };
119
+ };
120
+
121
+ /**
122
+ * Describes the message integrations.v1.ModelSeed.
123
+ * Use `create(ModelSeedSchema)` to create a new message.
124
+ */
125
+ export declare const ModelSeedSchema: GenMessage<ModelSeed>;
126
+
127
+ /**
128
+ * Per-source-type sync mapping. Declares which foir model a source type
129
+ * writes into, which foir field holds the upstream natural key, and the
130
+ * explicit field mapping. No auto-inference, no alias tables.
131
+ *
132
+ * @generated from message integrations.v1.IntegrationSyncMapping
133
+ */
134
+ export declare type IntegrationSyncMapping = Message<"integrations.v1.IntegrationSyncMapping"> & {
135
+ /**
136
+ * foir model key that this source type writes into.
137
+ *
138
+ * @generated from field: string model = 1;
139
+ */
140
+ model: string;
141
+
142
+ /**
143
+ * foir field holding the upstream natural key. UPSERTs are keyed on this.
144
+ *
145
+ * @generated from field: string natural_key = 2;
146
+ */
147
+ naturalKey: string;
148
+
149
+ /**
150
+ * Explicit field mapping: source field name -> foir field key.
151
+ * Unmapped source fields are discarded at runtime.
152
+ *
153
+ * @generated from field: map<string, string> fields = 3;
154
+ */
155
+ fields: { [key: string]: string };
156
+
157
+ /**
158
+ * Optional one-time bootstrap schema if the target model is missing.
159
+ *
160
+ * @generated from field: optional integrations.v1.ModelSeed model_seed = 4;
161
+ */
162
+ modelSeed?: ModelSeed;
163
+ };
164
+
165
+ /**
166
+ * Describes the message integrations.v1.IntegrationSyncMapping.
167
+ * Use `create(IntegrationSyncMappingSchema)` to create a new message.
168
+ */
169
+ export declare const IntegrationSyncMappingSchema: GenMessage<IntegrationSyncMapping>;
170
+
171
+ /**
172
+ * Status reported by the middleware after each sync cycle and on meaningful
173
+ * state transitions. Nothing here is computed platform-side — the middleware
174
+ * is the source of truth for its own status.
175
+ *
176
+ * @generated from message integrations.v1.IntegrationStatus
177
+ */
178
+ export declare type IntegrationStatus = Message<"integrations.v1.IntegrationStatus"> & {
179
+ /**
180
+ * @generated from field: optional google.protobuf.Timestamp last_sync_at = 1;
181
+ */
182
+ lastSyncAt?: Timestamp;
183
+
184
+ /**
185
+ * @generated from field: optional int64 last_sync_duration_ms = 2;
186
+ */
187
+ lastSyncDurationMs?: bigint;
188
+
189
+ /**
190
+ * @generated from field: optional int64 last_sync_record_count = 3;
191
+ */
192
+ lastSyncRecordCount?: bigint;
193
+
194
+ /**
195
+ * @generated from field: optional string last_error = 4;
196
+ */
197
+ lastError?: string;
198
+
199
+ /**
200
+ * @generated from field: optional google.protobuf.Timestamp last_error_at = 5;
201
+ */
202
+ lastErrorAt?: Timestamp;
203
+
204
+ /**
205
+ * @generated from field: integrations.v1.SubscriptionHealth subscription_health = 6;
206
+ */
207
+ subscriptionHealth: SubscriptionHealth;
208
+
209
+ /**
210
+ * @generated from field: integrations.v1.AuthStatus auth_status = 7;
211
+ */
212
+ authStatus: AuthStatus;
213
+
214
+ /**
215
+ * Free-text description of the middleware's delete handling for admin
216
+ * display. e.g. "soft (deletedAt field)", "hard", "ignore".
217
+ *
218
+ * @generated from field: optional string deletion_strategy = 8;
219
+ */
220
+ deletionStrategy?: string;
221
+ };
222
+
223
+ /**
224
+ * Describes the message integrations.v1.IntegrationStatus.
225
+ * Use `create(IntegrationStatusSchema)` to create a new message.
226
+ */
227
+ export declare const IntegrationStatusSchema: GenMessage<IntegrationStatus>;
228
+
229
+ /**
230
+ * The full per-project integration declaration. Lives in the platform;
231
+ * declared from foir.config.ts or the admin UI.
232
+ *
233
+ * @generated from message integrations.v1.IntegrationConfig
234
+ */
235
+ export declare type IntegrationConfig = Message<"integrations.v1.IntegrationConfig"> & {
236
+ /**
237
+ * Kebab-case name, unique per project. Matches the key in foir.config.ts
238
+ * under `integrations.<name>`.
239
+ *
240
+ * @generated from field: string name = 1;
241
+ */
242
+ name: string;
243
+
244
+ /**
245
+ * @generated from field: bool enabled = 2;
246
+ */
247
+ enabled: boolean;
248
+
249
+ /**
250
+ * @generated from field: integrations.v1.IntegrationMiddleware middleware = 3;
251
+ */
252
+ middleware?: IntegrationMiddleware;
253
+
254
+ /**
255
+ * @generated from field: integrations.v1.IntegrationCredentials credentials = 4;
256
+ */
257
+ credentials?: IntegrationCredentials;
258
+
259
+ /**
260
+ * Sync mapping, keyed by source-type name (e.g. "product", "collection").
261
+ *
262
+ * @generated from field: map<string, integrations.v1.IntegrationSyncMapping> sync = 5;
263
+ */
264
+ sync: { [key: string]: IntegrationSyncMapping };
265
+
266
+ /**
267
+ * Opaque middleware-specific settings. The platform and CLI do not
268
+ * interpret this blob — the middleware reads and validates it at runtime.
269
+ *
270
+ * @generated from field: optional google.protobuf.Struct settings = 6;
271
+ */
272
+ settings?: JsonObject;
273
+
274
+ /**
275
+ * Optional metadata for admin-UI display (display name, description,
276
+ * category). Unused by the runtime.
277
+ *
278
+ * @generated from field: optional google.protobuf.Struct metadata = 7;
279
+ */
280
+ metadata?: JsonObject;
281
+ };
282
+
283
+ /**
284
+ * Describes the message integrations.v1.IntegrationConfig.
285
+ * Use `create(IntegrationConfigSchema)` to create a new message.
286
+ */
287
+ export declare const IntegrationConfigSchema: GenMessage<IntegrationConfig>;
288
+
289
+ /**
290
+ * @generated from message integrations.v1.ExtensionPlacement
291
+ */
292
+ export declare type ExtensionPlacement = Message<"integrations.v1.ExtensionPlacement"> & {
293
+ /**
294
+ * @generated from field: integrations.v1.ExtensionTarget target = 1;
295
+ */
296
+ target: ExtensionTarget;
297
+
298
+ /**
299
+ * foir model key this placement attaches to.
300
+ *
301
+ * @generated from field: string model = 2;
302
+ */
303
+ model: string;
304
+
305
+ /**
306
+ * Tab key used as an HTML slug and as the SDK addressable id.
307
+ *
308
+ * @generated from field: string tab = 3;
309
+ */
310
+ tab: string;
311
+
312
+ /**
313
+ * Human-readable tab title shown in the admin UI.
314
+ *
315
+ * @generated from field: string title = 4;
316
+ */
317
+ title: string;
318
+
319
+ /**
320
+ * Optional free-form hints for the placement (icon, ordering, etc.).
321
+ *
322
+ * @generated from field: optional google.protobuf.Struct hints = 5;
323
+ */
324
+ hints?: JsonObject;
325
+ };
326
+
327
+ /**
328
+ * Describes the message integrations.v1.ExtensionPlacement.
329
+ * Use `create(ExtensionPlacementSchema)` to create a new message.
330
+ */
331
+ export declare const ExtensionPlacementSchema: GenMessage<ExtensionPlacement>;
332
+
333
+ /**
334
+ * @generated from message integrations.v1.ExtensionConfig
335
+ */
336
+ export declare type ExtensionConfig = Message<"integrations.v1.ExtensionConfig"> & {
337
+ /**
338
+ * Kebab-case name, unique per project.
339
+ *
340
+ * @generated from field: string name = 1;
341
+ */
342
+ name: string;
343
+
344
+ /**
345
+ * https URL of the iframe app. The admin UI loads this URL in an iframe
346
+ * at the declared placements.
347
+ *
348
+ * @generated from field: string url = 2;
349
+ */
350
+ url: string;
351
+
352
+ /**
353
+ * @generated from field: repeated integrations.v1.ExtensionPlacement placements = 3;
354
+ */
355
+ placements: ExtensionPlacement[];
356
+
357
+ /**
358
+ * Optional metadata for admin-UI display.
359
+ *
360
+ * @generated from field: optional google.protobuf.Struct metadata = 4;
361
+ */
362
+ metadata?: JsonObject;
363
+ };
364
+
365
+ /**
366
+ * Describes the message integrations.v1.ExtensionConfig.
367
+ * Use `create(ExtensionConfigSchema)` to create a new message.
368
+ */
369
+ export declare const ExtensionConfigSchema: GenMessage<ExtensionConfig>;
370
+
371
+ /**
372
+ * Credential strategies the middleware uses when talking to the external
373
+ * service. Drives which authorization flow the admin UI renders.
374
+ *
375
+ * @generated from enum integrations.v1.CredentialStrategy
376
+ */
377
+ export enum CredentialStrategy {
378
+ /**
379
+ * @generated from enum value: CREDENTIAL_STRATEGY_UNSPECIFIED = 0;
380
+ */
381
+ UNSPECIFIED = 0,
382
+
383
+ /**
384
+ * @generated from enum value: CREDENTIAL_STRATEGY_OAUTH = 1;
385
+ */
386
+ OAUTH = 1,
387
+
388
+ /**
389
+ * @generated from enum value: CREDENTIAL_STRATEGY_API_KEY = 2;
390
+ */
391
+ API_KEY = 2,
392
+
393
+ /**
394
+ * @generated from enum value: CREDENTIAL_STRATEGY_SHARED_SECRET = 3;
395
+ */
396
+ SHARED_SECRET = 3,
397
+
398
+ /**
399
+ * @generated from enum value: CREDENTIAL_STRATEGY_SSH_KEY = 4;
400
+ */
401
+ SSH_KEY = 4,
402
+
403
+ /**
404
+ * @generated from enum value: CREDENTIAL_STRATEGY_NONE = 5;
405
+ */
406
+ NONE = 5,
407
+
408
+ /**
409
+ * @generated from enum value: CREDENTIAL_STRATEGY_MANAGED = 6;
410
+ */
411
+ MANAGED = 6,
412
+ }
413
+
414
+ /**
415
+ * Describes the enum integrations.v1.CredentialStrategy.
416
+ */
417
+ export declare const CredentialStrategySchema: GenEnum<CredentialStrategy>;
418
+
419
+ /**
420
+ * Subscription health reported by the middleware for the external-service
421
+ * webhook subscription this integration depends on.
422
+ *
423
+ * @generated from enum integrations.v1.SubscriptionHealth
424
+ */
425
+ export enum SubscriptionHealth {
426
+ /**
427
+ * @generated from enum value: SUBSCRIPTION_HEALTH_UNSPECIFIED = 0;
428
+ */
429
+ UNSPECIFIED = 0,
430
+
431
+ /**
432
+ * @generated from enum value: SUBSCRIPTION_HEALTH_OK = 1;
433
+ */
434
+ OK = 1,
435
+
436
+ /**
437
+ * @generated from enum value: SUBSCRIPTION_HEALTH_STALE = 2;
438
+ */
439
+ STALE = 2,
440
+
441
+ /**
442
+ * @generated from enum value: SUBSCRIPTION_HEALTH_BROKEN = 3;
443
+ */
444
+ BROKEN = 3,
445
+ }
446
+
447
+ /**
448
+ * Describes the enum integrations.v1.SubscriptionHealth.
449
+ */
450
+ export declare const SubscriptionHealthSchema: GenEnum<SubscriptionHealth>;
451
+
452
+ /**
453
+ * Auth status reported by the middleware for the external-service credentials.
454
+ *
455
+ * @generated from enum integrations.v1.AuthStatus
456
+ */
457
+ export enum AuthStatus {
458
+ /**
459
+ * @generated from enum value: AUTH_STATUS_UNSPECIFIED = 0;
460
+ */
461
+ UNSPECIFIED = 0,
462
+
463
+ /**
464
+ * @generated from enum value: AUTH_STATUS_OK = 1;
465
+ */
466
+ OK = 1,
467
+
468
+ /**
469
+ * @generated from enum value: AUTH_STATUS_EXPIRED = 2;
470
+ */
471
+ EXPIRED = 2,
472
+
473
+ /**
474
+ * @generated from enum value: AUTH_STATUS_REVOKED = 3;
475
+ */
476
+ REVOKED = 3,
477
+ }
478
+
479
+ /**
480
+ * Describes the enum integrations.v1.AuthStatus.
481
+ */
482
+ export declare const AuthStatusSchema: GenEnum<AuthStatus>;
483
+
484
+ /**
485
+ * @generated from enum integrations.v1.ExtensionTarget
486
+ */
487
+ export enum ExtensionTarget {
488
+ /**
489
+ * @generated from enum value: EXTENSION_TARGET_UNSPECIFIED = 0;
490
+ */
491
+ UNSPECIFIED = 0,
492
+
493
+ /**
494
+ * @generated from enum value: EXTENSION_TARGET_RECORD = 1;
495
+ */
496
+ RECORD = 1,
497
+
498
+ /**
499
+ * @generated from enum value: EXTENSION_TARGET_MODEL_LIST = 2;
500
+ */
501
+ MODEL_LIST = 2,
502
+ }
503
+
504
+ /**
505
+ * Describes the enum integrations.v1.ExtensionTarget.
506
+ */
507
+ export declare const ExtensionTargetSchema: GenEnum<ExtensionTarget>;
508
+
@@ -0,0 +1,132 @@
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "import_extension=js"
2
+ // @generated from file integrations/v1/integrations.proto (package integrations.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
+ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+
8
+ /**
9
+ * Describes the file integrations/v1/integrations.proto.
10
+ */
11
+ export const file_integrations_v1_integrations = /*@__PURE__*/
12
+ fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiJAoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEgsKA3VybBgBIAEoCSKIAQoWSW50ZWdyYXRpb25DcmVkZW50aWFscxI1CghzdHJhdGVneRgBIAEoDjIjLmludGVncmF0aW9ucy52MS5DcmVkZW50aWFsU3RyYXRlZ3kSLAoGdmFsdWVzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgkKB192YWx1ZXMiwgEKDk1vZGVsU2VlZEZpZWxkEgwKBHR5cGUYASABKAkSEAoIcmVxdWlyZWQYAiABKAgSEwoLbmF0dXJhbF9rZXkYAyABKAgSEgoFbGFiZWwYBCABKAlIAIgBARIWCgloZWxwX3RleHQYBSABKAlIAYgBARIsCgZjb25maWcYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCCAoGX2xhYmVsQgwKCl9oZWxwX3RleHRCCQoHX2NvbmZpZyKTAQoJTW9kZWxTZWVkEjYKBmZpZWxkcxgBIAMoCzImLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWQuRmllbGRzRW50cnkaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASL0AQoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxINCgVtb2RlbBgBIAEoCRITCgtuYXR1cmFsX2tleRgCIAEoCRJDCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeRIzCgptb2RlbF9zZWVkGAQgASgLMhouaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEgAiAEBGi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDQoLX21vZGVsX3NlZWQi9QMKEUludGVncmF0aW9uU3RhdHVzEjUKDGxhc3Rfc3luY19hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X3N5bmNfZHVyYXRpb25fbXMYAiABKANIAYgBARIjChZsYXN0X3N5bmNfcmVjb3JkX2NvdW50GAMgASgDSAKIAQESFwoKbGFzdF9lcnJvchgEIAEoCUgDiAEBEjYKDWxhc3RfZXJyb3JfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESQAoTc3Vic2NyaXB0aW9uX2hlYWx0aBgGIAEoDjIjLmludGVncmF0aW9ucy52MS5TdWJzY3JpcHRpb25IZWFsdGgSMAoLYXV0aF9zdGF0dXMYByABKA4yGy5pbnRlZ3JhdGlvbnMudjEuQXV0aFN0YXR1cxIeChFkZWxldGlvbl9zdHJhdGVneRgIIAEoCUgFiAEBQg8KDV9sYXN0X3N5bmNfYXRCGAoWX2xhc3Rfc3luY19kdXJhdGlvbl9tc0IZChdfbGFzdF9zeW5jX3JlY29yZF9jb3VudEINCgtfbGFzdF9lcnJvckIQCg5fbGFzdF9lcnJvcl9hdEIUChJfZGVsZXRpb25fc3RyYXRlZ3kiuAMKEUludGVncmF0aW9uQ29uZmlnEgwKBG5hbWUYASABKAkSDwoHZW5hYmxlZBgCIAEoCBI6CgptaWRkbGV3YXJlGAMgASgLMiYuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uTWlkZGxld2FyZRI8CgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEjoKBHN5bmMYBSADKAsyLC5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcuU3luY0VudHJ5Ei4KCHNldHRpbmdzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBGlQKCVN5bmNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZzoCOAFCCwoJX3NldHRpbmdzQgsKCV9tZXRhZGF0YSKoAQoSRXh0ZW5zaW9uUGxhY2VtZW50EjAKBnRhcmdldBgBIAEoDjIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25UYXJnZXQSDQoFbW9kZWwYAiABKAkSCwoDdGFiGAMgASgJEg0KBXRpdGxlGAQgASgJEisKBWhpbnRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl9oaW50cyKiAQoPRXh0ZW5zaW9uQ29uZmlnEgwKBG5hbWUYASABKAkSCwoDdXJsGAIgASgJEjcKCnBsYWNlbWVudHMYAyADKAsyIy5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uUGxhY2VtZW50Ei4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSqAAgoSQ3JlZGVudGlhbFN0cmF0ZWd5EiMKH0NSRURFTlRJQUxfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIdChlDUkVERU5USUFMX1NUUkFURUdZX09BVVRIEAESHwobQ1JFREVOVElBTF9TVFJBVEVHWV9BUElfS0VZEAISJQohQ1JFREVOVElBTF9TVFJBVEVHWV9TSEFSRURfU0VDUkVUEAMSHwobQ1JFREVOVElBTF9TVFJBVEVHWV9TU0hfS0VZEAQSHAoYQ1JFREVOVElBTF9TVFJBVEVHWV9OT05FEAUSHwobQ1JFREVOVElBTF9TVFJBVEVHWV9NQU5BR0VEEAYqlAEKElN1YnNjcmlwdGlvbkhlYWx0aBIjCh9TVUJTQ1JJUFRJT05fSEVBTFRIX1VOU1BFQ0lGSUVEEAASGgoWU1VCU0NSSVBUSU9OX0hFQUxUSF9PSxABEh0KGVNVQlNDUklQVElPTl9IRUFMVEhfU1RBTEUQAhIeChpTVUJTQ1JJUFRJT05fSEVBTFRIX0JST0tFThADKm8KCkF1dGhTdGF0dXMSGwoXQVVUSF9TVEFUVVNfVU5TUEVDSUZJRUQQABISCg5BVVRIX1NUQVRVU19PSxABEhcKE0FVVEhfU1RBVFVTX0VYUElSRUQQAhIXChNBVVRIX1NUQVRVU19SRVZPS0VEEAMqcQoPRXh0ZW5zaW9uVGFyZ2V0EiAKHEVYVEVOU0lPTl9UQVJHRVRfVU5TUEVDSUZJRUQQABIbChdFWFRFTlNJT05fVEFSR0VUX1JFQ09SRBABEh8KG0VYVEVOU0lPTl9UQVJHRVRfTU9ERUxfTElTVBACQkVaQ2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pbnRlZ3JhdGlvbnMvdjE7aW50ZWdyYXRpb25zdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp]);
13
+
14
+ /**
15
+ * Describes the message integrations.v1.IntegrationMiddleware.
16
+ * Use `create(IntegrationMiddlewareSchema)` to create a new message.
17
+ */
18
+ export const IntegrationMiddlewareSchema = /*@__PURE__*/
19
+ messageDesc(file_integrations_v1_integrations, 0);
20
+
21
+ /**
22
+ * Describes the message integrations.v1.IntegrationCredentials.
23
+ * Use `create(IntegrationCredentialsSchema)` to create a new message.
24
+ */
25
+ export const IntegrationCredentialsSchema = /*@__PURE__*/
26
+ messageDesc(file_integrations_v1_integrations, 1);
27
+
28
+ /**
29
+ * Describes the message integrations.v1.ModelSeedField.
30
+ * Use `create(ModelSeedFieldSchema)` to create a new message.
31
+ */
32
+ export const ModelSeedFieldSchema = /*@__PURE__*/
33
+ messageDesc(file_integrations_v1_integrations, 2);
34
+
35
+ /**
36
+ * Describes the message integrations.v1.ModelSeed.
37
+ * Use `create(ModelSeedSchema)` to create a new message.
38
+ */
39
+ export const ModelSeedSchema = /*@__PURE__*/
40
+ messageDesc(file_integrations_v1_integrations, 3);
41
+
42
+ /**
43
+ * Describes the message integrations.v1.IntegrationSyncMapping.
44
+ * Use `create(IntegrationSyncMappingSchema)` to create a new message.
45
+ */
46
+ export const IntegrationSyncMappingSchema = /*@__PURE__*/
47
+ messageDesc(file_integrations_v1_integrations, 4);
48
+
49
+ /**
50
+ * Describes the message integrations.v1.IntegrationStatus.
51
+ * Use `create(IntegrationStatusSchema)` to create a new message.
52
+ */
53
+ export const IntegrationStatusSchema = /*@__PURE__*/
54
+ messageDesc(file_integrations_v1_integrations, 5);
55
+
56
+ /**
57
+ * Describes the message integrations.v1.IntegrationConfig.
58
+ * Use `create(IntegrationConfigSchema)` to create a new message.
59
+ */
60
+ export const IntegrationConfigSchema = /*@__PURE__*/
61
+ messageDesc(file_integrations_v1_integrations, 6);
62
+
63
+ /**
64
+ * Describes the message integrations.v1.ExtensionPlacement.
65
+ * Use `create(ExtensionPlacementSchema)` to create a new message.
66
+ */
67
+ export const ExtensionPlacementSchema = /*@__PURE__*/
68
+ messageDesc(file_integrations_v1_integrations, 7);
69
+
70
+ /**
71
+ * Describes the message integrations.v1.ExtensionConfig.
72
+ * Use `create(ExtensionConfigSchema)` to create a new message.
73
+ */
74
+ export const ExtensionConfigSchema = /*@__PURE__*/
75
+ messageDesc(file_integrations_v1_integrations, 8);
76
+
77
+ /**
78
+ * Describes the enum integrations.v1.CredentialStrategy.
79
+ */
80
+ export const CredentialStrategySchema = /*@__PURE__*/
81
+ enumDesc(file_integrations_v1_integrations, 0);
82
+
83
+ /**
84
+ * Credential strategies the middleware uses when talking to the external
85
+ * service. Drives which authorization flow the admin UI renders.
86
+ *
87
+ * @generated from enum integrations.v1.CredentialStrategy
88
+ */
89
+ export const CredentialStrategy = /*@__PURE__*/
90
+ tsEnum(CredentialStrategySchema);
91
+
92
+ /**
93
+ * Describes the enum integrations.v1.SubscriptionHealth.
94
+ */
95
+ export const SubscriptionHealthSchema = /*@__PURE__*/
96
+ enumDesc(file_integrations_v1_integrations, 1);
97
+
98
+ /**
99
+ * Subscription health reported by the middleware for the external-service
100
+ * webhook subscription this integration depends on.
101
+ *
102
+ * @generated from enum integrations.v1.SubscriptionHealth
103
+ */
104
+ export const SubscriptionHealth = /*@__PURE__*/
105
+ tsEnum(SubscriptionHealthSchema);
106
+
107
+ /**
108
+ * Describes the enum integrations.v1.AuthStatus.
109
+ */
110
+ export const AuthStatusSchema = /*@__PURE__*/
111
+ enumDesc(file_integrations_v1_integrations, 2);
112
+
113
+ /**
114
+ * Auth status reported by the middleware for the external-service credentials.
115
+ *
116
+ * @generated from enum integrations.v1.AuthStatus
117
+ */
118
+ export const AuthStatus = /*@__PURE__*/
119
+ tsEnum(AuthStatusSchema);
120
+
121
+ /**
122
+ * Describes the enum integrations.v1.ExtensionTarget.
123
+ */
124
+ export const ExtensionTargetSchema = /*@__PURE__*/
125
+ enumDesc(file_integrations_v1_integrations, 3);
126
+
127
+ /**
128
+ * @generated from enum integrations.v1.ExtensionTarget
129
+ */
130
+ export const ExtensionTarget = /*@__PURE__*/
131
+ tsEnum(ExtensionTargetSchema);
132
+
@@ -632,6 +632,11 @@ export declare type CreateOperationRequest = Message<"operations.v1.CreateOperat
632
632
  * @generated from field: optional google.protobuf.Struct precondition = 17;
633
633
  */
634
634
  precondition?: JsonObject;
635
+
636
+ /**
637
+ * @generated from field: optional bool is_active = 18;
638
+ */
639
+ isActive?: boolean;
635
640
  };
636
641
 
637
642
  /**
@@ -729,6 +734,11 @@ export declare type UpdateOperationRequest = Message<"operations.v1.UpdateOperat
729
734
  * @generated from field: optional google.protobuf.Struct precondition = 14;
730
735
  */
731
736
  precondition?: JsonObject;
737
+
738
+ /**
739
+ * @generated from field: repeated string allowed_roles = 15;
740
+ */
741
+ allowedRoles: string[];
732
742
  };
733
743
 
734
744
  /**
@@ -1417,6 +1427,11 @@ export declare type QuotaRuleUsage = Message<"operations.v1.QuotaRuleUsage"> & {
1417
1427
  * @generated from field: int32 duration = 8;
1418
1428
  */
1419
1429
  duration: number;
1430
+
1431
+ /**
1432
+ * @generated from field: string message = 9;
1433
+ */
1434
+ message: string;
1420
1435
  };
1421
1436
 
1422
1437
  /**