@eide/foir-proto-ts 0.5.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./analytics/v1/analytics_pb": "./src/analytics/v1/analytics_pb.js",
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
6
+ import { DeleteExtensionRequest, DeleteExtensionResponse, DeleteIntegrationRequest, DeleteIntegrationResponse, GetConfigHistoryEntryRequest, GetConfigHistoryEntryResponse, GetExtensionRequest, GetExtensionResponse, GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, GetIntegrationRequest, GetIntegrationResponse, GetIntegrationStatusRequest, GetIntegrationStatusResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, ListConfigHistoryRequest, ListConfigHistoryResponse, ListExtensionsRequest, ListExtensionsResponse, ListIntegrationsRequest, ListIntegrationsResponse, TriggerSyncRequest, TriggerSyncResponse, UpsertExtensionRequest, UpsertExtensionResponse, UpsertIntegrationRequest, UpsertIntegrationResponse, ValidateConfigRequest, ValidateConfigResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -65,3 +65,129 @@ export declare const IntegrationAuthService: {
65
65
  }
66
66
  };
67
67
 
68
+ /**
69
+ * @generated from service integrations.v1.IntegrationsService
70
+ */
71
+ export declare const IntegrationsService: {
72
+ readonly typeName: "integrations.v1.IntegrationsService",
73
+ readonly methods: {
74
+ /**
75
+ * @generated from rpc integrations.v1.IntegrationsService.ListIntegrations
76
+ */
77
+ readonly listIntegrations: {
78
+ readonly name: "ListIntegrations",
79
+ readonly I: typeof ListIntegrationsRequest,
80
+ readonly O: typeof ListIntegrationsResponse,
81
+ readonly kind: MethodKind.Unary,
82
+ },
83
+ /**
84
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegration
85
+ */
86
+ readonly getIntegration: {
87
+ readonly name: "GetIntegration",
88
+ readonly I: typeof GetIntegrationRequest,
89
+ readonly O: typeof GetIntegrationResponse,
90
+ readonly kind: MethodKind.Unary,
91
+ },
92
+ /**
93
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegration
94
+ */
95
+ readonly upsertIntegration: {
96
+ readonly name: "UpsertIntegration",
97
+ readonly I: typeof UpsertIntegrationRequest,
98
+ readonly O: typeof UpsertIntegrationResponse,
99
+ readonly kind: MethodKind.Unary,
100
+ },
101
+ /**
102
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteIntegration
103
+ */
104
+ readonly deleteIntegration: {
105
+ readonly name: "DeleteIntegration",
106
+ readonly I: typeof DeleteIntegrationRequest,
107
+ readonly O: typeof DeleteIntegrationResponse,
108
+ readonly kind: MethodKind.Unary,
109
+ },
110
+ /**
111
+ * @generated from rpc integrations.v1.IntegrationsService.ListExtensions
112
+ */
113
+ readonly listExtensions: {
114
+ readonly name: "ListExtensions",
115
+ readonly I: typeof ListExtensionsRequest,
116
+ readonly O: typeof ListExtensionsResponse,
117
+ readonly kind: MethodKind.Unary,
118
+ },
119
+ /**
120
+ * @generated from rpc integrations.v1.IntegrationsService.GetExtension
121
+ */
122
+ readonly getExtension: {
123
+ readonly name: "GetExtension",
124
+ readonly I: typeof GetExtensionRequest,
125
+ readonly O: typeof GetExtensionResponse,
126
+ readonly kind: MethodKind.Unary,
127
+ },
128
+ /**
129
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertExtension
130
+ */
131
+ readonly upsertExtension: {
132
+ readonly name: "UpsertExtension",
133
+ readonly I: typeof UpsertExtensionRequest,
134
+ readonly O: typeof UpsertExtensionResponse,
135
+ readonly kind: MethodKind.Unary,
136
+ },
137
+ /**
138
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteExtension
139
+ */
140
+ readonly deleteExtension: {
141
+ readonly name: "DeleteExtension",
142
+ readonly I: typeof DeleteExtensionRequest,
143
+ readonly O: typeof DeleteExtensionResponse,
144
+ readonly kind: MethodKind.Unary,
145
+ },
146
+ /**
147
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegrationStatus
148
+ */
149
+ readonly getIntegrationStatus: {
150
+ readonly name: "GetIntegrationStatus",
151
+ readonly I: typeof GetIntegrationStatusRequest,
152
+ readonly O: typeof GetIntegrationStatusResponse,
153
+ readonly kind: MethodKind.Unary,
154
+ },
155
+ /**
156
+ * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
157
+ */
158
+ readonly triggerSync: {
159
+ readonly name: "TriggerSync",
160
+ readonly I: typeof TriggerSyncRequest,
161
+ readonly O: typeof TriggerSyncResponse,
162
+ readonly kind: MethodKind.Unary,
163
+ },
164
+ /**
165
+ * @generated from rpc integrations.v1.IntegrationsService.ValidateConfig
166
+ */
167
+ readonly validateConfig: {
168
+ readonly name: "ValidateConfig",
169
+ readonly I: typeof ValidateConfigRequest,
170
+ readonly O: typeof ValidateConfigResponse,
171
+ readonly kind: MethodKind.Unary,
172
+ },
173
+ /**
174
+ * @generated from rpc integrations.v1.IntegrationsService.ListConfigHistory
175
+ */
176
+ readonly listConfigHistory: {
177
+ readonly name: "ListConfigHistory",
178
+ readonly I: typeof ListConfigHistoryRequest,
179
+ readonly O: typeof ListConfigHistoryResponse,
180
+ readonly kind: MethodKind.Unary,
181
+ },
182
+ /**
183
+ * @generated from rpc integrations.v1.IntegrationsService.GetConfigHistoryEntry
184
+ */
185
+ readonly getConfigHistoryEntry: {
186
+ readonly name: "GetConfigHistoryEntry",
187
+ readonly I: typeof GetConfigHistoryEntryRequest,
188
+ readonly O: typeof GetConfigHistoryEntryResponse,
189
+ readonly kind: MethodKind.Unary,
190
+ },
191
+ }
192
+ };
193
+
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
6
+ import { DeleteExtensionRequest, DeleteExtensionResponse, DeleteIntegrationRequest, DeleteIntegrationResponse, GetConfigHistoryEntryRequest, GetConfigHistoryEntryResponse, GetExtensionRequest, GetExtensionResponse, GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, GetIntegrationRequest, GetIntegrationResponse, GetIntegrationStatusRequest, GetIntegrationStatusResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, ListConfigHistoryRequest, ListConfigHistoryResponse, ListExtensionsRequest, ListExtensionsResponse, ListIntegrationsRequest, ListIntegrationsResponse, TriggerSyncRequest, TriggerSyncResponse, UpsertExtensionRequest, UpsertExtensionResponse, UpsertIntegrationRequest, UpsertIntegrationResponse, ValidateConfigRequest, ValidateConfigResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -65,3 +65,129 @@ export const IntegrationAuthService = {
65
65
  }
66
66
  };
