@eide/foir-proto-ts 0.4.0 → 0.6.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.
@@ -20,6 +20,12 @@ export declare const file_integrations_v1_integrations: GenFile;
20
20
  */
21
21
  export declare type IntegrationMiddleware = Message<"integrations.v1.IntegrationMiddleware"> & {
22
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
+ *
23
29
  * @generated from field: string url = 1;
24
30
  */
25
31
  url: string;
@@ -42,6 +48,10 @@ export declare const IntegrationMiddlewareSchema: GenMessage<IntegrationMiddlewa
42
48
  */
43
49
  export declare type IntegrationCredentials = Message<"integrations.v1.IntegrationCredentials"> & {
44
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
+ *
45
55
  * @generated from field: integrations.v1.CredentialStrategy strategy = 1;
46
56
  */
47
57
  strategy: CredentialStrategy;
@@ -513,6 +523,745 @@ export declare type WriteIntegrationCredentialResponse = Message<"integrations.v
513
523
  */
514
524
  export declare const WriteIntegrationCredentialResponseSchema: GenMessage<WriteIntegrationCredentialResponse>;
515
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 /api/v1/auth/exchange-ticket.
554
+ *
555
+ * @generated from field: string ticket = 1;
556
+ */
557
+ ticket: string;
558
+
559
+ /**
560
+ * Absolute expiry (10 minutes from issue). After this point the ticket
561
+ * is rejected even if it has not yet been redeemed.
562
+ *
563
+ * @generated from field: google.protobuf.Timestamp expires_at = 2;
564
+ */
565
+ expiresAt?: Timestamp;
566
+ };
567
+
568
+ /**
569
+ * Describes the message integrations.v1.IssueExchangeTicketResponse.
570
+ * Use `create(IssueExchangeTicketResponseSchema)` to create a new message.
571
+ */
572
+ export declare const IssueExchangeTicketResponseSchema: GenMessage<IssueExchangeTicketResponse>;
573
+
574
+ /**
575
+ * Summary row returned in ListIntegrationsResponse. Bundles the declaration
576
+ * with the operational status glyphs the list page renders, so the admin UI
577
+ * doesn't need a fan-out per row.
578
+ *
579
+ * @generated from message integrations.v1.IntegrationSummary
580
+ */
581
+ export declare type IntegrationSummary = Message<"integrations.v1.IntegrationSummary"> & {
582
+ /**
583
+ * @generated from field: integrations.v1.IntegrationConfig config = 1;
584
+ */
585
+ config?: IntegrationConfig;
586
+
587
+ /**
588
+ * True iff an integration_credentials row exists for this (project, name).
589
+ * Drives the "authorized / unauthorized" column in the list view.
590
+ *
591
+ * @generated from field: bool authorized = 2;
592
+ */
593
+ authorized: boolean;
594
+
595
+ /**
596
+ * Current integration_status row, if any. Absent if the middleware has
597
+ * never reported a cycle.
598
+ *
599
+ * @generated from field: optional integrations.v1.IntegrationStatus status = 3;
600
+ */
601
+ status?: IntegrationStatus;
602
+
603
+ /**
604
+ * Stable gateway webhook URL — same string for every caller and cycle.
605
+ * Included in the summary so the list page can show copyable URLs without
606
+ * a second round trip per row.
607
+ *
608
+ * @generated from field: string webhook_url = 4;
609
+ */
610
+ webhookUrl: string;
611
+ };
612
+
613
+ /**
614
+ * Describes the message integrations.v1.IntegrationSummary.
615
+ * Use `create(IntegrationSummarySchema)` to create a new message.
616
+ */
617
+ export declare const IntegrationSummarySchema: GenMessage<IntegrationSummary>;
618
+
619
+ /**
620
+ * @generated from message integrations.v1.ListIntegrationsRequest
621
+ */
622
+ export declare type ListIntegrationsRequest = Message<"integrations.v1.ListIntegrationsRequest"> & {
623
+ /**
624
+ * @generated from field: string project_id = 1;
625
+ */
626
+ projectId: string;
627
+ };
628
+
629
+ /**
630
+ * Describes the message integrations.v1.ListIntegrationsRequest.
631
+ * Use `create(ListIntegrationsRequestSchema)` to create a new message.
632
+ */
633
+ export declare const ListIntegrationsRequestSchema: GenMessage<ListIntegrationsRequest>;
634
+
635
+ /**
636
+ * @generated from message integrations.v1.ListIntegrationsResponse
637
+ */
638
+ export declare type ListIntegrationsResponse = Message<"integrations.v1.ListIntegrationsResponse"> & {
639
+ /**
640
+ * @generated from field: repeated integrations.v1.IntegrationSummary integrations = 1;
641
+ */
642
+ integrations: IntegrationSummary[];
643
+ };
644
+
645
+ /**
646
+ * Describes the message integrations.v1.ListIntegrationsResponse.
647
+ * Use `create(ListIntegrationsResponseSchema)` to create a new message.
648
+ */
649
+ export declare const ListIntegrationsResponseSchema: GenMessage<ListIntegrationsResponse>;
650
+
651
+ /**
652
+ * @generated from message integrations.v1.GetIntegrationRequest
653
+ */
654
+ export declare type GetIntegrationRequest = Message<"integrations.v1.GetIntegrationRequest"> & {
655
+ /**
656
+ * @generated from field: string project_id = 1;
657
+ */
658
+ projectId: string;
659
+
660
+ /**
661
+ * @generated from field: string name = 2;
662
+ */
663
+ name: string;
664
+ };
665
+
666
+ /**
667
+ * Describes the message integrations.v1.GetIntegrationRequest.
668
+ * Use `create(GetIntegrationRequestSchema)` to create a new message.
669
+ */
670
+ export declare const GetIntegrationRequestSchema: GenMessage<GetIntegrationRequest>;
671
+
672
+ /**
673
+ * @generated from message integrations.v1.GetIntegrationResponse
674
+ */
675
+ export declare type GetIntegrationResponse = Message<"integrations.v1.GetIntegrationResponse"> & {
676
+ /**
677
+ * @generated from field: integrations.v1.IntegrationConfig config = 1;
678
+ */
679
+ config?: IntegrationConfig;
680
+
681
+ /**
682
+ * @generated from field: optional integrations.v1.IntegrationStatus status = 2;
683
+ */
684
+ status?: IntegrationStatus;
685
+
686
+ /**
687
+ * @generated from field: bool authorized = 3;
688
+ */
689
+ authorized: boolean;
690
+
691
+ /**
692
+ * Stable gateway URL an operator registers with the external service. The
693
+ * admin detail page surfaces this as copyable text.
694
+ *
695
+ * @generated from field: string webhook_url = 4;
696
+ */
697
+ webhookUrl: string;
698
+ };
699
+
700
+ /**
701
+ * Describes the message integrations.v1.GetIntegrationResponse.
702
+ * Use `create(GetIntegrationResponseSchema)` to create a new message.
703
+ */
704
+ export declare const GetIntegrationResponseSchema: GenMessage<GetIntegrationResponse>;
705
+
706
+ /**
707
+ * @generated from message integrations.v1.UpsertIntegrationRequest
708
+ */
709
+ export declare type UpsertIntegrationRequest = Message<"integrations.v1.UpsertIntegrationRequest"> & {
710
+ /**
711
+ * @generated from field: string project_id = 1;
712
+ */
713
+ projectId: string;
714
+
715
+ /**
716
+ * Full integration declaration. Name inside config.name must match the
717
+ * URL-path name on write; the handler rejects a mismatch.
718
+ *
719
+ * @generated from field: integrations.v1.IntegrationConfig config = 2;
720
+ */
721
+ config?: IntegrationConfig;
722
+ };
723
+
724
+ /**
725
+ * Describes the message integrations.v1.UpsertIntegrationRequest.
726
+ * Use `create(UpsertIntegrationRequestSchema)` to create a new message.
727
+ */
728
+ export declare const UpsertIntegrationRequestSchema: GenMessage<UpsertIntegrationRequest>;
729
+
730
+ /**
731
+ * @generated from message integrations.v1.UpsertIntegrationResponse
732
+ */
733
+ export declare type UpsertIntegrationResponse = Message<"integrations.v1.UpsertIntegrationResponse"> & {
734
+ /**
735
+ * @generated from field: integrations.v1.IntegrationConfig config = 1;
736
+ */
737
+ config?: IntegrationConfig;
738
+
739
+ /**
740
+ * @generated from field: string webhook_url = 2;
741
+ */
742
+ webhookUrl: string;
743
+ };
744
+
745
+ /**
746
+ * Describes the message integrations.v1.UpsertIntegrationResponse.
747
+ * Use `create(UpsertIntegrationResponseSchema)` to create a new message.
748
+ */
749
+ export declare const UpsertIntegrationResponseSchema: GenMessage<UpsertIntegrationResponse>;
750
+
751
+ /**
752
+ * @generated from message integrations.v1.DeleteIntegrationRequest
753
+ */
754
+ export declare type DeleteIntegrationRequest = Message<"integrations.v1.DeleteIntegrationRequest"> & {
755
+ /**
756
+ * @generated from field: string project_id = 1;
757
+ */
758
+ projectId: string;
759
+
760
+ /**
761
+ * @generated from field: string name = 2;
762
+ */
763
+ name: string;
764
+ };
765
+
766
+ /**
767
+ * Describes the message integrations.v1.DeleteIntegrationRequest.
768
+ * Use `create(DeleteIntegrationRequestSchema)` to create a new message.
769
+ */
770
+ export declare const DeleteIntegrationRequestSchema: GenMessage<DeleteIntegrationRequest>;
771
+
772
+ /**
773
+ * @generated from message integrations.v1.DeleteIntegrationResponse
774
+ */
775
+ export declare type DeleteIntegrationResponse = Message<"integrations.v1.DeleteIntegrationResponse"> & {
776
+ };
777
+
778
+ /**
779
+ * Describes the message integrations.v1.DeleteIntegrationResponse.
780
+ * Use `create(DeleteIntegrationResponseSchema)` to create a new message.
781
+ */
782
+ export declare const DeleteIntegrationResponseSchema: GenMessage<DeleteIntegrationResponse>;
783
+
784
+ /**
785
+ * @generated from message integrations.v1.ListExtensionsRequest
786
+ */
787
+ export declare type ListExtensionsRequest = Message<"integrations.v1.ListExtensionsRequest"> & {
788
+ /**
789
+ * @generated from field: string project_id = 1;
790
+ */
791
+ projectId: string;
792
+ };
793
+
794
+ /**
795
+ * Describes the message integrations.v1.ListExtensionsRequest.
796
+ * Use `create(ListExtensionsRequestSchema)` to create a new message.
797
+ */
798
+ export declare const ListExtensionsRequestSchema: GenMessage<ListExtensionsRequest>;
799
+
800
+ /**
801
+ * @generated from message integrations.v1.ListExtensionsResponse
802
+ */
803
+ export declare type ListExtensionsResponse = Message<"integrations.v1.ListExtensionsResponse"> & {
804
+ /**
805
+ * @generated from field: repeated integrations.v1.ExtensionConfig extensions = 1;
806
+ */
807
+ extensions: ExtensionConfig[];
808
+ };
809
+
810
+ /**
811
+ * Describes the message integrations.v1.ListExtensionsResponse.
812
+ * Use `create(ListExtensionsResponseSchema)` to create a new message.
813
+ */
814
+ export declare const ListExtensionsResponseSchema: GenMessage<ListExtensionsResponse>;
815
+
816
+ /**
817
+ * @generated from message integrations.v1.GetExtensionRequest
818
+ */
819
+ export declare type GetExtensionRequest = Message<"integrations.v1.GetExtensionRequest"> & {
820
+ /**
821
+ * @generated from field: string project_id = 1;
822
+ */
823
+ projectId: string;
824
+
825
+ /**
826
+ * @generated from field: string name = 2;
827
+ */
828
+ name: string;
829
+ };
830
+
831
+ /**
832
+ * Describes the message integrations.v1.GetExtensionRequest.
833
+ * Use `create(GetExtensionRequestSchema)` to create a new message.
834
+ */
835
+ export declare const GetExtensionRequestSchema: GenMessage<GetExtensionRequest>;
836
+
837
+ /**
838
+ * @generated from message integrations.v1.GetExtensionResponse
839
+ */
840
+ export declare type GetExtensionResponse = Message<"integrations.v1.GetExtensionResponse"> & {
841
+ /**
842
+ * @generated from field: integrations.v1.ExtensionConfig extension = 1;
843
+ */
844
+ extension?: ExtensionConfig;
845
+ };
846
+
847
+ /**
848
+ * Describes the message integrations.v1.GetExtensionResponse.
849
+ * Use `create(GetExtensionResponseSchema)` to create a new message.
850
+ */
851
+ export declare const GetExtensionResponseSchema: GenMessage<GetExtensionResponse>;
852
+
853
+ /**
854
+ * @generated from message integrations.v1.UpsertExtensionRequest
855
+ */
856
+ export declare type UpsertExtensionRequest = Message<"integrations.v1.UpsertExtensionRequest"> & {
857
+ /**
858
+ * @generated from field: string project_id = 1;
859
+ */
860
+ projectId: string;
861
+
862
+ /**
863
+ * @generated from field: integrations.v1.ExtensionConfig config = 2;
864
+ */
865
+ config?: ExtensionConfig;
866
+ };
867
+
868
+ /**
869
+ * Describes the message integrations.v1.UpsertExtensionRequest.
870
+ * Use `create(UpsertExtensionRequestSchema)` to create a new message.
871
+ */
872
+ export declare const UpsertExtensionRequestSchema: GenMessage<UpsertExtensionRequest>;
873
+
874
+ /**
875
+ * @generated from message integrations.v1.UpsertExtensionResponse
876
+ */
877
+ export declare type UpsertExtensionResponse = Message<"integrations.v1.UpsertExtensionResponse"> & {
878
+ /**
879
+ * @generated from field: integrations.v1.ExtensionConfig config = 1;
880
+ */
881
+ config?: ExtensionConfig;
882
+ };
883
+
884
+ /**
885
+ * Describes the message integrations.v1.UpsertExtensionResponse.
886
+ * Use `create(UpsertExtensionResponseSchema)` to create a new message.
887
+ */
888
+ export declare const UpsertExtensionResponseSchema: GenMessage<UpsertExtensionResponse>;
889
+
890
+ /**
891
+ * @generated from message integrations.v1.DeleteExtensionRequest
892
+ */
893
+ export declare type DeleteExtensionRequest = Message<"integrations.v1.DeleteExtensionRequest"> & {
894
+ /**
895
+ * @generated from field: string project_id = 1;
896
+ */
897
+ projectId: string;
898
+
899
+ /**
900
+ * @generated from field: string name = 2;
901
+ */
902
+ name: string;
903
+ };
904
+
905
+ /**
906
+ * Describes the message integrations.v1.DeleteExtensionRequest.
907
+ * Use `create(DeleteExtensionRequestSchema)` to create a new message.
908
+ */
909
+ export declare const DeleteExtensionRequestSchema: GenMessage<DeleteExtensionRequest>;
910
+
911
+ /**
912
+ * @generated from message integrations.v1.DeleteExtensionResponse
913
+ */
914
+ export declare type DeleteExtensionResponse = Message<"integrations.v1.DeleteExtensionResponse"> & {
915
+ };
916
+
917
+ /**
918
+ * Describes the message integrations.v1.DeleteExtensionResponse.
919
+ * Use `create(DeleteExtensionResponseSchema)` to create a new message.
920
+ */
921
+ export declare const DeleteExtensionResponseSchema: GenMessage<DeleteExtensionResponse>;
922
+
923
+ /**
924
+ * @generated from message integrations.v1.GetIntegrationStatusRequest
925
+ */
926
+ export declare type GetIntegrationStatusRequest = Message<"integrations.v1.GetIntegrationStatusRequest"> & {
927
+ /**
928
+ * @generated from field: string project_id = 1;
929
+ */
930
+ projectId: string;
931
+
932
+ /**
933
+ * @generated from field: string name = 2;
934
+ */
935
+ name: string;
936
+ };
937
+
938
+ /**
939
+ * Describes the message integrations.v1.GetIntegrationStatusRequest.
940
+ * Use `create(GetIntegrationStatusRequestSchema)` to create a new message.
941
+ */
942
+ export declare const GetIntegrationStatusRequestSchema: GenMessage<GetIntegrationStatusRequest>;
943
+
944
+ /**
945
+ * @generated from message integrations.v1.GetIntegrationStatusResponse
946
+ */
947
+ export declare type GetIntegrationStatusResponse = Message<"integrations.v1.GetIntegrationStatusResponse"> & {
948
+ /**
949
+ * @generated from field: optional integrations.v1.IntegrationStatus status = 1;
950
+ */
951
+ status?: IntegrationStatus;
952
+
953
+ /**
954
+ * @generated from field: google.protobuf.Timestamp updated_at = 2;
955
+ */
956
+ updatedAt?: Timestamp;
957
+
958
+ /**
959
+ * @generated from field: optional string updated_by_jti = 3;
960
+ */
961
+ updatedByJti?: string;
962
+ };
963
+
964
+ /**
965
+ * Describes the message integrations.v1.GetIntegrationStatusResponse.
966
+ * Use `create(GetIntegrationStatusResponseSchema)` to create a new message.
967
+ */
968
+ export declare const GetIntegrationStatusResponseSchema: GenMessage<GetIntegrationStatusResponse>;
969
+
970
+ /**
971
+ * Flow 2 ("manual trigger") in the doc. Mints a 30-minute scoped token with
972
+ * the same capability set a webhook delivery would carry and POSTs it to
973
+ * `${middleware.url}/trigger`. The RPC does NOT block on sync completion —
974
+ * it returns the middleware's immediate response (typically a 202) and the
975
+ * middleware reports progress via the existing status endpoint.
976
+ *
977
+ * @generated from message integrations.v1.TriggerSyncRequest
978
+ */
979
+ export declare type TriggerSyncRequest = Message<"integrations.v1.TriggerSyncRequest"> & {
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.TriggerSyncRequest.
993
+ * Use `create(TriggerSyncRequestSchema)` to create a new message.
994
+ */
995
+ export declare const TriggerSyncRequestSchema: GenMessage<TriggerSyncRequest>;
996
+
997
+ /**
998
+ * @generated from message integrations.v1.TriggerSyncResponse
999
+ */
1000
+ export declare type TriggerSyncResponse = Message<"integrations.v1.TriggerSyncResponse"> & {
1001
+ /**
1002
+ * @generated from field: int32 middleware_http_status = 1;
1003
+ */
1004
+ middlewareHttpStatus: number;
1005
+
1006
+ /**
1007
+ * @generated from field: string middleware_body = 2;
1008
+ */
1009
+ middlewareBody: string;
1010
+
1011
+ /**
1012
+ * @generated from field: google.protobuf.Timestamp triggered_at = 3;
1013
+ */
1014
+ triggeredAt?: Timestamp;
1015
+
1016
+ /**
1017
+ * JTI of the scoped token minted for this trigger. Logged on auth_events
1018
+ * with source=manual_trigger and propagated through the middleware's
1019
+ * subsequent callbacks so the admin UI can correlate.
1020
+ *
1021
+ * @generated from field: string token_jti = 4;
1022
+ */
1023
+ tokenJti: string;
1024
+ };
1025
+
1026
+ /**
1027
+ * Describes the message integrations.v1.TriggerSyncResponse.
1028
+ * Use `create(TriggerSyncResponseSchema)` to create a new message.
1029
+ */
1030
+ export declare const TriggerSyncResponseSchema: GenMessage<TriggerSyncResponse>;
1031
+
1032
+ /**
1033
+ * Structured validation result. Runs protovalidate-go on the submitted config
1034
+ * plus the DB-level cross-reference checks (model existence, field presence,
1035
+ * dimension/locale/permission resolution) that protovalidate can't express
1036
+ * without DB access.
1037
+ *
1038
+ * @generated from message integrations.v1.ValidationIssue
1039
+ */
1040
+ export declare type ValidationIssue = Message<"integrations.v1.ValidationIssue"> & {
1041
+ /**
1042
+ * Dotted field path into the submitted config, e.g.
1043
+ * "integrations.shopify-storefront.sync.product.model". May be empty for
1044
+ * root-level issues.
1045
+ *
1046
+ * @generated from field: string field_path = 1;
1047
+ */
1048
+ fieldPath: string;
1049
+
1050
+ /**
1051
+ * @generated from field: string message = 2;
1052
+ */
1053
+ message: string;
1054
+ };
1055
+
1056
+ /**
1057
+ * Describes the message integrations.v1.ValidationIssue.
1058
+ * Use `create(ValidationIssueSchema)` to create a new message.
1059
+ */
1060
+ export declare const ValidationIssueSchema: GenMessage<ValidationIssue>;
1061
+
1062
+ /**
1063
+ * @generated from message integrations.v1.ValidateConfigRequest
1064
+ */
1065
+ export declare type ValidateConfigRequest = Message<"integrations.v1.ValidateConfigRequest"> & {
1066
+ /**
1067
+ * Full config blob (the same shape foir push sends to ApplyConfig). Runs
1068
+ * the full validation pipeline without writing anything.
1069
+ *
1070
+ * @generated from field: google.protobuf.Struct config = 1;
1071
+ */
1072
+ config?: JsonObject;
1073
+ };
1074
+
1075
+ /**
1076
+ * Describes the message integrations.v1.ValidateConfigRequest.
1077
+ * Use `create(ValidateConfigRequestSchema)` to create a new message.
1078
+ */
1079
+ export declare const ValidateConfigRequestSchema: GenMessage<ValidateConfigRequest>;
1080
+
1081
+ /**
1082
+ * @generated from message integrations.v1.ValidateConfigResponse
1083
+ */
1084
+ export declare type ValidateConfigResponse = Message<"integrations.v1.ValidateConfigResponse"> & {
1085
+ /**
1086
+ * @generated from field: repeated integrations.v1.ValidationIssue errors = 1;
1087
+ */
1088
+ errors: ValidationIssue[];
1089
+
1090
+ /**
1091
+ * @generated from field: repeated integrations.v1.ValidationIssue warnings = 2;
1092
+ */
1093
+ warnings: ValidationIssue[];
1094
+ };
1095
+
1096
+ /**
1097
+ * Describes the message integrations.v1.ValidateConfigResponse.
1098
+ * Use `create(ValidateConfigResponseSchema)` to create a new message.
1099
+ */
1100
+ export declare const ValidateConfigResponseSchema: GenMessage<ValidateConfigResponse>;
1101
+
1102
+ /**
1103
+ * Entry in the project's last-applied config history. The full raw JSON is
1104
+ * fetched separately via GetConfigHistoryEntry so the list page doesn't carry
1105
+ * per-row blobs that can be tens of KB each.
1106
+ *
1107
+ * @generated from message integrations.v1.ConfigHistoryEntry
1108
+ */
1109
+ export declare type ConfigHistoryEntry = Message<"integrations.v1.ConfigHistoryEntry"> & {
1110
+ /**
1111
+ * @generated from field: string id = 1;
1112
+ */
1113
+ id: string;
1114
+
1115
+ /**
1116
+ * @generated from field: google.protobuf.Timestamp pushed_at = 2;
1117
+ */
1118
+ pushedAt?: Timestamp;
1119
+
1120
+ /**
1121
+ * Free-text identity of who pushed — admin user id for admin-session
1122
+ * pushes, "foir push (CLI)" for CLI pushes, "api:<client_id>" for machine.
1123
+ *
1124
+ * @generated from field: string pushed_by = 3;
1125
+ */
1126
+ pushedBy: string;
1127
+
1128
+ /**
1129
+ * Lowercase source label for filter UIs: "cli", "admin", "api".
1130
+ *
1131
+ * @generated from field: string source = 4;
1132
+ */
1133
+ source: string;
1134
+
1135
+ /**
1136
+ * @generated from field: bool ok = 5;
1137
+ */
1138
+ ok: boolean;
1139
+
1140
+ /**
1141
+ * One-line summary: "4 models, 1 integration" or "error: model foo missing".
1142
+ *
1143
+ * @generated from field: string result_summary = 6;
1144
+ */
1145
+ resultSummary: string;
1146
+
1147
+ /**
1148
+ * @generated from field: bool has_diff = 7;
1149
+ */
1150
+ hasDiff: boolean;
1151
+ };
1152
+
1153
+ /**
1154
+ * Describes the message integrations.v1.ConfigHistoryEntry.
1155
+ * Use `create(ConfigHistoryEntrySchema)` to create a new message.
1156
+ */
1157
+ export declare const ConfigHistoryEntrySchema: GenMessage<ConfigHistoryEntry>;
1158
+
1159
+ /**
1160
+ * @generated from message integrations.v1.ListConfigHistoryRequest
1161
+ */
1162
+ export declare type ListConfigHistoryRequest = Message<"integrations.v1.ListConfigHistoryRequest"> & {
1163
+ /**
1164
+ * @generated from field: string project_id = 1;
1165
+ */
1166
+ projectId: string;
1167
+
1168
+ /**
1169
+ * Optional page size. Server-side cap of 200, default 50.
1170
+ *
1171
+ * @generated from field: int32 limit = 2;
1172
+ */
1173
+ limit: number;
1174
+
1175
+ /**
1176
+ * Opaque cursor from the previous response's next_cursor. Empty for first
1177
+ * page.
1178
+ *
1179
+ * @generated from field: string cursor = 3;
1180
+ */
1181
+ cursor: string;
1182
+ };
1183
+
1184
+ /**
1185
+ * Describes the message integrations.v1.ListConfigHistoryRequest.
1186
+ * Use `create(ListConfigHistoryRequestSchema)` to create a new message.
1187
+ */
1188
+ export declare const ListConfigHistoryRequestSchema: GenMessage<ListConfigHistoryRequest>;
1189
+
1190
+ /**
1191
+ * @generated from message integrations.v1.ListConfigHistoryResponse
1192
+ */
1193
+ export declare type ListConfigHistoryResponse = Message<"integrations.v1.ListConfigHistoryResponse"> & {
1194
+ /**
1195
+ * @generated from field: repeated integrations.v1.ConfigHistoryEntry entries = 1;
1196
+ */
1197
+ entries: ConfigHistoryEntry[];
1198
+
1199
+ /**
1200
+ * Empty string when there are no more entries.
1201
+ *
1202
+ * @generated from field: string next_cursor = 2;
1203
+ */
1204
+ nextCursor: string;
1205
+ };
1206
+
1207
+ /**
1208
+ * Describes the message integrations.v1.ListConfigHistoryResponse.
1209
+ * Use `create(ListConfigHistoryResponseSchema)` to create a new message.
1210
+ */
1211
+ export declare const ListConfigHistoryResponseSchema: GenMessage<ListConfigHistoryResponse>;
1212
+
1213
+ /**
1214
+ * @generated from message integrations.v1.GetConfigHistoryEntryRequest
1215
+ */
1216
+ export declare type GetConfigHistoryEntryRequest = Message<"integrations.v1.GetConfigHistoryEntryRequest"> & {
1217
+ /**
1218
+ * @generated from field: string project_id = 1;
1219
+ */
1220
+ projectId: string;
1221
+
1222
+ /**
1223
+ * @generated from field: string id = 2;
1224
+ */
1225
+ id: string;
1226
+ };
1227
+
1228
+ /**
1229
+ * Describes the message integrations.v1.GetConfigHistoryEntryRequest.
1230
+ * Use `create(GetConfigHistoryEntryRequestSchema)` to create a new message.
1231
+ */
1232
+ export declare const GetConfigHistoryEntryRequestSchema: GenMessage<GetConfigHistoryEntryRequest>;
1233
+
1234
+ /**
1235
+ * @generated from message integrations.v1.GetConfigHistoryEntryResponse
1236
+ */
1237
+ export declare type GetConfigHistoryEntryResponse = Message<"integrations.v1.GetConfigHistoryEntryResponse"> & {
1238
+ /**
1239
+ * @generated from field: integrations.v1.ConfigHistoryEntry entry = 1;
1240
+ */
1241
+ entry?: ConfigHistoryEntry;
1242
+
1243
+ /**
1244
+ * Raw applied config blob. Populated only by this RPC.
1245
+ *
1246
+ * @generated from field: google.protobuf.Struct config_json = 2;
1247
+ */
1248
+ configJson?: JsonObject;
1249
+
1250
+ /**
1251
+ * Unified-diff style text against the previous entry, precomputed at
1252
+ * write time. Empty if this was the first entry for the project.
1253
+ *
1254
+ * @generated from field: string diff_from_previous = 3;
1255
+ */
1256
+ diffFromPrevious: string;
1257
+ };
1258
+
1259
+ /**
1260
+ * Describes the message integrations.v1.GetConfigHistoryEntryResponse.
1261
+ * Use `create(GetConfigHistoryEntryResponseSchema)` to create a new message.
1262
+ */
1263
+ export declare const GetConfigHistoryEntryResponseSchema: GenMessage<GetConfigHistoryEntryResponse>;
1264
+
516
1265
  /**
517
1266
  * Credential strategies the middleware uses when talking to the external
518
1267
  * service. Drives which authorization flow the admin UI renders.
@@ -682,3 +1431,132 @@ export declare const IntegrationCredentialsService: GenService<{
682
1431
  },
683
1432
  }>;
684
1433
 
1434
+ /**
1435
+ * @generated from service integrations.v1.IntegrationAuthService
1436
+ */
1437
+ export declare const IntegrationAuthService: GenService<{
1438
+ /**
1439
+ * Create a single-use exchange ticket for the given (project, integration)
1440
+ * with capability credentials:write. The admin caller must have
1441
+ * TENANT_OWNER / PROJECT_ADMIN (or be a platform admin) for the target
1442
+ * project. Emits an auth_events row of kind ticket_issue.
1443
+ *
1444
+ * @generated from rpc integrations.v1.IntegrationAuthService.IssueExchangeTicket
1445
+ */
1446
+ issueExchangeTicket: {
1447
+ methodKind: "unary";
1448
+ input: typeof IssueExchangeTicketRequestSchema;
1449
+ output: typeof IssueExchangeTicketResponseSchema;
1450
+ },
1451
+ }>;
1452
+
1453
+ /**
1454
+ * @generated from service integrations.v1.IntegrationsService
1455
+ */
1456
+ export declare const IntegrationsService: GenService<{
1457
+ /**
1458
+ * @generated from rpc integrations.v1.IntegrationsService.ListIntegrations
1459
+ */
1460
+ listIntegrations: {
1461
+ methodKind: "unary";
1462
+ input: typeof ListIntegrationsRequestSchema;
1463
+ output: typeof ListIntegrationsResponseSchema;
1464
+ },
1465
+ /**
1466
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegration
1467
+ */
1468
+ getIntegration: {
1469
+ methodKind: "unary";
1470
+ input: typeof GetIntegrationRequestSchema;
1471
+ output: typeof GetIntegrationResponseSchema;
1472
+ },
1473
+ /**
1474
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegration
1475
+ */
1476
+ upsertIntegration: {
1477
+ methodKind: "unary";
1478
+ input: typeof UpsertIntegrationRequestSchema;
1479
+ output: typeof UpsertIntegrationResponseSchema;
1480
+ },
1481
+ /**
1482
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteIntegration
1483
+ */
1484
+ deleteIntegration: {
1485
+ methodKind: "unary";
1486
+ input: typeof DeleteIntegrationRequestSchema;
1487
+ output: typeof DeleteIntegrationResponseSchema;
1488
+ },
1489
+ /**
1490
+ * @generated from rpc integrations.v1.IntegrationsService.ListExtensions
1491
+ */
1492
+ listExtensions: {
1493
+ methodKind: "unary";
1494
+ input: typeof ListExtensionsRequestSchema;
1495
+ output: typeof ListExtensionsResponseSchema;
1496
+ },
1497
+ /**
1498
+ * @generated from rpc integrations.v1.IntegrationsService.GetExtension
1499
+ */
1500
+ getExtension: {
1501
+ methodKind: "unary";
1502
+ input: typeof GetExtensionRequestSchema;
1503
+ output: typeof GetExtensionResponseSchema;
1504
+ },
1505
+ /**
1506
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertExtension
1507
+ */
1508
+ upsertExtension: {
1509
+ methodKind: "unary";
1510
+ input: typeof UpsertExtensionRequestSchema;
1511
+ output: typeof UpsertExtensionResponseSchema;
1512
+ },
1513
+ /**
1514
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteExtension
1515
+ */
1516
+ deleteExtension: {
1517
+ methodKind: "unary";
1518
+ input: typeof DeleteExtensionRequestSchema;
1519
+ output: typeof DeleteExtensionResponseSchema;
1520
+ },
1521
+ /**
1522
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegrationStatus
1523
+ */
1524
+ getIntegrationStatus: {
1525
+ methodKind: "unary";
1526
+ input: typeof GetIntegrationStatusRequestSchema;
1527
+ output: typeof GetIntegrationStatusResponseSchema;
1528
+ },
1529
+ /**
1530
+ * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
1531
+ */
1532
+ triggerSync: {
1533
+ methodKind: "unary";
1534
+ input: typeof TriggerSyncRequestSchema;
1535
+ output: typeof TriggerSyncResponseSchema;
1536
+ },
1537
+ /**
1538
+ * @generated from rpc integrations.v1.IntegrationsService.ValidateConfig
1539
+ */
1540
+ validateConfig: {
1541
+ methodKind: "unary";
1542
+ input: typeof ValidateConfigRequestSchema;
1543
+ output: typeof ValidateConfigResponseSchema;
1544
+ },
1545
+ /**
1546
+ * @generated from rpc integrations.v1.IntegrationsService.ListConfigHistory
1547
+ */
1548
+ listConfigHistory: {
1549
+ methodKind: "unary";
1550
+ input: typeof ListConfigHistoryRequestSchema;
1551
+ output: typeof ListConfigHistoryResponseSchema;
1552
+ },
1553
+ /**
1554
+ * @generated from rpc integrations.v1.IntegrationsService.GetConfigHistoryEntry
1555
+ */
1556
+ getConfigHistoryEntry: {
1557
+ methodKind: "unary";
1558
+ input: typeof GetConfigHistoryEntryRequestSchema;
1559
+ output: typeof GetConfigHistoryEntryResponseSchema;
1560
+ },
1561
+ }>;
1562
+