@eide/foir-proto-ts 0.8.0 → 0.9.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.8.0",
3
+ "version": "0.9.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 { 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";
6
+ import { DeleteExtensionRequest, DeleteExtensionResponse, DeleteIntegrationRequest, DeleteIntegrationResponse, GetConfigHistoryEntryRequest, GetConfigHistoryEntryResponse, GetExtensionRequest, GetExtensionResponse, GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, GetIntegrationRequest, GetIntegrationResponse, GetIntegrationStatusRequest, GetIntegrationStatusResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, ListConfigHistoryRequest, ListConfigHistoryResponse, ListExtensionsRequest, ListExtensionsResponse, ListIntegrationsRequest, ListIntegrationsResponse, RedeemExchangeTicketRequest, RedeemExchangeTicketResponse, TriggerSyncRequest, TriggerSyncResponse, UpsertExtensionRequest, UpsertExtensionResponse, UpsertIntegrationRequest, UpsertIntegrationResponse, UpsertIntegrationStatusRequest, UpsertIntegrationStatusResponse, ValidateConfigRequest, ValidateConfigResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -62,6 +62,17 @@ export declare const IntegrationAuthService: {
62
62
  readonly O: typeof IssueExchangeTicketResponse,
63
63
  readonly kind: MethodKind.Unary,
64
64
  },
65
+ /**
66
+ * Atomically redeem a ticket and return the resolved subject.
67
+ *
68
+ * @generated from rpc integrations.v1.IntegrationAuthService.RedeemExchangeTicket
69
+ */
70
+ readonly redeemExchangeTicket: {
71
+ readonly name: "RedeemExchangeTicket",
72
+ readonly I: typeof RedeemExchangeTicketRequest,
73
+ readonly O: typeof RedeemExchangeTicketResponse,
74
+ readonly kind: MethodKind.Unary,
75
+ },
65
76
  }
66
77
  };
67
78
 
@@ -152,6 +163,15 @@ export declare const IntegrationsService: {
152
163
  readonly O: typeof GetIntegrationStatusResponse,
153
164
  readonly kind: MethodKind.Unary,
154
165
  },
166
+ /**
167
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegrationStatus
168
+ */
169
+ readonly upsertIntegrationStatus: {
170
+ readonly name: "UpsertIntegrationStatus",
171
+ readonly I: typeof UpsertIntegrationStatusRequest,
172
+ readonly O: typeof UpsertIntegrationStatusResponse,
173
+ readonly kind: MethodKind.Unary,
174
+ },
155
175
  /**
156
176
  * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
157
177
  */
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
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";
6
+ import { DeleteExtensionRequest, DeleteExtensionResponse, DeleteIntegrationRequest, DeleteIntegrationResponse, GetConfigHistoryEntryRequest, GetConfigHistoryEntryResponse, GetExtensionRequest, GetExtensionResponse, GetIntegrationCredentialRequest, GetIntegrationCredentialResponse, GetIntegrationRequest, GetIntegrationResponse, GetIntegrationStatusRequest, GetIntegrationStatusResponse, IssueExchangeTicketRequest, IssueExchangeTicketResponse, ListConfigHistoryRequest, ListConfigHistoryResponse, ListExtensionsRequest, ListExtensionsResponse, ListIntegrationsRequest, ListIntegrationsResponse, RedeemExchangeTicketRequest, RedeemExchangeTicketResponse, TriggerSyncRequest, TriggerSyncResponse, UpsertExtensionRequest, UpsertExtensionResponse, UpsertIntegrationRequest, UpsertIntegrationResponse, UpsertIntegrationStatusRequest, UpsertIntegrationStatusResponse, ValidateConfigRequest, ValidateConfigResponse, WriteIntegrationCredentialRequest, WriteIntegrationCredentialResponse } from "./integrations_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -62,6 +62,17 @@ export const IntegrationAuthService = {
62
62
  O: IssueExchangeTicketResponse,
63
63
  kind: MethodKind.Unary,
64
64
  },
65
+ /**
66
+ * Atomically redeem a ticket and return the resolved subject.
67
+ *
68
+ * @generated from rpc integrations.v1.IntegrationAuthService.RedeemExchangeTicket
69
+ */
70
+ redeemExchangeTicket: {
71
+ name: "RedeemExchangeTicket",
72
+ I: RedeemExchangeTicketRequest,
73
+ O: RedeemExchangeTicketResponse,
74
+ kind: MethodKind.Unary,
75
+ },
65
76
  }
66
77
  };
67
78
 
@@ -152,6 +163,15 @@ export const IntegrationsService = {
152
163
  O: GetIntegrationStatusResponse,
153
164
  kind: MethodKind.Unary,
154
165
  },
166
+ /**
167
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegrationStatus
168
+ */
169
+ upsertIntegrationStatus: {
170
+ name: "UpsertIntegrationStatus",
171
+ I: UpsertIntegrationStatusRequest,
172
+ O: UpsertIntegrationStatusResponse,
173
+ kind: MethodKind.Unary,
174
+ },
155
175
  /**
156
176
  * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
157
177
  */
