discord-protos 1.2.45 → 1.2.47

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.
@@ -3,17 +3,18 @@ from __future__ import annotations
3
3
  from enum import Enum as _Enum
4
4
  from typing import TYPE_CHECKING
5
5
 
6
- __version__ = '1.2.45'
6
+ __version__ = '1.2.47'
7
7
 
8
8
  if TYPE_CHECKING:
9
9
  from google.protobuf.message import Message as _Message
10
10
 
11
- PreloadedUserSettings = FrecencyUserSettings = ApplicationUserRoleConnection = AcknowledgedApplicationDisclosures = PremiumMarketingComponentProperties = _Message
11
+ PreloadedUserSettings = FrecencyUserSettings = ApplicationUserRoleConnection = AcknowledgedApplicationDisclosures = Experiment = PremiumMarketingComponentProperties = _Message
12
12
  else:
13
13
  from .discord_users.v1.PreloadedUserSettings_pb2 import *
14
14
  from .discord_users.v1.FrecencyUserSettings_pb2 import *
15
15
  from .discord_kkv_store_value_models.v1.ApplicationUserRoleConnection_pb2 import *
16
16
  from .discord_kkv_store_value_models.v1.AcknowledgedApplicationDisclosures_pb2 import *
17
+ from .discord_experimentation.v1.Experiment_pb2 import *
17
18
  from .premium_marketing.v1.PremiumMarketingComponentProperties_pb2 import *
18
19
 