67
67
 
68
+ /**
69
+ * @generated from service integrations.v1.IntegrationsService
70
+ */
71
+ export const IntegrationsService = {
72
+ typeName: "integrations.v1.IntegrationsService",
73
+ methods: {
74
+ /**
75
+ * @generated from rpc integrations.v1.IntegrationsService.ListIntegrations
76
+ */
77
+ listIntegrations: {
78
+ name: "ListIntegrations",
79
+ I: ListIntegrationsRequest,
80
+ O: ListIntegrationsResponse,
81
+ kind: MethodKind.Unary,
82
+ },
83
+ /**
84
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegration
85
+ */
86
+ getIntegration: {
87
+ name: "GetIntegration",
88
+ I: GetIntegrationRequest,
89
+ O: GetIntegrationResponse,
90
+ kind: MethodKind.Unary,
91
+ },
92
+ /**
93
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegration
94
+ */
95
+ upsertIntegration: {
96
+ name: "UpsertIntegration",
97
+ I: UpsertIntegrationRequest,
98
+ O: UpsertIntegrationResponse,
99
+ kind: MethodKind.Unary,
100
+ },
101
+ /**
102
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteIntegration
103
+ */
104
+ deleteIntegration: {
105
+ name: "DeleteIntegration",
106
+ I: DeleteIntegrationRequest,
107
+ O: DeleteIntegrationResponse,
108
+ kind: MethodKind.Unary,
109
+ },
110
+ /**
111
+ * @generated from rpc integrations.v1.IntegrationsService.ListExtensions
112
+ */
113
+ listExtensions: {
114
+ name: "ListExtensions",
115
+ I: ListExtensionsRequest,
116
+ O: ListExtensionsResponse,
117
+ kind: MethodKind.Unary,
118
+ },
119
+ /**
120
+ * @generated from rpc integrations.v1.IntegrationsService.GetExtension
121
+ */
122
+ getExtension: {
123
+ name: "GetExtension",
124
+ I: GetExtensionRequest,
125
+ O: GetExtensionResponse,
126
+ kind: MethodKind.Unary,
127
+ },
128
+ /**
129
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertExtension
130
+ */
131
+ upsertExtension: {
132
+ name: "UpsertExtension",
133
+ I: UpsertExtensionRequest,
134
+ O: UpsertExtensionResponse,
135
+ kind: MethodKind.Unary,
136
+ },
137
+ /**
138
+ * @generated from rpc integrations.v1.IntegrationsService.DeleteExtension
139
+ */
140
+ deleteExtension: {
141
+ name: "DeleteExtension",
142
+ I: DeleteExtensionRequest,
143
+ O: DeleteExtensionResponse,
144
+ kind: MethodKind.Unary,
145
+ },
146
+ /**
147
+ * @generated from rpc integrations.v1.IntegrationsService.GetIntegrationStatus
148
+ */
149
+ getIntegrationStatus: {
150
+ name: "GetIntegrationStatus",
151
+ I: GetIntegrationStatusRequest,
152
+ O: GetIntegrationStatusResponse,
153
+ kind: MethodKind.Unary,
154
+ },
155
+ /**
156
+ * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
157
+ */
158
+ triggerSync: {
159
+ name: "TriggerSync",
160
+ I: TriggerSyncRequest,
161
+ O: TriggerSyncResponse,
162
+ kind: MethodKind.Unary,
163
+ },
164
+ /**
165
+ * @generated from rpc integrations.v1.IntegrationsService.ValidateConfig
166
+ */
167
+ validateConfig: {
168
+ name: "ValidateConfig",
169
+ I: ValidateConfigRequest,
170
+ O: ValidateConfigResponse,
171
+ kind: MethodKind.Unary,
172
+ },
173
+ /**
174
+ * @generated from rpc integrations.v1.IntegrationsService.ListConfigHistory
175
+ */
176
+ listConfigHistory: {
177
+ name: "ListConfigHistory",
178
+ I: ListConfigHistoryRequest,
179
+ O: ListConfigHistoryResponse,
180
+ kind: MethodKind.Unary,
181
+ },
182
+ /**
183
+ * @generated from rpc integrations.v1.IntegrationsService.GetConfigHistoryEntry
184
+ */
185
+ getConfigHistoryEntry: {
186
+ name: "GetConfigHistoryEntry",
187
+ I: GetConfigHistoryEntryRequest,
188
+ O: GetConfigHistoryEntryResponse,
189
+ kind: MethodKind.Unary,
190
+ },
191
+ }
192
+ };
193
+
@@ -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;
@@ -561,6 +571,697 @@ export declare type IssueExchangeTicketResponse = Message<"integrations.v1.Issue
561
571
  */