@@ -550,7 +550,8 @@ export declare const IssueExchangeTicketRequestSchema: GenMessage<IssueExchangeT
550
550
  export declare type IssueExchangeTicketResponse = Message<"integrations.v1.IssueExchangeTicketResponse"> & {
551
551
  /**
552
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.
553
+ * POSTed back by the middleware to the gateway's /auth/exchange-ticket
554
+ * endpoint, which in turn redeems it via RedeemExchangeTicket below.
554
555
  *
555
556
  * @generated from field: string ticket = 1;
556
557
  */
@@ -571,6 +572,91 @@ export declare type IssueExchangeTicketResponse = Message<"integrations.v1.Issue
571
572
  */
572
573
  export declare const IssueExchangeTicketResponseSchema: GenMessage<IssueExchangeTicketResponse>;
573
574
 
575
+ /**
576
+ * Atomic single-use redemption of an exchange ticket. Called by the
577
+ * public API gateway's /auth/exchange-ticket endpoint when a middleware
578
+ * POSTs a ticket it received via the authorize redirect. The redemption
579
+ * flips used_at in a single DB round trip and returns the resolved
580
+ * subject so the gateway can mint a scoped token locally.
581
+ *
582
+ * This RPC is intentionally unauthenticated at the admin-session level —
583
+ * ticket possession is the auth factor. Network-level service auth is
584
+ * expected to come from the gap #11 internalauth interceptor pair.
585
+ *
586
+ * @generated from message integrations.v1.RedeemExchangeTicketRequest
587
+ */
588
+ export declare type RedeemExchangeTicketRequest = Message<"integrations.v1.RedeemExchangeTicketRequest"> & {
589
+ /**
590
+ * Opaque ticket id originally issued by IssueExchangeTicket. Must
591
+ * match an unused, unexpired row in auth_exchange_tickets.
592
+ *
593
+ * @generated from field: string ticket = 1;
594
+ */
595
+ ticket: string;
596
+
597
+ /**
598
+ * Free-text identity of the redeeming actor, written to the
599
+ * ticket_redeem auth_events row. Gateway callers pass something like
600
+ * "api-public:exchange-ticket:<ip>".
601
+ *
602
+ * @generated from field: string actor_ref = 2;
603
+ */
604
+ actorRef: string;
605
+ };
606
+
607
+ /**
608
+ * Describes the message integrations.v1.RedeemExchangeTicketRequest.
609
+ * Use `create(RedeemExchangeTicketRequestSchema)` to create a new message.
610
+ */
611
+ export declare const RedeemExchangeTicketRequestSchema: GenMessage<RedeemExchangeTicketRequest>;
612
+
613
+ /**
614
+ * @generated from message integrations.v1.RedeemExchangeTicketResponse
615
+ */
616
+ export declare type RedeemExchangeTicketResponse = Message<"integrations.v1.RedeemExchangeTicketResponse"> & {
617
+ /**
618
+ * The redeemed ticket id, echoed back for caller-side audit
619
+ * correlation. Matches request.ticket on success.
620
+ *
621
+ * @generated from field: string ticket_id = 1;
622
+ */
623
+ ticketId: string;
624
+
625
+ /**
626
+ * @generated from field: string tenant_id = 2;
627
+ */
628
+ tenantId: string;
629
+
630
+ /**
631
+ * @generated from field: string project_id = 3;
632
+ */
633
+ projectId: string;
634
+
635
+ /**
636
+ * @generated from field: string integration_name = 4;
637
+ */
638
+ integrationName: string;
639
+
640
+ /**
641
+ * Single capability string the minted token should carry, e.g.
642
+ * "credentials:write". Taken verbatim from the ticket row.
643
+ *
644
+ * @generated from field: string capability = 5;
645
+ */
646
+ capability: string;
647
+
648
+ /**
649
+ * @generated from field: google.protobuf.Timestamp expires_at = 6;
650
+ */
651
+ expiresAt?: Timestamp;
652
+ };
653
+
654
+ /**
655
+ * Describes the message integrations.v1.RedeemExchangeTicketResponse.
656
+ * Use `create(RedeemExchangeTicketResponseSchema)` to create a new message.
657
+ */
658
+ export declare const RedeemExchangeTicketResponseSchema: GenMessage<RedeemExchangeTicketResponse>;
659
+
574
660
  /**
575
661
  * Summary row returned in ListIntegrationsResponse. Bundles the declaration
576
662
  * with the operational status glyphs the list page renders, so the admin UI
@@ -967,6 +1053,97 @@ export declare type GetIntegrationStatusResponse = Message<"integrations.v1.GetI
967
1053
  */
968
1054
  export declare const GetIntegrationStatusResponseSchema: GenMessage<GetIntegrationStatusResponse>;
969
1055
 
1056
+ /**
1057
+ * Write path for integration_status. Called by the gateway's status
1058
+ * resolver on behalf of scoped-token middleware callers after a sync
1059
+ * cycle. The handler accepts either an admin session or a scoped token
1060
+ * carrying status:write, and pulls tenant from the caller's context.
1061
+ *
1062
+ * Fields are flat to avoid dragging the SubscriptionHealth / AuthStatus
1063
+ * enums into the write shape — middleware reports these as free-text
1064
+ * strings that the resolver maps 1:1 to integration_status rows.
1065
+ *
1066
+ * @generated from message integrations.v1.UpsertIntegrationStatusRequest
1067
+ */
1068
+ export declare type UpsertIntegrationStatusRequest = Message<"integrations.v1.UpsertIntegrationStatusRequest"> & {
1069
+ /**
1070
+ * @generated from field: string project_id = 1;
1071
+ */
1072
+ projectId: string;
1073
+
1074
+ /**
1075
+ * @generated from field: string integration_name = 2;
1076
+ */
1077
+ integrationName: string;
1078
+
1079
+ /**
1080
+ * @generated from field: optional google.protobuf.Timestamp last_sync_at = 3;
1081
+ */
1082
+ lastSyncAt?: Timestamp;
1083
+
1084
+ /**
1085
+ * @generated from field: optional int64 last_sync_duration_ms = 4;
1086
+ */
1087
+ lastSyncDurationMs?: bigint;
1088
+
1089
+ /**
1090
+ * @generated from field: optional int64 last_sync_record_count = 5;
1091
+ */
1092
+ lastSyncRecordCount?: bigint;
1093
+
1094
+ /**
1095
+ * @generated from field: optional string last_error = 6;
1096
+ */
1097
+ lastError?: string;
1098
+
1099
+ /**
1100
+ * @generated from field: optional google.protobuf.Timestamp last_error_at = 7;
1101
+ */
1102
+ lastErrorAt?: Timestamp;
1103
+
1104
+ /**
1105
+ * @generated from field: optional string subscription_health = 8;
1106
+ */
1107
+ subscriptionHealth?: string;
1108
+
1109
+ /**
1110
+ * @generated from field: optional string auth_status = 9;
1111
+ */
1112
+ authStatus?: string;
1113
+
1114
+ /**
1115
+ * @generated from field: optional string deletion_strategy = 10;
1116
+ */
1117
+ deletionStrategy?: string;
1118
+
1119
+ /**
1120
+ * @generated from field: optional google.protobuf.Struct extra = 11;
1121
+ */
1122
+ extra?: JsonObject;
1123
+ };
1124
+
1125
+ /**
1126
+ * Describes the message integrations.v1.UpsertIntegrationStatusRequest.
1127
+ * Use `create(UpsertIntegrationStatusRequestSchema)` to create a new message.
1128
+ */
1129
+ export declare const UpsertIntegrationStatusRequestSchema: GenMessage<UpsertIntegrationStatusRequest>;
1130
+
1131
+ /**
1132
+ * @generated from message integrations.v1.UpsertIntegrationStatusResponse
1133
+ */
1134
+ export declare type UpsertIntegrationStatusResponse = Message<"integrations.v1.UpsertIntegrationStatusResponse"> & {
1135
+ /**
1136
+ * @generated from field: google.protobuf.Timestamp updated_at = 1;
1137
+ */
1138
+ updatedAt?: Timestamp;
1139
+ };
1140
+
1141
+ /**
1142
+ * Describes the message integrations.v1.UpsertIntegrationStatusResponse.
1143
+ * Use `create(UpsertIntegrationStatusResponseSchema)` to create a new message.
1144
+ */
1145
+ export declare const UpsertIntegrationStatusResponseSchema: GenMessage<UpsertIntegrationStatusResponse>;
1146
+
970
1147
  /**
971
1148
  * Flow 2 ("manual trigger") in the doc. Mints a 30-minute scoped token with
972
1149
  * the same capability set a webhook delivery would carry and POSTs it to
@@ -1448,6 +1625,16 @@ export declare const IntegrationAuthService: GenService<{
1448
1625
  input: typeof IssueExchangeTicketRequestSchema;
1449
1626
  output: typeof IssueExchangeTicketResponseSchema;
1450
1627
  },
1628
+ /**
1629
+ * Atomically redeem a ticket and return the resolved subject.
1630
+ *
1631
+ * @generated from rpc integrations.v1.IntegrationAuthService.RedeemExchangeTicket
1632
+ */
1633
+ redeemExchangeTicket: {
1634
+ methodKind: "unary";
1635
+ input: typeof RedeemExchangeTicketRequestSchema;
1636
+ output: typeof RedeemExchangeTicketResponseSchema;
1637
+ },
1451
1638
  }>;
1452
1639
 
1453
1640
  /**
@@ -1526,6 +1713,14 @@ export declare const IntegrationsService: GenService<{
1526
1713
  input: typeof GetIntegrationStatusRequestSchema;
1527
1714
  output: typeof GetIntegrationStatusResponseSchema;
1528
1715
  },
1716
+ /**
1717
+ * @generated from rpc integrations.v1.IntegrationsService.UpsertIntegrationStatus
1718
+ */
1719
+ upsertIntegrationStatus: {
1720
+ methodKind: "unary";
1721
+ input: typeof UpsertIntegrationStatusRequestSchema;
1722
+ output: typeof UpsertIntegrationStatusResponseSchema;
1723
+ },
1529
1724
  /**
1530
1725
  * @generated from rpc integrations.v1.IntegrationsService.TriggerSync
1531
1726
  */
@@ -10,7 +10,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
10
10
  * Describes the file integrations/v1/integrations.proto.
11
11
  */
12
12
  export const file_integrations_v1_integrations = /*@__PURE__*/
