@eide/foir-proto-ts 0.41.0 → 0.43.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.41.0",
3
+ "version": "0.43.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 { ApplyExperimentWinnerRequest, ApplyExperimentWinnerResponse, CreateExperimentRequest, CreateExperimentResponse, DeleteExperimentRequest, DeleteExperimentResponse, EndExperimentRequest, EndExperimentResponse, ForceAssignExperimentRequest, ForceAssignExperimentResponse, GetAssignmentsRequest, GetAssignmentsResponse, GetExperimentByKeyRequest, GetExperimentByKeyResponse, GetExperimentRequest, GetExperimentResponse, GetExperimentStatsRequest, GetExperimentStatsResponse, ListExperimentDeclarationsRequest, ListExperimentDeclarationsResponse, ListExperimentsRequest, ListExperimentsResponse, PauseExperimentRequest, PauseExperimentResponse, RemoveExperimentAssignmentRequest, RemoveExperimentAssignmentResponse, ResolveExposureRequest, ResolveExposureResponse, ResumeExperimentRequest, ResumeExperimentResponse, StartExperimentRequest, StartExperimentResponse, UpdateExperimentRequest, UpdateExperimentResponse } from "./experiments_pbjs";
6
+ import { ApplyExperimentWinnerRequest, ApplyExperimentWinnerResponse, CreateExperimentRequest, CreateExperimentResponse, DeleteExperimentRequest, DeleteExperimentResponse, EndExperimentRequest, EndExperimentResponse, ForceAssignExperimentRequest, ForceAssignExperimentResponse, GetAssignmentsRequest, GetAssignmentsResponse, GetExperimentByKeyRequest, GetExperimentByKeyResponse, GetExperimentRequest, GetExperimentResponse, GetExperimentStatsRequest, GetExperimentStatsResponse, ListExperimentDeclarationsRequest, ListExperimentDeclarationsResponse, ListExperimentsRequest, ListExperimentsResponse, PauseExperimentRequest, PauseExperimentResponse, PreviewExperimentWinnerRolloutRequest, PreviewExperimentWinnerRolloutResponse, RemoveExperimentAssignmentRequest, RemoveExperimentAssignmentResponse, ResolveExposureRequest, ResolveExposureResponse, ResumeExperimentRequest, ResumeExperimentResponse, RollbackExperimentRequest, RollbackExperimentResponse, StartExperimentRequest, StartExperimentResponse, UpdateExperimentRequest, UpdateExperimentResponse } from "./experiments_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -117,6 +117,24 @@ export declare const ExperimentsService: {
117
117
  readonly O: typeof ApplyExperimentWinnerResponse,
118
118
  readonly kind: MethodKind.Unary,
119
119
  },
120
+ /**
121
+ * @generated from rpc experiments.v1.ExperimentsService.PreviewExperimentWinnerRollout
122
+ */
123
+ readonly previewExperimentWinnerRollout: {
124
+ readonly name: "PreviewExperimentWinnerRollout",
125
+ readonly I: typeof PreviewExperimentWinnerRolloutRequest,
126
+ readonly O: typeof PreviewExperimentWinnerRolloutResponse,
127
+ readonly kind: MethodKind.Unary,
128
+ },
129
+ /**
130
+ * @generated from rpc experiments.v1.ExperimentsService.RollbackExperiment
131
+ */
132
+ readonly rollbackExperiment: {
133
+ readonly name: "RollbackExperiment",
134
+ readonly I: typeof RollbackExperimentRequest,
135
+ readonly O: typeof RollbackExperimentResponse,
136
+ readonly kind: MethodKind.Unary,
137
+ },
120
138
  /**
121
139
  * Stats.
122
140
  *
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { ApplyExperimentWinnerRequest, ApplyExperimentWinnerResponse, CreateExperimentRequest, CreateExperimentResponse, DeleteExperimentRequest, DeleteExperimentResponse, EndExperimentRequest, EndExperimentResponse, ForceAssignExperimentRequest, ForceAssignExperimentResponse, GetAssignmentsRequest, GetAssignmentsResponse, GetExperimentByKeyRequest, GetExperimentByKeyResponse, GetExperimentRequest, GetExperimentResponse, GetExperimentStatsRequest, GetExperimentStatsResponse, ListExperimentDeclarationsRequest, ListExperimentDeclarationsResponse, ListExperimentsRequest, ListExperimentsResponse, PauseExperimentRequest, PauseExperimentResponse, RemoveExperimentAssignmentRequest, RemoveExperimentAssignmentResponse, ResolveExposureRequest, ResolveExposureResponse, ResumeExperimentRequest, ResumeExperimentResponse, StartExperimentRequest, StartExperimentResponse, UpdateExperimentRequest, UpdateExperimentResponse } from "./experiments_pbjs";
6
+ import { ApplyExperimentWinnerRequest, ApplyExperimentWinnerResponse, CreateExperimentRequest, CreateExperimentResponse, DeleteExperimentRequest, DeleteExperimentResponse, EndExperimentRequest, EndExperimentResponse, ForceAssignExperimentRequest, ForceAssignExperimentResponse, GetAssignmentsRequest, GetAssignmentsResponse, GetExperimentByKeyRequest, GetExperimentByKeyResponse, GetExperimentRequest, GetExperimentResponse, GetExperimentStatsRequest, GetExperimentStatsResponse, ListExperimentDeclarationsRequest, ListExperimentDeclarationsResponse, ListExperimentsRequest, ListExperimentsResponse, PauseExperimentRequest, PauseExperimentResponse, PreviewExperimentWinnerRolloutRequest, PreviewExperimentWinnerRolloutResponse, RemoveExperimentAssignmentRequest, RemoveExperimentAssignmentResponse, ResolveExposureRequest, ResolveExposureResponse, ResumeExperimentRequest, ResumeExperimentResponse, RollbackExperimentRequest, RollbackExperimentResponse, StartExperimentRequest, StartExperimentResponse, UpdateExperimentRequest, UpdateExperimentResponse } from "./experiments_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -117,6 +117,24 @@ export const ExperimentsService = {
117
117
  O: ApplyExperimentWinnerResponse,
118
118
  kind: MethodKind.Unary,
119
119
  },
120
+ /**
121
+ * @generated from rpc experiments.v1.ExperimentsService.PreviewExperimentWinnerRollout
122
+ */
123
+ previewExperimentWinnerRollout: {
124
+ name: "PreviewExperimentWinnerRollout",
125
+ I: PreviewExperimentWinnerRolloutRequest,
126
+ O: PreviewExperimentWinnerRolloutResponse,
127
+ kind: MethodKind.Unary,
128
+ },
129
+ /**
130
+ * @generated from rpc experiments.v1.ExperimentsService.RollbackExperiment
131
+ */
132
+ rollbackExperiment: {
133
+ name: "RollbackExperiment",
134
+ I: RollbackExperimentRequest,
135
+ O: RollbackExperimentResponse,
136
+ kind: MethodKind.Unary,
137
+ },
120
138
  /**
121
139
  * Stats.
122
140
  *
@@ -76,6 +76,40 @@ export declare type ExperimentVariant = Message<"experiments.v1.ExperimentVarian
76
76
  */
77
77
  export declare const ExperimentVariantSchema: GenMessage<ExperimentVariant>;
78
78
 
79
+ /**
80
+ * ExperimentGoal is a declared conversion event for an experiment. Goal keys
81
+ * are matched case-sensitively against the event_name on
82
+ * RecordConversionEvent — events whose name is not in the experiment's goals
83
+ * list are rejected as InvalidArgument.
84
+ *
85
+ * An experiment with zero goals declared accepts any event_name (no
86
+ * goal-match enforcement).
87
+ *
88
+ * @generated from message experiments.v1.ExperimentGoal
89
+ */
90
+ export declare type ExperimentGoal = Message<"experiments.v1.ExperimentGoal"> & {
91
+ /**
92
+ * @generated from field: string key = 1;
93
+ */
94
+ key: string;
95
+
96
+ /**
97
+ * @generated from field: string name = 2;
98
+ */
99
+ name: string;
100
+
101
+ /**
102
+ * @generated from field: optional string description = 3;
103
+ */
104
+ description?: string | undefined;
105
+ };
106
+
107
+ /**
108
+ * Describes the message experiments.v1.ExperimentGoal.
109
+ * Use `create(ExperimentGoalSchema)` to create a new message.
110
+ */
111
+ export declare const ExperimentGoalSchema: GenMessage<ExperimentGoal>;
112
+
79
113
  /**
80
114
  * @generated from message experiments.v1.Experiment
81
115
  */
@@ -154,9 +188,9 @@ export declare type Experiment = Message<"experiments.v1.Experiment"> & {
154
188
  metrics?: JsonObject | undefined;
155
189
 
156
190
  /**
157
- * @generated from field: optional google.protobuf.Struct goals = 36;
191
+ * @generated from field: repeated experiments.v1.ExperimentGoal goals = 36;
158
192
  */
159
- goals?: JsonObject | undefined;
193
+ goals: ExperimentGoal[];
160
194
 
161
195
  /**
162
196
  * Ownership.
@@ -422,9 +456,9 @@ export declare type CreateExperimentRequest = Message<"experiments.v1.CreateExpe
422
456
  assignmentPersistence?: string | undefined;
423
457
 
424
458
  /**
425
- * @generated from field: optional google.protobuf.Struct goals = 10;
459
+ * @generated from field: repeated experiments.v1.ExperimentGoal goals = 10;
426
460
  */
427
- goals?: JsonObject | undefined;
461
+ goals: ExperimentGoal[];
428
462
  };