562
572
  export declare const IssueExchangeTicketResponseSchema: GenMessage<IssueExchangeTicketResponse>;
563
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
+
564
1265
  /**
565
1266
  * Credential strategies the middleware uses when talking to the external
566
1267
  * service. Drives which authorization flow the admin UI renders.
@@ -749,3 +1450,113 @@ export declare const IntegrationAuthService: GenService<{
749
1450
  },
750
1451
  }>;
751
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
+
@@ -3,13 +3,14 @@
3
3
  /* eslint-disable */
4
4
 
5
5
  import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
+ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js";
6
7
  import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
8
 
8
9
  /**
9
10
  * Describes the file integrations/v1/integrations.proto.
10
11
  */
11
12
  export const file_integrations_v1_integrations = /*@__PURE__*/
12
- fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiJAoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEgsKA3VybBgBIAEoCSKIAQoWSW50ZWdyYXRpb25DcmVkZW50aWFscxI1CghzdHJhdGVneRgBIAEoDjIjLmludGVncmF0aW9ucy52MS5DcmVkZW50aWFsU3RyYXRlZ3kSLAoGdmFsdWVzGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgkKB192YWx1ZXMiwgEKDk1vZGVsU2VlZEZpZWxkEgwKBHR5cGUYASABKAkSEAoIcmVxdWlyZWQYAiABKAgSEwoLbmF0dXJhbF9rZXkYAyABKAgSEgoFbGFiZWwYBCABKAlIAIgBARIWCgloZWxwX3RleHQYBSABKAlIAYgBARIsCgZjb25maWcYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCCAoGX2xhYmVsQgwKCl9oZWxwX3RleHRCCQoHX2NvbmZpZyKTAQoJTW9kZWxTZWVkEjYKBmZpZWxkcxgBIAMoCzImLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWQuRmllbGRzRW50cnkaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASL0AQoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxINCgVtb2RlbBgBIAEoCRITCgtuYXR1cmFsX2tleRgCIAEoCRJDCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeRIzCgptb2RlbF9zZWVkGAQgASgLMhouaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEgAiAEBGi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDQoLX21vZGVsX3NlZWQi9QMKEUludGVncmF0aW9uU3RhdHVzEjUKDGxhc3Rfc3luY19hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X3N5bmNfZHVyYXRpb25fbXMYAiABKANIAYgBARIjChZsYXN0X3N5bmNfcmVjb3JkX2NvdW50GAMgASgDSAKIAQESFwoKbGFzdF9lcnJvchgEIAEoCUgDiAEBEjYKDWxhc3RfZXJyb3JfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESQAoTc3Vic2NyaXB0aW9uX2hlYWx0aBgGIAEoDjIjLmludGVncmF0aW9ucy52MS5TdWJzY3JpcHRpb25IZWFsdGgSMAoLYXV0aF9zdGF0dXMYByABKA4yGy5pbnRlZ3JhdGlvbnMudjEuQXV0aFN0YXR1cxIeChFkZWxldGlvbl9zdHJhdGVneRgIIAEoCUgFiAEBQg8KDV9sYXN0X3N5bmNfYXRCGAoWX2xhc3Rfc3luY19kdXJhdGlvbl9tc0IZChdfbGFzdF9zeW5jX3JlY29yZF9jb3VudEINCgtfbGFzdF9lcnJvckIQCg5fbGFzdF9lcnJvcl9hdEIUChJfZGVsZXRpb25fc3RyYXRlZ3kiuAMKEUludGVncmF0aW9uQ29uZmlnEgwKBG5hbWUYASABKAkSDwoHZW5hYmxlZBgCIAEoCBI6CgptaWRkbGV3YXJlGAMgASgLMiYuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uTWlkZGxld2FyZRI8CgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEjoKBHN5bmMYBSADKAsyLC5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcuU3luY0VudHJ5Ei4KCHNldHRpbmdzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBGlQKCVN5bmNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZzoCOAFCCwoJX3NldHRpbmdzQgsKCV9tZXRhZGF0YSKoAQoSRXh0ZW5zaW9uUGxhY2VtZW50EjAKBnRhcmdldBgBIAEoDjIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25UYXJnZXQSDQoFbW9kZWwYAiABKAkSCwoDdGFiGAMgASgJEg0KBXRpdGxlGAQgASgJEisKBWhpbnRzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl9oaW50cyKiAQoPRXh0ZW5zaW9uQ29uZmlnEgwKBG5hbWUYASABKAkSCwoDdXJsGAIgASgJEjcKCnBsYWNlbWVudHMYAyADKAsyIy5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uUGxhY2VtZW50Ei4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSLcAQoaSW50ZWdyYXRpb25DcmVkZW50aWFsVmFsdWUSDQoFdmFsdWUYASABKAwSGQoRZW5jcnlwdGlvbl9rZXlfaWQYAiABKAkSNQoMbGFzdF9yZWFkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2xhc3Rfd3JpdHRlbl9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIPCg1fbGFzdF9yZWFkX2F0QhIKEF9sYXN0X3dyaXR0ZW5fYXQiTwofR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhgKEGludGVncmF0aW9uX25hbWUYAiABKAkiYwogR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVzcG9uc2USPwoKY3JlZGVudGlhbBgBIAEoCzIrLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxWYWx1ZSKCAQohV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCRINCgV2YWx1ZRgDIAEoDBIUCgdjb250ZXh0GAQgASgJSACIAQFCCgoIX2NvbnRleHQidAoiV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkoKGklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCSJdChtJc3N1ZUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USDgoGdGlja2V0GAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKoACChJDcmVkZW50aWFsU3RyYXRlZ3kSIwofQ1JFREVOVElBTF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEh0KGUNSRURFTlRJQUxfU1RSQVRFR1lfT0FVVEgQARIfChtDUkVERU5USUFMX1NUUkFURUdZX0FQSV9LRVkQAhIlCiFDUkVERU5USUFMX1NUUkFURUdZX1NIQVJFRF9TRUNSRVQQAxIfChtDUkVERU5USUFMX1NUUkFURUdZX1NTSF9LRVkQBBIcChhDUkVERU5USUFMX1NUUkFURUdZX05PTkUQBRIfChtDUkVERU5USUFMX1NUUkFURUdZX01BTkFHRUQQBiqUAQoSU3Vic2NyaXB0aW9uSGVhbHRoEiMKH1NVQlNDUklQVElPTl9IRUFMVEhfVU5TUEVDSUZJRUQQABIaChZTVUJTQ1JJUFRJT05fSEVBTFRIX09LEAESHQoZU1VCU0NSSVBUSU9OX0hFQUxUSF9TVEFMRRACEh4KGlNVQlNDUklQVElPTl9IRUFMVEhfQlJPS0VOEAMqbwoKQXV0aFN0YXR1cxIbChdBVVRIX1NUQVRVU19VTlNQRUNJRklFRBAAEhIKDkFVVEhfU1RBVFVTX09LEAESFwoTQVVUSF9TVEFUVVNfRVhQSVJFRBACEhcKE0FVVEhfU1RBVFVTX1JFVk9LRUQQAypxCg9FeHRlbnNpb25UYXJnZXQSIAocRVhURU5TSU9OX1RBUkdFVF9VTlNQRUNJRklFRBAAEhsKF0VYVEVOU0lPTl9UQVJHRVRfUkVDT1JEEAESHwobRVhURU5TSU9OX1RBUkdFVF9NT0RFTF9MSVNUEAIyqAIKHUludGVncmF0aW9uQ3JlZGVudGlhbHNTZXJ2aWNlEn8KGEdldEludGVncmF0aW9uQ3JlZGVudGlhbBIwLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0GjEuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlEoUBChpXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbBIyLmludGVncmF0aW9ucy52MS5Xcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QaMy5pbnRlZ3JhdGlvbnMudjEuV3JpdGVJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZTKKAQoWSW50ZWdyYXRpb25BdXRoU2VydmljZRJwChNJc3N1ZUV4Y2hhbmdlVGlja2V0EisuaW50ZWdyYXRpb25zLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0GiwuaW50ZWdyYXRpb25zLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZUJFWkNnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vaW50ZWdyYXRpb25zL3YxO2ludGVncmF0aW9uc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp]);
13
+ fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiPgoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEiUKA3VybBgBIAEoCUIYukgVchMQATIPXmh0dHBzOi8vW14gXSskIpQBChZJbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEkEKCHN0cmF0ZWd5GAEgASgOMiMuaW50ZWdyYXRpb25zLnYxLkNyZWRlbnRpYWxTdHJhdGVneUIKukgHggEEEAEgABIsCgZ2YWx1ZXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCQoHX3ZhbHVlcyLLAQoOTW9kZWxTZWVkRmllbGQSFQoEdHlwZRgBIAEoCUIHukgEcgIQARIQCghyZXF1aXJlZBgCIAEoCBITCgtuYXR1cmFsX2tleRgDIAEoCBISCgVsYWJlbBgEIAEoCUgAiAEBEhYKCWhlbHBfdGV4dBgFIAEoCUgBiAEBEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfbGFiZWxCDAoKX2hlbHBfdGV4dEIJCgdfY29uZmlnIp0BCglNb2RlbFNlZWQSQAoGZmllbGRzGAEgAygLMiYuaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZC5GaWVsZHNFbnRyeUIIukgFmgECCAEaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASKWAgoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxIWCgVtb2RlbBgBIAEoCUIHukgEcgIQARIcCgtuYXR1cmFsX2tleRgCIAEoCUIHukgEcgIQARJTCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeUIOukgLmgEICAEqBHICEAESMwoKbW9kZWxfc2VlZBgEIAEoCzIaLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWRIAIgBARotCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19tb2RlbF9zZWVkIvUDChFJbnRlZ3JhdGlvblN0YXR1cxI1CgxsYXN0X3N5bmNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESIgoVbGFzdF9zeW5jX2R1cmF0aW9uX21zGAIgASgDSAGIAQESIwoWbGFzdF9zeW5jX3JlY29yZF9jb3VudBgDIAEoA0gCiAEBEhcKCmxhc3RfZXJyb3IYBCABKAlIA4gBARI2Cg1sYXN0X2Vycm9yX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEkAKE3N1YnNjcmlwdGlvbl9oZWFsdGgYBiABKA4yIy5pbnRlZ3JhdGlvbnMudjEuU3Vic2NyaXB0aW9uSGVhbHRoEjAKC2F1dGhfc3RhdHVzGAcgASgOMhsuaW50ZWdyYXRpb25zLnYxLkF1dGhTdGF0dXMSHgoRZGVsZXRpb25fc3RyYXRlZ3kYCCABKAlIBYgBAUIPCg1fbGFzdF9zeW5jX2F0QhgKFl9sYXN0X3N5bmNfZHVyYXRpb25fbXNCGQoXX2xhc3Rfc3luY19yZWNvcmRfY291bnRCDQoLX2xhc3RfZXJyb3JCEAoOX2xhc3RfZXJyb3JfYXRCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5IvIDChFJbnRlZ3JhdGlvbkNvbmZpZxI2CgRuYW1lGAEgASgJQii6SCVyIxABGEAyHV5bYS16XVthLXowLTldKigtW2EtejAtOV0rKSokEg8KB2VuYWJsZWQYAiABKAgSQgoKbWlkZGxld2FyZRgDIAEoCzImLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbk1pZGRsZXdhcmVCBrpIA8gBARJECgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzQga6SAPIAQESOgoEc3luYxgFIAMoCzIsLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZy5TeW5jRW50cnkSLgoIc2V0dGluZ3MYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQEaVAoJU3luY0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN5bmNNYXBwaW5nOgI4AUILCglfc2V0dGluZ3NCCwoJX21ldGFkYXRhIs8BChJFeHRlbnNpb25QbGFjZW1lbnQSPAoGdGFyZ2V0GAEgASgOMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblRhcmdldEIKukgHggEEEAEgABIWCgVtb2RlbBgCIAEoCUIHukgEcgIQARIUCgN0YWIYAyABKAlCB7pIBHICEAESFgoFdGl0bGUYBCABKAlCB7pIBHICEAESKwoFaGludHMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCAoGX2hpbnRzIvABCg9FeHRlbnNpb25Db25maWcSNgoEbmFtZRgBIAEoCUIoukglciMQARhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIlCgN1cmwYAiABKAlCGLpIFXITEAEyD15odHRwczovL1teIF0rJBJBCgpwbGFjZW1lbnRzGAMgAygLMiMuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblBsYWNlbWVudEIIukgFkgECCAESLgoIbWV0YWRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhItwBChpJbnRlZ3JhdGlvbkNyZWRlbnRpYWxWYWx1ZRINCgV2YWx1ZRgBIAEoDBIZChFlbmNyeXB0aW9uX2tleV9pZBgCIAEoCRI1CgxsYXN0X3JlYWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPbGFzdF93cml0dGVuX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQg8KDV9sYXN0X3JlYWRfYXRCEgoQX2xhc3Rfd3JpdHRlbl9hdCJPCh9HZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCSJjCiBHZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZRI/CgpjcmVkZW50aWFsGAEgASgLMisuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uQ3JlZGVudGlhbFZhbHVlIoIBCiFXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJEg0KBXZhbHVlGAMgASgMEhQKB2NvbnRleHQYBCABKAlIAIgBAUIKCghfY29udGV4dCJ0CiJXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlEhkKEWVuY3J5cHRpb25fa2V5X2lkGAEgASgJEjMKD2xhc3Rfd3JpdHRlbl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSgoaSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJIl0KG0lzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIOCgZ0aWNrZXQYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAitQEKEkludGVncmF0aW9uU3VtbWFyeRIyCgZjb25maWcYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcSEgoKYXV0aG9yaXplZBgCIAEoCBI3CgZzdGF0dXMYAyABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TdGF0dXNIAIgBARITCgt3ZWJob29rX3VybBgEIAEoCUIJCgdfc3RhdHVzIi0KF0xpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiVQoYTGlzdEludGVncmF0aW9uc1Jlc3BvbnNlEjkKDGludGVncmF0aW9ucxgBIAMoCzIjLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN1bW1hcnkiOQoVR2V0SW50ZWdyYXRpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSK5AQoWR2V0SW50ZWdyYXRpb25SZXNwb25zZRIyCgZjb25maWcYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcSNwoGc3RhdHVzGAIgASgLMiIuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uU3RhdHVzSACIAQESEgoKYXV0aG9yaXplZBgDIAEoCBITCgt3ZWJob29rX3VybBgEIAEoCUIJCgdfc3RhdHVzImIKGFVwc2VydEludGVncmF0aW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEjIKBmNvbmZpZxgCIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZyJkChlVcHNlcnRJbnRlZ3JhdGlvblJlc3BvbnNlEjIKBmNvbmZpZxgBIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZxITCgt3ZWJob29rX3VybBgCIAEoCSI8ChhEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIhsKGURlbGV0ZUludGVncmF0aW9uUmVzcG9uc2UiKwoVTGlzdEV4dGVuc2lvbnNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiTgoWTGlzdEV4dGVuc2lvbnNSZXNwb25zZRI0CgpleHRlbnNpb25zGAEgAygLMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvbkNvbmZpZyI3ChNHZXRFeHRlbnNpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSJLChRHZXRFeHRlbnNpb25SZXNwb25zZRIzCglleHRlbnNpb24YASABKAsyIC5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uQ29uZmlnIl4KFlVwc2VydEV4dGVuc2lvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIwCgZjb25maWcYAiABKAsyIC5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uQ29uZmlnIksKF1Vwc2VydEV4dGVuc2lvblJlc3BvbnNlEjAKBmNvbmZpZxgBIAEoCzIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25Db25maWciOgoWRGVsZXRlRXh0ZW5zaW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiGQoXRGVsZXRlRXh0ZW5zaW9uUmVzcG9uc2UiPwobR2V0SW50ZWdyYXRpb25TdGF0dXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSLCAQocR2V0SW50ZWdyYXRpb25TdGF0dXNSZXNwb25zZRI3CgZzdGF0dXMYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TdGF0dXNIAIgBARIuCgp1cGRhdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbCg51cGRhdGVkX2J5X2p0aRgDIAEoCUgBiAEBQgkKB19zdGF0dXNCEQoPX3VwZGF0ZWRfYnlfanRpIjYKElRyaWdnZXJTeW5jUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkikwEKE1RyaWdnZXJTeW5jUmVzcG9uc2USHgoWbWlkZGxld2FyZV9odHRwX3N0YXR1cxgBIAEoBRIXCg9taWRkbGV3YXJlX2JvZHkYAiABKAkSMAoMdHJpZ2dlcmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl0b2tlbl9qdGkYBCABKAkiNgoPVmFsaWRhdGlvbklzc3VlEhIKCmZpZWxkX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSJAChVWYWxpZGF0ZUNvbmZpZ1JlcXVlc3QSJwoGY29uZmlnGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJ+ChZWYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEjAKBmVycm9ycxgBIAMoCzIgLmludGVncmF0aW9ucy52MS5WYWxpZGF0aW9uSXNzdWUSMgoId2FybmluZ3MYAiADKAsyIC5pbnRlZ3JhdGlvbnMudjEuVmFsaWRhdGlvbklzc3VlIqgBChJDb25maWdIaXN0b3J5RW50cnkSCgoCaWQYASABKAkSLQoJcHVzaGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglwdXNoZWRfYnkYAyABKAkSDgoGc291cmNlGAQgASgJEgoKAm9rGAUgASgIEhYKDnJlc3VsdF9zdW1tYXJ5GAYgASgJEhAKCGhhc19kaWZmGAcgASgIIk0KGExpc3RDb25maWdIaXN0b3J5UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBmN1cnNvchgDIAEoCSJmChlMaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEjQKB2VudHJpZXMYASADKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EhMKC25leHRfY3Vyc29yGAIgASgJIj4KHEdldENvbmZpZ0hpc3RvcnlFbnRyeVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIKCgJpZBgCIAEoCSKdAQodR2V0Q29uZmlnSGlzdG9yeUVudHJ5UmVzcG9uc2USMgoFZW50cnkYASABKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EiwKC2NvbmZpZ19qc29uGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJkaWZmX2Zyb21fcHJldmlvdXMYAyABKAkqgAIKEkNyZWRlbnRpYWxTdHJhdGVneRIjCh9DUkVERU5USUFMX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASHQoZQ1JFREVOVElBTF9TVFJBVEVHWV9PQVVUSBABEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfQVBJX0tFWRACEiUKIUNSRURFTlRJQUxfU1RSQVRFR1lfU0hBUkVEX1NFQ1JFVBADEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfU1NIX0tFWRAEEhwKGENSRURFTlRJQUxfU1RSQVRFR1lfTk9ORRAFEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfTUFOQUdFRBAGKpQBChJTdWJzY3JpcHRpb25IZWFsdGgSIwofU1VCU0NSSVBUSU9OX0hFQUxUSF9VTlNQRUNJRklFRBAAEhoKFlNVQlNDUklQVElPTl9IRUFMVEhfT0sQARIdChlTVUJTQ1JJUFRJT05fSEVBTFRIX1NUQUxFEAISHgoaU1VCU0NSSVBUSU9OX0hFQUxUSF9CUk9LRU4QAypvCgpBdXRoU3RhdHVzEhsKF0FVVEhfU1RBVFVTX1VOU1BFQ0lGSUVEEAASEgoOQVVUSF9TVEFUVVNfT0sQARIXChNBVVRIX1NUQVRVU19FWFBJUkVEEAISFwoTQVVUSF9TVEFUVVNfUkVWT0tFRBADKnEKD0V4dGVuc2lvblRhcmdldBIgChxFWFRFTlNJT05fVEFSR0VUX1VOU1BFQ0lGSUVEEAASGwoXRVhURU5TSU9OX1RBUkdFVF9SRUNPUkQQARIfChtFWFRFTlNJT05fVEFSR0VUX01PREVMX0xJU1QQAjKoAgodSW50ZWdyYXRpb25DcmVkZW50aWFsc1NlcnZpY2USfwoYR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsEjAuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QaMS5pbnRlZ3JhdGlvbnMudjEuR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVzcG9uc2UShQEKGldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsEjIuaW50ZWdyYXRpb25zLnYxLldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsUmVxdWVzdBozLmludGVncmF0aW9ucy52MS5Xcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlMooBChZJbnRlZ3JhdGlvbkF1dGhTZXJ2aWNlEnAKE0lzc3VlRXhjaGFuZ2VUaWNrZXQSKy5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QaLC5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlc3BvbnNlMtsKChNJbnRlZ3JhdGlvbnNTZXJ2aWNlEmcKEExpc3RJbnRlZ3JhdGlvbnMSKC5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1JlcXVlc3QaKS5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1Jlc3BvbnNlEmEKDkdldEludGVncmF0aW9uEiYuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEVVwc2VydEludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLlVwc2VydEludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5VcHNlcnRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEURlbGV0ZUludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5EZWxldGVJbnRlZ3JhdGlvblJlc3BvbnNlEmEKDkxpc3RFeHRlbnNpb25zEiYuaW50ZWdyYXRpb25zLnYxLkxpc3RFeHRlbnNpb25zUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5MaXN0RXh0ZW5zaW9uc1Jlc3BvbnNlElsKDEdldEV4dGVuc2lvbhIkLmludGVncmF0aW9ucy52MS5HZXRFeHRlbnNpb25SZXF1ZXN0GiUuaW50ZWdyYXRpb25zLnYxLkdldEV4dGVuc2lvblJlc3BvbnNlEmQKD1Vwc2VydEV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5VcHNlcnRFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLlVwc2VydEV4dGVuc2lvblJlc3BvbnNlEmQKD0RlbGV0ZUV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5EZWxldGVFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUV4dGVuc2lvblJlc3BvbnNlEnMKFEdldEludGVncmF0aW9uU3RhdHVzEiwuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uU3RhdHVzUmVxdWVzdBotLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlElgKC1RyaWdnZXJTeW5jEiMuaW50ZWdyYXRpb25zLnYxLlRyaWdnZXJTeW5jUmVxdWVzdBokLmludGVncmF0aW9ucy52MS5UcmlnZ2VyU3luY1Jlc3BvbnNlEmEKDlZhbGlkYXRlQ29uZmlnEiYuaW50ZWdyYXRpb25zLnYxLlZhbGlkYXRlQ29uZmlnUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5WYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEmoKEUxpc3RDb25maWdIaXN0b3J5EikuaW50ZWdyYXRpb25zLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5MaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEnYKFUdldENvbmZpZ0hpc3RvcnlFbnRyeRItLmludGVncmF0aW9ucy52MS5HZXRDb25maWdIaXN0b3J5RW50cnlSZXF1ZXN0Gi4uaW50ZWdyYXRpb25zLnYxLkdldENvbmZpZ0hpc3RvcnlFbnRyeVJlc3BvbnNlQkVaQ2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pbnRlZ3JhdGlvbnMvdjE7aW50ZWdyYXRpb25zdjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp]);
13
14
 