19
20
  __all__ = (
@@ -23,6 +24,7 @@ __all__ = (
23
24
  'FrecencyUserSettings',
24
25
  'ApplicationUserRoleConnection',
25
26
  'AcknowledgedApplicationDisclosures',
27
+ 'Experiment',
26
28
  'PremiumMarketingComponentProperties',
27
29
  )
28
30
 
@@ -0,0 +1,255 @@
1
+ syntax = "proto3";
2
+
3
+ import "google/protobuf/wrappers.proto";
4
+ import "google/protobuf/timestamp.proto";
5
+
6
+ package discord_protos.discord_experimentation.v1;
7
+
8
+ message Experiment {
9
+ enum UnitType {
10
+ UNIT_TYPE_UNSPECIFIED = 0;
11
+ UNIT_TYPE_USER = 1;
12
+ }
13
+
14
+ enum Type {
15
+ TYPE_UNSPECIFIED = 0;
16
+ TYPE_ACTIVE = 1;
17
+ TYPE_UNUSED = 2;
18
+ }
19
+
20
+ message VariantAllocation {
21
+ int32 start = 1;
22
+ int32 stop = 2;
23
+ Type type = 3;
24
+ }
25
+
26
+ message Variant {
27
+ int32 id = 1;
28
+ string label = 2;
29
+ repeated VariantAllocation allocations = 4;
30
+ Type type = 5;
31
+ }
32
+
33
+ message PlatformVersionSpecifier {
34
+ uint32 major = 1;
35
+ optional google.protobuf.UInt32Value minor = 2;
36
+ optional google.protobuf.UInt64Value build = 3;
37
+ }
38
+
39
+ message PlatformVersionRangeBound {
40
+ optional PlatformVersionSpecifier version = 1;
41
+ bool inclusive = 2;
42
+ }
43
+
44
+ message PlatformVersionRange {
45
+ optional PlatformVersionRangeBound lower_bound = 1;
46
+ optional PlatformVersionRangeBound upper_bound = 2;
47
+ }
48
+
49
+ message PlatformVersion {
50
+ repeated PlatformVersionRange ranges = 1;
51
+ bool work_around_pyoto_bug = 2;
52
+ }
53
+
54
+ message ClientPlatform {
55
+ optional PlatformVersion ios_version = 1;
56
+ optional PlatformVersion android_version = 2;
57
+ optional PlatformVersion web_version = 3;
58
+ optional PlatformVersion native_version = 4;
59
+ }
60
+
61
+ message SDKVersionSpecifier {
62
+ int32 version = 1;
63
+ }
64
+
65
+ message SDKVersionRangeBound {
66
+ optional SDKVersionSpecifier version = 1;
67
+ bool inclusive = 2;
68
+ }
69
+
70
+ message SDKVersionRange {
71
+ optional SDKVersionRangeBound lower_bound = 1;
72
+ optional SDKVersionRangeBound upper_bound = 2;
73
+ }
74
+
75
+ message SDKVersion {
76
+ repeated SDKVersionRange ranges = 1;
77
+ bool work_around_pyoto_bug = 2;
78
+ }
79
+
80
+ message ClientOperatingSystem {
81
+ optional SDKVersion ios_version = 1;
82
+ optional SDKVersion android_version = 2;
83
+ optional SDKVersion macos_version = 3;
84
+ optional SDKVersion windows_version = 4;
85
+ optional SDKVersion playstation_version = 5;
86
+ optional SDKVersion xbox_version = 6;
87
+ optional SDKVersion linux_version = 7;
88
+ }
89
+
90
+ message StaffUsers {
91
+ bool work_accounts = 1;
92
+ bool personal_accounts = 2;
93
+ }
94
+
95
+ message UserInGuild {
96
+ repeated fixed64 guild_ids = 1;
97
+ }
98
+
99
+ message UserIds {
100
+ repeated fixed64 user_ids = 1;
101
+ }
102
+
103
+ message ClientLocale {
104
+ repeated string locales = 1 [packed = false];
105
+ }
106
+
107
+ message ISORegion {
108
+ string iso_country = 1;
109
+ string iso_subdivision = 2;
110
+ }
111
+
112
+ message Place {
113
+ string city = 1;
114
+ string subdivision = 2;
115
+ string country = 3;
116
+ }
117
+
118
+ message Location {
119
+ oneof location {
120
+ ISORegion iso_region = 1;
121
+ bool is_eu = 2;
122
+ Place place = 3;
123
+ }
124
+ }
125
+
126
+ message ClientLocation {
127
+ repeated Location locations = 1;
128
+ }
129
+
130
+ message ClientIP {
131
+ repeated string blocks = 1 [packed = false];
132
+ }
133
+
134
+ message UserLocale {
135
+ repeated string locales = 1 [packed = false];
136
+ }
137
+
138
+ message UserIsBot {
139
+ bool is_bot = 1;
140
+ }
141
+
142
+ message UserAgeRange {
143
+ optional google.protobuf.UInt32Value min_age_years = 1;
144
+ optional google.protobuf.UInt32Value max_age_years = 2;
145
+ }
146
+
147
+ message Fixed64Value {
148
+ fixed64 value = 1;
149
+ }
150
+
151
+ message UserIDRange {
152
+ optional Fixed64Value min_id = 1;
153
+ optional Fixed64Value max_id = 2;
154
+ }
155
+
156
+ message UserHasFlag {
157
+ fixed64 mask = 1;
158
+ }
159
+
160
+ message UnitIdInRangeByHash {
161
+ string hash_key = 1;
162
+ uint32 target = 2;
163
+ }
164
+
165
+ message ClientReleaseChannel {
166
+ repeated string release_channels = 1 [packed = false];
167
+ }
168
+
169
+ message Always {
170
+ bool value = 1;
171
+ }
172
+
173
+ message Filter {
174
+ oneof filter {
175
+ ClientPlatform client_version = 2;
176
+ ClientOperatingSystem client_os = 3;
177
+ StaffUsers staff = 4;
178
+ UserInGuild user_in_guild = 5;
179
+ UserIds user_ids = 6;
180
+ ClientLocale client_locale = 7;
181
+ ClientLocation client_location = 8;
182
+ ClientIP client_ip = 9;
183
+ UserLocale user_locale = 10;
184
+ UserIsBot bot = 11;
185
+ UserAgeRange user_age_range = 12;
186
+ UserIDRange user_id_range = 13;
187
+ UserHasFlag user_has_flag = 14;
188
+ UnitIdInRangeByHash unit_id_in_range_by_hash = 15;
189
+ ClientReleaseChannel client_release_channel = 16;
190
+ Always always = 17;
191
+ }
192
+ }
193
+
194
+ message Override {
195
+ int32 variant_id = 1;
196
+ }
197
+
198
+ message Rule {
199
+ Type type = 1;
200
+ repeated Filter filters = 2;
201
+ optional Override override = 3;
202
+ bool is_sunset_rule = 4;
203
+ }
204
+
205
+ enum Status {
206
+ STATUS_UNSPECIFIED = 0;
207
+ STATUS_DRAFT = 1;
208
+ STATUS_TESTING = 2;
209
+ STATUS_TESTING_ENDED = 3;
210
+ STATUS_ROLLOUT = 4;
211
+ STATUS_ARCHIVED = 5;
212
+ }
213
+
214
+ enum Surface {
215
+ SURFACE_UNSPECIFIED = 0;
216
+ SURFACE_API = 1;
217
+ SURFACE_APP = 2;
218
+ }
219
+
220
+ enum ExposureTracking {
221
+ EXPOSURE_TRACKING_ENABLED = 0;
222
+ EXPOSURE_TRACKING_DISABLED = 1;
223
+ }
224
+
225
+ enum AssignmentMode {
226
+ ASSIGNMENT_MODE_FULL = 0;
227
+ ASSIGNMENT_MODE_FORCE_DEFAULT = 1;
228
+ ASSIGNMENT_MODE_OVERRIDE_ONLY = 2;
229
+ }
230
+
231
+ fixed64 id = 1;
232
+ string name = 2;
233
+ optional google.protobuf.Timestamp created_at = 3;
234
+ fixed64 creator_id = 4;
235
+ int32 version = 5;
236
+ optional google.protobuf.Timestamp edited_at = 6;
237
+ fixed64 editor_id = 7;
238
+ string title = 8;
239
+ string description = 9;
240
+ optional google.protobuf.StringValue hypothesis = 10;
241
+ optional google.protobuf.StringValue tech_spec_link = 11;
242
+ int32 revision = 12;
243
+ string hash_key = 13;
244
+ UnitType unit_type = 14;
245
+ repeated Variant variants = 15;
246
+ repeated Rule rules = 16;
247
+ Status status = 18;
248
+ repeated Surface surfaces = 19;
249
+ string owning_team_name = 20;
250
+ fixed64 cached_notification_channel_id = 21;
251
+ ExposureTracking exposure_tracking = 22;
252
+ AssignmentMode assignment_mode = 25;
253
+ bool enable_edit_raw_json_ui = 23;
254
+ int32 winning_variant_id = 24;
255
+ }
@@ -0,0 +1,124 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: discord_experimentation/v1/Experiment.proto
5
+ # Protobuf Python Version: 5.28.3
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 3,
17
+ '',
18
+ 'discord_experimentation/v1/Experiment.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
26
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
+
28
+
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+discord_experimentation/v1/Experiment.proto\x12)discord_protos.discord_experimentation.v1\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbf<\n\nExperiment\x12\n\n\x02id\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x12\n\ncreator_id\x18\x04 \x01(\x06\x12\x0f\n\x07version\x18\x05 \x01(\x05\x12\x32\n\tedited_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x11\n\teditor_id\x18\x07 \x01(\x06\x12\r\n\x05title\x18\x08 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\t \x01(\t\x12\x35\n\nhypothesis\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x02\x88\x01\x01\x12\x39\n\x0etech_spec_link\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x03\x88\x01\x01\x12\x10\n\x08revision\x18\x0c \x01(\x05\x12\x10\n\x08hash_key\x18\r \x01(\t\x12Q\n\tunit_type\x18\x0e \x01(\x0e\x32>.discord_protos.discord_experimentation.v1.Experiment.UnitType\x12O\n\x08variants\x18\x0f \x03(\x0b\x32=.discord_protos.discord_experimentation.v1.Experiment.Variant\x12I\n\x05rules\x18\x10 \x03(\x0b\x32:.discord_protos.discord_experimentation.v1.Experiment.Rule\x12L\n\x06status\x18\x12 \x01(\x0e\x32<.discord_protos.discord_experimentation.v1.Experiment.Status\x12O\n\x08surfaces\x18\x13 \x03(\x0e\x32=.discord_protos.discord_experimentation.v1.Experiment.Surface\x12\x18\n\x10owning_team_name\x18\x14 \x01(\t\x12&\n\x1e\x63\x61\x63hed_notification_channel_id\x18\x15 \x01(\x06\x12\x61\n\x11\x65xposure_tracking\x18\x16 \x01(\x0e\x32\x46.discord_protos.discord_experimentation.v1.Experiment.ExposureTracking\x12]\n\x0f\x61ssignment_mode\x18\x19 \x01(\x0e\x32\x44.discord_protos.discord_experimentation.v1.Experiment.AssignmentMode\x12\x1f\n\x17\x65nable_edit_raw_json_ui\x18\x17 \x01(\x08\x12\x1a\n\x12winning_variant_id\x18\x18 \x01(\x05\x1az\n\x11VariantAllocation\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0c\n\x04stop\x18\x02 \x01(\x05\x12H\n\x04type\x18\x03 \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x1a\xcc\x01\n\x07Variant\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\x12\\\n\x0b\x61llocations\x18\x04 \x03(\x0b\x32G.discord_protos.discord_experimentation.v1.Experiment.VariantAllocation\x12H\n\x04type\x18\x05 \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x1a\xa1\x01\n\x18PlatformVersionSpecifier\x12\r\n\x05major\x18\x01 \x01(\r\x12\x30\n\x05minor\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueH\x00\x88\x01\x01\x12\x30\n\x05\x62uild\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x01\x88\x01\x01\x42\x08\n\x06_minorB\x08\n\x06_build\x1a\xa0\x01\n\x19PlatformVersionRangeBound\x12\x64\n\x07version\x18\x01 \x01(\x0b\x32N.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionSpecifierH\x00\x88\x01\x01\x12\x11\n\tinclusive\x18\x02 \x01(\x08\x42\n\n\x08_version\x1a\x8c\x02\n\x14PlatformVersionRange\x12i\n\x0blower_bound\x18\x01 \x01(\x0b\x32O.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionRangeBoundH\x00\x88\x01\x01\x12i\n\x0bupper_bound\x18\x02 \x01(\x0b\x32O.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionRangeBoundH\x01\x88\x01\x01\x42\x0e\n\x0c_lower_boundB\x0e\n\x0c_upper_bound\x1a\x8c\x01\n\x0fPlatformVersion\x12Z\n\x06ranges\x18\x01 \x03(\x0b\x32J.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionRange\x12\x1d\n\x15work_around_pyoto_bug\x18\x02 \x01(\x08\x1a\xe2\x03\n\x0e\x43lientPlatform\x12_\n\x0bios_version\x18\x01 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionH\x00\x88\x01\x01\x12\x63\n\x0f\x61ndroid_version\x18\x02 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionH\x01\x88\x01\x01\x12_\n\x0bweb_version\x18\x03 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionH\x02\x88\x01\x01\x12\x62\n\x0enative_version\x18\x04 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.PlatformVersionH\x03\x88\x01\x01\x42\x0e\n\x0c_ios_versionB\x12\n\x10_android_versionB\x0e\n\x0c_web_versionB\x11\n\x0f_native_version\x1a&\n\x13SDKVersionSpecifier\x12\x0f\n\x07version\x18\x01 \x01(\x05\x1a\x96\x01\n\x14SDKVersionRangeBound\x12_\n\x07version\x18\x01 \x01(\x0b\x32I.discord_protos.discord_experimentation.v1.Experiment.SDKVersionSpecifierH\x00\x88\x01\x01\x12\x11\n\tinclusive\x18\x02 \x01(\x08\x42\n\n\x08_version\x1a\xfd\x01\n\x0fSDKVersionRange\x12\x64\n\x0blower_bound\x18\x01 \x01(\x0b\x32J.discord_protos.discord_experimentation.v1.Experiment.SDKVersionRangeBoundH\x00\x88\x01\x01\x12\x64\n\x0bupper_bound\x18\x02 \x01(\x0b\x32J.discord_protos.discord_experimentation.v1.Experiment.SDKVersionRangeBoundH\x01\x88\x01\x01\x42\x0e\n\x0c_lower_boundB\x0e\n\x0c_upper_bound\x1a\x82\x01\n\nSDKVersion\x12U\n\x06ranges\x18\x01 \x03(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.SDKVersionRange\x12\x1d\n\x15work_around_pyoto_bug\x18\x02 \x01(\x08\x1a\xb5\x06\n\x15\x43lientOperatingSystem\x12Z\n\x0bios_version\x18\x01 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x00\x88\x01\x01\x12^\n\x0f\x61ndroid_version\x18\x02 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x01\x88\x01\x01\x12\\\n\rmacos_version\x18\x03 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x02\x88\x01\x01\x12^\n\x0fwindows_version\x18\x04 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x03\x88\x01\x01\x12\x62\n\x13playstation_version\x18\x05 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x04\x88\x01\x01\x12[\n\x0cxbox_version\x18\x06 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x05\x88\x01\x01\x12\\\n\rlinux_version\x18\x07 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.SDKVersionH\x06\x88\x01\x01\x42\x0e\n\x0c_ios_versionB\x12\n\x10_android_versionB\x10\n\x0e_macos_versionB\x12\n\x10_windows_versionB\x16\n\x14_playstation_versionB\x0f\n\r_xbox_versionB\x10\n\x0e_linux_version\x1a>\n\nStaffUsers\x12\x15\n\rwork_accounts\x18\x01 \x01(\x08\x12\x19\n\x11personal_accounts\x18\x02 \x01(\x08\x1a \n\x0bUserInGuild\x12\x11\n\tguild_ids\x18\x01 \x03(\x06\x1a\x1b\n\x07UserIds\x12\x10\n\x08user_ids\x18\x01 \x03(\x06\x1a#\n\x0c\x43lientLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00\x1a\x39\n\tISORegion\x12\x13\n\x0biso_country\x18\x01 \x01(\t\x12\x17\n\x0fiso_subdivision\x18\x02 \x01(\t\x1a;\n\x05Place\x12\x0c\n\x04\x63ity\x18\x01 \x01(\t\x12\x13\n\x0bsubdivision\x18\x02 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x03 \x01(\t\x1a\xcc\x01\n\x08Location\x12U\n\niso_region\x18\x01 \x01(\x0b\x32?.discord_protos.discord_experimentation.v1.Experiment.ISORegionH\x00\x12\x0f\n\x05is_eu\x18\x02 \x01(\x08H\x00\x12L\n\x05place\x18\x03 \x01(\x0b\x32;.discord_protos.discord_experimentation.v1.Experiment.PlaceH\x00\x42\n\n\x08location\x1a\x63\n\x0e\x43lientLocation\x12Q\n\tlocations\x18\x01 \x03(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.Location\x1a\x1e\n\x08\x43lientIP\x12\x12\n\x06\x62locks\x18\x01 \x03(\tB\x02\x10\x00\x1a!\n\nUserLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00\x1a\x1b\n\tUserIsBot\x12\x0e\n\x06is_bot\x18\x01 \x01(\x08\x1a\xa6\x01\n\x0cUserAgeRange\x12\x38\n\rmin_age_years\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueH\x00\x88\x01\x01\x12\x38\n\rmax_age_years\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueH\x01\x88\x01\x01\x42\x10\n\x0e_min_age_yearsB\x10\n\x0e_max_age_years\x1a\x1d\n\x0c\x46ixed64Value\x12\r\n\x05value\x18\x01 \x01(\x06\x1a\xd5\x01\n\x0bUserIDRange\x12W\n\x06min_id\x18\x01 \x01(\x0b\x32\x42.discord_protos.discord_experimentation.v1.Experiment.Fixed64ValueH\x00\x88\x01\x01\x12W\n\x06max_id\x18\x02 \x01(\x0b\x32\x42.discord_protos.discord_experimentation.v1.Experiment.Fixed64ValueH\x01\x88\x01\x01\x42\t\n\x07_min_idB\t\n\x07_max_id\x1a\x1b\n\x0bUserHasFlag\x12\x0c\n\x04mask\x18\x01 \x01(\x06\x1a\x37\n\x13UnitIdInRangeByHash\x12\x10\n\x08hash_key\x18\x01 \x01(\t\x12\x0e\n\x06target\x18\x02 \x01(\r\x1a\x34\n\x14\x43lientReleaseChannel\x12\x1c\n\x10release_channels\x18\x01 \x03(\tB\x02\x10\x00\x1a\x17\n\x06\x41lways\x12\r\n\x05value\x18\x01 \x01(\x08\x1a\xd5\x0b\n\x06\x46ilter\x12^\n\x0e\x63lient_version\x18\x02 \x01(\x0b\x32\x44.discord_protos.discord_experimentation.v1.Experiment.ClientPlatformH\x00\x12`\n\tclient_os\x18\x03 \x01(\x0b\x32K.discord_protos.discord_experimentation.v1.Experiment.ClientOperatingSystemH\x00\x12Q\n\x05staff\x18\x04 \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.StaffUsersH\x00\x12Z\n\ruser_in_guild\x18\x05 \x01(\x0b\x32\x41.discord_protos.discord_experimentation.v1.Experiment.UserInGuildH\x00\x12Q\n\x08user_ids\x18\x06 \x01(\x0b\x32=.discord_protos.discord_experimentation.v1.Experiment.UserIdsH\x00\x12[\n\rclient_locale\x18\x07 \x01(\x0b\x32\x42.discord_protos.discord_experimentation.v1.Experiment.ClientLocaleH\x00\x12_\n\x0f\x63lient_location\x18\x08 \x01(\x0b\x32\x44.discord_protos.discord_experimentation.v1.Experiment.ClientLocationH\x00\x12S\n\tclient_ip\x18\t \x01(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.ClientIPH\x00\x12W\n\x0buser_locale\x18\n \x01(\x0b\x32@.discord_protos.discord_experimentation.v1.Experiment.UserLocaleH\x00\x12N\n\x03\x62ot\x18\x0b \x01(\x0b\x32?.discord_protos.discord_experimentation.v1.Experiment.UserIsBotH\x00\x12\\\n\x0euser_age_range\x18\x0c \x01(\x0b\x32\x42.discord_protos.discord_experimentation.v1.Experiment.UserAgeRangeH\x00\x12Z\n\ruser_id_range\x18\r \x01(\x0b\x32\x41.discord_protos.discord_experimentation.v1.Experiment.UserIDRangeH\x00\x12Z\n\ruser_has_flag\x18\x0e \x01(\x0b\x32\x41.discord_protos.discord_experimentation.v1.Experiment.UserHasFlagH\x00\x12m\n\x18unit_id_in_range_by_hash\x18\x0f \x01(\x0b\x32I.discord_protos.discord_experimentation.v1.Experiment.UnitIdInRangeByHashH\x00\x12l\n\x16\x63lient_release_channel\x18\x10 \x01(\x0b\x32J.discord_protos.discord_experimentation.v1.Experiment.ClientReleaseChannelH\x00\x12N\n\x06\x61lways\x18\x11 \x01(\x0b\x32<.discord_protos.discord_experimentation.v1.Experiment.AlwaysH\x00\x42\x08\n\x06\x66ilter\x1a\x1e\n\x08Override\x12\x12\n\nvariant_id\x18\x01 \x01(\x05\x1a\x9b\x02\n\x04Rule\x12H\n\x04type\x18\x01 \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x12M\n\x07\x66ilters\x18\x02 \x03(\x0b\x32<.discord_protos.discord_experimentation.v1.Experiment.Filter\x12U\n\x08override\x18\x03 \x01(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.OverrideH\x00\x88\x01\x01\x12\x16\n\x0eis_sunset_rule\x18\x04 \x01(\x08\x42\x0b\n\t_override\"9\n\x08UnitType\x12\x19\n\x15UNIT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eUNIT_TYPE_USER\x10\x01\">\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTYPE_ACTIVE\x10\x01\x12\x0f\n\x0bTYPE_UNUSED\x10\x02\"\x89\x01\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x10\n\x0cSTATUS_DRAFT\x10\x01\x12\x12\n\x0eSTATUS_TESTING\x10\x02\x12\x18\n\x14STATUS_TESTING_ENDED\x10\x03\x12\x12\n\x0eSTATUS_ROLLOUT\x10\x04\x12\x13\n\x0fSTATUS_ARCHIVED\x10\x05\"D\n\x07Surface\x12\x17\n\x13SURFACE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bSURFACE_API\x10\x01\x12\x0f\n\x0bSURFACE_APP\x10\x02\"Q\n\x10\x45xposureTracking\x12\x1d\n\x19\x45XPOSURE_TRACKING_ENABLED\x10\x00\x12\x1e\n\x1a\x45XPOSURE_TRACKING_DISABLED\x10\x01\"p\n\x0e\x41ssignmentMode\x12\x18\n\x14\x41SSIGNMENT_MODE_FULL\x10\x00\x12!\n\x1d\x41SSIGNMENT_MODE_FORCE_DEFAULT\x10\x01\x12!\n\x1d\x41SSIGNMENT_MODE_OVERRIDE_ONLY\x10\x02\x42\r\n\x0b_created_atB\x0c\n\n_edited_atB\r\n\x0b_hypothesisB\x11\n\x0f_tech_spec_linkb\x06proto3')
30
+
31
+ _globals = globals()
32
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
33
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'discord_experimentation.v1.Experiment_pb2', _globals)
34
+ if not _descriptor._USE_C_DESCRIPTORS:
35
+ DESCRIPTOR._loaded_options = None
36
+ _globals['_EXPERIMENT_CLIENTLOCALE'].fields_by_name['locales']._loaded_options = None
37
+ _globals['_EXPERIMENT_CLIENTLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
38
+ _globals['_EXPERIMENT_CLIENTIP'].fields_by_name['blocks']._loaded_options = None
39
+ _globals['_EXPERIMENT_CLIENTIP'].fields_by_name['blocks']._serialized_options = b'\020\000'
40
+ _globals['_EXPERIMENT_USERLOCALE'].fields_by_name['locales']._loaded_options = None
41
+ _globals['_EXPERIMENT_USERLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
42
+ _globals['_EXPERIMENT_CLIENTRELEASECHANNEL'].fields_by_name['release_channels']._loaded_options = None
43
+ _globals['_EXPERIMENT_CLIENTRELEASECHANNEL'].fields_by_name['release_channels']._serialized_options = b'\020\000'
44
+ _globals['_EXPERIMENT']._serialized_start=156
45
+ _globals['_EXPERIMENT']._serialized_end=7899
46
+ _globals['_EXPERIMENT_VARIANTALLOCATION']._serialized_start=1262
47
+ _globals['_EXPERIMENT_VARIANTALLOCATION']._serialized_end=1384
48
+ _globals['_EXPERIMENT_VARIANT']._serialized_start=1387
49
+ _globals['_EXPERIMENT_VARIANT']._serialized_end=1591
50
+ _globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_start=1594
51
+ _globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_end=1755
52
+ _globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_start=1758
53
+ _globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_end=1918
54
+ _globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_start=1921
55
+ _globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_end=2189
56
+ _globals['_EXPERIMENT_PLATFORMVERSION']._serialized_start=2192
57
+ _globals['_EXPERIMENT_PLATFORMVERSION']._serialized_end=2332
58
+ _globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_start=2335
59
+ _globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_end=2817
60
+ _globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_start=2819
61
+ _globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_end=2857
62
+ _globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_start=2860
63
+ _globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_end=3010
64
+ _globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_start=3013
65
+ _globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_end=3266
66
+ _globals['_EXPERIMENT_SDKVERSION']._serialized_start=3269
67
+ _globals['_EXPERIMENT_SDKVERSION']._serialized_end=3399
68
+ _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_start=3402
69
+ _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_end=4223
70
+ _globals['_EXPERIMENT_STAFFUSERS']._serialized_start=4225
71
+ _globals['_EXPERIMENT_STAFFUSERS']._serialized_end=4287
72
+ _globals['_EXPERIMENT_USERINGUILD']._serialized_start=4289
73
+ _globals['_EXPERIMENT_USERINGUILD']._serialized_end=4321
74
+ _globals['_EXPERIMENT_USERIDS']._serialized_start=4323
75
+ _globals['_EXPERIMENT_USERIDS']._serialized_end=4350
76
+ _globals['_EXPERIMENT_CLIENTLOCALE']._serialized_start=4352
77
+ _globals['_EXPERIMENT_CLIENTLOCALE']._serialized_end=4387
78
+ _globals['_EXPERIMENT_ISOREGION']._serialized_start=4389
79
+ _globals['_EXPERIMENT_ISOREGION']._serialized_end=4446
80
+ _globals['_EXPERIMENT_PLACE']._serialized_start=4448
81
+ _globals['_EXPERIMENT_PLACE']._serialized_end=4507
82
+ _globals['_EXPERIMENT_LOCATION']._serialized_start=4510
83
+ _globals['_EXPERIMENT_LOCATION']._serialized_end=4714
84
+ _globals['_EXPERIMENT_CLIENTLOCATION']._serialized_start=4716
85
+ _globals['_EXPERIMENT_CLIENTLOCATION']._serialized_end=4815
86
+ _globals['_EXPERIMENT_CLIENTIP']._serialized_start=4817
87
+ _globals['_EXPERIMENT_CLIENTIP']._serialized_end=4847
88
+ _globals['_EXPERIMENT_USERLOCALE']._serialized_start=4849
89
+ _globals['_EXPERIMENT_USERLOCALE']._serialized_end=4882
90
+ _globals['_EXPERIMENT_USERISBOT']._serialized_start=4884
91
+ _globals['_EXPERIMENT_USERISBOT']._serialized_end=4911
92
+ _globals['_EXPERIMENT_USERAGERANGE']._serialized_start=4914
93
+ _globals['_EXPERIMENT_USERAGERANGE']._serialized_end=5080
94
+ _globals['_EXPERIMENT_FIXED64VALUE']._serialized_start=5082
95
+ _globals['_EXPERIMENT_FIXED64VALUE']._serialized_end=5111
96
+ _globals['_EXPERIMENT_USERIDRANGE']._serialized_start=5114
97
+ _globals['_EXPERIMENT_USERIDRANGE']._serialized_end=5327
98
+ _globals['_EXPERIMENT_USERHASFLAG']._serialized_start=5329
99
+ _globals['_EXPERIMENT_USERHASFLAG']._serialized_end=5356
100
+ _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_start=5358
101
+ _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_end=5413
102
+ _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_start=5415
103
+ _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_end=5467
104
+ _globals['_EXPERIMENT_ALWAYS']._serialized_start=5469
105
+ _globals['_EXPERIMENT_ALWAYS']._serialized_end=5492
106
+ _globals['_EXPERIMENT_FILTER']._serialized_start=5495
107
+ _globals['_EXPERIMENT_FILTER']._serialized_end=6988
108
+ _globals['_EXPERIMENT_OVERRIDE']._serialized_start=6990
109
+ _globals['_EXPERIMENT_OVERRIDE']._serialized_end=7020
110
+ _globals['_EXPERIMENT_RULE']._serialized_start=7023
111
+ _globals['_EXPERIMENT_RULE']._serialized_end=7306
112
+ _globals['_EXPERIMENT_UNITTYPE']._serialized_start=7308
113
+ _globals['_EXPERIMENT_UNITTYPE']._serialized_end=7365
114
+ _globals['_EXPERIMENT_TYPE']._serialized_start=7367
115
+ _globals['_EXPERIMENT_TYPE']._serialized_end=7429
116
+ _globals['_EXPERIMENT_STATUS']._serialized_start=7432
117
+ _globals['_EXPERIMENT_STATUS']._serialized_end=7569
118
+ _globals['_EXPERIMENT_SURFACE']._serialized_start=7571
119
+ _globals['_EXPERIMENT_SURFACE']._serialized_end=7639
120
+ _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_start=7641
121
+ _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_end=7722
122
+ _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_start=7724
123
+ _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_end=7836
124
+ # @@protoc_insertion_point(module_scope)