429
463
 
430
464
  /**
@@ -615,9 +649,17 @@ export declare type UpdateExperimentRequest = Message<"experiments.v1.UpdateExpe
615
649
  assignmentPersistence?: string | undefined;
616
650
 
617
651
  /**
618
- * @generated from field: optional google.protobuf.Struct goals = 10;
652
+ * To clear declared goals, set goals_clear=true (sending an empty array
653
+ * alone is indistinguishable from "no change" for repeated fields).
654
+ *
655
+ * @generated from field: repeated experiments.v1.ExperimentGoal goals = 10;
656
+ */
657
+ goals: ExperimentGoal[];
658
+
659
+ /**
660
+ * @generated from field: bool goals_clear = 11;
619
661
  */
620
- goals?: JsonObject | undefined;
662
+ goalsClear: boolean;
621
663
  };
622
664
 
623
665
  /**
@@ -958,6 +1000,23 @@ export declare type ApplyExperimentWinnerResponse = Message<"experiments.v1.Appl
958
1000
  * @generated from field: experiments.v1.Experiment experiment = 1;
959
1001
  */
960
1002
  experiment?: Experiment | undefined;
1003
+
1004
+ /**
1005
+ * Number of parent records whose default variant was changed (or
1006
+ * would have been, but was already the winner). Drives the admin
1007
+ * confirmation copy.
1008
+ *
1009
+ * @generated from field: int32 affected_record_count = 2;
1010
+ */
1011
+ affectedRecordCount: number;
1012
+
1013
+ /**
1014
+ * Number of variant rows whose experimentKey/variantKey metadata
1015
+ * was cleared as part of the rollout sweep.
1016
+ *
1017
+ * @generated from field: int32 cleared_variant_count = 3;
1018
+ */
1019
+ clearedVariantCount: number;
961
1020
  };
962
1021
 
963
1022
  /**
@@ -966,6 +1025,136 @@ export declare type ApplyExperimentWinnerResponse = Message<"experiments.v1.Appl
966
1025
  */
967
1026
  export declare const ApplyExperimentWinnerResponseSchema: GenMessage<ApplyExperimentWinnerResponse>;
968
1027
 
1028
+ /**
1029
+ * Read-only dry-run for the admin confirmation dialog. Returns what
1030
+ * records would be affected by ApplyExperimentWinner without making
1031
+ * any changes. Same validation surface as ApplyExperimentWinner so
1032
+ * the UI can surface "winner key not declared on this experiment"
1033
+ * before the user clicks through.
1034
+ *
1035
+ * @generated from message experiments.v1.PreviewExperimentWinnerRolloutRequest
1036
+ */
1037
+ export declare type PreviewExperimentWinnerRolloutRequest = Message<"experiments.v1.PreviewExperimentWinnerRolloutRequest"> & {
1038
+ /**
1039
+ * @generated from field: string experiment_id = 1;
1040
+ */
1041
+ experimentId: string;
1042
+
1043
+ /**
1044
+ * @generated from field: string winner_variant_key = 2;
1045
+ */
1046
+ winnerVariantKey: string;
1047
+ };
1048
+
1049
+ /**
1050
+ * Describes the message experiments.v1.PreviewExperimentWinnerRolloutRequest.
1051
+ * Use `create(PreviewExperimentWinnerRolloutRequestSchema)` to create a new message.
1052
+ */
1053
+ export declare const PreviewExperimentWinnerRolloutRequestSchema: GenMessage<PreviewExperimentWinnerRolloutRequest>;
1054
+
1055
+ /**
1056
+ * @generated from message experiments.v1.AffectedRecord
1057
+ */
1058
+ export declare type AffectedRecord = Message<"experiments.v1.AffectedRecord"> & {
1059
+ /**
1060
+ * @generated from field: string record_id = 1;
1061
+ */
1062
+ recordId: string;
1063
+
1064
+ /**
1065
+ * Currently-set defaultVariantId, or empty when none.
1066
+ *
1067
+ * @generated from field: string current_default_variant_id = 2;
1068
+ */
1069
+ currentDefaultVariantId: string;
1070
+
1071
+ /**
1072
+ * Variant id that would become default after rollout, or empty if
1073
+ * the winner is "control" (no variant change — only metadata cleanup).
1074
+ *
1075
+ * @generated from field: string new_default_variant_id = 3;
1076
+ */
1077
+ newDefaultVariantId: string;
1078
+ };
1079
+
1080
+ /**
1081
+ * Describes the message experiments.v1.AffectedRecord.
1082
+ * Use `create(AffectedRecordSchema)` to create a new message.
1083
+ */
1084
+ export declare const AffectedRecordSchema: GenMessage<AffectedRecord>;
1085
+
1086
+ /**
1087
+ * @generated from message experiments.v1.PreviewExperimentWinnerRolloutResponse
1088
+ */
1089
+ export declare type PreviewExperimentWinnerRolloutResponse = Message<"experiments.v1.PreviewExperimentWinnerRolloutResponse"> & {
1090
+ /**
1091
+ * @generated from field: repeated experiments.v1.AffectedRecord affected_records = 1;
1092
+ */
1093
+ affectedRecords: AffectedRecord[];
1094
+
1095
+ /**
1096
+ * Cohort variants that would have their experimentKey/variantKey
1097
+ * metadata cleared (always == affected_records cohort + losers).
1098
+ *
1099
+ * @generated from field: int32 cleared_variant_count = 2;
1100
+ */
1101
+ clearedVariantCount: number;
1102
+ };
1103
+
1104
+ /**
1105
+ * Describes the message experiments.v1.PreviewExperimentWinnerRolloutResponse.
1106
+ * Use `create(PreviewExperimentWinnerRolloutResponseSchema)` to create a new message.
1107
+ */
1108
+ export declare const PreviewExperimentWinnerRolloutResponseSchema: GenMessage<PreviewExperimentWinnerRolloutResponse>;
1109
+
1110
+ /**
1111
+ * Restores the snapshot captured by the most recent
1112
+ * ApplyExperimentWinner call: re-applies previous default variants on
1113
+ * affected records, re-binds cohort variants to their old experimentKey/
1114
+ * variantKey metadata, transitions the experiment back to PAUSED so the
1115
+ * admin can decide whether to resume or end again.
1116
+ *
1117
+ * @generated from message experiments.v1.RollbackExperimentRequest
1118
+ */
1119
+ export declare type RollbackExperimentRequest = Message<"experiments.v1.RollbackExperimentRequest"> & {
1120
+ /**
1121
+ * @generated from field: string experiment_id = 1;
1122
+ */
1123
+ experimentId: string;
1124
+ };
1125
+
1126
+ /**
1127
+ * Describes the message experiments.v1.RollbackExperimentRequest.
1128
+ * Use `create(RollbackExperimentRequestSchema)` to create a new message.
1129
+ */
1130
+ export declare const RollbackExperimentRequestSchema: GenMessage<RollbackExperimentRequest>;
1131
+
1132
+ /**
1133
+ * @generated from message experiments.v1.RollbackExperimentResponse
1134
+ */
1135
+ export declare type RollbackExperimentResponse = Message<"experiments.v1.RollbackExperimentResponse"> & {
1136
+ /**
1137
+ * @generated from field: experiments.v1.Experiment experiment = 1;
1138
+ */
1139
+ experiment?: Experiment | undefined;
1140
+
1141
+ /**
1142
+ * @generated from field: int32 restored_record_count = 2;
1143
+ */
1144
+ restoredRecordCount: number;
1145
+
1146
+ /**
1147
+ * @generated from field: int32 restored_variant_count = 3;
1148
+ */
1149
+ restoredVariantCount: number;
1150
+ };
1151
+
1152
+ /**
1153
+ * Describes the message experiments.v1.RollbackExperimentResponse.
1154
+ * Use `create(RollbackExperimentResponseSchema)` to create a new message.
1155
+ */
1156
+ export declare const RollbackExperimentResponseSchema: GenMessage<RollbackExperimentResponse>;
1157
+
969
1158
  /**
970
1159
  * Reads assignment rows for the given identity. Exactly one of customer_id
971
1160
  * or viewer_key must be set — symmetric with RecordConversionInput. Both
@@ -1268,6 +1457,22 @@ export declare const ExperimentsService: GenService<{
1268
1457
  input: typeof ApplyExperimentWinnerRequestSchema;
1269
1458
  output: typeof ApplyExperimentWinnerResponseSchema;
1270
1459
  },
1460
+ /**
1461
+ * @generated from rpc experiments.v1.ExperimentsService.PreviewExperimentWinnerRollout
1462
+ */
1463
+ previewExperimentWinnerRollout: {
1464
+ methodKind: "unary";
1465
+ input: typeof PreviewExperimentWinnerRolloutRequestSchema;
1466
+ output: typeof PreviewExperimentWinnerRolloutResponseSchema;
1467
+ },
1468
+ /**
1469
+ * @generated from rpc experiments.v1.ExperimentsService.RollbackExperiment
1470
+ */
1471
+ rollbackExperiment: {
1472
+ methodKind: "unary";
1473
+ input: typeof RollbackExperimentRequestSchema;
1474
+ output: typeof RollbackExperimentResponseSchema;
1475
+ },
1271
1476
  /**
1272
1477
  * Stats.
1273
1478
  *
@@ -10,7 +10,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
10
10
  * Describes the file experiments/v1/experiments.proto.
11
11
  */