14
15
  /**
15
16
  * Describes the message integrations.v1.IntegrationMiddleware.
@@ -123,6 +124,209 @@ export const IssueExchangeTicketRequestSchema = /*@__PURE__*/
123
124
  export const IssueExchangeTicketResponseSchema = /*@__PURE__*/
124
125
  messageDesc(file_integrations_v1_integrations, 15);
125
126
 
127
+ /**
128
+ * Describes the message integrations.v1.IntegrationSummary.
129
+ * Use `create(IntegrationSummarySchema)` to create a new message.
130
+ */
131
+ export const IntegrationSummarySchema = /*@__PURE__*/
132
+ messageDesc(file_integrations_v1_integrations, 16);
133
+
134
+ /**
135
+ * Describes the message integrations.v1.ListIntegrationsRequest.
136
+ * Use `create(ListIntegrationsRequestSchema)` to create a new message.
137
+ */
138
+ export const ListIntegrationsRequestSchema = /*@__PURE__*/
139
+ messageDesc(file_integrations_v1_integrations, 17);
140
+
141
+ /**
142
+ * Describes the message integrations.v1.ListIntegrationsResponse.
143
+ * Use `create(ListIntegrationsResponseSchema)` to create a new message.
144
+ */
145
+ export const ListIntegrationsResponseSchema = /*@__PURE__*/
146
+ messageDesc(file_integrations_v1_integrations, 18);
147
+
148
+ /**
149
+ * Describes the message integrations.v1.GetIntegrationRequest.
150
+ * Use `create(GetIntegrationRequestSchema)` to create a new message.
151
+ */
152
+ export const GetIntegrationRequestSchema = /*@__PURE__*/
153
+ messageDesc(file_integrations_v1_integrations, 19);
154
+
155
+ /**
156
+ * Describes the message integrations.v1.GetIntegrationResponse.
157
+ * Use `create(GetIntegrationResponseSchema)` to create a new message.
158
+ */
159
+ export const GetIntegrationResponseSchema = /*@__PURE__*/
160
+ messageDesc(file_integrations_v1_integrations, 20);
161
+
162
+ /**
163
+ * Describes the message integrations.v1.UpsertIntegrationRequest.
164
+ * Use `create(UpsertIntegrationRequestSchema)` to create a new message.
165
+ */
166
+ export const UpsertIntegrationRequestSchema = /*@__PURE__*/
167
+ messageDesc(file_integrations_v1_integrations, 21);
168
+
169
+ /**
170
+ * Describes the message integrations.v1.UpsertIntegrationResponse.
171
+ * Use `create(UpsertIntegrationResponseSchema)` to create a new message.
172
+ */
173
+ export const UpsertIntegrationResponseSchema = /*@__PURE__*/
174
+ messageDesc(file_integrations_v1_integrations, 22);
175
+
176
+ /**
177
+ * Describes the message integrations.v1.DeleteIntegrationRequest.
178
+ * Use `create(DeleteIntegrationRequestSchema)` to create a new message.
179
+ */
180
+ export const DeleteIntegrationRequestSchema = /*@__PURE__*/
181
+ messageDesc(file_integrations_v1_integrations, 23);
182
+
183
+ /**
184
+ * Describes the message integrations.v1.DeleteIntegrationResponse.
185
+ * Use `create(DeleteIntegrationResponseSchema)` to create a new message.
186
+ */
187
+ export const DeleteIntegrationResponseSchema = /*@__PURE__*/
188
+ messageDesc(file_integrations_v1_integrations, 24);
189
+
190
+ /**
191
+ * Describes the message integrations.v1.ListExtensionsRequest.
192
+ * Use `create(ListExtensionsRequestSchema)` to create a new message.
193
+ */
194
+ export const ListExtensionsRequestSchema = /*@__PURE__*/
195
+ messageDesc(file_integrations_v1_integrations, 25);
196
+
197
+ /**
198
+ * Describes the message integrations.v1.ListExtensionsResponse.
199
+ * Use `create(ListExtensionsResponseSchema)` to create a new message.
200
+ */
201
+ export const ListExtensionsResponseSchema = /*@__PURE__*/
202
+ messageDesc(file_integrations_v1_integrations, 26);
203
+
204
+ /**
205
+ * Describes the message integrations.v1.GetExtensionRequest.
206
+ * Use `create(GetExtensionRequestSchema)` to create a new message.
207
+ */
208
+ export const GetExtensionRequestSchema = /*@__PURE__*/
209
+ messageDesc(file_integrations_v1_integrations, 27);
210
+
211
+ /**
212
+ * Describes the message integrations.v1.GetExtensionResponse.
213
+ * Use `create(GetExtensionResponseSchema)` to create a new message.
214
+ */
215
+ export const GetExtensionResponseSchema = /*@__PURE__*/
216
+ messageDesc(file_integrations_v1_integrations, 28);
217
+
218
+ /**
219
+ * Describes the message integrations.v1.UpsertExtensionRequest.
220
+ * Use `create(UpsertExtensionRequestSchema)` to create a new message.
221
+ */
222
+ export const UpsertExtensionRequestSchema = /*@__PURE__*/
223
+ messageDesc(file_integrations_v1_integrations, 29);
224
+
225
+ /**
226
+ * Describes the message integrations.v1.UpsertExtensionResponse.
227
+ * Use `create(UpsertExtensionResponseSchema)` to create a new message.
228
+ */
229
+ export const UpsertExtensionResponseSchema = /*@__PURE__*/
230
+ messageDesc(file_integrations_v1_integrations, 30);
231
+
232
+ /**
233
+ * Describes the message integrations.v1.DeleteExtensionRequest.
234
+ * Use `create(DeleteExtensionRequestSchema)` to create a new message.
235
+ */
236
+ export const DeleteExtensionRequestSchema = /*@__PURE__*/
237
+ messageDesc(file_integrations_v1_integrations, 31);
238
+
239
+ /**
240
+ * Describes the message integrations.v1.DeleteExtensionResponse.
241
+ * Use `create(DeleteExtensionResponseSchema)` to create a new message.
242
+ */
243
+ export const DeleteExtensionResponseSchema = /*@__PURE__*/
244
+ messageDesc(file_integrations_v1_integrations, 32);
245
+
246
+ /**
247
+ * Describes the message integrations.v1.GetIntegrationStatusRequest.
248
+ * Use `create(GetIntegrationStatusRequestSchema)` to create a new message.
249
+ */
250
+ export const GetIntegrationStatusRequestSchema = /*@__PURE__*/
251
+ messageDesc(file_integrations_v1_integrations, 33);
252
+
253
+ /**
254
+ * Describes the message integrations.v1.GetIntegrationStatusResponse.
255
+ * Use `create(GetIntegrationStatusResponseSchema)` to create a new message.
256
+ */
257
+ export const GetIntegrationStatusResponseSchema = /*@__PURE__*/
258
+ messageDesc(file_integrations_v1_integrations, 34);
259
+
260
+ /**
261
+ * Describes the message integrations.v1.TriggerSyncRequest.
262
+ * Use `create(TriggerSyncRequestSchema)` to create a new message.
263
+ */
264
+ export const TriggerSyncRequestSchema = /*@__PURE__*/
265
+ messageDesc(file_integrations_v1_integrations, 35);
266
+
267
+ /**
268
+ * Describes the message integrations.v1.TriggerSyncResponse.
269
+ * Use `create(TriggerSyncResponseSchema)` to create a new message.
270
+ */
271
+ export const TriggerSyncResponseSchema = /*@__PURE__*/
272
+ messageDesc(file_integrations_v1_integrations, 36);
273
+
274
+ /**
275
+ * Describes the message integrations.v1.ValidationIssue.
276
+ * Use `create(ValidationIssueSchema)` to create a new message.
277
+ */
278
+ export const ValidationIssueSchema = /*@__PURE__*/
279
+ messageDesc(file_integrations_v1_integrations, 37);
280
+
281
+ /**
282
+ * Describes the message integrations.v1.ValidateConfigRequest.
283
+ * Use `create(ValidateConfigRequestSchema)` to create a new message.
284
+ */
285
+ export const ValidateConfigRequestSchema = /*@__PURE__*/
286
+ messageDesc(file_integrations_v1_integrations, 38);
287
+
288
+ /**
289
+ * Describes the message integrations.v1.ValidateConfigResponse.
290
+ * Use `create(ValidateConfigResponseSchema)` to create a new message.
291
+ */
292
+ export const ValidateConfigResponseSchema = /*@__PURE__*/
293
+ messageDesc(file_integrations_v1_integrations, 39);
294
+
295
+ /**
296
+ * Describes the message integrations.v1.ConfigHistoryEntry.
297
+ * Use `create(ConfigHistoryEntrySchema)` to create a new message.
298
+ */
299
+ export const ConfigHistoryEntrySchema = /*@__PURE__*/
300
+ messageDesc(file_integrations_v1_integrations, 40);
301
+
302
+ /**
303
+ * Describes the message integrations.v1.ListConfigHistoryRequest.
304
+ * Use `create(ListConfigHistoryRequestSchema)` to create a new message.
305
+ */
306
+ export const ListConfigHistoryRequestSchema = /*@__PURE__*/
307
+ messageDesc(file_integrations_v1_integrations, 41);
308
+
309
+ /**
310
+ * Describes the message integrations.v1.ListConfigHistoryResponse.
311
+ * Use `create(ListConfigHistoryResponseSchema)` to create a new message.
312
+ */
313
+ export const ListConfigHistoryResponseSchema = /*@__PURE__*/
314
+ messageDesc(file_integrations_v1_integrations, 42);
315
+
316
+ /**
317
+ * Describes the message integrations.v1.GetConfigHistoryEntryRequest.
318
+ * Use `create(GetConfigHistoryEntryRequestSchema)` to create a new message.
319
+ */
320
+ export const GetConfigHistoryEntryRequestSchema = /*@__PURE__*/
321
+ messageDesc(file_integrations_v1_integrations, 43);
322
+
323
+ /**
324
+ * Describes the message integrations.v1.GetConfigHistoryEntryResponse.
325
+ * Use `create(GetConfigHistoryEntryResponseSchema)` to create a new message.
326
+ */
327
+ export const GetConfigHistoryEntryResponseSchema = /*@__PURE__*/
328
+ messageDesc(file_integrations_v1_integrations, 44);
329
+
126
330
  /**
127
331
  * Describes the enum integrations.v1.CredentialStrategy.
128
332
  */
@@ -191,3 +395,9 @@ export const IntegrationCredentialsService = /*@__PURE__*/
191
395
  export const IntegrationAuthService = /*@__PURE__*/
192
396
  serviceDesc(file_integrations_v1_integrations, 1);
193
397
 
398
+ /**
399
+ * @generated from service integrations.v1.IntegrationsService
400
+ */
401
+ export const IntegrationsService = /*@__PURE__*/
402
+ serviceDesc(file_integrations_v1_integrations, 2);
403
+