@eide/foir-proto-ts 0.22.0 → 0.24.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.
@@ -1,1757 +0,0 @@
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, GenService } 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
- * Full https URL. The gateway streams webhook bodies to `${url}/webhook`,
24
- * opens OAuth via `${url}/authorize/start`, and dispatches manual triggers
25
- * to `${url}/trigger`. http URLs are rejected at validation time — the
26
- * credential-free middleware model relies on TLS between gateway and
27
- * middleware.
28
- *
29
- * @generated from field: string url = 1;
30
- */
31
- url: string;
32
- };
33
-
34
- /**
35
- * Describes the message integrations.v1.IntegrationMiddleware.
36
- * Use `create(IntegrationMiddlewareSchema)` to create a new message.
37
- */
38
- export declare const IntegrationMiddlewareSchema: GenMessage<IntegrationMiddleware>;
39
-
40
- /**
41
- * External-service credentials. The `values` blob is never populated on
42
- * read endpoints — it is written separately via the dedicated credentials
43
- * endpoint and stored encrypted. It is present in the message so admin-UI
44
- * and CLI write paths can carry authorized values end-to-end in a single
45
- * request where appropriate.
46
- *
47
- * @generated from message integrations.v1.IntegrationCredentials
48
- */
49
- export declare type IntegrationCredentials = Message<"integrations.v1.IntegrationCredentials"> & {
50
- /**
51
- * Credential strategy drives which authorization flow the admin UI renders.
52
- * CREDENTIAL_STRATEGY_UNSPECIFIED is rejected — every declared integration
53
- * must pick a strategy, even if it is NONE (explicitly "no credentials").
54
- *
55
- * @generated from field: integrations.v1.CredentialStrategy strategy = 1;
56
- */
57
- strategy: CredentialStrategy;
58
-
59
- /**
60
- * @generated from field: optional google.protobuf.Struct values = 2;
61
- */
62
- values?: JsonObject;
63
- };
64
-
65
- /**
66
- * Describes the message integrations.v1.IntegrationCredentials.
67
- * Use `create(IntegrationCredentialsSchema)` to create a new message.
68
- */
69
- export declare const IntegrationCredentialsSchema: GenMessage<IntegrationCredentials>;
70
-
71
- /**
72
- * A single field in a model seed. Carries the type and any options the
73
- * CLI/admin UI needs to create the seeded field. Kept deliberately flat —
74
- * this is a bootstrap schema, not an ongoing declaration. The model's
75
- * long-term shape lives under `models.<key>`.
76
- *
77
- * @generated from message integrations.v1.ModelSeedField
78
- */
79
- export declare type ModelSeedField = Message<"integrations.v1.ModelSeedField"> & {
80
- /**
81
- * @generated from field: string type = 1;
82
- */
83
- type: string;
84
-
85
- /**
86
- * @generated from field: bool required = 2;
87
- */
88
- required: boolean;
89
-
90
- /**
91
- * @generated from field: bool natural_key = 3;
92
- */
93
- naturalKey: boolean;
94
-
95
- /**
96
- * @generated from field: optional string label = 4;
97
- */
98
- label?: string;
99
-
100
- /**
101
- * @generated from field: optional string help_text = 5;
102
- */
103
- helpText?: string;
104
-
105
- /**
106
- * @generated from field: optional google.protobuf.Struct config = 6;
107
- */
108
- config?: JsonObject;
109
- };
110
-
111
- /**
112
- * Describes the message integrations.v1.ModelSeedField.
113
- * Use `create(ModelSeedFieldSchema)` to create a new message.
114
- */
115
- export declare const ModelSeedFieldSchema: GenMessage<ModelSeedField>;
116
-
117
- /**
118
- * Optional one-time bootstrap schema used at first push if the target model
119
- * doesn't yet exist. Ignored on every subsequent push — the model's shape
120
- * lives under `models` from that point on.
121
- *
122
- * @generated from message integrations.v1.ModelSeed
123
- */
124
- export declare type ModelSeed = Message<"integrations.v1.ModelSeed"> & {
125
- /**
126
- * @generated from field: map<string, integrations.v1.ModelSeedField> fields = 1;
127
- */
128
- fields: { [key: string]: ModelSeedField };
129
- };
130
-
131
- /**
132
- * Describes the message integrations.v1.ModelSeed.
133
- * Use `create(ModelSeedSchema)` to create a new message.
134
- */
135
- export declare const ModelSeedSchema: GenMessage<ModelSeed>;
136
-
137
- /**
138
- * Per-source-type sync mapping. Declares which foir model a source type
139
- * writes into, which foir field holds the upstream natural key, and the
140
- * explicit field mapping. No auto-inference, no alias tables.
141
- *
142
- * @generated from message integrations.v1.IntegrationSyncMapping
143
- */
144
- export declare type IntegrationSyncMapping = Message<"integrations.v1.IntegrationSyncMapping"> & {
145
- /**
146
- * foir model key that this source type writes into.
147
- *
148
- * @generated from field: string model = 1;
149
- */
150
- model: string;
151
-
152
- /**
153
- * foir field holding the upstream natural key. UPSERTs are keyed on this.
154
- *
155
- * @generated from field: string natural_key = 2;
156
- */
157
- naturalKey: string;
158
-
159
- /**
160
- * Explicit field mapping: source field name -> foir field key.
161
- * Unmapped source fields are discarded at runtime.
162
- *
163
- * @generated from field: map<string, string> fields = 3;
164
- */
165
- fields: { [key: string]: string };
166
-
167
- /**
168
- * Optional one-time bootstrap schema if the target model is missing.
169
- *
170
- * @generated from field: optional integrations.v1.ModelSeed model_seed = 4;
171
- */
172
- modelSeed?: ModelSeed;
173
- };
174
-
175
- /**
176
- * Describes the message integrations.v1.IntegrationSyncMapping.
177
- * Use `create(IntegrationSyncMappingSchema)` to create a new message.
178
- */
179
- export declare const IntegrationSyncMappingSchema: GenMessage<IntegrationSyncMapping>;
180
-
181
- /**
182
- * Status reported by the middleware after each sync cycle and on meaningful
183
- * state transitions. Nothing here is computed platform-side — the middleware
184
- * is the source of truth for its own status.
185
- *
186
- * @generated from message integrations.v1.IntegrationStatus
187
- */
188
- export declare type IntegrationStatus = Message<"integrations.v1.IntegrationStatus"> & {
189
- /**
190
- * @generated from field: optional google.protobuf.Timestamp last_sync_at = 1;
191
- */
192
- lastSyncAt?: Timestamp;
193
-
194
- /**
195
- * @generated from field: optional int64 last_sync_duration_ms = 2;
196
- */
197
- lastSyncDurationMs?: bigint;
198
-
199
- /**
200
- * @generated from field: optional int64 last_sync_record_count = 3;
201
- */
202
- lastSyncRecordCount?: bigint;
203
-
204
- /**
205
- * @generated from field: optional string last_error = 4;
206
- */
207
- lastError?: string;
208
-
209
- /**
210
- * @generated from field: optional google.protobuf.Timestamp last_error_at = 5;
211
- */
212
- lastErrorAt?: Timestamp;
213
-
214
- /**
215
- * @generated from field: integrations.v1.SubscriptionHealth subscription_health = 6;
216
- */
217
- subscriptionHealth: SubscriptionHealth;
218
-
219
- /**
220
- * @generated from field: integrations.v1.AuthStatus auth_status = 7;
221
- */
222
- authStatus: AuthStatus;
223
-
224
- /**
225
- * Free-text description of the middleware's delete handling for admin
226
- * display. e.g. "soft (deletedAt field)", "hard", "ignore".
227
- *
228
- * @generated from field: optional string deletion_strategy = 8;
229
- */
230
- deletionStrategy?: string;
231
- };
232
-
233
- /**
234
- * Describes the message integrations.v1.IntegrationStatus.
235
- * Use `create(IntegrationStatusSchema)` to create a new message.
236
- */
237
- export declare const IntegrationStatusSchema: GenMessage<IntegrationStatus>;
238
-
239
- /**
240
- * The full per-project integration declaration. Lives in the platform;
241
- * declared from foir.config.ts or the admin UI.
242
- *
243
- * @generated from message integrations.v1.IntegrationConfig
244
- */
245
- export declare type IntegrationConfig = Message<"integrations.v1.IntegrationConfig"> & {
246
- /**
247
- * Kebab-case name, unique per project. Matches the key in foir.config.ts
248
- * under `integrations.<name>`.
249
- *
250
- * @generated from field: string name = 1;
251
- */
252
- name: string;
253
-
254
- /**
255
- * @generated from field: bool enabled = 2;
256
- */
257
- enabled: boolean;
258
-
259
- /**
260
- * @generated from field: integrations.v1.IntegrationMiddleware middleware = 3;
261
- */
262
- middleware?: IntegrationMiddleware;
263
-
264
- /**
265
- * @generated from field: integrations.v1.IntegrationCredentials credentials = 4;
266
- */
267
- credentials?: IntegrationCredentials;
268
-
269
- /**
270
- * Sync mapping, keyed by source-type name (e.g. "product", "collection").
271
- *
272
- * @generated from field: map<string, integrations.v1.IntegrationSyncMapping> sync = 5;
273
- */
274
- sync: { [key: string]: IntegrationSyncMapping };
275
-
276
- /**
277
- * Opaque middleware-specific settings. The platform and CLI do not
278
- * interpret this blob — the middleware reads and validates it at runtime.
279
- *
280
- * @generated from field: optional google.protobuf.Struct settings = 6;
281
- */
282
- settings?: JsonObject;
283
-
284
- /**
285
- * Optional metadata for admin-UI display (display name, description,
286
- * category). Unused by the runtime.
287
- *
288
- * @generated from field: optional google.protobuf.Struct metadata = 7;
289
- */
290
- metadata?: JsonObject;
291
- };
292
-
293
- /**
294
- * Describes the message integrations.v1.IntegrationConfig.
295
- * Use `create(IntegrationConfigSchema)` to create a new message.
296
- */
297
- export declare const IntegrationConfigSchema: GenMessage<IntegrationConfig>;
298
-
299
- /**
300
- * @generated from message integrations.v1.ExtensionPlacement
301
- */
302
- export declare type ExtensionPlacement = Message<"integrations.v1.ExtensionPlacement"> & {
303
- /**
304
- * @generated from field: integrations.v1.ExtensionTarget target = 1;
305
- */
306
- target: ExtensionTarget;
307
-
308
- /**
309
- * foir model key this placement attaches to.
310
- *
311
- * @generated from field: string model = 2;
312
- */
313
- model: string;
314
-
315
- /**
316
- * Tab key used as an HTML slug and as the SDK addressable id.
317
- *
318
- * @generated from field: string tab = 3;
319
- */
320
- tab: string;
321
-
322
- /**
323
- * Human-readable tab title shown in the admin UI.
324
- *
325
- * @generated from field: string title = 4;
326
- */
327
- title: string;
328
-
329
- /**
330
- * Optional free-form hints for the placement (icon, ordering, etc.).
331
- *
332
- * @generated from field: optional google.protobuf.Struct hints = 5;
333
- */
334
- hints?: JsonObject;
335
- };
336
-
337
- /**
338
- * Describes the message integrations.v1.ExtensionPlacement.
339
- * Use `create(ExtensionPlacementSchema)` to create a new message.
340
- */
341
- export declare const ExtensionPlacementSchema: GenMessage<ExtensionPlacement>;
342
-
343
- /**
344
- * @generated from message integrations.v1.ExtensionConfig
345
- */
346
- export declare type ExtensionConfig = Message<"integrations.v1.ExtensionConfig"> & {
347
- /**
348
- * Kebab-case name, unique per project.
349
- *
350
- * @generated from field: string name = 1;
351
- */
352
- name: string;
353
-
354
- /**
355
- * https URL of the iframe app. The admin UI loads this URL in an iframe
356
- * at the declared placements.
357
- *
358
- * @generated from field: string url = 2;
359
- */
360
- url: string;
361
-
362
- /**
363
- * @generated from field: repeated integrations.v1.ExtensionPlacement placements = 3;
364
- */
365
- placements: ExtensionPlacement[];
366
-
367
- /**
368
- * Optional metadata for admin-UI display.
369
- *
370
- * @generated from field: optional google.protobuf.Struct metadata = 4;
371
- */
372
- metadata?: JsonObject;
373
- };
374
-
375
- /**
376
- * Describes the message integrations.v1.ExtensionConfig.
377
- * Use `create(ExtensionConfigSchema)` to create a new message.
378
- */
379
- export declare const ExtensionConfigSchema: GenMessage<ExtensionConfig>;
380
-
381
- /**
382
- * A single credential slot for one (project, integration). The encrypted
383
- * payload's plaintext shape is middleware-specific (Shopify OAuth token,
384
- * Stripe API key, SSH keypair, etc.) — the platform treats it as opaque
385
- * bytes and never parses it.
386
- *
387
- * @generated from message integrations.v1.IntegrationCredentialValue
388
- */
389
- export declare type IntegrationCredentialValue = Message<"integrations.v1.IntegrationCredentialValue"> & {
390
- /**
391
- * Plaintext credential bytes. Populated on read responses (after successful
392
- * capability check + decryption) and on write requests. NEVER populated on
393
- * any other response.
394
- *
395
- * @generated from field: bytes value = 1;
396
- */
397
- value: Uint8Array;
398
-
399
- /**
400
- * Identifier of the key that encrypted this value at rest. Carried across
401
- * the wire so rotation is possible without breaking old rows.
402
- *
403
- * @generated from field: string encryption_key_id = 2;
404
- */
405
- encryptionKeyId: string;
406
-
407
- /**
408
- * When the credential was last decrypted and returned to a caller. Updated
409
- * on every successful GetIntegrationCredential call. Null if never read.
410
- *
411
- * @generated from field: optional google.protobuf.Timestamp last_read_at = 3;
412
- */
413
- lastReadAt?: Timestamp;
414
-
415
- /**
416
- * When the credential was last written. Null if never written.
417
- *
418
- * @generated from field: optional google.protobuf.Timestamp last_written_at = 4;
419
- */
420
- lastWrittenAt?: Timestamp;
421
- };
422
-
423
- /**
424
- * Describes the message integrations.v1.IntegrationCredentialValue.
425
- * Use `create(IntegrationCredentialValueSchema)` to create a new message.
426
- */
427
- export declare const IntegrationCredentialValueSchema: GenMessage<IntegrationCredentialValue>;
428
-
429
- /**
430
- * @generated from message integrations.v1.GetIntegrationCredentialRequest
431
- */
432
- export declare type GetIntegrationCredentialRequest = Message<"integrations.v1.GetIntegrationCredentialRequest"> & {
433
- /**
434
- * @generated from field: string project_id = 1;
435
- */
436
- projectId: string;
437
-
438
- /**
439
- * @generated from field: string integration_name = 2;
440
- */
441
- integrationName: string;
442
- };
443
-
444
- /**
445
- * Describes the message integrations.v1.GetIntegrationCredentialRequest.
446
- * Use `create(GetIntegrationCredentialRequestSchema)` to create a new message.
447
- */
448
- export declare const GetIntegrationCredentialRequestSchema: GenMessage<GetIntegrationCredentialRequest>;
449
-
450
- /**
451
- * @generated from message integrations.v1.GetIntegrationCredentialResponse
452
- */
453
- export declare type GetIntegrationCredentialResponse = Message<"integrations.v1.GetIntegrationCredentialResponse"> & {
454
- /**
455
- * @generated from field: integrations.v1.IntegrationCredentialValue credential = 1;
456
- */
457
- credential?: IntegrationCredentialValue;
458
- };
459
-
460
- /**
461
- * Describes the message integrations.v1.GetIntegrationCredentialResponse.
462
- * Use `create(GetIntegrationCredentialResponseSchema)` to create a new message.
463
- */
464
- export declare const GetIntegrationCredentialResponseSchema: GenMessage<GetIntegrationCredentialResponse>;
465
-
466
- /**
467
- * @generated from message integrations.v1.WriteIntegrationCredentialRequest
468
- */
469
- export declare type WriteIntegrationCredentialRequest = Message<"integrations.v1.WriteIntegrationCredentialRequest"> & {
470
- /**
471
- * @generated from field: string project_id = 1;
472
- */
473
- projectId: string;
474
-
475
- /**
476
- * @generated from field: string integration_name = 2;
477
- */
478
- integrationName: string;
479
-
480
- /**
481
- * Plaintext bytes to encrypt and store. Replaces any existing value for
482
- * this (project, integration).
483
- *
484
- * @generated from field: bytes value = 3;
485
- */
486
- value: Uint8Array;
487
-
488
- /**
489
- * Optional correlation context to include in the audit log entry
490
- * (webhook delivery id, manual trigger id, admin action id, etc.).
491
- *
492
- * @generated from field: optional string context = 4;
493
- */
494
- context?: string;
495
- };
496
-
497
- /**
498
- * Describes the message integrations.v1.WriteIntegrationCredentialRequest.
499
- * Use `create(WriteIntegrationCredentialRequestSchema)` to create a new message.
500
- */
501
- export declare const WriteIntegrationCredentialRequestSchema: GenMessage<WriteIntegrationCredentialRequest>;
502
-
503
- /**
504
- * @generated from message integrations.v1.WriteIntegrationCredentialResponse
505
- */
506
- export declare type WriteIntegrationCredentialResponse = Message<"integrations.v1.WriteIntegrationCredentialResponse"> & {
507
- /**
508
- * Metadata about the newly stored credential. Never includes the plaintext.
509
- *
510
- * @generated from field: string encryption_key_id = 1;
511
- */
512
- encryptionKeyId: string;
513
-
514
- /**
515
- * @generated from field: google.protobuf.Timestamp last_written_at = 2;
516
- */
517
- lastWrittenAt?: Timestamp;
518
- };
519
-
520
- /**
521
- * Describes the message integrations.v1.WriteIntegrationCredentialResponse.
522
- * Use `create(WriteIntegrationCredentialResponseSchema)` to create a new message.
523
- */
524
- export declare const WriteIntegrationCredentialResponseSchema: GenMessage<WriteIntegrationCredentialResponse>;
525
-
526
- /**
527
- * @generated from message integrations.v1.IssueExchangeTicketRequest
528
- */
529
- export declare type IssueExchangeTicketRequest = Message<"integrations.v1.IssueExchangeTicketRequest"> & {
530
- /**
531
- * @generated from field: string project_id = 1;
532
- */
533
- projectId: string;
534
-
535
- /**
536
- * @generated from field: string integration_name = 2;
537
- */
538
- integrationName: string;
539
- };
540
-
541
- /**
542
- * Describes the message integrations.v1.IssueExchangeTicketRequest.
543
- * Use `create(IssueExchangeTicketRequestSchema)` to create a new message.
544
- */
545
- export declare const IssueExchangeTicketRequestSchema: GenMessage<IssueExchangeTicketRequest>;
546
-
547
- /**
548
- * @generated from message integrations.v1.IssueExchangeTicketResponse
549
- */
550
- export declare type IssueExchangeTicketResponse = Message<"integrations.v1.IssueExchangeTicketResponse"> & {
551
- /**
552
- * Opaque single-use ticket id. Must be embedded in OAuth `state` and
553
- * POSTed back by the middleware to the gateway's /auth/exchange-ticket
554
- * endpoint, which in turn redeems it via RedeemExchangeTicket below.
555
- *
556
- * @generated from field: string ticket = 1;
557
- */
558
- ticket: string;
559
-
560
- /**
561
- * Absolute expiry (10 minutes from issue). After this point the ticket
562
- * is rejected even if it has not yet been redeemed.
563
- *
564
- * @generated from field: google.protobuf.Timestamp expires_at = 2;
565
- */
566
- expiresAt?: Timestamp;
567
- };
568
-
569
- /**
570
- * Describes the message integrations.v1.IssueExchangeTicketResponse.
571
- * Use `create(IssueExchangeTicketResponseSchema)` to create a new message.
572
- */
573
- export declare const IssueExchangeTicketResponseSchema: GenMessage<IssueExchangeTicketResponse>;
574
-
575
- /**
576
- * Atomic single-use redemption of an exchange ticket. Called by the
577
- * public API gateway's /auth/exchange-ticket endpoint when a middleware
578
- * POSTs a ticket it received via the authorize redirect. The redemption
579
- * flips used_at in a single DB round trip and returns the resolved
580
- * subject so the gateway can mint a scoped token locally.
581
- *
582
- * This RPC is intentionally unauthenticated at the admin-session level —
583
- * ticket possession is the auth factor. Network-level service auth is
584
- * expected to come from the gap #11 internalauth interceptor pair.
585
- *
586
- * @generated from message integrations.v1.RedeemExchangeTicketRequest
587
- */
588
- export declare type RedeemExchangeTicketRequest = Message<"integrations.v1.RedeemExchangeTicketRequest"> & {
589
- /**
590
- * Opaque ticket id originally issued by IssueExchangeTicket. Must
591
- * match an unused, unexpired row in auth_exchange_tickets.
592
- *
593
- * @generated from field: string ticket = 1;
594
- */
595
- ticket: string;
596
-
597
- /**
598
- * Free-text identity of the redeeming actor, written to the
599
- * ticket_redeem auth_events row. Gateway callers pass something like
600
- * "api-public:exchange-ticket:<ip>".
601
- *
602
- * @generated from field: string actor_ref = 2;
603
- */
604
- actorRef: string;
605
- };
606
-
607
- /**
608
- * Describes the message integrations.v1.RedeemExchangeTicketRequest.
609
- * Use `create(RedeemExchangeTicketRequestSchema)` to create a new message.
610
- */
611
- export declare const RedeemExchangeTicketRequestSchema: GenMessage<RedeemExchangeTicketRequest>;
612
-
613
- /**
614
- * @generated from message integrations.v1.RedeemExchangeTicketResponse
615
- */
616
- export declare type RedeemExchangeTicketResponse = Message<"integrations.v1.RedeemExchangeTicketResponse"> & {
617
- /**
618
- * The redeemed ticket id, echoed back for caller-side audit
619
- * correlation. Matches request.ticket on success.
620
- *
621
- * @generated from field: string ticket_id = 1;
622
- */
623
- ticketId: string;
624
-
625
- /**
626
- * @generated from field: string tenant_id = 2;
627
- */
628
- tenantId: string;
629
-
630
- /**
631
- * @generated from field: string project_id = 3;
632
- */
633
- projectId: string;
634
-
635
- /**
636
- * @generated from field: string integration_name = 4;
637
- */
638
- integrationName: string;
639
-
640
- /**
641
- * Single capability string the minted token should carry, e.g.
642
- * "credentials:write". Taken verbatim from the ticket row.
643
- *
644
- * @generated from field: string capability = 5;
645
- */
646
- capability: string;
647
-
648
- /**
649
- * @generated from field: google.protobuf.Timestamp expires_at = 6;
650
- */
651
- expiresAt?: Timestamp;
652
- };
653
-
654
- /**
655
- * Describes the message integrations.v1.RedeemExchangeTicketResponse.
656
- * Use `create(RedeemExchangeTicketResponseSchema)` to create a new message.
657
- */
658
- export declare const RedeemExchangeTicketResponseSchema: GenMessage<RedeemExchangeTicketResponse>;
659
-
660
- /**
661
- * Summary row returned in ListIntegrationsResponse. Bundles the declaration
662
- * with the operational status glyphs the list page renders, so the admin UI
663
- * doesn't need a fan-out per row.
664
- *
665
- * @generated from message integrations.v1.IntegrationSummary
666
- */
667
- export declare type IntegrationSummary = Message<"integrations.v1.IntegrationSummary"> & {
668
- /**
669
- * @generated from field: integrations.v1.IntegrationConfig config = 1;
670
- */
671
- config?: IntegrationConfig;
672
-
673
- /**
674
- * True iff an integration_credentials row exists for this (project, name).
675
- * Drives the "authorized / unauthorized" column in the list view.
676
- *
677
- * @generated from field: bool authorized = 2;
678
- */
679
- authorized: boolean;
680
-
681
- /**
682
- * Current integration_status row, if any. Absent if the middleware has
683
- * never reported a cycle.
684
- *
685
- * @generated from field: optional integrations.v1.IntegrationStatus status = 3;
686
- */
687
- status?: IntegrationStatus;
688
-
689
- /**
690
- * Stable gateway webhook URL — same string for every caller and cycle.
691
- * Included in the summary so the list page can show copyable URLs without
692
- * a second round trip per row.
693
- *
694
- * @generated from field: string webhook_url = 4;
695
- */
696
- webhookUrl: string;
697
- };
698
-
699
- /**
700
- * Describes the message integrations.v1.IntegrationSummary.
701
- * Use `create(IntegrationSummarySchema)` to create a new message.
702
- */
703
- export declare const IntegrationSummarySchema: GenMessage<IntegrationSummary>;
704
-
705
- /**
706
- * @generated from message integrations.v1.ListIntegrationsRequest
707
- */
708
- export declare type ListIntegrationsRequest = Message<"integrations.v1.ListIntegrationsRequest"> & {
709
- /**
710
- * @generated from field: string project_id = 1;
711
- */
712
- projectId: string;
713
- };
714
-
715
- /**
716
- * Describes the message integrations.v1.ListIntegrationsRequest.
717
- * Use `create(ListIntegrationsRequestSchema)` to create a new message.
718
- */
719
- export declare const ListIntegrationsRequestSchema: GenMessage<ListIntegrationsRequest>;
720
-
721
- /**
722
- * @generated from message integrations.v1.ListIntegrationsResponse
723
- */
724
- export declare type ListIntegrationsResponse = Message<"integrations.v1.ListIntegrationsResponse"> & {
725
- /**
726
- * @generated from field: repeated integrations.v1.IntegrationSummary integrations = 1;
727
- */
728
- integrations: IntegrationSummary[];
729
- };
730
-
731
- /**
732
- * Describes the message integrations.v1.ListIntegrationsResponse.
733
- * Use `create(ListIntegrationsResponseSchema)` to create a new message.
734
- */
735
- export declare const ListIntegrationsResponseSchema: GenMessage<ListIntegrationsResponse>;
736
-
737
- /**
738
- * @generated from message integrations.v1.GetIntegrationRequest
739
- */
740
- export declare type GetIntegrationRequest = Message<"integrations.v1.GetIntegrationRequest"> & {
741
- /**
742
- * @generated from field: string project_id = 1;
743
- */
744
- projectId: string;
745
-
746
- /**
747
- * @generated from field: string name = 2;
748
- */
749
- name: string;
750
- };
751
-
752
- /**
753
- * Describes the message integrations.v1.GetIntegrationRequest.
754
- * Use `create(GetIntegrationRequestSchema)` to create a new message.
755
- */
756
- export declare const GetIntegrationRequestSchema: GenMessage<GetIntegrationRequest>;
757
-
758
- /**
759
- * @generated from message integrations.v1.GetIntegrationResponse
760
- */
761
- export declare type GetIntegrationResponse = Message<"integrations.v1.GetIntegrationResponse"> & {
762
- /**
763
- * @generated from field: integrations.v1.IntegrationConfig config = 1;
764
- */
765
- config?: IntegrationConfig;
766
-
767
- /**
768
- * @generated from field: optional integrations.v1.IntegrationStatus status = 2;
769
- */
770
- status?: IntegrationStatus;
771
-
772
- /**
773
- * @generated from field: bool authorized = 3;
774
- */
775
- authorized: boolean;
776
-
777
- /**
778
- * Stable gateway URL an operator registers with the external service. The
779
- * admin detail page surfaces this as copyable text.
780
- *
781
- * @generated from field: string webhook_url = 4;
782
- */
783
- webhookUrl: string;
784
- };
785
-
786
- /**
787
- * Describes the message integrations.v1.GetIntegrationResponse.
788
- * Use `create(GetIntegrationResponseSchema)` to create a new message.
789
- */
790
- export declare const GetIntegrationResponseSchema: GenMessage<GetIntegrationResponse>;
791
-
792
- /**
793
- * @generated from message integrations.v1.UpsertIntegrationRequest
794
- */
795
- export declare type UpsertIntegrationRequest = Message<"integrations.v1.UpsertIntegrationRequest"> & {
796
- /**
797
- * @generated from field: string project_id = 1;
798
- */
799
- projectId: string;
800
-
801
- /**
802
- * Full integration declaration. Name inside config.name must match the
803
- * URL-path name on write; the handler rejects a mismatch.
804
- *
805
- * @generated from field: integrations.v1.IntegrationConfig config = 2;
806
- */
807
- config?: IntegrationConfig;
808
- };
809
-
810
- /**
811
- * Describes the message integrations.v1.UpsertIntegrationRequest.
812
- * Use `create(UpsertIntegrationRequestSchema)` to create a new message.
813
- */
814
- export declare const UpsertIntegrationRequestSchema: GenMessage<UpsertIntegrationRequest>;
815
-
816
- /**
817
- * @generated from message integrations.v1.UpsertIntegrationResponse
818
- */
819
- export declare type UpsertIntegrationResponse = Message<"integrations.v1.UpsertIntegrationResponse"> & {
820
- /**
821
- * @generated from field: integrations.v1.IntegrationConfig config = 1;
822
- */
823
- config?: IntegrationConfig;
824
-
825
- /**
826
- * @generated from field: string webhook_url = 2;
827
- */
828
- webhookUrl: string;
829
- };
830
-
831
- /**
832
- * Describes the message integrations.v1.UpsertIntegrationResponse.
833
- * Use `create(UpsertIntegrationResponseSchema)` to create a new message.
834
- */
835
- export declare const UpsertIntegrationResponseSchema: GenMessage<UpsertIntegrationResponse>;
836
-
837
- /**
838
- * @generated from message integrations.v1.DeleteIntegrationRequest
839
- */
840
- export declare type DeleteIntegrationRequest = Message<"integrations.v1.DeleteIntegrationRequest"> & {
841
- /**
842
- * @generated from field: string project_id = 1;
843
- */
844
- projectId: string;
845
-
846
- /**
847
- * @generated from field: string name = 2;
848
- */
849
- name: string;
850
- };
851
-
852
- /**
853
- * Describes the message integrations.v1.DeleteIntegrationRequest.
854
- * Use `create(DeleteIntegrationRequestSchema)` to create a new message.
855
- */
856
- export declare const DeleteIntegrationRequestSchema: GenMessage<DeleteIntegrationRequest>;
857
-
858
- /**
859
- * @generated from message integrations.v1.DeleteIntegrationResponse
860
- */
861
- export declare type DeleteIntegrationResponse = Message<"integrations.v1.DeleteIntegrationResponse"> & {
862
- };
863
-
864
- /**
865
- * Describes the message integrations.v1.DeleteIntegrationResponse.
866
- * Use `create(DeleteIntegrationResponseSchema)` to create a new message.
867
- */
868
- export declare const DeleteIntegrationResponseSchema: GenMessage<DeleteIntegrationResponse>;
869
-
870
- /**
871
- * @generated from message integrations.v1.ListExtensionsRequest
872
- */
873
- export declare type ListExtensionsRequest = Message<"integrations.v1.ListExtensionsRequest"> & {
874
- /**
875
- * @generated from field: string project_id = 1;
876
- */
877
- projectId: string;
878
- };
879
-
880
- /**
881
- * Describes the message integrations.v1.ListExtensionsRequest.
882
- * Use `create(ListExtensionsRequestSchema)` to create a new message.
883
- */
884
- export declare const ListExtensionsRequestSchema: GenMessage<ListExtensionsRequest>;
885
-
886
- /**
887
- * @generated from message integrations.v1.ListExtensionsResponse
888
- */
889
- export declare type ListExtensionsResponse = Message<"integrations.v1.ListExtensionsResponse"> & {
890
- /**
891
- * @generated from field: repeated integrations.v1.ExtensionConfig extensions = 1;
892
- */
893
- extensions: ExtensionConfig[];
894
- };
895
-
896
- /**
897
- * Describes the message integrations.v1.ListExtensionsResponse.
898
- * Use `create(ListExtensionsResponseSchema)` to create a new message.
899
- */
900
- export declare const ListExtensionsResponseSchema: GenMessage<ListExtensionsResponse>;
901
-
902
- /**
903
- * @generated from message integrations.v1.GetExtensionRequest
904
- */
905
- export declare type GetExtensionRequest = Message<"integrations.v1.GetExtensionRequest"> & {
906
- /**
907
- * @generated from field: string project_id = 1;
908
- */
909
- projectId: string;
910
-
911
- /**
912
- * @generated from field: string name = 2;
913
- */
914
- name: string;
915
- };
916
-
917
- /**
918
- * Describes the message integrations.v1.GetExtensionRequest.
919
- * Use `create(GetExtensionRequestSchema)` to create a new message.
920
- */
921
- export declare const GetExtensionRequestSchema: GenMessage<GetExtensionRequest>;
922
-
923
- /**
924
- * @generated from message integrations.v1.GetExtensionResponse
925
- */
926
- export declare type GetExtensionResponse = Message<"integrations.v1.GetExtensionResponse"> & {
927
- /**
928
- * @generated from field: integrations.v1.ExtensionConfig extension = 1;
929
- */
930
- extension?: ExtensionConfig;
931
- };
932
-
933
- /**
934
- * Describes the message integrations.v1.GetExtensionResponse.
935
- * Use `create(GetExtensionResponseSchema)` to create a new message.
936
- */
937
- export declare const GetExtensionResponseSchema: GenMessage<GetExtensionResponse>;
938
-
939
- /**
940
- * @generated from message integrations.v1.UpsertExtensionRequest
941
- */
942
- export declare type UpsertExtensionRequest = Message<"integrations.v1.UpsertExtensionRequest"> & {
943
- /**
944
- * @generated from field: string project_id = 1;
945
- */
946
- projectId: string;
947
-
948
- /**
949
- * @generated from field: integrations.v1.ExtensionConfig config = 2;
950
- */
951
- config?: ExtensionConfig;
952
- };
953
-
954
- /**
955
- * Describes the message integrations.v1.UpsertExtensionRequest.
956
- * Use `create(UpsertExtensionRequestSchema)` to create a new message.
957
- */
958
- export declare const UpsertExtensionRequestSchema: GenMessage<UpsertExtensionRequest>;
959
-
960
- /**
961
- * @generated from message integrations.v1.UpsertExtensionResponse
962
- */
963
- export declare type UpsertExtensionResponse = Message<"integrations.v1.UpsertExtensionResponse"> & {
964
- /**
965
- * @generated from field: integrations.v1.ExtensionConfig config = 1;
966
- */
967
- config?: ExtensionConfig;
968
- };
969
-
970
- /**
971
- * Describes the message integrations.v1.UpsertExtensionResponse.
972
- * Use `create(UpsertExtensionResponseSchema)` to create a new message.
973
- */
974
- export declare const UpsertExtensionResponseSchema: GenMessage<UpsertExtensionResponse>;
975
-
976
- /**
977
- * @generated from message integrations.v1.DeleteExtensionRequest
978
- */
979
- export declare type DeleteExtensionRequest = Message<"integrations.v1.DeleteExtensionRequest"> & {
980
- /**
981
- * @generated from field: string project_id = 1;
982
- */
983
- projectId: string;
984
-
985
- /**
986
- * @generated from field: string name = 2;
987
- */
988
- name: string;
989
- };
990
-
991
- /**
992
- * Describes the message integrations.v1.DeleteExtensionRequest.
993
- * Use `create(DeleteExtensionRequestSchema)` to create a new message.
994
- */
995
- export declare const DeleteExtensionRequestSchema: GenMessage<DeleteExtensionRequest>;
996
-
997
- /**
998
- * @generated from message integrations.v1.DeleteExtensionResponse
999
- */
1000
- export declare type DeleteExtensionResponse = Message<"integrations.v1.DeleteExtensionResponse"> & {
1001
- };
1002
-
1003
- /**
1004
- * Describes the message integrations.v1.DeleteExtensionResponse.
1005
- * Use `create(DeleteExtensionResponseSchema)` to create a new message.
1006
- */
1007
- export declare const DeleteExtensionResponseSchema: GenMessage<DeleteExtensionResponse>;
1008
-
1009
- /**
1010
- * @generated from message integrations.v1.GetIntegrationStatusRequest
1011
- */
1012
- export declare type GetIntegrationStatusRequest = Message<"integrations.v1.GetIntegrationStatusRequest"> & {
1013
- /**
1014
- * @generated from field: string project_id = 1;
1015
- */
1016
- projectId: string;
1017
-
1018
- /**
1019
- * @generated from field: string name = 2;
1020
- */
1021
- name: string;
1022
- };
1023
-
1024
- /**
1025
- * Describes the message integrations.v1.GetIntegrationStatusRequest.
1026
- * Use `create(GetIntegrationStatusRequestSchema)` to create a new message.
1027
- */
1028
- export declare const GetIntegrationStatusRequestSchema: GenMessage<GetIntegrationStatusRequest>;
1029
-
1030
- /**
1031
- * @generated from message integrations.v1.GetIntegrationStatusResponse
1032
- */
1033
- export declare type GetIntegrationStatusResponse = Message<"integrations.v1.GetIntegrationStatusResponse"> & {
1034
- /**
1035
- * @generated from field: optional integrations.v1.IntegrationStatus status = 1;
1036
- */
1037
- status?: IntegrationStatus;
1038
-
1039
- /**
1040
- * @generated from field: google.protobuf.Timestamp updated_at = 2;
1041
- */
1042
- updatedAt?: Timestamp;
1043
-
1044
- /**
1045
- * @generated from field: optional string updated_by_jti = 3;
1046
- */
1047
- updatedByJti?: string;
1048
- };
1049
-
1050
- /**
1051
- * Describes the message integrations.v1.GetIntegrationStatusResponse.
1052
- * Use `create(GetIntegrationStatusResponseSchema)` to create a new message.
1053
- */
1054
- export declare const GetIntegrationStatusResponseSchema: GenMessage<GetIntegrationStatusResponse>;
1055
-
1056
- /**
1057
- * Write path for integration_status. Called by the gateway's status
1058
- * resolver on behalf of scoped-token middleware callers after a sync
1059
- * cycle. The handler accepts either an admin session or a scoped token
1060
- * carrying status:write, and pulls tenant from the caller's context.
1061
- *
1062
- * Fields are flat to avoid dragging the SubscriptionHealth / AuthStatus
1063
- * enums into the write shape — middleware reports these as free-text
1064
- * strings that the resolver maps 1:1 to integration_status rows.
1065
- *
1066
- * @generated from message integrations.v1.UpsertIntegrationStatusRequest
1067
- */
1068
- export declare type UpsertIntegrationStatusRequest = Message<"integrations.v1.UpsertIntegrationStatusRequest"> & {
1069
- /**
1070
- * @generated from field: string project_id = 1;
1071
- */
1072
- projectId: string;
1073
-
1074
- /**
1075
- * @generated from field: string integration_name = 2;
1076
- */
1077
- integrationName: string;
1078
-
1079
- /**
1080
- * @generated from field: optional google.protobuf.Timestamp last_sync_at = 3;
1081
- */
1082
- lastSyncAt?: Timestamp;
1083
-
1084
- /**
1085
- * @generated from field: optional int64 last_sync_duration_ms = 4;
1086
- */
1087
- lastSyncDurationMs?: bigint;
1088
-
1089
- /**
1090
- * @generated from field: optional int64 last_sync_record_count = 5;
1091
- */
1092
- lastSyncRecordCount?: bigint;
1093
-
1094
- /**
1095
- * @generated from field: optional string last_error = 6;
1096
- */
1097
- lastError?: string;
1098
-
1099
- /**
1100
- * @generated from field: optional google.protobuf.Timestamp last_error_at = 7;
1101
- */
1102
- lastErrorAt?: Timestamp;
1103
-
1104
- /**
1105
- * @generated from field: optional string subscription_health = 8;
1106
- */
1107
- subscriptionHealth?: string;
1108
-
1109
- /**
1110
- * @generated from field: optional string auth_status = 9;
1111
- */
1112
- authStatus?: string;
1113
-
1114
- /**
1115
- * @generated from field: optional string deletion_strategy = 10;
1116
- */
1117
- deletionStrategy?: string;
1118
-
1119
- /**
1120
- * @generated from field: optional google.protobuf.Struct extra = 11;
1121
- */
1122
- extra?: JsonObject;
1123
- };
1124
-
1125
- /**
1126
- * Describes the message integrations.v1.UpsertIntegrationStatusRequest.
1127
- * Use `create(UpsertIntegrationStatusRequestSchema)` to create a new message.
1128
- */
1129
- export declare const UpsertIntegrationStatusRequestSchema: GenMessage<UpsertIntegrationStatusRequest>;
1130
-
1131
- /**
1132
- * @generated from message integrations.v1.UpsertIntegrationStatusResponse
1133
- */
1134
- export declare type UpsertIntegrationStatusResponse = Message<"integrations.v1.UpsertIntegrationStatusResponse"> & {
1135
- /**
1136
- * @generated from field: google.protobuf.Timestamp updated_at = 1;
1137
- */
1138
- updatedAt?: Timestamp;
1139
- };
1140
-
1141
- /**
1142
- * Describes the message integrations.v1.UpsertIntegrationStatusResponse.
1143
- * Use `create(UpsertIntegrationStatusResponseSchema)` to create a new message.
1144
- */
1145
- export declare const UpsertIntegrationStatusResponseSchema: GenMessage<UpsertIntegrationStatusResponse>;
1146
-
1147
- /**
1148
- * Flow 2 ("manual trigger") in the doc. Mints a 30-minute scoped token with
1149
- * the same capability set a webhook delivery would carry and POSTs it to
1150
- * `${middleware.url}/trigger`. The RPC does NOT block on sync completion —
1151
- * it returns the middleware's immediate response (typically a 202) and the
1152
- * middleware reports progress via the existing status endpoint.
1153
- *
1154
- * @generated from message integrations.v1.TriggerSyncRequest
1155
- */
1156
- export declare type TriggerSyncRequest = Message<"integrations.v1.TriggerSyncRequest"> & {
1157
- /**
1158
- * @generated from field: string project_id = 1;
1159
- */
1160
- projectId: string;
1161
-
1162
- /**
1163
- * @generated from field: string name = 2;
1164
- */
1165
- name: string;
1166
- };
1167
-
1168
- /**
1169
- * Describes the message integrations.v1.TriggerSyncRequest.
1170
- * Use `create(TriggerSyncRequestSchema)` to create a new message.
1171
- */
1172
- export declare const TriggerSyncRequestSchema: GenMessage<TriggerSyncRequest>;
1173
-
1174
- /**
1175
- * @generated from message integrations.v1.TriggerSyncResponse
1176
- */
1177
- export declare type TriggerSyncResponse = Message<"integrations.v1.TriggerSyncResponse"> & {
1178
- /**
1179
- * @generated from field: int32 middleware_http_status = 1;
1180
- */
1181
- middlewareHttpStatus: number;
1182
-
1183
- /**
1184
- * @generated from field: string middleware_body = 2;
1185
- */
1186
- middlewareBody: string;
1187
-
1188
- /**
1189
- * @generated from field: google.protobuf.Timestamp triggered_at = 3;
1190
- */
1191
- triggeredAt?: Timestamp;
1192
-
1193
- /**
1194
- * JTI of the scoped token minted for this trigger. Logged on auth_events
1195
- * with source=manual_trigger and propagated through the middleware's
1196
- * subsequent callbacks so the admin UI can correlate.
1197
- *
1198
- * @generated from field: string token_jti = 4;
1199
- */
1200
- tokenJti: string;
1201
- };
1202
-
1203
- /**
1204
- * Describes the message integrations.v1.TriggerSyncResponse.
1205
- * Use `create(TriggerSyncResponseSchema)` to create a new message.
1206
- */
1207
- export declare const TriggerSyncResponseSchema: GenMessage<TriggerSyncResponse>;
1208
-
1209
- /**
1210
- * Structured validation result. Runs protovalidate-go on the submitted config
1211
- * plus the DB-level cross-reference checks (model existence, field presence,
1212
- * dimension/locale/permission resolution) that protovalidate can't express
1213
- * without DB access.
1214
- *
1215
- * @generated from message integrations.v1.ValidationIssue
1216
- */
1217
- export declare type ValidationIssue = Message<"integrations.v1.ValidationIssue"> & {
1218
- /**
1219
- * Dotted field path into the submitted config, e.g.
1220
- * "integrations.shopify-storefront.sync.product.model". May be empty for
1221
- * root-level issues.
1222
- *
1223
- * @generated from field: string field_path = 1;
1224
- */
1225
- fieldPath: string;
1226
-
1227
- /**
1228
- * @generated from field: string message = 2;
1229
- */
1230
- message: string;
1231
- };
1232
-
1233
- /**
1234
- * Describes the message integrations.v1.ValidationIssue.
1235
- * Use `create(ValidationIssueSchema)` to create a new message.
1236
- */
1237
- export declare const ValidationIssueSchema: GenMessage<ValidationIssue>;
1238
-
1239
- /**
1240
- * @generated from message integrations.v1.ValidateConfigRequest
1241
- */
1242
- export declare type ValidateConfigRequest = Message<"integrations.v1.ValidateConfigRequest"> & {
1243
- /**
1244
- * Full config blob (the same shape foir push sends to ApplyConfig). Runs
1245
- * the full validation pipeline without writing anything.
1246
- *
1247
- * @generated from field: google.protobuf.Struct config = 1;
1248
- */
1249
- config?: JsonObject;
1250
- };
1251
-
1252
- /**
1253
- * Describes the message integrations.v1.ValidateConfigRequest.
1254
- * Use `create(ValidateConfigRequestSchema)` to create a new message.
1255
- */
1256
- export declare const ValidateConfigRequestSchema: GenMessage<ValidateConfigRequest>;
1257
-
1258
- /**
1259
- * @generated from message integrations.v1.ValidateConfigResponse
1260
- */
1261
- export declare type ValidateConfigResponse = Message<"integrations.v1.ValidateConfigResponse"> & {
1262
- /**
1263
- * @generated from field: repeated integrations.v1.ValidationIssue errors = 1;
1264
- */
1265
- errors: ValidationIssue[];
1266
-
1267
- /**
1268
- * @generated from field: repeated integrations.v1.ValidationIssue warnings = 2;
1269
- */
1270
- warnings: ValidationIssue[];
1271
- };
1272
-
1273
- /**
1274
- * Describes the message integrations.v1.ValidateConfigResponse.
1275
- * Use `create(ValidateConfigResponseSchema)` to create a new message.
1276
- */
1277
- export declare const ValidateConfigResponseSchema: GenMessage<ValidateConfigResponse>;
1278
-
1279
- /**
1280
- * Entry in the project's last-applied config history. The full raw JSON is
1281
- * fetched separately via GetConfigHistoryEntry so the list page doesn't carry
1282
- * per-row blobs that can be tens of KB each.
1283
- *
1284
- * @generated from message integrations.v1.ConfigHistoryEntry
1285
- */
1286
- export declare type ConfigHistoryEntry = Message<"integrations.v1.ConfigHistoryEntry"> & {
1287
- /**
1288
- * @generated from field: string id = 1;
1289
- */
1290
- id: string;
1291
-
1292
- /**
1293
- * @generated from field: google.protobuf.Timestamp pushed_at = 2;
1294
- */
1295
- pushedAt?: Timestamp;
1296
-
1297
- /**
1298
- * Free-text identity of who pushed — admin user id for admin-session
1299
- * pushes, "foir push (CLI)" for CLI pushes, "api:<client_id>" for machine.
1300
- *
1301
- * @generated from field: string pushed_by = 3;
1302
- */
1303
- pushedBy: string;
1304
-
1305
- /**
1306
- * Lowercase source label for filter UIs: "cli", "admin", "api".
1307
- *
1308
- * @generated from field: string source = 4;
1309
- */
1310
- source: string;
1311
-
1312
- /**
1313
- * @generated from field: bool ok = 5;
1314
- */
1315
- ok: boolean;
1316
-
1317
- /**
1318
- * One-line summary: "4 models, 1 integration" or "error: model foo missing".
1319
- *
1320
- * @generated from field: string result_summary = 6;
1321
- */
1322
- resultSummary: string;
1323
-
1324
- /**
1325
- * @generated from field: bool has_diff = 7;
1326
- */
1327
- hasDiff: boolean;
1328
- };
1329
-
1330
- /**
1331
- * Describes the message integrations.v1.ConfigHistoryEntry.
1332
- * Use `create(ConfigHistoryEntrySchema)` to create a new message.
1333
- */
1334
- export declare const ConfigHistoryEntrySchema: GenMessage<ConfigHistoryEntry>;
1335
-
1336
- /**
1337
- * @generated from message integrations.v1.ListConfigHistoryRequest
1338
- */
1339
- export declare type ListConfigHistoryRequest = Message<"integrations.v1.ListConfigHistoryRequest"> & {
1340
- /**
1341
- * @generated from field: string project_id = 1;
1342
- */
1343
- projectId: string;
1344
-
1345
- /**
1346
- * Optional page size. Server-side cap of 200, default 50.
1347
- *
1348
- * @generated from field: int32 limit = 2;
1349
- */
1350
- limit: number;
1351
-
1352
- /**
1353
- * Opaque cursor from the previous response's next_cursor. Empty for first
1354
- * page.
1355
- *
1356
- * @generated from field: string cursor = 3;
1357
- */
1358
- cursor: string;
1359
- };
1360
-
1361
- /**
1362
- * Describes the message integrations.v1.ListConfigHistoryRequest.
1363
- * Use `create(ListConfigHistoryRequestSchema)` to create a new message.
1364
- */
1365
- export declare const ListConfigHistoryRequestSchema: GenMessage<ListConfigHistoryRequest>;
1366
-
1367
- /**
1368
- * @generated from message integrations.v1.ListConfigHistoryResponse
1369
- */
1370
- export declare type ListConfigHistoryResponse = Message<"integrations.v1.ListConfigHistoryResponse"> & {
1371
- /**
1372
- * @generated from field: repeated integrations.v1.ConfigHistoryEntry entries = 1;
1373
- */
1374
- entries: ConfigHistoryEntry[];
1375
-
1376
- /**
1377
- * Empty string when there are no more entries.
1378
- *
1379
- * @generated from field: string next_cursor = 2;
1380
- */
1381
- nextCursor: string;
1382
- };
1383
-
1384
- /**
1385
- * Describes the message integrations.v1.ListConfigHistoryResponse.
1386
- * Use `create(ListConfigHistoryResponseSchema)` to create a new message.
1387
- */
1388
- export declare const ListConfigHistoryResponseSchema: GenMessage<ListConfigHistoryResponse>;
1389
-
1390
- /**
1391
- * @generated from message integrations.v1.GetConfigHistoryEntryRequest
1392
- */
1393
- export declare type GetConfigHistoryEntryRequest = Message<"integrations.v1.GetConfigHistoryEntryRequest"> & {
1394
- /**
1395
- * @generated from field: string project_id = 1;
1396
- */
1397
- projectId: string;
1398
-
1399
- /**
1400
- * @generated from field: string id = 2;
1401
- */
1402
- id: string;
1403
- };
1404
-
1405
- /**
1406
- * Describes the message integrations.v1.GetConfigHistoryEntryRequest.
1407
- * Use `create(GetConfigHistoryEntryRequestSchema)` to create a new message.
1408
- */
1409
- export declare const GetConfigHistoryEntryRequestSchema: GenMessage<GetConfigHistoryEntryRequest>;
1410
-
1411
- /**
1412
- * @generated from message integrations.v1.GetConfigHistoryEntryResponse
1413
- */
1414
- export declare type GetConfigHistoryEntryResponse = Message<"integrations.v1.GetConfigHistoryEntryResponse"> & {
1415
- /**
1416
- * @generated from field: integrations.v1.ConfigHistoryEntry entry = 1;
1417
- */
1418
- entry?: ConfigHistoryEntry;
1419
-
1420
- /**
1421
- * Raw applied config blob. Populated only by this RPC.
1422
- *
1423
- * @generated from field: google.protobuf.Struct config_json = 2;
1424
- */
1425
- configJson?: JsonObject;
1426
-
1427
- /**
1428
- * Unified-diff style text against the previous entry, precomputed at
1429
- * write time. Empty if this was the first entry for the project.
1430
- *
1431
- * @generated from field: string diff_from_previous = 3;
1432
- */
1433
- diffFromPrevious: string;
1434
- };
1435
-
1436
- /**
1437
- * Describes the message integrations.v1.GetConfigHistoryEntryResponse.
1438
- * Use `create(GetConfigHistoryEntryResponseSchema)` to create a new message.
1439
- */
1440
- export declare const GetConfigHistoryEntryResponseSchema: GenMessage<GetConfigHistoryEntryResponse>;
1441
-
1442
- /**
1443
- * Credential strategies the middleware uses when talking to the external
1444
- * service. Drives which authorization flow the admin UI renders.
1445
- *
1446
- * @generated from enum integrations.v1.CredentialStrategy
1447
- */
1448
- export enum CredentialStrategy {
1449
- /**
1450
- * @generated from enum value: CREDENTIAL_STRATEGY_UNSPECIFIED = 0;
1451
- */
1452
- UNSPECIFIED = 0,
1453
-
1454
- /**
1455
- * @generated from enum value: CREDENTIAL_STRATEGY_OAUTH = 1;
1456
- */
1457
- OAUTH = 1,
1458
-
1459
- /**
1460
- * @generated from enum value: CREDENTIAL_STRATEGY_API_KEY = 2;
1461
- */
1462
- API_KEY = 2,
1463
-
1464
- /**
1465
- * @generated from enum value: CREDENTIAL_STRATEGY_SHARED_SECRET = 3;
1466
- */
1467
- SHARED_SECRET = 3,
1468
-
1469
- /**
1470
- * @generated from enum value: CREDENTIAL_STRATEGY_SSH_KEY = 4;
1471
- */
1472
- SSH_KEY = 4,
1473
-
1474
- /**
1475
- * @generated from enum value: CREDENTIAL_STRATEGY_NONE = 5;
1476
- */
1477
- NONE = 5,
1478
-
1479
- /**
1480
- * @generated from enum value: CREDENTIAL_STRATEGY_MANAGED = 6;
1481
- */
1482
- MANAGED = 6,
1483
- }
1484
-
1485
- /**
1486
- * Describes the enum integrations.v1.CredentialStrategy.
1487
- */
1488
- export declare const CredentialStrategySchema: GenEnum<CredentialStrategy>;
1489
-
1490
- /**
1491
- * Subscription health reported by the middleware for the external-service
1492
- * webhook subscription this integration depends on.
1493
- *
1494
- * @generated from enum integrations.v1.SubscriptionHealth
1495
- */
1496
- export enum SubscriptionHealth {
1497
- /**
1498
- * @generated from enum value: SUBSCRIPTION_HEALTH_UNSPECIFIED = 0;
1499
- */
1500
- UNSPECIFIED = 0,
1501
-
1502
- /**
1503
- * @generated from enum value: SUBSCRIPTION_HEALTH_OK = 1;
1504
- */
1505
- OK = 1,
1506
-
1507
- /**
1508
- * @generated from enum value: SUBSCRIPTION_HEALTH_STALE = 2;
1509
- */
1510
- STALE = 2,
1511
-
1512
- /**
1513
- * @generated from enum value: SUBSCRIPTION_HEALTH_BROKEN = 3;
1514
- */
1515
- BROKEN = 3,
1516
- }
1517
-
1518
- /**
1519
- * Describes the enum integrations.v1.SubscriptionHealth.
1520
- */
1521
- export declare const SubscriptionHealthSchema: GenEnum<SubscriptionHealth>;
1522
-
1523
- /**
1524
- * Auth status reported by the middleware for the external-service credentials.
1525
- *
1526
- * @generated from enum integrations.v1.AuthStatus
1527
- */
1528
- export enum AuthStatus {
1529
- /**
1530
- * @generated from enum value: AUTH_STATUS_UNSPECIFIED = 0;
1531
- */
1532
- UNSPECIFIED = 0,
1533
-
1534
- /**
1535
- * @generated from enum value: AUTH_STATUS_OK = 1;
1536
- */
1537
- OK = 1,
1538
-
1539
- /**
1540
- * @generated from enum value: AUTH_STATUS_EXPIRED = 2;
1541
- */
1542
- EXPIRED = 2,
1543
-
1544
- /**
1545
- * @generated from enum value: AUTH_STATUS_REVOKED = 3;
1546
- */
1547
- REVOKED = 3,
1548
- }
1549
-
1550
- /**
1551
- * Describes the enum integrations.v1.AuthStatus.
1552
- */
1553
- export declare const AuthStatusSchema: GenEnum<AuthStatus>;
1554
-
1555
- /**
1556
- * @generated from enum integrations.v1.ExtensionTarget
1557
- */
1558
- export enum ExtensionTarget {
1559
- /**
1560
- * @generated from enum value: EXTENSION_TARGET_UNSPECIFIED = 0;
1561
- */
1562
- UNSPECIFIED = 0,
1563
-
1564
- /**
1565
- * @generated from enum value: EXTENSION_TARGET_RECORD = 1;
1566
- */
1567
- RECORD = 1,
1568
-
1569
- /**
1570
- * @generated from enum value: EXTENSION_TARGET_MODEL_LIST = 2;
1571
- */
1572
- MODEL_LIST = 2,
1573
- }
1574
-
1575
- /**
1576
- * Describes the enum integrations.v1.ExtensionTarget.
1577
- */
1578
- export declare const ExtensionTargetSchema: GenEnum<ExtensionTarget>;
1579
-
1580
- /**
1581
- * @generated from service integrations.v1.IntegrationCredentialsService
1582
- */
1583
- export declare const IntegrationCredentialsService: GenService<{
1584
- /**
1585
- * Return the plaintext credential for (project, integration). Requires
1586
- * the caller's capability set to include credentials:read for this
1587
- * integration. On success, updates last_read_at and emits an audit row.
1588
- *
1589
- * @generated from rpc integrations.v1.IntegrationCredentialsService.GetIntegrationCredential
1590
- */
1591
- getIntegrationCredential: {
1592
- methodKind: "unary";
1593
- input: typeof GetIntegrationCredentialRequestSchema;
1594
- output: typeof GetIntegrationCredentialResponseSchema;
1595
- },
1596
- /**
1597
- * Encrypt and store a credential for (project, integration). Overwrites
1598
- * any existing value. Requires the caller's capability set to include
1599
- * credentials:write for this integration. Emits an audit row of kind
1600
- * credential_write.
1601
- *
1602
- * @generated from rpc integrations.v1.IntegrationCredentialsService.WriteIntegrationCredential
1603
- */
1604
- writeIntegrationCredential: {
1605
- methodKind: "unary";
1606
- input: typeof WriteIntegrationCredentialRequestSchema;
1607
- output: typeof WriteIntegrationCredentialResponseSchema;
1608
- },
1609
- }>;
1610
-
1611
- /**
1612
- * @generated from service integrations.v1.IntegrationAuthService
1613
- */
1614
- export declare const IntegrationAuthService: GenService<{
1615
- /**
1616
- * Create a single-use exchange ticket for the given (project, integration)
1617
- * with capability credentials:write. The admin caller must have
1618
- * TENANT_OWNER / PROJECT_ADMIN (or be a platform admin) for the target
1619
- * project. Emits an auth_events row of kind ticket_issue.
1620
- *
1621
- * @generated from rpc integrations.v1.IntegrationAuthService.IssueExchangeTicket
1622
- */
1623
- issueExchangeTicket: {
1624
- methodKind: "unary";
1625
- input: typeof IssueExchangeTicketRequestSchema;
1626
- output: typeof IssueExchangeTicketResponseSchema;
1627
- },
1628
- /**
1629
- * Atomically redeem a ticket and return the resolved subject.
1630
- *
1631
- * @generated from rpc integrations.v1.IntegrationAuthService.RedeemExchangeTicket
1632
- */
1633
- redeemExchangeTicket: {
1634
- methodKind: "unary";
1635
- input: typeof RedeemExchangeTicketRequestSchema;
1636
- output: typeof RedeemExchangeTicketResponseSchema;
1637
- },
1638
- }>;
1639
-
1640
- /**
1641
- * @generated from service integrations.v1.IntegrationsService
1642
- */
1643
- export declare const IntegrationsService: GenService<{
1644
- /**
1645
- * @generated from rpc integrations.v1.IntegrationsService.ListIntegrations
1646
- */
1647
- listIntegrations: {
1648
- methodKind: "unary";
1649
- input: typeof ListIntegrationsRequestSchema;
1650
- output: typeof ListIntegrationsResponseSchema;
1651
- },
1652
- /**
1653
- * @generated from rpc integrations.v1.IntegrationsService.GetIntegration
1654
- */
1655
- getIntegration: {
1656
- methodKind: "unary";
1657
- input: typeof GetIntegrationRequestSchema;
1658
- output: typeof GetIntegrationResponseSchema;
1659
- },
1660
- /**
1661
- * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegration
1662
- */
1663
- upsertIntegration: {
1664
- methodKind: "unary";
1665
- input: typeof UpsertIntegrationRequestSchema;
1666
- output: typeof UpsertIntegrationResponseSchema;
1667
- },
1668
- /**
1669
- * @generated from rpc integrations.v1.IntegrationsService.DeleteIntegration
1670
- */
1671
- deleteIntegration: {
1672
- methodKind: "unary";
1673
- input: typeof DeleteIntegrationRequestSchema;
1674
- output: typeof DeleteIntegrationResponseSchema;
1675
- },
1676
- /**
1677
- * @generated from rpc integrations.v1.IntegrationsService.ListExtensions
1678
- */
1679
- listExtensions: {
1680
- methodKind: "unary";
1681
- input: typeof ListExtensionsRequestSchema;
1682
- output: typeof ListExtensionsResponseSchema;
1683
- },
1684
- /**
1685
- * @generated from rpc integrations.v1.IntegrationsService.GetExtension
1686
- */
1687
- getExtension: {
1688
- methodKind: "unary";
1689
- input: typeof GetExtensionRequestSchema;
1690
- output: typeof GetExtensionResponseSchema;
1691
- },
1692
- /**
1693
- * @generated from rpc integrations.v1.IntegrationsService.UpsertExtension
1694
- */
1695
- upsertExtension: {
1696
- methodKind: "unary";
1697
- input: typeof UpsertExtensionRequestSchema;
1698
- output: typeof UpsertExtensionResponseSchema;
1699
- },
1700
- /**
1701
- * @generated from rpc integrations.v1.IntegrationsService.DeleteExtension
1702
- */
1703
- deleteExtension: {
1704
- methodKind: "unary";
1705
- input: typeof DeleteExtensionRequestSchema;
1706
- output: typeof DeleteExtensionResponseSchema;
1707
- },
1708
- /**
1709
- * @generated from rpc integrations.v1.IntegrationsService.GetIntegrationStatus
1710
- */
1711
- getIntegrationStatus: {
1712
- methodKind: "unary";
1713
- input: typeof GetIntegrationStatusRequestSchema;
1714
- output: typeof GetIntegrationStatusResponseSchema;
1715
- },
1716
- /**
1717
- * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegrationStatus
1718
- */
1719
- upsertIntegrationStatus: {
1720
- methodKind: "unary";
1721
- input: typeof UpsertIntegrationStatusRequestSchema;
1722
- output: typeof UpsertIntegrationStatusResponseSchema;
1723
- },
1724
- /**
1725
- * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
1726
- */
1727
- triggerSync: {
1728
- methodKind: "unary";
1729
- input: typeof TriggerSyncRequestSchema;
1730
- output: typeof TriggerSyncResponseSchema;
1731
- },
1732
- /**
1733
- * @generated from rpc integrations.v1.IntegrationsService.ValidateConfig
1734
- */
1735
- validateConfig: {
1736
- methodKind: "unary";
1737
- input: typeof ValidateConfigRequestSchema;
1738
- output: typeof ValidateConfigResponseSchema;
1739
- },
1740
- /**
1741
- * @generated from rpc integrations.v1.IntegrationsService.ListConfigHistory
1742
- */
1743
- listConfigHistory: {
1744
- methodKind: "unary";
1745
- input: typeof ListConfigHistoryRequestSchema;
1746
- output: typeof ListConfigHistoryResponseSchema;
1747
- },
1748
- /**
1749
- * @generated from rpc integrations.v1.IntegrationsService.GetConfigHistoryEntry
1750
- */
1751
- getConfigHistoryEntry: {
1752
- methodKind: "unary";
1753
- input: typeof GetConfigHistoryEntryRequestSchema;
1754
- output: typeof GetConfigHistoryEntryResponseSchema;
1755
- },
1756
- }>;
1757
-