12
12
  export const file_experiments_v1_experiments = /*@__PURE__*/
13
- fileDesc("CiBleHBlcmltZW50cy92MS9leHBlcmltZW50cy5wcm90bxIOZXhwZXJpbWVudHMudjEiswEKE0V4cGVyaW1lbnRUYXJnZXRpbmcSDAoEdHlwZRgBIAEoCRIXCgpzZWdtZW50X2lkGAIgASgJSACIAQESGAoLc2VnbWVudF9rZXkYAyABKAlIAYgBARIyCgVydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAKIAQFCDQoLX3NlZ21lbnRfaWRCDgoMX3NlZ21lbnRfa2V5QggKBl9ydWxlcyJ4ChFFeHBlcmltZW50VmFyaWFudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIPCgdwZXJjZW50GAMgASgFEiwKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIJCgdfY29uZmlnIpUGCgpFeHBlcmltZW50EgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESMAoGc3RhdHVzGAogASgOMiAuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFN0YXR1cxIRCglpc19hY3RpdmUYCyABKAgSNgoJdGFyZ2V0aW5nGBQgASgLMiMuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFRhcmdldGluZxIXCg9jb250cm9sX3BlcmNlbnQYFSABKAUSMwoIdmFyaWFudHMYFiADKAsyIS5leHBlcmltZW50cy52MS5FeHBlcmltZW50VmFyaWFudBIeChZhc3NpZ25tZW50X3BlcnNpc3RlbmNlGBcgASgJEjMKCnN0YXJ0X2RhdGUYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMQoIZW5kX2RhdGUYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESLQoHbWV0cmljcxgjIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIrCgVnb2FscxgkIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIRCgl0ZW5hbnRfaWQYKCABKAkSEgoKcHJvamVjdF9pZBgpIAEoCRIXCgpjcmVhdGVkX2J5GC0gASgJSAWIAQESFwoKdXBkYXRlZF9ieRguIAEoCUgGiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCCgoIX21ldHJpY3NCCAoGX2dvYWxzQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5ItQDChRFeHBlcmltZW50QXNzaWdubWVudBIKCgJpZBgBIAEoCRIVCg1leHBlcmltZW50X2lkGAIgASgJEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQESEwoLdmFyaWFudF9rZXkYBCABKAkSGQoRYXNzaWdubWVudF9tZXRob2QYBSABKAkSFgoOZXhwZXJpbWVudF9rZXkYBiABKAkSFwoKdmlld2VyX2tleRgHIAEoCUgBiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEi8KC2Fzc2lnbmVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1maXJzdF9zZWVuX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxsYXN0X3NlZW5fYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmV4cGlyZXNfYXQYFyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQFCDgoMX2N1c3RvbWVyX2lkQg0KC192aWV3ZXJfa2V5Qg0KC19leHBpcmVzX2F0IkUKFUV4cGVyaW1lbnREZWNsYXJhdGlvbhIWCg5leHBlcmltZW50X2tleRgBIAEoCRIUCgx2YXJpYW50X2tleXMYAiADKAkipwEKDFZhcmlhbnRTdGF0cxITCgt2YXJpYW50X2tleRgBIAEoCRIYChBhc3NpZ25tZW50X2NvdW50GAIgASgFEhcKD2NvbnZlcnNpb25fcmF0ZRgDIAEoARI4ChJhZGRpdGlvbmFsX21ldHJpY3MYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCFQoTX2FkZGl0aW9uYWxfbWV0cmljcyJhCg9FeHBlcmltZW50U3RhdHMSMwoNdmFyaWFudF9zdGF0cxgBIAMoCzIcLmV4cGVyaW1lbnRzLnYxLlZhcmlhbnRTdGF0cxIZChF0b3RhbF9hc3NpZ25tZW50cxgCIAEoBSKLBAoXQ3JlYXRlRXhwZXJpbWVudFJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARI7Cgl0YXJnZXRpbmcYBCABKAsyIy5leHBlcmltZW50cy52MS5FeHBlcmltZW50VGFyZ2V0aW5nSAGIAQESHAoPY29udHJvbF9wZXJjZW50GAUgASgFSAKIAQESMwoIdmFyaWFudHMYBiADKAsyIS5leHBlcmltZW50cy52MS5FeHBlcmltZW50VmFyaWFudBIzCgpzdGFydF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjEKCGVuZF9kYXRlGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiMKFmFzc2lnbm1lbnRfcGVyc2lzdGVuY2UYCSABKAlIBYgBARIrCgVnb2FscxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBAUIOCgxfZGVzY3JpcHRpb25CDAoKX3RhcmdldGluZ0ISChBfY29udHJvbF9wZXJjZW50Qg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIZChdfYXNzaWdubWVudF9wZXJzaXN0ZW5jZUIICgZfZ29hbHMiSgoYQ3JlYXRlRXhwZXJpbWVudFJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50IiIKFEdldEV4cGVyaW1lbnRSZXF1ZXN0EgoKAmlkGAEgASgJIkcKFUdldEV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCIoChlHZXRFeHBlcmltZW50QnlLZXlSZXF1ZXN0EgsKA2tleRgBIAEoCSJMChpHZXRFeHBlcmltZW50QnlLZXlSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCKfAQoWTGlzdEV4cGVyaW1lbnRzUmVxdWVzdBI1CgZzdGF0dXMYASABKA4yIC5leHBlcmltZW50cy52MS5FeHBlcmltZW50U3RhdHVzSACIAQESFgoJaXNfYWN0aXZlGAIgASgISAGIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zdGF0dXNCDAoKX2lzX2FjdGl2ZSJZChdMaXN0RXhwZXJpbWVudHNSZXNwb25zZRIvCgtleHBlcmltZW50cxgBIAMoCzIaLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnQSDQoFdG90YWwYAiABKAUimAQKF1VwZGF0ZUV4cGVyaW1lbnRSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEjsKCXRhcmdldGluZxgEIAEoCzIjLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRUYXJnZXRpbmdIAogBARIcCg9jb250cm9sX3BlcmNlbnQYBSABKAVIA4gBARIzCgh2YXJpYW50cxgGIAMoCzIhLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRWYXJpYW50EjMKCnN0YXJ0X2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESMQoIZW5kX2RhdGUYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESIwoWYXNzaWdubWVudF9wZXJzaXN0ZW5jZRgJIAEoCUgGiAEBEisKBWdvYWxzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfdGFyZ2V0aW5nQhIKEF9jb250cm9sX3BlcmNlbnRCDQoLX3N0YXJ0X2RhdGVCCwoJX2VuZF9kYXRlQhkKF19hc3NpZ25tZW50X3BlcnNpc3RlbmNlQggKBl9nb2FscyJKChhVcGRhdGVFeHBlcmltZW50UmVzcG9uc2USLgoKZXhwZXJpbWVudBgBIAEoCzIaLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnQiJQoXRGVsZXRlRXhwZXJpbWVudFJlcXVlc3QSCgoCaWQYASABKAkiKwoYRGVsZXRlRXhwZXJpbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLwoWU3RhcnRFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkkKF1N0YXJ0RXhwZXJpbWVudFJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50Ii8KFlBhdXNlRXhwZXJpbWVudFJlcXVlc3QSFQoNZXhwZXJpbWVudF9pZBgBIAEoCSJJChdQYXVzZUV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCIwChdSZXN1bWVFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkoKGFJlc3VtZUV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCItChRFbmRFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkcKFUVuZEV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCIyChlHZXRFeHBlcmltZW50U3RhdHNSZXF1ZXN0EhUKDWV4cGVyaW1lbnRfaWQYASABKAkiTAoaR2V0RXhwZXJpbWVudFN0YXRzUmVzcG9uc2USLgoFc3RhdHMYASABKAsyHy5leHBlcmltZW50cy52MS5FeHBlcmltZW50U3RhdHMinAEKHEZvcmNlQXNzaWduRXhwZXJpbWVudFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBARIVCg1leHBlcmltZW50X2lkGAIgASgJEhMKC3ZhcmlhbnRfa2V5GAMgASgJEhcKCnZpZXdlcl9rZXkYBCABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkiWQodRm9yY2VBc3NpZ25FeHBlcmltZW50UmVzcG9uc2USOAoKYXNzaWdubWVudBgBIAEoCzIkLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRBc3NpZ25tZW50IowBCiFSZW1vdmVFeHBlcmltZW50QXNzaWdubWVudFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBARIVCg1leHBlcmltZW50X2lkGAIgASgJEhcKCnZpZXdlcl9rZXkYAyABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkiNQoiUmVtb3ZlRXhwZXJpbWVudEFzc2lnbm1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlEKHEFwcGx5RXhwZXJpbWVudFdpbm5lclJlcXVlc3QSFQoNZXhwZXJpbWVudF9pZBgBIAEoCRIaChJ3aW5uZXJfdmFyaWFudF9rZXkYAiABKAkiTwodQXBwbHlFeHBlcmltZW50V2lubmVyUmVzcG9uc2USLgoKZXhwZXJpbWVudBgBIAEoCzIaLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnQiaQoVR2V0QXNzaWdubWVudHNSZXF1ZXN0EhgKC2N1c3RvbWVyX2lkGAEgASgJSACIAQESFwoKdmlld2VyX2tleRgCIAEoCUgBiAEBQg4KDF9jdXN0b21lcl9pZEINCgtfdmlld2VyX2tleSJTChZHZXRBc3NpZ25tZW50c1Jlc3BvbnNlEjkKC2Fzc2lnbm1lbnRzGAEgAygLMiQuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudEFzc2lnbm1lbnQiIwohTGlzdEV4cGVyaW1lbnREZWNsYXJhdGlvbnNSZXF1ZXN0ImEKIkxpc3RFeHBlcmltZW50RGVjbGFyYXRpb25zUmVzcG9uc2USOwoMZGVjbGFyYXRpb25zGAEgAygLMiUuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudERlY2xhcmF0aW9uIoIBChZSZXNvbHZlRXhwb3N1cmVSZXF1ZXN0EhYKDmV4cGVyaW1lbnRfa2V5GAEgASgJEhgKC2N1c3RvbWVyX2lkGAIgASgJSACIAQESFwoKdmlld2VyX2tleRgDIAEoCUgBiAEBQg4KDF9jdXN0b21lcl9pZEINCgtfdmlld2VyX2tleSKkAQoXUmVzb2x2ZUV4cG9zdXJlUmVzcG9uc2USFgoOZXhwZXJpbWVudF9rZXkYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSEgoKaXNfY29udHJvbBgDIAEoCBISCgppc19leHBvc2VkGAQgASgIEhkKEWFzc2lnbm1lbnRfbWV0aG9kGAUgASgJEhkKEWlzX25ld19hc3NpZ25tZW50GAYgASgIKrABChBFeHBlcmltZW50U3RhdHVzEiEKHUVYUEVSSU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGwoXRVhQRVJJTUVOVF9TVEFUVVNfRFJBRlQQARIdChlFWFBFUklNRU5UX1NUQVRVU19SVU5OSU5HEAISHAoYRVhQRVJJTUVOVF9TVEFUVVNfUEFVU0VEEAMSHwobRVhQRVJJTUVOVF9TVEFUVVNfQ09NUExFVEVEEAQyrw4KEkV4cGVyaW1lbnRzU2VydmljZRJcCg1HZXRFeHBlcmltZW50EiQuZXhwZXJpbWVudHMudjEuR2V0RXhwZXJpbWVudFJlcXVlc3QaJS5leHBlcmltZW50cy52MS5HZXRFeHBlcmltZW50UmVzcG9uc2USawoSR2V0RXhwZXJpbWVudEJ5S2V5EikuZXhwZXJpbWVudHMudjEuR2V0RXhwZXJpbWVudEJ5S2V5UmVxdWVzdBoqLmV4cGVyaW1lbnRzLnYxLkdldEV4cGVyaW1lbnRCeUtleVJlc3BvbnNlEmIKD0xpc3RFeHBlcmltZW50cxImLmV4cGVyaW1lbnRzLnYxLkxpc3RFeHBlcmltZW50c1JlcXVlc3QaJy5leHBlcmltZW50cy52MS5MaXN0RXhwZXJpbWVudHNSZXNwb25zZRJlChBDcmVhdGVFeHBlcmltZW50EicuZXhwZXJpbWVudHMudjEuQ3JlYXRlRXhwZXJpbWVudFJlcXVlc3QaKC5leHBlcmltZW50cy52MS5DcmVhdGVFeHBlcmltZW50UmVzcG9uc2USZQoQVXBkYXRlRXhwZXJpbWVudBInLmV4cGVyaW1lbnRzLnYxLlVwZGF0ZUV4cGVyaW1lbnRSZXF1ZXN0GiguZXhwZXJpbWVudHMudjEuVXBkYXRlRXhwZXJpbWVudFJlc3BvbnNlEmUKEERlbGV0ZUV4cGVyaW1lbnQSJy5leHBlcmltZW50cy52MS5EZWxldGVFeHBlcmltZW50UmVxdWVzdBooLmV4cGVyaW1lbnRzLnYxLkRlbGV0ZUV4cGVyaW1lbnRSZXNwb25zZRJiCg9TdGFydEV4cGVyaW1lbnQSJi5leHBlcmltZW50cy52MS5TdGFydEV4cGVyaW1lbnRSZXF1ZXN0GicuZXhwZXJpbWVudHMudjEuU3RhcnRFeHBlcmltZW50UmVzcG9uc2USYgoPUGF1c2VFeHBlcmltZW50EiYuZXhwZXJpbWVudHMudjEuUGF1c2VFeHBlcmltZW50UmVxdWVzdBonLmV4cGVyaW1lbnRzLnYxLlBhdXNlRXhwZXJpbWVudFJlc3BvbnNlEmUKEFJlc3VtZUV4cGVyaW1lbnQSJy5leHBlcmltZW50cy52MS5SZXN1bWVFeHBlcmltZW50UmVxdWVzdBooLmV4cGVyaW1lbnRzLnYxLlJlc3VtZUV4cGVyaW1lbnRSZXNwb25zZRJcCg1FbmRFeHBlcmltZW50EiQuZXhwZXJpbWVudHMudjEuRW5kRXhwZXJpbWVudFJlcXVlc3QaJS5leHBlcmltZW50cy52MS5FbmRFeHBlcmltZW50UmVzcG9uc2USdAoVQXBwbHlFeHBlcmltZW50V2lubmVyEiwuZXhwZXJpbWVudHMudjEuQXBwbHlFeHBlcmltZW50V2lubmVyUmVxdWVzdBotLmV4cGVyaW1lbnRzLnYxLkFwcGx5RXhwZXJpbWVudFdpbm5lclJlc3BvbnNlEmsKEkdldEV4cGVyaW1lbnRTdGF0cxIpLmV4cGVyaW1lbnRzLnYxLkdldEV4cGVyaW1lbnRTdGF0c1JlcXVlc3QaKi5leHBlcmltZW50cy52MS5HZXRFeHBlcmltZW50U3RhdHNSZXNwb25zZRJ0ChVGb3JjZUFzc2lnbkV4cGVyaW1lbnQSLC5leHBlcmltZW50cy52MS5Gb3JjZUFzc2lnbkV4cGVyaW1lbnRSZXF1ZXN0Gi0uZXhwZXJpbWVudHMudjEuRm9yY2VBc3NpZ25FeHBlcmltZW50UmVzcG9uc2USgwEKGlJlbW92ZUV4cGVyaW1lbnRBc3NpZ25tZW50EjEuZXhwZXJpbWVudHMudjEuUmVtb3ZlRXhwZXJpbWVudEFzc2lnbm1lbnRSZXF1ZXN0GjIuZXhwZXJpbWVudHMudjEuUmVtb3ZlRXhwZXJpbWVudEFzc2lnbm1lbnRSZXNwb25zZRJfCg5HZXRBc3NpZ25tZW50cxIlLmV4cGVyaW1lbnRzLnYxLkdldEFzc2lnbm1lbnRzUmVxdWVzdBomLmV4cGVyaW1lbnRzLnYxLkdldEFzc2lnbm1lbnRzUmVzcG9uc2USYgoPUmVzb2x2ZUV4cG9zdXJlEiYuZXhwZXJpbWVudHMudjEuUmVzb2x2ZUV4cG9zdXJlUmVxdWVzdBonLmV4cGVyaW1lbnRzLnYxLlJlc29sdmVFeHBvc3VyZVJlc3BvbnNlEoMBChpMaXN0RXhwZXJpbWVudERlY2xhcmF0aW9ucxIxLmV4cGVyaW1lbnRzLnYxLkxpc3RFeHBlcmltZW50RGVjbGFyYXRpb25zUmVxdWVzdBoyLmV4cGVyaW1lbnRzLnYxLkxpc3RFeHBlcmltZW50RGVjbGFyYXRpb25zUmVzcG9uc2VCQ1pBZ2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2V4cGVyaW1lbnRzL3YxO2V4cGVyaW1lbnRzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
13
+ fileDesc("CiBleHBlcmltZW50cy92MS9leHBlcmltZW50cy5wcm90bxIOZXhwZXJpbWVudHMudjEiswEKE0V4cGVyaW1lbnRUYXJnZXRpbmcSDAoEdHlwZRgBIAEoCRIXCgpzZWdtZW50X2lkGAIgASgJSACIAQESGAoLc2VnbWVudF9rZXkYAyABKAlIAYgBARIyCgVydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAKIAQFCDQoLX3NlZ21lbnRfaWRCDgoMX3NlZ21lbnRfa2V5QggKBl9ydWxlcyJ4ChFFeHBlcmltZW50VmFyaWFudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIPCgdwZXJjZW50GAMgASgFEiwKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIJCgdfY29uZmlnIlUKDkV4cGVyaW1lbnRHb2FsEgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uIo0GCgpFeHBlcmltZW50EgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESMAoGc3RhdHVzGAogASgOMiAuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFN0YXR1cxIRCglpc19hY3RpdmUYCyABKAgSNgoJdGFyZ2V0aW5nGBQgASgLMiMuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFRhcmdldGluZxIXCg9jb250cm9sX3BlcmNlbnQYFSABKAUSMwoIdmFyaWFudHMYFiADKAsyIS5leHBlcmltZW50cy52MS5FeHBlcmltZW50VmFyaWFudBIeChZhc3NpZ25tZW50X3BlcnNpc3RlbmNlGBcgASgJEjMKCnN0YXJ0X2RhdGUYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMQoIZW5kX2RhdGUYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESLQoHbWV0cmljcxgjIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARItCgVnb2FscxgkIAMoCzIeLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRHb2FsEhEKCXRlbmFudF9pZBgoIAEoCRISCgpwcm9qZWN0X2lkGCkgASgJEhcKCmNyZWF0ZWRfYnkYLSABKAlIBIgBARIXCgp1cGRhdGVkX2J5GC4gASgJSAWIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIKCghfbWV0cmljc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLUAwoURXhwZXJpbWVudEFzc2lnbm1lbnQSCgoCaWQYASABKAkSFQoNZXhwZXJpbWVudF9pZBgCIAEoCRIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEhMKC3ZhcmlhbnRfa2V5GAQgASgJEhkKEWFzc2lnbm1lbnRfbWV0aG9kGAUgASgJEhYKDmV4cGVyaW1lbnRfa2V5GAYgASgJEhcKCnZpZXdlcl9rZXkYByABKAlIAYgBARIRCgl0ZW5hbnRfaWQYCiABKAkSEgoKcHJvamVjdF9pZBgLIAEoCRIvCgthc3NpZ25lZF9hdBgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNZmlyc3Rfc2Vlbl9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMbGFzdF9zZWVuX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GBcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQg4KDF9jdXN0b21lcl9pZEINCgtfdmlld2VyX2tleUINCgtfZXhwaXJlc19hdCJFChVFeHBlcmltZW50RGVjbGFyYXRpb24SFgoOZXhwZXJpbWVudF9rZXkYASABKAkSFAoMdmFyaWFudF9rZXlzGAIgAygJIqcBCgxWYXJpYW50U3RhdHMSEwoLdmFyaWFudF9rZXkYASABKAkSGAoQYXNzaWdubWVudF9jb3VudBgCIAEoBRIXCg9jb252ZXJzaW9uX3JhdGUYAyABKAESOAoSYWRkaXRpb25hbF9tZXRyaWNzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQhUKE19hZGRpdGlvbmFsX21ldHJpY3MiYQoPRXhwZXJpbWVudFN0YXRzEjMKDXZhcmlhbnRfc3RhdHMYASADKAsyHC5leHBlcmltZW50cy52MS5WYXJpYW50U3RhdHMSGQoRdG90YWxfYXNzaWdubWVudHMYAiABKAUigwQKF0NyZWF0ZUV4cGVyaW1lbnRSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESOwoJdGFyZ2V0aW5nGAQgASgLMiMuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFRhcmdldGluZ0gBiAEBEhwKD2NvbnRyb2xfcGVyY2VudBgFIAEoBUgCiAEBEjMKCHZhcmlhbnRzGAYgAygLMiEuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFZhcmlhbnQSMwoKc3RhcnRfZGF0ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARIxCghlbmRfZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIjChZhc3NpZ25tZW50X3BlcnNpc3RlbmNlGAkgASgJSAWIAQESLQoFZ29hbHMYCiADKAsyHi5leHBlcmltZW50cy52MS5FeHBlcmltZW50R29hbEIOCgxfZGVzY3JpcHRpb25CDAoKX3RhcmdldGluZ0ISChBfY29udHJvbF9wZXJjZW50Qg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIZChdfYXNzaWdubWVudF9wZXJzaXN0ZW5jZSJKChhDcmVhdGVFeHBlcmltZW50UmVzcG9uc2USLgoKZXhwZXJpbWVudBgBIAEoCzIaLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnQiIgoUR2V0RXhwZXJpbWVudFJlcXVlc3QSCgoCaWQYASABKAkiRwoVR2V0RXhwZXJpbWVudFJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50IigKGUdldEV4cGVyaW1lbnRCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIkwKGkdldEV4cGVyaW1lbnRCeUtleVJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50Ip8BChZMaXN0RXhwZXJpbWVudHNSZXF1ZXN0EjUKBnN0YXR1cxgBIAEoDjIgLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRTdGF0dXNIAIgBARIWCglpc19hY3RpdmUYAiABKAhIAYgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCCQoHX3N0YXR1c0IMCgpfaXNfYWN0aXZlIlkKF0xpc3RFeHBlcmltZW50c1Jlc3BvbnNlEi8KC2V4cGVyaW1lbnRzGAEgAygLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudBINCgV0b3RhbBgCIAEoBSKlBAoXVXBkYXRlRXhwZXJpbWVudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESOwoJdGFyZ2V0aW5nGAQgASgLMiMuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFRhcmdldGluZ0gCiAEBEhwKD2NvbnRyb2xfcGVyY2VudBgFIAEoBUgDiAEBEjMKCHZhcmlhbnRzGAYgAygLMiEuZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudFZhcmlhbnQSMwoKc3RhcnRfZGF0ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIxCghlbmRfZGF0ZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIjChZhc3NpZ25tZW50X3BlcnNpc3RlbmNlGAkgASgJSAaIAQESLQoFZ29hbHMYCiADKAsyHi5leHBlcmltZW50cy52MS5FeHBlcmltZW50R29hbBITCgtnb2Fsc19jbGVhchgLIAEoCEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3RhcmdldGluZ0ISChBfY29udHJvbF9wZXJjZW50Qg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIZChdfYXNzaWdubWVudF9wZXJzaXN0ZW5jZSJKChhVcGRhdGVFeHBlcmltZW50UmVzcG9uc2USLgoKZXhwZXJpbWVudBgBIAEoCzIaLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnQiJQoXRGVsZXRlRXhwZXJpbWVudFJlcXVlc3QSCgoCaWQYASABKAkiKwoYRGVsZXRlRXhwZXJpbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLwoWU3RhcnRFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkkKF1N0YXJ0RXhwZXJpbWVudFJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50Ii8KFlBhdXNlRXhwZXJpbWVudFJlcXVlc3QSFQoNZXhwZXJpbWVudF9pZBgBIAEoCSJJChdQYXVzZUV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCIwChdSZXN1bWVFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkoKGFJlc3VtZUV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCItChRFbmRFeHBlcmltZW50UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJIkcKFUVuZEV4cGVyaW1lbnRSZXNwb25zZRIuCgpleHBlcmltZW50GAEgASgLMhouZXhwZXJpbWVudHMudjEuRXhwZXJpbWVudCIyChlHZXRFeHBlcmltZW50U3RhdHNSZXF1ZXN0EhUKDWV4cGVyaW1lbnRfaWQYASABKAkiTAoaR2V0RXhwZXJpbWVudFN0YXRzUmVzcG9uc2USLgoFc3RhdHMYASABKAsyHy5leHBlcmltZW50cy52MS5FeHBlcmltZW50U3RhdHMinAEKHEZvcmNlQXNzaWduRXhwZXJpbWVudFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBARIVCg1leHBlcmltZW50X2lkGAIgASgJEhMKC3ZhcmlhbnRfa2V5GAMgASgJEhcKCnZpZXdlcl9rZXkYBCABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkiWQodRm9yY2VBc3NpZ25FeHBlcmltZW50UmVzcG9uc2USOAoKYXNzaWdubWVudBgBIAEoCzIkLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRBc3NpZ25tZW50IowBCiFSZW1vdmVFeHBlcmltZW50QXNzaWdubWVudFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBARIVCg1leHBlcmltZW50X2lkGAIgASgJEhcKCnZpZXdlcl9rZXkYAyABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkiNQoiUmVtb3ZlRXhwZXJpbWVudEFzc2lnbm1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlEKHEFwcGx5RXhwZXJpbWVudFdpbm5lclJlcXVlc3QSFQoNZXhwZXJpbWVudF9pZBgBIAEoCRIaChJ3aW5uZXJfdmFyaWFudF9rZXkYAiABKAkijQEKHUFwcGx5RXhwZXJpbWVudFdpbm5lclJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50Eh0KFWFmZmVjdGVkX3JlY29yZF9jb3VudBgCIAEoBRIdChVjbGVhcmVkX3ZhcmlhbnRfY291bnQYAyABKAUiWgolUHJldmlld0V4cGVyaW1lbnRXaW5uZXJSb2xsb3V0UmVxdWVzdBIVCg1leHBlcmltZW50X2lkGAEgASgJEhoKEndpbm5lcl92YXJpYW50X2tleRgCIAEoCSJnCg5BZmZlY3RlZFJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSIgoaY3VycmVudF9kZWZhdWx0X3ZhcmlhbnRfaWQYAiABKAkSHgoWbmV3X2RlZmF1bHRfdmFyaWFudF9pZBgDIAEoCSKBAQomUHJldmlld0V4cGVyaW1lbnRXaW5uZXJSb2xsb3V0UmVzcG9uc2USOAoQYWZmZWN0ZWRfcmVjb3JkcxgBIAMoCzIeLmV4cGVyaW1lbnRzLnYxLkFmZmVjdGVkUmVjb3JkEh0KFWNsZWFyZWRfdmFyaWFudF9jb3VudBgCIAEoBSIyChlSb2xsYmFja0V4cGVyaW1lbnRSZXF1ZXN0EhUKDWV4cGVyaW1lbnRfaWQYASABKAkiiwEKGlJvbGxiYWNrRXhwZXJpbWVudFJlc3BvbnNlEi4KCmV4cGVyaW1lbnQYASABKAsyGi5leHBlcmltZW50cy52MS5FeHBlcmltZW50Eh0KFXJlc3RvcmVkX3JlY29yZF9jb3VudBgCIAEoBRIeChZyZXN0b3JlZF92YXJpYW50X2NvdW50GAMgASgFImkKFUdldEFzc2lnbm1lbnRzUmVxdWVzdBIYCgtjdXN0b21lcl9pZBgBIAEoCUgAiAEBEhcKCnZpZXdlcl9rZXkYAiABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkiUwoWR2V0QXNzaWdubWVudHNSZXNwb25zZRI5Cgthc3NpZ25tZW50cxgBIAMoCzIkLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnRBc3NpZ25tZW50IiMKIUxpc3RFeHBlcmltZW50RGVjbGFyYXRpb25zUmVxdWVzdCJhCiJMaXN0RXhwZXJpbWVudERlY2xhcmF0aW9uc1Jlc3BvbnNlEjsKDGRlY2xhcmF0aW9ucxgBIAMoCzIlLmV4cGVyaW1lbnRzLnYxLkV4cGVyaW1lbnREZWNsYXJhdGlvbiKCAQoWUmVzb2x2ZUV4cG9zdXJlUmVxdWVzdBIWCg5leHBlcmltZW50X2tleRgBIAEoCRIYCgtjdXN0b21lcl9pZBgCIAEoCUgAiAEBEhcKCnZpZXdlcl9rZXkYAyABKAlIAYgBAUIOCgxfY3VzdG9tZXJfaWRCDQoLX3ZpZXdlcl9rZXkipAEKF1Jlc29sdmVFeHBvc3VyZVJlc3BvbnNlEhYKDmV4cGVyaW1lbnRfa2V5GAEgASgJEhMKC3ZhcmlhbnRfa2V5GAIgASgJEhIKCmlzX2NvbnRyb2wYAyABKAgSEgoKaXNfZXhwb3NlZBgEIAEoCBIZChFhc3NpZ25tZW50X21ldGhvZBgFIAEoCRIZChFpc19uZXdfYXNzaWdubWVudBgGIAEoCCqwAQoQRXhwZXJpbWVudFN0YXR1cxIhCh1FWFBFUklNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF0VYUEVSSU1FTlRfU1RBVFVTX0RSQUZUEAESHQoZRVhQRVJJTUVOVF9TVEFUVVNfUlVOTklORxACEhwKGEVYUEVSSU1FTlRfU1RBVFVTX1BBVVNFRBADEh8KG0VYUEVSSU1FTlRfU1RBVFVTX0NPTVBMRVRFRBAEMq4QChJFeHBlcmltZW50c1NlcnZpY2USXAoNR2V0RXhwZXJpbWVudBIkLmV4cGVyaW1lbnRzLnYxLkdldEV4cGVyaW1lbnRSZXF1ZXN0GiUuZXhwZXJpbWVudHMudjEuR2V0RXhwZXJpbWVudFJlc3BvbnNlEmsKEkdldEV4cGVyaW1lbnRCeUtleRIpLmV4cGVyaW1lbnRzLnYxLkdldEV4cGVyaW1lbnRCeUtleVJlcXVlc3QaKi5leHBlcmltZW50cy52MS5HZXRFeHBlcmltZW50QnlLZXlSZXNwb25zZRJiCg9MaXN0RXhwZXJpbWVudHMSJi5leHBlcmltZW50cy52MS5MaXN0RXhwZXJpbWVudHNSZXF1ZXN0GicuZXhwZXJpbWVudHMudjEuTGlzdEV4cGVyaW1lbnRzUmVzcG9uc2USZQoQQ3JlYXRlRXhwZXJpbWVudBInLmV4cGVyaW1lbnRzLnYxLkNyZWF0ZUV4cGVyaW1lbnRSZXF1ZXN0GiguZXhwZXJpbWVudHMudjEuQ3JlYXRlRXhwZXJpbWVudFJlc3BvbnNlEmUKEFVwZGF0ZUV4cGVyaW1lbnQSJy5leHBlcmltZW50cy52MS5VcGRhdGVFeHBlcmltZW50UmVxdWVzdBooLmV4cGVyaW1lbnRzLnYxLlVwZGF0ZUV4cGVyaW1lbnRSZXNwb25zZRJlChBEZWxldGVFeHBlcmltZW50EicuZXhwZXJpbWVudHMudjEuRGVsZXRlRXhwZXJpbWVudFJlcXVlc3QaKC5leHBlcmltZW50cy52MS5EZWxldGVFeHBlcmltZW50UmVzcG9uc2USYgoPU3RhcnRFeHBlcmltZW50EiYuZXhwZXJpbWVudHMudjEuU3RhcnRFeHBlcmltZW50UmVxdWVzdBonLmV4cGVyaW1lbnRzLnYxLlN0YXJ0RXhwZXJpbWVudFJlc3BvbnNlEmIKD1BhdXNlRXhwZXJpbWVudBImLmV4cGVyaW1lbnRzLnYxLlBhdXNlRXhwZXJpbWVudFJlcXVlc3QaJy5leHBlcmltZW50cy52MS5QYXVzZUV4cGVyaW1lbnRSZXNwb25zZRJlChBSZXN1bWVFeHBlcmltZW50EicuZXhwZXJpbWVudHMudjEuUmVzdW1lRXhwZXJpbWVudFJlcXVlc3QaKC5leHBlcmltZW50cy52MS5SZXN1bWVFeHBlcmltZW50UmVzcG9uc2USXAoNRW5kRXhwZXJpbWVudBIkLmV4cGVyaW1lbnRzLnYxLkVuZEV4cGVyaW1lbnRSZXF1ZXN0GiUuZXhwZXJpbWVudHMudjEuRW5kRXhwZXJpbWVudFJlc3BvbnNlEnQKFUFwcGx5RXhwZXJpbWVudFdpbm5lchIsLmV4cGVyaW1lbnRzLnYxLkFwcGx5RXhwZXJpbWVudFdpbm5lclJlcXVlc3QaLS5leHBlcmltZW50cy52MS5BcHBseUV4cGVyaW1lbnRXaW5uZXJSZXNwb25zZRKPAQoeUHJldmlld0V4cGVyaW1lbnRXaW5uZXJSb2xsb3V0EjUuZXhwZXJpbWVudHMudjEuUHJldmlld0V4cGVyaW1lbnRXaW5uZXJSb2xsb3V0UmVxdWVzdBo2LmV4cGVyaW1lbnRzLnYxLlByZXZpZXdFeHBlcmltZW50V2lubmVyUm9sbG91dFJlc3BvbnNlEmsKElJvbGxiYWNrRXhwZXJpbWVudBIpLmV4cGVyaW1lbnRzLnYxLlJvbGxiYWNrRXhwZXJpbWVudFJlcXVlc3QaKi5leHBlcmltZW50cy52MS5Sb2xsYmFja0V4cGVyaW1lbnRSZXNwb25zZRJrChJHZXRFeHBlcmltZW50U3RhdHMSKS5leHBlcmltZW50cy52MS5HZXRFeHBlcmltZW50U3RhdHNSZXF1ZXN0GiouZXhwZXJpbWVudHMudjEuR2V0RXhwZXJpbWVudFN0YXRzUmVzcG9uc2USdAoVRm9yY2VBc3NpZ25FeHBlcmltZW50EiwuZXhwZXJpbWVudHMudjEuRm9yY2VBc3NpZ25FeHBlcmltZW50UmVxdWVzdBotLmV4cGVyaW1lbnRzLnYxLkZvcmNlQXNzaWduRXhwZXJpbWVudFJlc3BvbnNlEoMBChpSZW1vdmVFeHBlcmltZW50QXNzaWdubWVudBIxLmV4cGVyaW1lbnRzLnYxLlJlbW92ZUV4cGVyaW1lbnRBc3NpZ25tZW50UmVxdWVzdBoyLmV4cGVyaW1lbnRzLnYxLlJlbW92ZUV4cGVyaW1lbnRBc3NpZ25tZW50UmVzcG9uc2USXwoOR2V0QXNzaWdubWVudHMSJS5leHBlcmltZW50cy52MS5HZXRBc3NpZ25tZW50c1JlcXVlc3QaJi5leHBlcmltZW50cy52MS5HZXRBc3NpZ25tZW50c1Jlc3BvbnNlEmIKD1Jlc29sdmVFeHBvc3VyZRImLmV4cGVyaW1lbnRzLnYxLlJlc29sdmVFeHBvc3VyZVJlcXVlc3QaJy5leHBlcmltZW50cy52MS5SZXNvbHZlRXhwb3N1cmVSZXNwb25zZRKDAQoaTGlzdEV4cGVyaW1lbnREZWNsYXJhdGlvbnMSMS5leHBlcmltZW50cy52MS5MaXN0RXhwZXJpbWVudERlY2xhcmF0aW9uc1JlcXVlc3QaMi5leHBlcmltZW50cy52MS5MaXN0RXhwZXJpbWVudERlY2xhcmF0aW9uc1Jlc3BvbnNlQkNaQWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9leHBlcmltZW50cy92MTtleHBlcmltZW50c3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
14
14
 
15
15
  /**
16
16
  * Describes the message experiments.v1.ExperimentTargeting.
@@ -26,278 +26,320 @@ export const ExperimentTargetingSchema = /*@__PURE__*/
26
26
  export const ExperimentVariantSchema = /*@__PURE__*/
27
27
  messageDesc(file_experiments_v1_experiments, 1);
28
28
 
29
+ /**
30
+ * Describes the message experiments.v1.ExperimentGoal.
31
+ * Use `create(ExperimentGoalSchema)` to create a new message.
32
+ */
33
+ export const ExperimentGoalSchema = /*@__PURE__*/
34
+ messageDesc(file_experiments_v1_experiments, 2);
35
+
29
36
  /**
30
37
  * Describes the message experiments.v1.Experiment.
31
38
  * Use `create(ExperimentSchema)` to create a new message.
32
39
  */
33
40
  export const ExperimentSchema = /*@__PURE__*/
34
- messageDesc(file_experiments_v1_experiments, 2);
41
+ messageDesc(file_experiments_v1_experiments, 3);
35
42
 
36
43
  /**
37
44
  * Describes the message experiments.v1.ExperimentAssignment.
38
45
  * Use `create(ExperimentAssignmentSchema)` to create a new message.
39
46
  */
40
47
  export const ExperimentAssignmentSchema = /*@__PURE__*/
41
- messageDesc(file_experiments_v1_experiments, 3);
48
+ messageDesc(file_experiments_v1_experiments, 4);
42
49
 
43
50
  /**
44
51
  * Describes the message experiments.v1.ExperimentDeclaration.
45
52
  * Use `create(ExperimentDeclarationSchema)` to create a new message.
46
53
  */
47
54
  export const ExperimentDeclarationSchema = /*@__PURE__*/
48
- messageDesc(file_experiments_v1_experiments, 4);
55
+ messageDesc(file_experiments_v1_experiments, 5);
49
56
 
50
57
  /**
51
58
  * Describes the message experiments.v1.VariantStats.
52
59
  * Use `create(VariantStatsSchema)` to create a new message.
53
60
  */
54
61
  export const VariantStatsSchema = /*@__PURE__*/
55
- messageDesc(file_experiments_v1_experiments, 5);
62
+ messageDesc(file_experiments_v1_experiments, 6);
56
63
 
57
64
  /**
58
65
  * Describes the message experiments.v1.ExperimentStats.
59
66
  * Use `create(ExperimentStatsSchema)` to create a new message.
60
67
  */
61
68
  export const ExperimentStatsSchema = /*@__PURE__*/
62
- messageDesc(file_experiments_v1_experiments, 6);
69
+ messageDesc(file_experiments_v1_experiments, 7);
63
70
 
64
71
  /**
65
72
  * Describes the message experiments.v1.CreateExperimentRequest.
66
73
  * Use `create(CreateExperimentRequestSchema)` to create a new message.
67
74
  */
68
75
  export const CreateExperimentRequestSchema = /*@__PURE__*/
69
- messageDesc(file_experiments_v1_experiments, 7);
76
+ messageDesc(file_experiments_v1_experiments, 8);
70
77
 
71
78
  /**
72
79
  * Describes the message experiments.v1.CreateExperimentResponse.
73
80
  * Use `create(CreateExperimentResponseSchema)` to create a new message.
74
81
  */
75
82
  export const CreateExperimentResponseSchema = /*@__PURE__*/
76
- messageDesc(file_experiments_v1_experiments, 8);
83
+ messageDesc(file_experiments_v1_experiments, 9);
77
84
 
78
85
  /**
79
86
  * Describes the message experiments.v1.GetExperimentRequest.
80
87
  * Use `create(GetExperimentRequestSchema)` to create a new message.
81
88
  */
82
89
  export const GetExperimentRequestSchema = /*@__PURE__*/
83
- messageDesc(file_experiments_v1_experiments, 9);
90
+ messageDesc(file_experiments_v1_experiments, 10);
84
91
 
85
92
  /**
86
93
  * Describes the message experiments.v1.GetExperimentResponse.
87
94
  * Use `create(GetExperimentResponseSchema)` to create a new message.
88
95
  */
89
96
  export const GetExperimentResponseSchema = /*@__PURE__*/
90
- messageDesc(file_experiments_v1_experiments, 10);
97
+ messageDesc(file_experiments_v1_experiments, 11);
91
98
 
92
99
  /**
93
100
  * Describes the message experiments.v1.GetExperimentByKeyRequest.
94
101
  * Use `create(GetExperimentByKeyRequestSchema)` to create a new message.
95
102
  */
96
103
  export const GetExperimentByKeyRequestSchema = /*@__PURE__*/
97
- messageDesc(file_experiments_v1_experiments, 11);
104
+ messageDesc(file_experiments_v1_experiments, 12);
98
105
 
99
106
  /**
100
107
  * Describes the message experiments.v1.GetExperimentByKeyResponse.
101
108
  * Use `create(GetExperimentByKeyResponseSchema)` to create a new message.
102
109
  */
103
110
  export const GetExperimentByKeyResponseSchema = /*@__PURE__*/
104
- messageDesc(file_experiments_v1_experiments, 12);
111
+ messageDesc(file_experiments_v1_experiments, 13);
105
112
 
106
113
  /**
107
114
  * Describes the message experiments.v1.ListExperimentsRequest.
108
115
  * Use `create(ListExperimentsRequestSchema)` to create a new message.
109
116
  */
110
117
  export const ListExperimentsRequestSchema = /*@__PURE__*/
111
- messageDesc(file_experiments_v1_experiments, 13);
118
+ messageDesc(file_experiments_v1_experiments, 14);
112
119
 
113
120
  /**
114
121
  * Describes the message experiments.v1.ListExperimentsResponse.
115
122
  * Use `create(ListExperimentsResponseSchema)` to create a new message.
116
123
  */
117
124
  export const ListExperimentsResponseSchema = /*@__PURE__*/
118
- messageDesc(file_experiments_v1_experiments, 14);
125
+ messageDesc(file_experiments_v1_experiments, 15);
119
126
 
120
127
  /**
121
128
  * Describes the message experiments.v1.UpdateExperimentRequest.
122
129
  * Use `create(UpdateExperimentRequestSchema)` to create a new message.
123
130
  */
124
131
  export const UpdateExperimentRequestSchema = /*@__PURE__*/
125
- messageDesc(file_experiments_v1_experiments, 15);
132
+ messageDesc(file_experiments_v1_experiments, 16);
126
133
 
127
134
  /**
128
135
  * Describes the message experiments.v1.UpdateExperimentResponse.
129
136
  * Use `create(UpdateExperimentResponseSchema)` to create a new message.
130
137
  */
131
138
  export const UpdateExperimentResponseSchema = /*@__PURE__*/
132
- messageDesc(file_experiments_v1_experiments, 16);
139
+ messageDesc(file_experiments_v1_experiments, 17);
133
140
 
134
141
  /**
135
142
  * Describes the message experiments.v1.DeleteExperimentRequest.
136
143
  * Use `create(DeleteExperimentRequestSchema)` to create a new message.
137
144
  */
138
145
  export const DeleteExperimentRequestSchema = /*@__PURE__*/
139
- messageDesc(file_experiments_v1_experiments, 17);
146
+ messageDesc(file_experiments_v1_experiments, 18);
140
147
 
141
148
  /**
142
149
  * Describes the message experiments.v1.DeleteExperimentResponse.
143
150
  * Use `create(DeleteExperimentResponseSchema)` to create a new message.
144
151
  */
145
152
  export const DeleteExperimentResponseSchema = /*@__PURE__*/
146
- messageDesc(file_experiments_v1_experiments, 18);
153
+ messageDesc(file_experiments_v1_experiments, 19);
147
154
 
148
155
  /**
149
156
  * Describes the message experiments.v1.StartExperimentRequest.
150
157
  * Use `create(StartExperimentRequestSchema)` to create a new message.
151
158
  */
152
159
  export const StartExperimentRequestSchema = /*@__PURE__*/
153
- messageDesc(file_experiments_v1_experiments, 19);
160
+ messageDesc(file_experiments_v1_experiments, 20);
154
161
 
155
162
  /**
156
163
  * Describes the message experiments.v1.StartExperimentResponse.
157
164
  * Use `create(StartExperimentResponseSchema)` to create a new message.
158
165
  */
159
166
  export const StartExperimentResponseSchema = /*@__PURE__*/
160
- messageDesc(file_experiments_v1_experiments, 20);
167
+ messageDesc(file_experiments_v1_experiments, 21);
161
168
 
162
169
  /**
163
170
  * Describes the message experiments.v1.PauseExperimentRequest.
164
171
  * Use `create(PauseExperimentRequestSchema)` to create a new message.
165
172
  */
166
173
  export const PauseExperimentRequestSchema = /*@__PURE__*/
167
- messageDesc(file_experiments_v1_experiments, 21);
174
+ messageDesc(file_experiments_v1_experiments, 22);
168
175
 
169
176
  /**
170
177
  * Describes the message experiments.v1.PauseExperimentResponse.
171
178
  * Use `create(PauseExperimentResponseSchema)` to create a new message.
172
179
  */
173
180
  export const PauseExperimentResponseSchema = /*@__PURE__*/
174
- messageDesc(file_experiments_v1_experiments, 22);
181
+ messageDesc(file_experiments_v1_experiments, 23);
175
182
 
176
183
  /**
177
184
  * Describes the message experiments.v1.ResumeExperimentRequest.
178
185
  * Use `create(ResumeExperimentRequestSchema)` to create a new message.
179
186
  */
180
187
  export const ResumeExperimentRequestSchema = /*@__PURE__*/
181
- messageDesc(file_experiments_v1_experiments, 23);
188
+ messageDesc(file_experiments_v1_experiments, 24);
182
189
 
183
190
  /**
184
191
  * Describes the message experiments.v1.ResumeExperimentResponse.
185
192
  * Use `create(ResumeExperimentResponseSchema)` to create a new message.
186
193
  */
187
194
  export const ResumeExperimentResponseSchema = /*@__PURE__*/
188
- messageDesc(file_experiments_v1_experiments, 24);
195
+ messageDesc(file_experiments_v1_experiments, 25);
189
196
 
190
197
  /**
191
198
  * Describes the message experiments.v1.EndExperimentRequest.
192
199
  * Use `create(EndExperimentRequestSchema)` to create a new message.
193
200
  */
194
201
  export const EndExperimentRequestSchema = /*@__PURE__*/
195
- messageDesc(file_experiments_v1_experiments, 25);
202
+ messageDesc(file_experiments_v1_experiments, 26);
196
203
 
197
204
  /**
198
205
  * Describes the message experiments.v1.EndExperimentResponse.
199
206
  * Use `create(EndExperimentResponseSchema)` to create a new message.
200
207
  */
201
208
  export const EndExperimentResponseSchema = /*@__PURE__*/
202
- messageDesc(file_experiments_v1_experiments, 26);
209
+ messageDesc(file_experiments_v1_experiments, 27);
203
210
 
204
211
  /**
205
212
  * Describes the message experiments.v1.GetExperimentStatsRequest.
206
213
  * Use `create(GetExperimentStatsRequestSchema)` to create a new message.
207
214
  */
208
215
  export const GetExperimentStatsRequestSchema = /*@__PURE__*/
209
- messageDesc(file_experiments_v1_experiments, 27);
216
+ messageDesc(file_experiments_v1_experiments, 28);
210
217
 
211
218
  /**
212
219
  * Describes the message experiments.v1.GetExperimentStatsResponse.
213
220
  * Use `create(GetExperimentStatsResponseSchema)` to create a new message.
214
221
  */
215
222
  export const GetExperimentStatsResponseSchema = /*@__PURE__*/
216
- messageDesc(file_experiments_v1_experiments, 28);
223
+ messageDesc(file_experiments_v1_experiments, 29);
217
224
 
218
225
  /**
219
226
  * Describes the message experiments.v1.ForceAssignExperimentRequest.
220
227
  * Use `create(ForceAssignExperimentRequestSchema)` to create a new message.
221
228
  */
222
229
  export const ForceAssignExperimentRequestSchema = /*@__PURE__*/
223
- messageDesc(file_experiments_v1_experiments, 29);
230
+ messageDesc(file_experiments_v1_experiments, 30);
224
231
 
225
232
  /**
226
233
  * Describes the message experiments.v1.ForceAssignExperimentResponse.
227
234
  * Use `create(ForceAssignExperimentResponseSchema)` to create a new message.
228
235
  */
229
236
  export const ForceAssignExperimentResponseSchema = /*@__PURE__*/
230
- messageDesc(file_experiments_v1_experiments, 30);
237
+ messageDesc(file_experiments_v1_experiments, 31);
231
238
 
232
239
  /**
233
240
  * Describes the message experiments.v1.RemoveExperimentAssignmentRequest.
234
241
  * Use `create(RemoveExperimentAssignmentRequestSchema)` to create a new message.
235
242
  */
236
243
  export const RemoveExperimentAssignmentRequestSchema = /*@__PURE__*/
237
- messageDesc(file_experiments_v1_experiments, 31);
244
+ messageDesc(file_experiments_v1_experiments, 32);
238
245
 
239
246
  /**
240
247
  * Describes the message experiments.v1.RemoveExperimentAssignmentResponse.
241
248
  * Use `create(RemoveExperimentAssignmentResponseSchema)` to create a new message.
242
249
  */
243
250
  export const RemoveExperimentAssignmentResponseSchema = /*@__PURE__*/
244
- messageDesc(file_experiments_v1_experiments, 32);
251
+ messageDesc(file_experiments_v1_experiments, 33);
245
252
 
246
253
  /**
247
254
  * Describes the message experiments.v1.ApplyExperimentWinnerRequest.
248
255
  * Use `create(ApplyExperimentWinnerRequestSchema)` to create a new message.
249
256
  */
250
257
  export const ApplyExperimentWinnerRequestSchema = /*@__PURE__*/
251
- messageDesc(file_experiments_v1_experiments, 33);
258
+ messageDesc(file_experiments_v1_experiments, 34);
252
259
 
253
260
  /**
254
261
  * Describes the message experiments.v1.ApplyExperimentWinnerResponse.
255
262
  * Use `create(ApplyExperimentWinnerResponseSchema)` to create a new message.
256
263
  */
257
264
  export const ApplyExperimentWinnerResponseSchema = /*@__PURE__*/
258
- messageDesc(file_experiments_v1_experiments, 34);
265
+ messageDesc(file_experiments_v1_experiments, 35);
266
+
267
+ /**
268
+ * Describes the message experiments.v1.PreviewExperimentWinnerRolloutRequest.
269
+ * Use `create(PreviewExperimentWinnerRolloutRequestSchema)` to create a new message.
270
+ */
271
+ export const PreviewExperimentWinnerRolloutRequestSchema = /*@__PURE__*/
272
+ messageDesc(file_experiments_v1_experiments, 36);
273
+
274
+ /**
275
+ * Describes the message experiments.v1.AffectedRecord.
276
+ * Use `create(AffectedRecordSchema)` to create a new message.
277
+ */
278
+ export const AffectedRecordSchema = /*@__PURE__*/
279
+ messageDesc(file_experiments_v1_experiments, 37);
280
+
281
+ /**
282
+ * Describes the message experiments.v1.PreviewExperimentWinnerRolloutResponse.
283
+ * Use `create(PreviewExperimentWinnerRolloutResponseSchema)` to create a new message.
284
+ */
285
+ export const PreviewExperimentWinnerRolloutResponseSchema = /*@__PURE__*/
286
+ messageDesc(file_experiments_v1_experiments, 38);
287
+
288
+ /**
289
+ * Describes the message experiments.v1.RollbackExperimentRequest.
290
+ * Use `create(RollbackExperimentRequestSchema)` to create a new message.
291
+ */
292
+ export const RollbackExperimentRequestSchema = /*@__PURE__*/
293
+ messageDesc(file_experiments_v1_experiments, 39);
294
+
295
+ /**
296
+ * Describes the message experiments.v1.RollbackExperimentResponse.
297
+ * Use `create(RollbackExperimentResponseSchema)` to create a new message.
298
+ */
299
+ export const RollbackExperimentResponseSchema = /*@__PURE__*/
300
+ messageDesc(file_experiments_v1_experiments, 40);
259
301
 
260
302
  /**
261
303
  * Describes the message experiments.v1.GetAssignmentsRequest.
262
304
  * Use `create(GetAssignmentsRequestSchema)` to create a new message.
263
305
  */
264
306
  export const GetAssignmentsRequestSchema = /*@__PURE__*/
265
- messageDesc(file_experiments_v1_experiments, 35);
307
+ messageDesc(file_experiments_v1_experiments, 41);
266
308
 
267
309
  /**
268
310
  * Describes the message experiments.v1.GetAssignmentsResponse.
269
311
  * Use `create(GetAssignmentsResponseSchema)` to create a new message.
270
312
  */
271
313
  export const GetAssignmentsResponseSchema = /*@__PURE__*/
272
- messageDesc(file_experiments_v1_experiments, 36);
314
+ messageDesc(file_experiments_v1_experiments, 42);
273
315
 
274
316
  /**
275
317
  * Describes the message experiments.v1.ListExperimentDeclarationsRequest.
276
318
  * Use `create(ListExperimentDeclarationsRequestSchema)` to create a new message.
277
319
  */
278
320
  export const ListExperimentDeclarationsRequestSchema = /*@__PURE__*/
279
- messageDesc(file_experiments_v1_experiments, 37);
321
+ messageDesc(file_experiments_v1_experiments, 43);
280
322
 
281
323
  /**
282
324
  * Describes the message experiments.v1.ListExperimentDeclarationsResponse.
283
325
  * Use `create(ListExperimentDeclarationsResponseSchema)` to create a new message.
284
326
  */
285
327
  export const ListExperimentDeclarationsResponseSchema = /*@__PURE__*/
286
- messageDesc(file_experiments_v1_experiments, 38);
328
+ messageDesc(file_experiments_v1_experiments, 44);
287
329
 
288
330
  /**
289
331
  * Describes the message experiments.v1.ResolveExposureRequest.
290
332
  * Use `create(ResolveExposureRequestSchema)` to create a new message.
291
333
  */
292
334
  export const ResolveExposureRequestSchema = /*@__PURE__*/
293
- messageDesc(file_experiments_v1_experiments, 39);
335
+ messageDesc(file_experiments_v1_experiments, 45);
294
336
 
295
337
  /**
296
338
  * Describes the message experiments.v1.ResolveExposureResponse.
297
339
  * Use `create(ResolveExposureResponseSchema)` to create a new message.
298
340
  */
299
341
  export const ResolveExposureResponseSchema = /*@__PURE__*/
300
- messageDesc(file_experiments_v1_experiments, 40);
342
+ messageDesc(file_experiments_v1_experiments, 46);
301
343
 
302
344
  /**
303
345
  * Describes the enum experiments.v1.ExperimentStatus.