13
- fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiPgoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEiUKA3VybBgBIAEoCUIYukgVchMQATIPXmh0dHBzOi8vW14gXSskIpQBChZJbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEkEKCHN0cmF0ZWd5GAEgASgOMiMuaW50ZWdyYXRpb25zLnYxLkNyZWRlbnRpYWxTdHJhdGVneUIKukgHggEEEAEgABIsCgZ2YWx1ZXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCQoHX3ZhbHVlcyLLAQoOTW9kZWxTZWVkRmllbGQSFQoEdHlwZRgBIAEoCUIHukgEcgIQARIQCghyZXF1aXJlZBgCIAEoCBITCgtuYXR1cmFsX2tleRgDIAEoCBISCgVsYWJlbBgEIAEoCUgAiAEBEhYKCWhlbHBfdGV4dBgFIAEoCUgBiAEBEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfbGFiZWxCDAoKX2hlbHBfdGV4dEIJCgdfY29uZmlnIp0BCglNb2RlbFNlZWQSQAoGZmllbGRzGAEgAygLMiYuaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZC5GaWVsZHNFbnRyeUIIukgFmgECCAEaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASKWAgoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxIWCgVtb2RlbBgBIAEoCUIHukgEcgIQARIcCgtuYXR1cmFsX2tleRgCIAEoCUIHukgEcgIQARJTCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeUIOukgLmgEICAEqBHICEAESMwoKbW9kZWxfc2VlZBgEIAEoCzIaLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWRIAIgBARotCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19tb2RlbF9zZWVkIvUDChFJbnRlZ3JhdGlvblN0YXR1cxI1CgxsYXN0X3N5bmNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESIgoVbGFzdF9zeW5jX2R1cmF0aW9uX21zGAIgASgDSAGIAQESIwoWbGFzdF9zeW5jX3JlY29yZF9jb3VudBgDIAEoA0gCiAEBEhcKCmxhc3RfZXJyb3IYBCABKAlIA4gBARI2Cg1sYXN0X2Vycm9yX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEkAKE3N1YnNjcmlwdGlvbl9oZWFsdGgYBiABKA4yIy5pbnRlZ3JhdGlvbnMudjEuU3Vic2NyaXB0aW9uSGVhbHRoEjAKC2F1dGhfc3RhdHVzGAcgASgOMhsuaW50ZWdyYXRpb25zLnYxLkF1dGhTdGF0dXMSHgoRZGVsZXRpb25fc3RyYXRlZ3kYCCABKAlIBYgBAUIPCg1fbGFzdF9zeW5jX2F0QhgKFl9sYXN0X3N5bmNfZHVyYXRpb25fbXNCGQoXX2xhc3Rfc3luY19yZWNvcmRfY291bnRCDQoLX2xhc3RfZXJyb3JCEAoOX2xhc3RfZXJyb3JfYXRCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5IvIDChFJbnRlZ3JhdGlvbkNvbmZpZxI2CgRuYW1lGAEgASgJQii6SCVyIxABGEAyHV5bYS16XVthLXowLTldKigtW2EtejAtOV0rKSokEg8KB2VuYWJsZWQYAiABKAgSQgoKbWlkZGxld2FyZRgDIAEoCzImLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbk1pZGRsZXdhcmVCBrpIA8gBARJECgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzQga6SAPIAQESOgoEc3luYxgFIAMoCzIsLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZy5TeW5jRW50cnkSLgoIc2V0dGluZ3MYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQEaVAoJU3luY0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN5bmNNYXBwaW5nOgI4AUILCglfc2V0dGluZ3NCCwoJX21ldGFkYXRhIs8BChJFeHRlbnNpb25QbGFjZW1lbnQSPAoGdGFyZ2V0GAEgASgOMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblRhcmdldEIKukgHggEEEAEgABIWCgVtb2RlbBgCIAEoCUIHukgEcgIQARIUCgN0YWIYAyABKAlCB7pIBHICEAESFgoFdGl0bGUYBCABKAlCB7pIBHICEAESKwoFaGludHMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCAoGX2hpbnRzIvABCg9FeHRlbnNpb25Db25maWcSNgoEbmFtZRgBIAEoCUIoukglciMQARhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIlCgN1cmwYAiABKAlCGLpIFXITEAEyD15odHRwczovL1teIF0rJBJBCgpwbGFjZW1lbnRzGAMgAygLMiMuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblBsYWNlbWVudEIIukgFkgECCAESLgoIbWV0YWRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhItwBChpJbnRlZ3JhdGlvbkNyZWRlbnRpYWxWYWx1ZRINCgV2YWx1ZRgBIAEoDBIZChFlbmNyeXB0aW9uX2tleV9pZBgCIAEoCRI1CgxsYXN0X3JlYWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPbGFzdF93cml0dGVuX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQg8KDV9sYXN0X3JlYWRfYXRCEgoQX2xhc3Rfd3JpdHRlbl9hdCJPCh9HZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCSJjCiBHZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZRI/CgpjcmVkZW50aWFsGAEgASgLMisuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uQ3JlZGVudGlhbFZhbHVlIoIBCiFXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJEg0KBXZhbHVlGAMgASgMEhQKB2NvbnRleHQYBCABKAlIAIgBAUIKCghfY29udGV4dCJ0CiJXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlEhkKEWVuY3J5cHRpb25fa2V5X2lkGAEgASgJEjMKD2xhc3Rfd3JpdHRlbl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSgoaSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJIl0KG0lzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIOCgZ0aWNrZXQYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAitQEKEkludGVncmF0aW9uU3VtbWFyeRIyCgZjb25maWcYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcSEgoKYXV0aG9yaXplZBgCIAEoCBI3CgZzdGF0dXMYAyABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TdGF0dXNIAIgBARITCgt3ZWJob29rX3VybBgEIAEoCUIJCgdfc3RhdHVzIi0KF0xpc3RJbnRlZ3JhdGlvbnNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiVQoYTGlzdEludGVncmF0aW9uc1Jlc3BvbnNlEjkKDGludGVncmF0aW9ucxgBIAMoCzIjLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN1bW1hcnkiOQoVR2V0SW50ZWdyYXRpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSK5AQoWR2V0SW50ZWdyYXRpb25SZXNwb25zZRIyCgZjb25maWcYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25Db25maWcSNwoGc3RhdHVzGAIgASgLMiIuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uU3RhdHVzSACIAQESEgoKYXV0aG9yaXplZBgDIAEoCBITCgt3ZWJob29rX3VybBgEIAEoCUIJCgdfc3RhdHVzImIKGFVwc2VydEludGVncmF0aW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEjIKBmNvbmZpZxgCIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZyJkChlVcHNlcnRJbnRlZ3JhdGlvblJlc3BvbnNlEjIKBmNvbmZpZxgBIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZxITCgt3ZWJob29rX3VybBgCIAEoCSI8ChhEZWxldGVJbnRlZ3JhdGlvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIhsKGURlbGV0ZUludGVncmF0aW9uUmVzcG9uc2UiKwoVTGlzdEV4dGVuc2lvbnNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiTgoWTGlzdEV4dGVuc2lvbnNSZXNwb25zZRI0CgpleHRlbnNpb25zGAEgAygLMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvbkNvbmZpZyI3ChNHZXRFeHRlbnNpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSJLChRHZXRFeHRlbnNpb25SZXNwb25zZRIzCglleHRlbnNpb24YASABKAsyIC5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uQ29uZmlnIl4KFlVwc2VydEV4dGVuc2lvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIwCgZjb25maWcYAiABKAsyIC5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uQ29uZmlnIksKF1Vwc2VydEV4dGVuc2lvblJlc3BvbnNlEjAKBmNvbmZpZxgBIAEoCzIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25Db25maWciOgoWRGVsZXRlRXh0ZW5zaW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiGQoXRGVsZXRlRXh0ZW5zaW9uUmVzcG9uc2UiPwobR2V0SW50ZWdyYXRpb25TdGF0dXNSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSLCAQocR2V0SW50ZWdyYXRpb25TdGF0dXNSZXNwb25zZRI3CgZzdGF0dXMYASABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TdGF0dXNIAIgBARIuCgp1cGRhdGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbCg51cGRhdGVkX2J5X2p0aRgDIAEoCUgBiAEBQgkKB19zdGF0dXNCEQoPX3VwZGF0ZWRfYnlfanRpIjYKElRyaWdnZXJTeW5jUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkikwEKE1RyaWdnZXJTeW5jUmVzcG9uc2USHgoWbWlkZGxld2FyZV9odHRwX3N0YXR1cxgBIAEoBRIXCg9taWRkbGV3YXJlX2JvZHkYAiABKAkSMAoMdHJpZ2dlcmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl0b2tlbl9qdGkYBCABKAkiNgoPVmFsaWRhdGlvbklzc3VlEhIKCmZpZWxkX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSJAChVWYWxpZGF0ZUNvbmZpZ1JlcXVlc3QSJwoGY29uZmlnGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJ+ChZWYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEjAKBmVycm9ycxgBIAMoCzIgLmludGVncmF0aW9ucy52MS5WYWxpZGF0aW9uSXNzdWUSMgoId2FybmluZ3MYAiADKAsyIC5pbnRlZ3JhdGlvbnMudjEuVmFsaWRhdGlvbklzc3VlIqgBChJDb25maWdIaXN0b3J5RW50cnkSCgoCaWQYASABKAkSLQoJcHVzaGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglwdXNoZWRfYnkYAyABKAkSDgoGc291cmNlGAQgASgJEgoKAm9rGAUgASgIEhYKDnJlc3VsdF9zdW1tYXJ5GAYgASgJEhAKCGhhc19kaWZmGAcgASgIIk0KGExpc3RDb25maWdIaXN0b3J5UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBmN1cnNvchgDIAEoCSJmChlMaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEjQKB2VudHJpZXMYASADKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EhMKC25leHRfY3Vyc29yGAIgASgJIj4KHEdldENvbmZpZ0hpc3RvcnlFbnRyeVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIKCgJpZBgCIAEoCSKdAQodR2V0Q29uZmlnSGlzdG9yeUVudHJ5UmVzcG9uc2USMgoFZW50cnkYASABKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EiwKC2NvbmZpZ19qc29uGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJkaWZmX2Zyb21fcHJldmlvdXMYAyABKAkqgAIKEkNyZWRlbnRpYWxTdHJhdGVneRIjCh9DUkVERU5USUFMX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASHQoZQ1JFREVOVElBTF9TVFJBVEVHWV9PQVVUSBABEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfQVBJX0tFWRACEiUKIUNSRURFTlRJQUxfU1RSQVRFR1lfU0hBUkVEX1NFQ1JFVBADEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfU1NIX0tFWRAEEhwKGENSRURFTlRJQUxfU1RSQVRFR1lfTk9ORRAFEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfTUFOQUdFRBAGKpQBChJTdWJzY3JpcHRpb25IZWFsdGgSIwofU1VCU0NSSVBUSU9OX0hFQUxUSF9VTlNQRUNJRklFRBAAEhoKFlNVQlNDUklQVElPTl9IRUFMVEhfT0sQARIdChlTVUJTQ1JJUFRJT05fSEVBTFRIX1NUQUxFEAISHgoaU1VCU0NSSVBUSU9OX0hFQUxUSF9CUk9LRU4QAypvCgpBdXRoU3RhdHVzEhsKF0FVVEhfU1RBVFVTX1VOU1BFQ0lGSUVEEAASEgoOQVVUSF9TVEFUVVNfT0sQARIXChNBVVRIX1NUQVRVU19FWFBJUkVEEAISFwoTQVVUSF9TVEFUVVNfUkVWT0tFRBADKnEKD0V4dGVuc2lvblRhcmdldBIgChxFWFRFTlNJT05fVEFSR0VUX1VOU1BFQ0lGSUVEEAASGwoXRVhURU5TSU9OX1RBUkdFVF9SRUNPUkQQARIfChtFWFRFTlNJT05fVEFSR0VUX01PREVMX0xJU1QQAjKoAgodSW50ZWdyYXRpb25DcmVkZW50aWFsc1NlcnZpY2USfwoYR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsEjAuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QaMS5pbnRlZ3JhdGlvbnMudjEuR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVzcG9uc2UShQEKGldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsEjIuaW50ZWdyYXRpb25zLnYxLldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsUmVxdWVzdBozLmludGVncmF0aW9ucy52MS5Xcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlMooBChZJbnRlZ3JhdGlvbkF1dGhTZXJ2aWNlEnAKE0lzc3VlRXhjaGFuZ2VUaWNrZXQSKy5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QaLC5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlc3BvbnNlMtsKChNJbnRlZ3JhdGlvbnNTZXJ2aWNlEmcKEExpc3RJbnRlZ3JhdGlvbnMSKC5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1JlcXVlc3QaKS5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1Jlc3BvbnNlEmEKDkdldEludGVncmF0aW9uEiYuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEVVwc2VydEludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLlVwc2VydEludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5VcHNlcnRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEURlbGV0ZUludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5EZWxldGVJbnRlZ3JhdGlvblJlc3BvbnNlEmEKDkxpc3RFeHRlbnNpb25zEiYuaW50ZWdyYXRpb25zLnYxLkxpc3RFeHRlbnNpb25zUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5MaXN0RXh0ZW5zaW9uc1Jlc3BvbnNlElsKDEdldEV4dGVuc2lvbhIkLmludGVncmF0aW9ucy52MS5HZXRFeHRlbnNpb25SZXF1ZXN0GiUuaW50ZWdyYXRpb25zLnYxLkdldEV4dGVuc2lvblJlc3BvbnNlEmQKD1Vwc2VydEV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5VcHNlcnRFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLlVwc2VydEV4dGVuc2lvblJlc3BvbnNlEmQKD0RlbGV0ZUV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5EZWxldGVFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUV4dGVuc2lvblJlc3BvbnNlEnMKFEdldEludGVncmF0aW9uU3RhdHVzEiwuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uU3RhdHVzUmVxdWVzdBotLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlElgKC1RyaWdnZXJTeW5jEiMuaW50ZWdyYXRpb25zLnYxLlRyaWdnZXJTeW5jUmVxdWVzdBokLmludGVncmF0aW9ucy52MS5UcmlnZ2VyU3luY1Jlc3BvbnNlEmEKDlZhbGlkYXRlQ29uZmlnEiYuaW50ZWdyYXRpb25zLnYxLlZhbGlkYXRlQ29uZmlnUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5WYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEmoKEUxpc3RDb25maWdIaXN0b3J5EikuaW50ZWdyYXRpb25zLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5MaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEnYKFUdldENvbmZpZ0hpc3RvcnlFbnRyeRItLmludGVncmF0aW9ucy52MS5HZXRDb25maWdIaXN0b3J5RW50cnlSZXF1ZXN0Gi4uaW50ZWdyYXRpb25zLnYxLkdldENvbmZpZ0hpc3RvcnlFbnRyeVJlc3BvbnNlQkVaQ2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pbnRlZ3JhdGlvbnMvdjE7aW50ZWdyYXRpb25zdjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp]);
13
+ fileDesc("CiJpbnRlZ3JhdGlvbnMvdjEvaW50ZWdyYXRpb25zLnByb3RvEg9pbnRlZ3JhdGlvbnMudjEiPgoVSW50ZWdyYXRpb25NaWRkbGV3YXJlEiUKA3VybBgBIAEoCUIYukgVchMQATIPXmh0dHBzOi8vW14gXSskIpQBChZJbnRlZ3JhdGlvbkNyZWRlbnRpYWxzEkEKCHN0cmF0ZWd5GAEgASgOMiMuaW50ZWdyYXRpb25zLnYxLkNyZWRlbnRpYWxTdHJhdGVneUIKukgHggEEEAEgABIsCgZ2YWx1ZXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCQoHX3ZhbHVlcyLLAQoOTW9kZWxTZWVkRmllbGQSFQoEdHlwZRgBIAEoCUIHukgEcgIQARIQCghyZXF1aXJlZBgCIAEoCBITCgtuYXR1cmFsX2tleRgDIAEoCBISCgVsYWJlbBgEIAEoCUgAiAEBEhYKCWhlbHBfdGV4dBgFIAEoCUgBiAEBEiwKBmNvbmZpZxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfbGFiZWxCDAoKX2hlbHBfdGV4dEIJCgdfY29uZmlnIp0BCglNb2RlbFNlZWQSQAoGZmllbGRzGAEgAygLMiYuaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZC5GaWVsZHNFbnRyeUIIukgFmgECCAEaTgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8uaW50ZWdyYXRpb25zLnYxLk1vZGVsU2VlZEZpZWxkOgI4ASKWAgoWSW50ZWdyYXRpb25TeW5jTWFwcGluZxIWCgVtb2RlbBgBIAEoCUIHukgEcgIQARIcCgtuYXR1cmFsX2tleRgCIAEoCUIHukgEcgIQARJTCgZmaWVsZHMYAyADKAsyMy5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TeW5jTWFwcGluZy5GaWVsZHNFbnRyeUIOukgLmgEICAEqBHICEAESMwoKbW9kZWxfc2VlZBgEIAEoCzIaLmludGVncmF0aW9ucy52MS5Nb2RlbFNlZWRIAIgBARotCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19tb2RlbF9zZWVkIvUDChFJbnRlZ3JhdGlvblN0YXR1cxI1CgxsYXN0X3N5bmNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESIgoVbGFzdF9zeW5jX2R1cmF0aW9uX21zGAIgASgDSAGIAQESIwoWbGFzdF9zeW5jX3JlY29yZF9jb3VudBgDIAEoA0gCiAEBEhcKCmxhc3RfZXJyb3IYBCABKAlIA4gBARI2Cg1sYXN0X2Vycm9yX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEkAKE3N1YnNjcmlwdGlvbl9oZWFsdGgYBiABKA4yIy5pbnRlZ3JhdGlvbnMudjEuU3Vic2NyaXB0aW9uSGVhbHRoEjAKC2F1dGhfc3RhdHVzGAcgASgOMhsuaW50ZWdyYXRpb25zLnYxLkF1dGhTdGF0dXMSHgoRZGVsZXRpb25fc3RyYXRlZ3kYCCABKAlIBYgBAUIPCg1fbGFzdF9zeW5jX2F0QhgKFl9sYXN0X3N5bmNfZHVyYXRpb25fbXNCGQoXX2xhc3Rfc3luY19yZWNvcmRfY291bnRCDQoLX2xhc3RfZXJyb3JCEAoOX2xhc3RfZXJyb3JfYXRCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5IvIDChFJbnRlZ3JhdGlvbkNvbmZpZxI2CgRuYW1lGAEgASgJQii6SCVyIxABGEAyHV5bYS16XVthLXowLTldKigtW2EtejAtOV0rKSokEg8KB2VuYWJsZWQYAiABKAgSQgoKbWlkZGxld2FyZRgDIAEoCzImLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbk1pZGRsZXdhcmVCBrpIA8gBARJECgtjcmVkZW50aWFscxgEIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNyZWRlbnRpYWxzQga6SAPIAQESOgoEc3luYxgFIAMoCzIsLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZy5TeW5jRW50cnkSLgoIc2V0dGluZ3MYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQEaVAoJU3luY0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN5bmNNYXBwaW5nOgI4AUILCglfc2V0dGluZ3NCCwoJX21ldGFkYXRhIs8BChJFeHRlbnNpb25QbGFjZW1lbnQSPAoGdGFyZ2V0GAEgASgOMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblRhcmdldEIKukgHggEEEAEgABIWCgVtb2RlbBgCIAEoCUIHukgEcgIQARIUCgN0YWIYAyABKAlCB7pIBHICEAESFgoFdGl0bGUYBCABKAlCB7pIBHICEAESKwoFaGludHMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCAoGX2hpbnRzIvABCg9FeHRlbnNpb25Db25maWcSNgoEbmFtZRgBIAEoCUIoukglciMQARhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIlCgN1cmwYAiABKAlCGLpIFXITEAEyD15odHRwczovL1teIF0rJBJBCgpwbGFjZW1lbnRzGAMgAygLMiMuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvblBsYWNlbWVudEIIukgFkgECCAESLgoIbWV0YWRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhItwBChpJbnRlZ3JhdGlvbkNyZWRlbnRpYWxWYWx1ZRINCgV2YWx1ZRgBIAEoDBIZChFlbmNyeXB0aW9uX2tleV9pZBgCIAEoCRI1CgxsYXN0X3JlYWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESOAoPbGFzdF93cml0dGVuX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQg8KDV9sYXN0X3JlYWRfYXRCEgoQX2xhc3Rfd3JpdHRlbl9hdCJPCh9HZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSGAoQaW50ZWdyYXRpb25fbmFtZRgCIAEoCSJjCiBHZXRJbnRlZ3JhdGlvbkNyZWRlbnRpYWxSZXNwb25zZRI/CgpjcmVkZW50aWFsGAEgASgLMisuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uQ3JlZGVudGlhbFZhbHVlIoIBCiFXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJEg0KBXZhbHVlGAMgASgMEhQKB2NvbnRleHQYBCABKAlIAIgBAUIKCghfY29udGV4dCJ0CiJXcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlEhkKEWVuY3J5cHRpb25fa2V5X2lkGAEgASgJEjMKD2xhc3Rfd3JpdHRlbl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSgoaSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIYChBpbnRlZ3JhdGlvbl9uYW1lGAIgASgJIl0KG0lzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIOCgZ0aWNrZXQYASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiQAobUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0Eg4KBnRpY2tldBgBIAEoCRIRCglhY3Rvcl9yZWYYAiABKAkitgEKHFJlZGVlbUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USEQoJdGlja2V0X2lkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhgKEGludGVncmF0aW9uX25hbWUYBCABKAkSEgoKY2FwYWJpbGl0eRgFIAEoCRIuCgpleHBpcmVzX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCK1AQoSSW50ZWdyYXRpb25TdW1tYXJ5EjIKBmNvbmZpZxgBIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZxISCgphdXRob3JpemVkGAIgASgIEjcKBnN0YXR1cxgDIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN0YXR1c0gAiAEBEhMKC3dlYmhvb2tfdXJsGAQgASgJQgkKB19zdGF0dXMiLQoXTGlzdEludGVncmF0aW9uc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJVChhMaXN0SW50ZWdyYXRpb25zUmVzcG9uc2USOQoMaW50ZWdyYXRpb25zGAEgAygLMiMuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uU3VtbWFyeSI5ChVHZXRJbnRlZ3JhdGlvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIrkBChZHZXRJbnRlZ3JhdGlvblJlc3BvbnNlEjIKBmNvbmZpZxgBIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvbkNvbmZpZxI3CgZzdGF0dXMYAiABKAsyIi5pbnRlZ3JhdGlvbnMudjEuSW50ZWdyYXRpb25TdGF0dXNIAIgBARISCgphdXRob3JpemVkGAMgASgIEhMKC3dlYmhvb2tfdXJsGAQgASgJQgkKB19zdGF0dXMiYgoYVXBzZXJ0SW50ZWdyYXRpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSMgoGY29uZmlnGAIgASgLMiIuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uQ29uZmlnImQKGVVwc2VydEludGVncmF0aW9uUmVzcG9uc2USMgoGY29uZmlnGAEgASgLMiIuaW50ZWdyYXRpb25zLnYxLkludGVncmF0aW9uQ29uZmlnEhMKC3dlYmhvb2tfdXJsGAIgASgJIjwKGERlbGV0ZUludGVncmF0aW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiGwoZRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZSIrChVMaXN0RXh0ZW5zaW9uc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJOChZMaXN0RXh0ZW5zaW9uc1Jlc3BvbnNlEjQKCmV4dGVuc2lvbnMYASADKAsyIC5pbnRlZ3JhdGlvbnMudjEuRXh0ZW5zaW9uQ29uZmlnIjcKE0dldEV4dGVuc2lvblJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIksKFEdldEV4dGVuc2lvblJlc3BvbnNlEjMKCWV4dGVuc2lvbhgBIAEoCzIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25Db25maWciXgoWVXBzZXJ0RXh0ZW5zaW9uUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEjAKBmNvbmZpZxgCIAEoCzIgLmludGVncmF0aW9ucy52MS5FeHRlbnNpb25Db25maWciSwoXVXBzZXJ0RXh0ZW5zaW9uUmVzcG9uc2USMAoGY29uZmlnGAEgASgLMiAuaW50ZWdyYXRpb25zLnYxLkV4dGVuc2lvbkNvbmZpZyI6ChZEZWxldGVFeHRlbnNpb25SZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCSIZChdEZWxldGVFeHRlbnNpb25SZXNwb25zZSI/ChtHZXRJbnRlZ3JhdGlvblN0YXR1c1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJIsIBChxHZXRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlEjcKBnN0YXR1cxgBIAEoCzIiLmludGVncmF0aW9ucy52MS5JbnRlZ3JhdGlvblN0YXR1c0gAiAEBEi4KCnVwZGF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnVwZGF0ZWRfYnlfanRpGAMgASgJSAGIAQFCCQoHX3N0YXR1c0IRCg9fdXBkYXRlZF9ieV9qdGki1wQKHlVwc2VydEludGVncmF0aW9uU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhgKEGludGVncmF0aW9uX25hbWUYAiABKAkSNQoMbGFzdF9zeW5jX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEiIKFWxhc3Rfc3luY19kdXJhdGlvbl9tcxgEIAEoA0gBiAEBEiMKFmxhc3Rfc3luY19yZWNvcmRfY291bnQYBSABKANIAogBARIXCgpsYXN0X2Vycm9yGAYgASgJSAOIAQESNgoNbGFzdF9lcnJvcl9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIgChNzdWJzY3JpcHRpb25faGVhbHRoGAggASgJSAWIAQESGAoLYXV0aF9zdGF0dXMYCSABKAlIBogBARIeChFkZWxldGlvbl9zdHJhdGVneRgKIAEoCUgHiAEBEisKBWV4dHJhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgIiAEBQg8KDV9sYXN0X3N5bmNfYXRCGAoWX2xhc3Rfc3luY19kdXJhdGlvbl9tc0IZChdfbGFzdF9zeW5jX3JlY29yZF9jb3VudEINCgtfbGFzdF9lcnJvckIQCg5fbGFzdF9lcnJvcl9hdEIWChRfc3Vic2NyaXB0aW9uX2hlYWx0aEIOCgxfYXV0aF9zdGF0dXNCFAoSX2RlbGV0aW9uX3N0cmF0ZWd5QggKBl9leHRyYSJRCh9VcHNlcnRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlEi4KCnVwZGF0ZWRfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjYKElRyaWdnZXJTeW5jUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEgwKBG5hbWUYAiABKAkikwEKE1RyaWdnZXJTeW5jUmVzcG9uc2USHgoWbWlkZGxld2FyZV9odHRwX3N0YXR1cxgBIAEoBRIXCg9taWRkbGV3YXJlX2JvZHkYAiABKAkSMAoMdHJpZ2dlcmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl0b2tlbl9qdGkYBCABKAkiNgoPVmFsaWRhdGlvbklzc3VlEhIKCmZpZWxkX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSJAChVWYWxpZGF0ZUNvbmZpZ1JlcXVlc3QSJwoGY29uZmlnGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJ+ChZWYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEjAKBmVycm9ycxgBIAMoCzIgLmludGVncmF0aW9ucy52MS5WYWxpZGF0aW9uSXNzdWUSMgoId2FybmluZ3MYAiADKAsyIC5pbnRlZ3JhdGlvbnMudjEuVmFsaWRhdGlvbklzc3VlIqgBChJDb25maWdIaXN0b3J5RW50cnkSCgoCaWQYASABKAkSLQoJcHVzaGVkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglwdXNoZWRfYnkYAyABKAkSDgoGc291cmNlGAQgASgJEgoKAm9rGAUgASgIEhYKDnJlc3VsdF9zdW1tYXJ5GAYgASgJEhAKCGhhc19kaWZmGAcgASgIIk0KGExpc3RDb25maWdIaXN0b3J5UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBmN1cnNvchgDIAEoCSJmChlMaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEjQKB2VudHJpZXMYASADKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EhMKC25leHRfY3Vyc29yGAIgASgJIj4KHEdldENvbmZpZ0hpc3RvcnlFbnRyeVJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIKCgJpZBgCIAEoCSKdAQodR2V0Q29uZmlnSGlzdG9yeUVudHJ5UmVzcG9uc2USMgoFZW50cnkYASABKAsyIy5pbnRlZ3JhdGlvbnMudjEuQ29uZmlnSGlzdG9yeUVudHJ5EiwKC2NvbmZpZ19qc29uGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJkaWZmX2Zyb21fcHJldmlvdXMYAyABKAkqgAIKEkNyZWRlbnRpYWxTdHJhdGVneRIjCh9DUkVERU5USUFMX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASHQoZQ1JFREVOVElBTF9TVFJBVEVHWV9PQVVUSBABEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfQVBJX0tFWRACEiUKIUNSRURFTlRJQUxfU1RSQVRFR1lfU0hBUkVEX1NFQ1JFVBADEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfU1NIX0tFWRAEEhwKGENSRURFTlRJQUxfU1RSQVRFR1lfTk9ORRAFEh8KG0NSRURFTlRJQUxfU1RSQVRFR1lfTUFOQUdFRBAGKpQBChJTdWJzY3JpcHRpb25IZWFsdGgSIwofU1VCU0NSSVBUSU9OX0hFQUxUSF9VTlNQRUNJRklFRBAAEhoKFlNVQlNDUklQVElPTl9IRUFMVEhfT0sQARIdChlTVUJTQ1JJUFRJT05fSEVBTFRIX1NUQUxFEAISHgoaU1VCU0NSSVBUSU9OX0hFQUxUSF9CUk9LRU4QAypvCgpBdXRoU3RhdHVzEhsKF0FVVEhfU1RBVFVTX1VOU1BFQ0lGSUVEEAASEgoOQVVUSF9TVEFUVVNfT0sQARIXChNBVVRIX1NUQVRVU19FWFBJUkVEEAISFwoTQVVUSF9TVEFUVVNfUkVWT0tFRBADKnEKD0V4dGVuc2lvblRhcmdldBIgChxFWFRFTlNJT05fVEFSR0VUX1VOU1BFQ0lGSUVEEAASGwoXRVhURU5TSU9OX1RBUkdFVF9SRUNPUkQQARIfChtFWFRFTlNJT05fVEFSR0VUX01PREVMX0xJU1QQAjKoAgodSW50ZWdyYXRpb25DcmVkZW50aWFsc1NlcnZpY2USfwoYR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsEjAuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uQ3JlZGVudGlhbFJlcXVlc3QaMS5pbnRlZ3JhdGlvbnMudjEuR2V0SW50ZWdyYXRpb25DcmVkZW50aWFsUmVzcG9uc2UShQEKGldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsEjIuaW50ZWdyYXRpb25zLnYxLldyaXRlSW50ZWdyYXRpb25DcmVkZW50aWFsUmVxdWVzdBozLmludGVncmF0aW9ucy52MS5Xcml0ZUludGVncmF0aW9uQ3JlZGVudGlhbFJlc3BvbnNlMv8BChZJbnRlZ3JhdGlvbkF1dGhTZXJ2aWNlEnAKE0lzc3VlRXhjaGFuZ2VUaWNrZXQSKy5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QaLC5pbnRlZ3JhdGlvbnMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlc3BvbnNlEnMKFFJlZGVlbUV4Y2hhbmdlVGlja2V0EiwuaW50ZWdyYXRpb25zLnYxLlJlZGVlbUV4Y2hhbmdlVGlja2V0UmVxdWVzdBotLmludGVncmF0aW9ucy52MS5SZWRlZW1FeGNoYW5nZVRpY2tldFJlc3BvbnNlMtkLChNJbnRlZ3JhdGlvbnNTZXJ2aWNlEmcKEExpc3RJbnRlZ3JhdGlvbnMSKC5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1JlcXVlc3QaKS5pbnRlZ3JhdGlvbnMudjEuTGlzdEludGVncmF0aW9uc1Jlc3BvbnNlEmEKDkdldEludGVncmF0aW9uEiYuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEVVwc2VydEludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLlVwc2VydEludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5VcHNlcnRJbnRlZ3JhdGlvblJlc3BvbnNlEmoKEURlbGV0ZUludGVncmF0aW9uEikuaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUludGVncmF0aW9uUmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5EZWxldGVJbnRlZ3JhdGlvblJlc3BvbnNlEmEKDkxpc3RFeHRlbnNpb25zEiYuaW50ZWdyYXRpb25zLnYxLkxpc3RFeHRlbnNpb25zUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5MaXN0RXh0ZW5zaW9uc1Jlc3BvbnNlElsKDEdldEV4dGVuc2lvbhIkLmludGVncmF0aW9ucy52MS5HZXRFeHRlbnNpb25SZXF1ZXN0GiUuaW50ZWdyYXRpb25zLnYxLkdldEV4dGVuc2lvblJlc3BvbnNlEmQKD1Vwc2VydEV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5VcHNlcnRFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLlVwc2VydEV4dGVuc2lvblJlc3BvbnNlEmQKD0RlbGV0ZUV4dGVuc2lvbhInLmludGVncmF0aW9ucy52MS5EZWxldGVFeHRlbnNpb25SZXF1ZXN0GiguaW50ZWdyYXRpb25zLnYxLkRlbGV0ZUV4dGVuc2lvblJlc3BvbnNlEnMKFEdldEludGVncmF0aW9uU3RhdHVzEiwuaW50ZWdyYXRpb25zLnYxLkdldEludGVncmF0aW9uU3RhdHVzUmVxdWVzdBotLmludGVncmF0aW9ucy52MS5HZXRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlEnwKF1Vwc2VydEludGVncmF0aW9uU3RhdHVzEi8uaW50ZWdyYXRpb25zLnYxLlVwc2VydEludGVncmF0aW9uU3RhdHVzUmVxdWVzdBowLmludGVncmF0aW9ucy52MS5VcHNlcnRJbnRlZ3JhdGlvblN0YXR1c1Jlc3BvbnNlElgKC1RyaWdnZXJTeW5jEiMuaW50ZWdyYXRpb25zLnYxLlRyaWdnZXJTeW5jUmVxdWVzdBokLmludGVncmF0aW9ucy52MS5UcmlnZ2VyU3luY1Jlc3BvbnNlEmEKDlZhbGlkYXRlQ29uZmlnEiYuaW50ZWdyYXRpb25zLnYxLlZhbGlkYXRlQ29uZmlnUmVxdWVzdBonLmludGVncmF0aW9ucy52MS5WYWxpZGF0ZUNvbmZpZ1Jlc3BvbnNlEmoKEUxpc3RDb25maWdIaXN0b3J5EikuaW50ZWdyYXRpb25zLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBoqLmludGVncmF0aW9ucy52MS5MaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEnYKFUdldENvbmZpZ0hpc3RvcnlFbnRyeRItLmludGVncmF0aW9ucy52MS5HZXRDb25maWdIaXN0b3J5RW50cnlSZXF1ZXN0Gi4uaW50ZWdyYXRpb25zLnYxLkdldENvbmZpZ0hpc3RvcnlFbnRyeVJlc3BvbnNlQkVaQ2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pbnRlZ3JhdGlvbnMvdjE7aW50ZWdyYXRpb25zdjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct, file_google_protobuf_timestamp]);
14
14
 
15
15
  /**
16
16
  * Describes the message integrations.v1.IntegrationMiddleware.
@@ -124,208 +124,236 @@ export const IssueExchangeTicketRequestSchema = /*@__PURE__*/
124
124
  export const IssueExchangeTicketResponseSchema = /*@__PURE__*/
125
125
  messageDesc(file_integrations_v1_integrations, 15);
126
126
 
127
+ /**
128
+ * Describes the message integrations.v1.RedeemExchangeTicketRequest.
129
+ * Use `create(RedeemExchangeTicketRequestSchema)` to create a new message.
130
+ */
131
+ export const RedeemExchangeTicketRequestSchema = /*@__PURE__*/
132
+ messageDesc(file_integrations_v1_integrations, 16);
133
+
134
+ /**
135
+ * Describes the message integrations.v1.RedeemExchangeTicketResponse.
136
+ * Use `create(RedeemExchangeTicketResponseSchema)` to create a new message.
137
+ */
138
+ export const RedeemExchangeTicketResponseSchema = /*@__PURE__*/
139
+ messageDesc(file_integrations_v1_integrations, 17);
140
+
127
141
  /**
128
142
  * Describes the message integrations.v1.IntegrationSummary.
129
143
  * Use `create(IntegrationSummarySchema)` to create a new message.
130
144
  */
131
145
  export const IntegrationSummarySchema = /*@__PURE__*/
132
- messageDesc(file_integrations_v1_integrations, 16);
146
+ messageDesc(file_integrations_v1_integrations, 18);
133
147
 
134
148
  /**
135
149
  * Describes the message integrations.v1.ListIntegrationsRequest.
136
150
  * Use `create(ListIntegrationsRequestSchema)` to create a new message.
137
151
  */
138
152
  export const ListIntegrationsRequestSchema = /*@__PURE__*/
139
- messageDesc(file_integrations_v1_integrations, 17);
153
+ messageDesc(file_integrations_v1_integrations, 19);
140
154
 
141
155
  /**
142
156
  * Describes the message integrations.v1.ListIntegrationsResponse.
143
157
  * Use `create(ListIntegrationsResponseSchema)` to create a new message.
144
158
  */
145
159
  export const ListIntegrationsResponseSchema = /*@__PURE__*/
146
- messageDesc(file_integrations_v1_integrations, 18);
160
+ messageDesc(file_integrations_v1_integrations, 20);
147
161
 
148
162
  /**
149
163
  * Describes the message integrations.v1.GetIntegrationRequest.
150
164
  * Use `create(GetIntegrationRequestSchema)` to create a new message.
151
165
  */
152
166
  export const GetIntegrationRequestSchema = /*@__PURE__*/
153
- messageDesc(file_integrations_v1_integrations, 19);
167
+ messageDesc(file_integrations_v1_integrations, 21);
154
168
 
155
169
  /**
156
170
  * Describes the message integrations.v1.GetIntegrationResponse.
157
171
  * Use `create(GetIntegrationResponseSchema)` to create a new message.
158
172
  */
159
173
  export const GetIntegrationResponseSchema = /*@__PURE__*/
160
- messageDesc(file_integrations_v1_integrations, 20);
174
+ messageDesc(file_integrations_v1_integrations, 22);
161
175
 
162
176
  /**
163
177
  * Describes the message integrations.v1.UpsertIntegrationRequest.
164
178
  * Use `create(UpsertIntegrationRequestSchema)` to create a new message.
165
179
  */
166
180
  export const UpsertIntegrationRequestSchema = /*@__PURE__*/
167
- messageDesc(file_integrations_v1_integrations, 21);
181
+ messageDesc(file_integrations_v1_integrations, 23);
168
182
 
169
183
  /**
170
184
  * Describes the message integrations.v1.UpsertIntegrationResponse.
171
185
  * Use `create(UpsertIntegrationResponseSchema)` to create a new message.
172
186
  */
173
187
  export const UpsertIntegrationResponseSchema = /*@__PURE__*/
174
- messageDesc(file_integrations_v1_integrations, 22);
188
+ messageDesc(file_integrations_v1_integrations, 24);
175
189
 
176
190
  /**
177
191
  * Describes the message integrations.v1.DeleteIntegrationRequest.
178
192
  * Use `create(DeleteIntegrationRequestSchema)` to create a new message.
179
193
  */
180
194
  export const DeleteIntegrationRequestSchema = /*@__PURE__*/
181
- messageDesc(file_integrations_v1_integrations, 23);
195
+ messageDesc(file_integrations_v1_integrations, 25);
182
196
 
183
197
  /**
184
198
  * Describes the message integrations.v1.DeleteIntegrationResponse.
185
199
  * Use `create(DeleteIntegrationResponseSchema)` to create a new message.
186
200
  */
187
201
  export const DeleteIntegrationResponseSchema = /*@__PURE__*/
188
- messageDesc(file_integrations_v1_integrations, 24);
202
+ messageDesc(file_integrations_v1_integrations, 26);
189
203
 
190
204
  /**
191
205
  * Describes the message integrations.v1.ListExtensionsRequest.
192
206
  * Use `create(ListExtensionsRequestSchema)` to create a new message.
193
207
  */
194
208
  export const ListExtensionsRequestSchema = /*@__PURE__*/
195
- messageDesc(file_integrations_v1_integrations, 25);
209
+ messageDesc(file_integrations_v1_integrations, 27);
196
210
 
197
211
  /**
198
212
  * Describes the message integrations.v1.ListExtensionsResponse.
199
213
  * Use `create(ListExtensionsResponseSchema)` to create a new message.
200
214
  */
201
215
  export const ListExtensionsResponseSchema = /*@__PURE__*/
202
- messageDesc(file_integrations_v1_integrations, 26);
216
+ messageDesc(file_integrations_v1_integrations, 28);
203
217
 
204
218
  /**
205
219
  * Describes the message integrations.v1.GetExtensionRequest.
206
220
  * Use `create(GetExtensionRequestSchema)` to create a new message.
207
221
  */
208
222
  export const GetExtensionRequestSchema = /*@__PURE__*/
209
- messageDesc(file_integrations_v1_integrations, 27);
223
+ messageDesc(file_integrations_v1_integrations, 29);
210
224
 
211
225
  /**
212
226
  * Describes the message integrations.v1.GetExtensionResponse.
213
227
  * Use `create(GetExtensionResponseSchema)` to create a new message.
214
228
  */
215
229
  export const GetExtensionResponseSchema = /*@__PURE__*/
216
- messageDesc(file_integrations_v1_integrations, 28);
230
+ messageDesc(file_integrations_v1_integrations, 30);
217
231
 
218
232
  /**
219
233
  * Describes the message integrations.v1.UpsertExtensionRequest.
220
234
  * Use `create(UpsertExtensionRequestSchema)` to create a new message.
221
235
  */
222
236
  export const UpsertExtensionRequestSchema = /*@__PURE__*/
223
- messageDesc(file_integrations_v1_integrations, 29);
237
+ messageDesc(file_integrations_v1_integrations, 31);
224
238
 
225
239
  /**
226
240
  * Describes the message integrations.v1.UpsertExtensionResponse.
227
241
  * Use `create(UpsertExtensionResponseSchema)` to create a new message.
228
242
  */
229
243
  export const UpsertExtensionResponseSchema = /*@__PURE__*/
230
- messageDesc(file_integrations_v1_integrations, 30);
244
+ messageDesc(file_integrations_v1_integrations, 32);
231
245
 
232
246
  /**
233
247
  * Describes the message integrations.v1.DeleteExtensionRequest.
234
248
  * Use `create(DeleteExtensionRequestSchema)` to create a new message.
235
249
  */
236
250
  export const DeleteExtensionRequestSchema = /*@__PURE__*/
237
- messageDesc(file_integrations_v1_integrations, 31);
251
+ messageDesc(file_integrations_v1_integrations, 33);
238
252
 
239
253
  /**
240
254
  * Describes the message integrations.v1.DeleteExtensionResponse.
241
255
  * Use `create(DeleteExtensionResponseSchema)` to create a new message.
242
256
  */
243
257
  export const DeleteExtensionResponseSchema = /*@__PURE__*/
244
- messageDesc(file_integrations_v1_integrations, 32);
258
+ messageDesc(file_integrations_v1_integrations, 34);
245
259
 
246
260
  /**
247
261
  * Describes the message integrations.v1.GetIntegrationStatusRequest.
248
262
  * Use `create(GetIntegrationStatusRequestSchema)` to create a new message.
249
263
  */
250
264
  export const GetIntegrationStatusRequestSchema = /*@__PURE__*/
251
- messageDesc(file_integrations_v1_integrations, 33);
265
+ messageDesc(file_integrations_v1_integrations, 35);
252
266
 
253
267
  /**
254
268
  * Describes the message integrations.v1.GetIntegrationStatusResponse.
255
269
  * Use `create(GetIntegrationStatusResponseSchema)` to create a new message.
256
270
  */
257
271
  export const GetIntegrationStatusResponseSchema = /*@__PURE__*/
258
- messageDesc(file_integrations_v1_integrations, 34);
272
+ messageDesc(file_integrations_v1_integrations, 36);
273
+
274
+ /**
275
+ * Describes the message integrations.v1.UpsertIntegrationStatusRequest.
276
+ * Use `create(UpsertIntegrationStatusRequestSchema)` to create a new message.
277
+ */
278
+ export const UpsertIntegrationStatusRequestSchema = /*@__PURE__*/
279
+ messageDesc(file_integrations_v1_integrations, 37);
280
+
281
+ /**
282
+ * Describes the message integrations.v1.UpsertIntegrationStatusResponse.
283
+ * Use `create(UpsertIntegrationStatusResponseSchema)` to create a new message.
284
+ */
285
+ export const UpsertIntegrationStatusResponseSchema = /*@__PURE__*/
286
+ messageDesc(file_integrations_v1_integrations, 38);
259
287
 
260
288
  /**
261
289
  * Describes the message integrations.v1.TriggerSyncRequest.
262
290
  * Use `create(TriggerSyncRequestSchema)` to create a new message.
263
291
  */
264
292
  export const TriggerSyncRequestSchema = /*@__PURE__*/
265
- messageDesc(file_integrations_v1_integrations, 35);
293
+ messageDesc(file_integrations_v1_integrations, 39);
266
294
 
267
295
  /**
268
296
  * Describes the message integrations.v1.TriggerSyncResponse.
269
297
  * Use `create(TriggerSyncResponseSchema)` to create a new message.
270
298
  */
271
299
  export const TriggerSyncResponseSchema = /*@__PURE__*/
272
- messageDesc(file_integrations_v1_integrations, 36);
300
+ messageDesc(file_integrations_v1_integrations, 40);
273
301
 
274
302
  /**
275
303
  * Describes the message integrations.v1.ValidationIssue.
276
304
  * Use `create(ValidationIssueSchema)` to create a new message.
277
305
  */
278
306
  export const ValidationIssueSchema = /*@__PURE__*/
279
- messageDesc(file_integrations_v1_integrations, 37);
307
+ messageDesc(file_integrations_v1_integrations, 41);
280
308
 
281
309
  /**
282
310
  * Describes the message integrations.v1.ValidateConfigRequest.
283
311
  * Use `create(ValidateConfigRequestSchema)` to create a new message.
284
312
  */
285
313
  export const ValidateConfigRequestSchema = /*@__PURE__*/
286
- messageDesc(file_integrations_v1_integrations, 38);
314
+ messageDesc(file_integrations_v1_integrations, 42);
287
315
 
288
316
  /**
289
317
  * Describes the message integrations.v1.ValidateConfigResponse.
290
318
  * Use `create(ValidateConfigResponseSchema)` to create a new message.
291
319
  */
292
320
  export const ValidateConfigResponseSchema = /*@__PURE__*/
293
- messageDesc(file_integrations_v1_integrations, 39);
321
+ messageDesc(file_integrations_v1_integrations, 43);
294
322
 
295
323
  /**
296
324
  * Describes the message integrations.v1.ConfigHistoryEntry.
297
325
  * Use `create(ConfigHistoryEntrySchema)` to create a new message.
298
326
  */
299
327
  export const ConfigHistoryEntrySchema = /*@__PURE__*/
300
- messageDesc(file_integrations_v1_integrations, 40);
328
+ messageDesc(file_integrations_v1_integrations, 44);
301
329
 
302
330
  /**
303
331
  * Describes the message integrations.v1.ListConfigHistoryRequest.
304
332
  * Use `create(ListConfigHistoryRequestSchema)` to create a new message.
305
333
  */
306
334
  export const ListConfigHistoryRequestSchema = /*@__PURE__*/
307
- messageDesc(file_integrations_v1_integrations, 41);
335
+ messageDesc(file_integrations_v1_integrations, 45);
308
336
 
309
337
  /**
310
338
  * Describes the message integrations.v1.ListConfigHistoryResponse.
311
339
  * Use `create(ListConfigHistoryResponseSchema)` to create a new message.
312
340
  */
313
341
  export const ListConfigHistoryResponseSchema = /*@__PURE__*/
314
- messageDesc(file_integrations_v1_integrations, 42);
342
+ messageDesc(file_integrations_v1_integrations, 46);
315
343
 
316
344
  /**
317
345
  * Describes the message integrations.v1.GetConfigHistoryEntryRequest.
318
346
  * Use `create(GetConfigHistoryEntryRequestSchema)` to create a new message.
319
347
  */
320
348
  export const GetConfigHistoryEntryRequestSchema = /*@__PURE__*/
321
- messageDesc(file_integrations_v1_integrations, 43);
349
+ messageDesc(file_integrations_v1_integrations, 47);
322
350
 
323
351
  /**
324
352
  * Describes the message integrations.v1.GetConfigHistoryEntryResponse.
325
353
  * Use `create(GetConfigHistoryEntryResponseSchema)` to create a new message.
326
354
  */
327
355
  export const GetConfigHistoryEntryResponseSchema = /*@__PURE__*/
328
- messageDesc(file_integrations_v1_integrations, 44);
356
+ messageDesc(file_integrations_v1_integrations, 48);
329
357
 
330
358
  /**
331
359
  * Describes the enum integrations.v1.CredentialStrategy.