discord-protos 1.2.96 → 1.2.98

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,7 +3,7 @@ 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.96'
6
+ __version__ = '1.2.98'
7
7
 
8
8
  if TYPE_CHECKING:
9
9
  from google.protobuf.message import Message as _Message
@@ -18,6 +18,7 @@ message Experiment {
18
18
  TYPE_ACTIVE = 1;
19
19
  TYPE_UNUSED = 2;
20
20
  TYPE_BURNED = 3;
21
+ TYPE_PRESERVED = 4;
21
22
  }
22
23
 
23
24
  message Bucket {
@@ -201,6 +202,19 @@ message Experiment {
201
202
  repeated fixed64 target_filter_values = 2;
202
203
  }
203
204
 
205
+ message GuildIds {
206
+ repeated fixed64 guild_ids = 1;
207
+ }
208
+
209
+ message GuildMemberCountRange {
210
+ optional google.protobuf.UInt32Value min_count = 1;
211
+ optional google.protobuf.UInt32Value max_count = 2;
212
+ }
213
+
214
+ message GuildHasFeature {
215
+ repeated string features = 1 [packed = false];
216
+ }
217
+
204
218
  message Filter {
205
219
  oneof filter {
206
220
  ClientPlatform client_version = 2;
@@ -223,6 +237,9 @@ message Experiment {
223
237
  UnitIdInExperiment unit_id_in_experiment = 19;
224
238
  UserPremiumType user_premium_type = 20;
225
239
  UnitIdMatchesFilterSnapshot unit_id_matches_filter_snapshot = 21;
240
+ GuildIds guild_ids = 22;
241
+ GuildMemberCountRange guild_member_count_range = 25;
242
+ GuildHasFeature guild_has_feature = 26;
226
243
  }
227
244
  }
228
245
 
@@ -230,11 +247,17 @@ message Experiment {
230
247
  int32 variation_id = 1;
231
248
  }
232
249
 
250
+ enum Subtype {
251
+ SUBTYPE_REGULAR = 0;
252
+ SUBTYPE_HOLDOUT = 1;
253
+ }
254
+
233
255
  message Rule {
234
256
  Type type = 1;
235
257
  repeated Filter filters = 2;
236
258
  optional Override override = 3;
237
259
  bool is_sunset_rule = 4;
260
+ Subtype subtype = 5;
238
261
  }
239
262
 
240
263
  enum Phase {
@@ -26,7 +26,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb
26
26
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
27
 
28
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\"\xacK\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\x12S\n\nvariations\x18\x0f \x03(\x0b\x32?.discord_protos.discord_experimentation.v1.Experiment.Variation\x12I\n\x05rules\x18\x10 \x03(\x0b\x32:.discord_protos.discord_experimentation.v1.Experiment.Rule\x12J\n\x05phase\x18\x12 \x01(\x0e\x32;.discord_protos.discord_experimentation.v1.Experiment.Phase\x12O\n\x08surfaces\x18\x13 \x03(\x0e\x32=.discord_protos.discord_experimentation.v1.Experiment.Surface\x12\x16\n\x0eowning_team_id\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\x1c\n\x14winning_variation_id\x18\x18 \x01(\x05\x12\x1d\n\x15\x65xtra_outcome_context\x18\" \x01(\t\x12H\n\x04type\x18\x1a \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x12\x13\n\x0bis_template\x18\x1b \x01(\x08\x12\x1d\n\x15\x66ield_numbers_to_copy\x18\x1c \x03(\x05\x12 \n\x14\x65ngine_feature_flags\x18\x1d \x03(\tB\x02\x10\x00\x12\\\n\x0c\x64\x65\x62ug_config\x18\x1e \x01(\x0b\x32\x41.discord_protos.discord_experimentation.v1.Experiment.DebugConfigH\x04\x88\x01\x01\x12:\n\x11\x65xpected_end_date\x18\x1f \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12\x1b\n\x13is_automated_change\x18 \x01(\x08\x12\x33\n\narchive_at\x18! \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x1ao\n\x06\x42ucket\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\xa6\x02\n\tVariation\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\x12\x19\n\x11target_allocation\x18\x03 \x01(\x05\x12M\n\x07\x62uckets\x18\x04 \x03(\x0b\x32<.discord_protos.discord_experimentation.v1.Experiment.Bucket\x12H\n\x04type\x18\x05 \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x12\x38\n\rconfiguration\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x88\x01\x01\x42\x10\n\x0e_configuration\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\x46\n\x15\x43lientRequiredChanges\x12\x19\n\rcommit_hashes\x18\x01 \x03(\tB\x02\x10\x00\x12\x12\n\npr_numbers\x18\x02 \x03(\x05\x1a\x8f\x05\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\x12\x1c\n\x14\x61llow_non_native_web\x18\x06 \x01(\x08\x12q\n\x17\x63lient_required_changes\x18\x05 \x01(\x0b\x32K.discord_protos.discord_experimentation.v1.Experiment.ClientRequiredChangesH\x04\x88\x01\x01\x42\x0e\n\x0c_ios_versionB\x12\n\x10_android_versionB\x0e\n\x0c_web_versionB\x11\n\x0f_native_versionB\x1a\n\x18_client_required_changes\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`\n\x13UnitIdInRangeByHash\x12\x10\n\x08hash_key\x18\x01 \x01(\t\x12\x1a\n\x12stop_ring_position\x18\x02 \x01(\r\x12\x1b\n\x13start_ring_position\x18\x03 \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)\n\x12\x43lientSystemLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00\x1a\x42\n\x12UnitIdInExperiment\x12\x15\n\rexperiment_id\x18\x01 \x01(\x06\x12\x15\n\rvariation_ids\x18\x02 \x03(\x05\x1a(\n\x0fUserPremiumType\x12\x15\n\rpremium_types\x18\x01 \x03(\x05\x1aY\n\x1bUnitIdMatchesFilterSnapshot\x12\x1c\n\x14\x66ilter_snapshot_name\x18\x01 \x01(\t\x12\x1c\n\x14target_filter_values\x18\x02 \x03(\x06\x1a\x8c\x0f\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\x12h\n\x14\x63lient_system_locale\x18\x12 \x01(\x0b\x32H.discord_protos.discord_experimentation.v1.Experiment.ClientSystemLocaleH\x00\x12i\n\x15unit_id_in_experiment\x18\x13 \x01(\x0b\x32H.discord_protos.discord_experimentation.v1.Experiment.UnitIdInExperimentH\x00\x12\x62\n\x11user_premium_type\x18\x14 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.UserPremiumTypeH\x00\x12|\n\x1funit_id_matches_filter_snapshot\x18\x15 \x01(\x0b\x32Q.discord_protos.discord_experimentation.v1.Experiment.UnitIdMatchesFilterSnapshotH\x00\x42\x08\n\x06\x66ilter\x1a \n\x08Override\x12\x14\n\x0cvariation_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\x1a\xc2\x01\n\x0b\x44\x65\x62ugConfig\x12\x1f\n\x17\x65nable_decision_logging\x18\x01 \x01(\x08\x12\x1b\n\x13metrics_sample_rate\x18\x02 \x01(\x01\x12\x1e\n\x16log_context_on_failure\x18\x03 \x01(\x08\x12\x17\n\x0flog_raw_headers\x18\x04 \x01(\x08\x12\x1a\n\x12tag_filter_metrics\x18\x05 \x01(\x08\x12 \n\x18\x64\x65\x63ision_log_sample_rate\x18\x06 \x01(\x01\"j\n\x08UnitType\x12\x19\n\x15UNIT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eUNIT_TYPE_USER\x10\x01\x12\x1a\n\x16UNIT_TYPE_INSTALLATION\x10\x02\x12\x13\n\x0fUNIT_TYPE_GUILD\x10\x03\"O\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTYPE_ACTIVE\x10\x01\x12\x0f\n\x0bTYPE_UNUSED\x10\x02\x12\x0f\n\x0bTYPE_BURNED\x10\x03\"\x84\x01\n\x05Phase\x12\x15\n\x11PHASE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPHASE_DRAFT\x10\x01\x12\x15\n\x11PHASE_MEASUREMENT\x10\x02\x12\x15\n\x11PHASE_ROLLING_OUT\x10\x04\x12\x12\n\x0ePHASE_ARCHIVED\x10\x06\x12\x11\n\rPHASE_AA_MODE\x10\x07\"\x96\x01\n\x07Surface\x12\x17\n\x13SURFACE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bSURFACE_API\x10\x01\x12\x0f\n\x0bSURFACE_APP\x10\x02\x12\x1c\n\x18SURFACE_DEVELOPER_PORTAL\x10\x03\x12\x17\n\x13SURFACE_ADMIN_PANEL\x10\x04\x12\x19\n\x15SURFACE_ADS_BUDGET_AB\x10\x05\"Q\n\x10\x45xposureTracking\x12\x1d\n\x19\x45XPOSURE_TRACKING_ENABLED\x10\x00\x12\x1e\n\x1a\x45XPOSURE_TRACKING_DISABLED\x10\x01\"\x8a\x01\n\x0e\x41ssignmentMode\x12\x18\n\x14\x41SSIGNMENT_MODE_FULL\x10\x00\x12!\n\x1d\x41SSIGNMENT_MODE_FORCE_CONTROL\x10\x03\x12\"\n\x1e\x41SSIGNMENT_MODE_OVERRIDES_ONLY\x10\x04\x12\x17\n\x13\x41SSIGNMENT_MODE_OFF\x10\x05\x42\r\n\x0b_created_atB\x0c\n\n_edited_atB\r\n\x0b_hypothesisB\x11\n\x0f_tech_spec_linkB\x0f\n\r_debug_configB\x14\n\x12_expected_end_dateB\r\n\x0b_archive_atb\x06proto3')
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\"\xd9P\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\x12S\n\nvariations\x18\x0f \x03(\x0b\x32?.discord_protos.discord_experimentation.v1.Experiment.Variation\x12I\n\x05rules\x18\x10 \x03(\x0b\x32:.discord_protos.discord_experimentation.v1.Experiment.Rule\x12J\n\x05phase\x18\x12 \x01(\x0e\x32;.discord_protos.discord_experimentation.v1.Experiment.Phase\x12O\n\x08surfaces\x18\x13 \x03(\x0e\x32=.discord_protos.discord_experimentation.v1.Experiment.Surface\x12\x16\n\x0eowning_team_id\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\x1c\n\x14winning_variation_id\x18\x18 \x01(\x05\x12\x1d\n\x15\x65xtra_outcome_context\x18\" \x01(\t\x12H\n\x04type\x18\x1a \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x12\x13\n\x0bis_template\x18\x1b \x01(\x08\x12\x1d\n\x15\x66ield_numbers_to_copy\x18\x1c \x03(\x05\x12 \n\x14\x65ngine_feature_flags\x18\x1d \x03(\tB\x02\x10\x00\x12\\\n\x0c\x64\x65\x62ug_config\x18\x1e \x01(\x0b\x32\x41.discord_protos.discord_experimentation.v1.Experiment.DebugConfigH\x04\x88\x01\x01\x12:\n\x11\x65xpected_end_date\x18\x1f \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12\x1b\n\x13is_automated_change\x18 \x01(\x08\x12\x33\n\narchive_at\x18! \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x1ao\n\x06\x42ucket\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\xa6\x02\n\tVariation\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\x12\x19\n\x11target_allocation\x18\x03 \x01(\x05\x12M\n\x07\x62uckets\x18\x04 \x03(\x0b\x32<.discord_protos.discord_experimentation.v1.Experiment.Bucket\x12H\n\x04type\x18\x05 \x01(\x0e\x32:.discord_protos.discord_experimentation.v1.Experiment.Type\x12\x38\n\rconfiguration\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x88\x01\x01\x42\x10\n\x0e_configuration\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\x46\n\x15\x43lientRequiredChanges\x12\x19\n\rcommit_hashes\x18\x01 \x03(\tB\x02\x10\x00\x12\x12\n\npr_numbers\x18\x02 \x03(\x05\x1a\x8f\x05\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\x12\x1c\n\x14\x61llow_non_native_web\x18\x06 \x01(\x08\x12q\n\x17\x63lient_required_changes\x18\x05 \x01(\x0b\x32K.discord_protos.discord_experimentation.v1.Experiment.ClientRequiredChangesH\x04\x88\x01\x01\x42\x0e\n\x0c_ios_versionB\x12\n\x10_android_versionB\x0e\n\x0c_web_versionB\x11\n\x0f_native_versionB\x1a\n\x18_client_required_changes\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`\n\x13UnitIdInRangeByHash\x12\x10\n\x08hash_key\x18\x01 \x01(\t\x12\x1a\n\x12stop_ring_position\x18\x02 \x01(\r\x12\x1b\n\x13start_ring_position\x18\x03 \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)\n\x12\x43lientSystemLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00\x1a\x42\n\x12UnitIdInExperiment\x12\x15\n\rexperiment_id\x18\x01 \x01(\x06\x12\x15\n\rvariation_ids\x18\x02 \x03(\x05\x1a(\n\x0fUserPremiumType\x12\x15\n\rpremium_types\x18\x01 \x03(\x05\x1aY\n\x1bUnitIdMatchesFilterSnapshot\x12\x1c\n\x14\x66ilter_snapshot_name\x18\x01 \x01(\t\x12\x1c\n\x14target_filter_values\x18\x02 \x03(\x06\x1a\x1d\n\x08GuildIds\x12\x11\n\tguild_ids\x18\x01 \x03(\x06\x1a\x9f\x01\n\x15GuildMemberCountRange\x12\x34\n\tmin_count\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueH\x00\x88\x01\x01\x12\x34\n\tmax_count\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueH\x01\x88\x01\x01\x42\x0c\n\n_min_countB\x0c\n\n_max_count\x1a\'\n\x0fGuildHasFeature\x12\x14\n\x08\x66\x65\x61tures\x18\x01 \x03(\tB\x02\x10\x00\x1a\xb6\x11\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\x12h\n\x14\x63lient_system_locale\x18\x12 \x01(\x0b\x32H.discord_protos.discord_experimentation.v1.Experiment.ClientSystemLocaleH\x00\x12i\n\x15unit_id_in_experiment\x18\x13 \x01(\x0b\x32H.discord_protos.discord_experimentation.v1.Experiment.UnitIdInExperimentH\x00\x12\x62\n\x11user_premium_type\x18\x14 \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.UserPremiumTypeH\x00\x12|\n\x1funit_id_matches_filter_snapshot\x18\x15 \x01(\x0b\x32Q.discord_protos.discord_experimentation.v1.Experiment.UnitIdMatchesFilterSnapshotH\x00\x12S\n\tguild_ids\x18\x16 \x01(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.GuildIdsH\x00\x12o\n\x18guild_member_count_range\x18\x19 \x01(\x0b\x32K.discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRangeH\x00\x12\x62\n\x11guild_has_feature\x18\x1a \x01(\x0b\x32\x45.discord_protos.discord_experimentation.v1.Experiment.GuildHasFeatureH\x00\x42\x08\n\x06\x66ilter\x1a \n\x08Override\x12\x14\n\x0cvariation_id\x18\x01 \x01(\x05\x1a\xeb\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\x12N\n\x07subtype\x18\x05 \x01(\x0e\x32=.discord_protos.discord_experimentation.v1.Experiment.SubtypeB\x0b\n\t_override\x1a\xc2\x01\n\x0b\x44\x65\x62ugConfig\x12\x1f\n\x17\x65nable_decision_logging\x18\x01 \x01(\x08\x12\x1b\n\x13metrics_sample_rate\x18\x02 \x01(\x01\x12\x1e\n\x16log_context_on_failure\x18\x03 \x01(\x08\x12\x17\n\x0flog_raw_headers\x18\x04 \x01(\x08\x12\x1a\n\x12tag_filter_metrics\x18\x05 \x01(\x08\x12 \n\x18\x64\x65\x63ision_log_sample_rate\x18\x06 \x01(\x01\"j\n\x08UnitType\x12\x19\n\x15UNIT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eUNIT_TYPE_USER\x10\x01\x12\x1a\n\x16UNIT_TYPE_INSTALLATION\x10\x02\x12\x13\n\x0fUNIT_TYPE_GUILD\x10\x03\"c\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTYPE_ACTIVE\x10\x01\x12\x0f\n\x0bTYPE_UNUSED\x10\x02\x12\x0f\n\x0bTYPE_BURNED\x10\x03\x12\x12\n\x0eTYPE_PRESERVED\x10\x04\"3\n\x07Subtype\x12\x13\n\x0fSUBTYPE_REGULAR\x10\x00\x12\x13\n\x0fSUBTYPE_HOLDOUT\x10\x01\"\x84\x01\n\x05Phase\x12\x15\n\x11PHASE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bPHASE_DRAFT\x10\x01\x12\x15\n\x11PHASE_MEASUREMENT\x10\x02\x12\x15\n\x11PHASE_ROLLING_OUT\x10\x04\x12\x12\n\x0ePHASE_ARCHIVED\x10\x06\x12\x11\n\rPHASE_AA_MODE\x10\x07\"\x96\x01\n\x07Surface\x12\x17\n\x13SURFACE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bSURFACE_API\x10\x01\x12\x0f\n\x0bSURFACE_APP\x10\x02\x12\x1c\n\x18SURFACE_DEVELOPER_PORTAL\x10\x03\x12\x17\n\x13SURFACE_ADMIN_PANEL\x10\x04\x12\x19\n\x15SURFACE_ADS_BUDGET_AB\x10\x05\"Q\n\x10\x45xposureTracking\x12\x1d\n\x19\x45XPOSURE_TRACKING_ENABLED\x10\x00\x12\x1e\n\x1a\x45XPOSURE_TRACKING_DISABLED\x10\x01\"\x8a\x01\n\x0e\x41ssignmentMode\x12\x18\n\x14\x41SSIGNMENT_MODE_FULL\x10\x00\x12!\n\x1d\x41SSIGNMENT_MODE_FORCE_CONTROL\x10\x03\x12\"\n\x1e\x41SSIGNMENT_MODE_OVERRIDES_ONLY\x10\x04\x12\x17\n\x13\x41SSIGNMENT_MODE_OFF\x10\x05\x42\r\n\x0b_created_atB\x0c\n\n_edited_atB\r\n\x0b_hypothesisB\x11\n\x0f_tech_spec_linkB\x0f\n\r_debug_configB\x14\n\x12_expected_end_dateB\r\n\x0b_archive_atb\x06proto3')
30
30
 
31
31
  _globals = globals()
32
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -45,10 +45,12 @@ if not _descriptor._USE_C_DESCRIPTORS:
45
45
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL'].fields_by_name['release_channels']._serialized_options = b'\020\000'
46
46
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE'].fields_by_name['locales']._loaded_options = None
47
47
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
48
+ _globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._loaded_options = None
49
+ _globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._serialized_options = b'\020\000'
48
50
  _globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._loaded_options = None
49
51
  _globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._serialized_options = b'\020\000'
50
52
  _globals['_EXPERIMENT']._serialized_start=156
51
- _globals['_EXPERIMENT']._serialized_end=9800
53
+ _globals['_EXPERIMENT']._serialized_end=10485
52
54
  _globals['_EXPERIMENT_BUCKET']._serialized_start=1691
53
55
  _globals['_EXPERIMENT_BUCKET']._serialized_end=1802
54
56
  _globals['_EXPERIMENT_VARIATION']._serialized_start=1805
@@ -119,24 +121,32 @@ if not _descriptor._USE_C_DESCRIPTORS:
119
121
  _globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_end=6439
120
122
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_start=6441
121
123
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_end=6530
122
- _globals['_EXPERIMENT_FILTER']._serialized_start=6533
123
- _globals['_EXPERIMENT_FILTER']._serialized_end=8465
124
- _globals['_EXPERIMENT_OVERRIDE']._serialized_start=8467
125
- _globals['_EXPERIMENT_OVERRIDE']._serialized_end=8499
126
- _globals['_EXPERIMENT_RULE']._serialized_start=8502
127
- _globals['_EXPERIMENT_RULE']._serialized_end=8785
128
- _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_start=8788
129
- _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_end=8982
130
- _globals['_EXPERIMENT_UNITTYPE']._serialized_start=8984
131
- _globals['_EXPERIMENT_UNITTYPE']._serialized_end=9090
132
- _globals['_EXPERIMENT_TYPE']._serialized_start=9092
133
- _globals['_EXPERIMENT_TYPE']._serialized_end=9171
134
- _globals['_EXPERIMENT_PHASE']._serialized_start=9174
135
- _globals['_EXPERIMENT_PHASE']._serialized_end=9306
136
- _globals['_EXPERIMENT_SURFACE']._serialized_start=9309
137
- _globals['_EXPERIMENT_SURFACE']._serialized_end=9459
138
- _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_start=9461
139
- _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_end=9542
140
- _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_start=9545
141
- _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_end=9683
124
+ _globals['_EXPERIMENT_GUILDIDS']._serialized_start=6532
125
+ _globals['_EXPERIMENT_GUILDIDS']._serialized_end=6561
126
+ _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_start=6564
127
+ _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_end=6723
128
+ _globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_start=6725
129
+ _globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_end=6764
130
+ _globals['_EXPERIMENT_FILTER']._serialized_start=6767
131
+ _globals['_EXPERIMENT_FILTER']._serialized_end=8997
132
+ _globals['_EXPERIMENT_OVERRIDE']._serialized_start=8999
133
+ _globals['_EXPERIMENT_OVERRIDE']._serialized_end=9031
134
+ _globals['_EXPERIMENT_RULE']._serialized_start=9034
135
+ _globals['_EXPERIMENT_RULE']._serialized_end=9397
136
+ _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_start=9400
137
+ _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_end=9594
138
+ _globals['_EXPERIMENT_UNITTYPE']._serialized_start=9596
139
+ _globals['_EXPERIMENT_UNITTYPE']._serialized_end=9702
140
+ _globals['_EXPERIMENT_TYPE']._serialized_start=9704
141
+ _globals['_EXPERIMENT_TYPE']._serialized_end=9803
142
+ _globals['_EXPERIMENT_SUBTYPE']._serialized_start=9805
143
+ _globals['_EXPERIMENT_SUBTYPE']._serialized_end=9856
144
+ _globals['_EXPERIMENT_PHASE']._serialized_start=9859
145
+ _globals['_EXPERIMENT_PHASE']._serialized_end=9991
146
+ _globals['_EXPERIMENT_SURFACE']._serialized_start=9994
147
+ _globals['_EXPERIMENT_SURFACE']._serialized_end=10144
148
+ _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_start=10146
149
+ _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_end=10227
150
+ _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_start=10230
151
+ _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_end=10368
142
152
  # @@protoc_insertion_point(module_scope)
@@ -188,6 +188,11 @@ message UserData {
188
188
  repeated uint32 colors = 3;
189
189
  }
190
190
 
191
+ message StoreCountry {
192
+ string country = 1;
193
+ optional google.protobuf.Timestamp set_at = 2;
194
+ }
195
+
191
196
  map<fixed64, LinkedUser> linked_users = 1;
192
197
  map<uint32, FeatureLimits> safety_feature_limits = 2;
193
198
  map<uint32, SafetyFlag> safety_flags = 3;
@@ -198,4 +203,5 @@ message UserData {
198
203
  optional SafetyState safety_state = 8;
199
204
  optional PremiumState premium_state = 9;
200
205
  optional DisplayNameStyles display_name_styles = 10;
206
+ optional StoreCountry store_country = 11;
201
207
  }
@@ -26,7 +26,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb
26
26
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
27
 
28
28
 
29
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17users/v1/UserData.proto\x12\x17\x64iscord_protos.users.v1\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa6\x35\n\x08UserData\x12H\n\x0clinked_users\x18\x01 \x03(\x0b\x32\x32.discord_protos.users.v1.UserData.LinkedUsersEntry\x12Y\n\x15safety_feature_limits\x18\x02 \x03(\x0b\x32:.discord_protos.users.v1.UserData.SafetyFeatureLimitsEntry\x12H\n\x0csafety_flags\x18\x03 \x03(\x0b\x32\x32.discord_protos.users.v1.UserData.SafetyFlagsEntry\x12\x43\n\x05quest\x18\x04 \x01(\x0b\x32/.discord_protos.users.v1.UserData.QuestMetadataH\x00\x88\x01\x01\x12N\n\rprimary_guild\x18\x05 \x01(\x0b\x32\x32.discord_protos.users.v1.UserData.UserPrimaryGuildH\x01\x88\x01\x01\x12\x63\n\x1a\x63ross_platform_restriction\x18\x06 \x01(\x0b\x32:.discord_protos.users.v1.UserData.CrossPlatformRestrictionH\x02\x88\x01\x01\x12M\n\x0c\x63ollectibles\x18\x07 \x01(\x0b\x32\x32.discord_protos.users.v1.UserData.UserCollectiblesH\x03\x88\x01\x01\x12H\n\x0csafety_state\x18\x08 \x01(\x0b\x32-.discord_protos.users.v1.UserData.SafetyStateH\x04\x88\x01\x01\x12J\n\rpremium_state\x18\t \x01(\x0b\x32..discord_protos.users.v1.UserData.PremiumStateH\x05\x88\x01\x01\x12U\n\x13\x64isplay_name_styles\x18\n \x01(\x0b\x32\x33.discord_protos.users.v1.UserData.DisplayNameStylesH\x06\x88\x01\x01\x1a\xc5\x02\n\nLinkedUser\x12\x0f\n\x07user_id\x18\x01 \x01(\x06\x12\x41\n\tlink_type\x18\x02 \x01(\x0e\x32..discord_protos.users.v1.UserData.UserLinkType\x12\x45\n\x0blink_status\x18\x03 \x01(\x0e\x32\x30.discord_protos.users.v1.UserData.UserLinkStatus\x12\x14\n\x0crequestor_id\x18\x04 \x01(\x06\x12\x33\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x33\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x42\r\n\x0b_created_atB\r\n\x0b_updated_at\x1aW\n\rRateLimitData\x12\x35\n\x0climit_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0f\n\r_limit_expiry\x1a\xb3\x01\n\rFeatureLimits\x12\x45\n\x03map\x18\x01 \x03(\x0b\x32\x38.discord_protos.users.v1.UserData.FeatureLimits.MapEntry\x1a[\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.discord_protos.users.v1.UserData.RateLimitData:\x02\x38\x01\x1aR\n\nSafetyFlag\x12\x34\n\x0b\x66lag_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0e\n\x0c_flag_expiry\x1a)\n\rQuestMetadata\x12\x18\n\x10quests_completed\x18\x01 \x01(\r\x1a\xaa\x02\n\x10UserPrimaryGuild\x12<\n\x11identity_guild_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x00\x88\x01\x01\x12\x39\n\x10identity_enabled\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueH\x01\x88\x01\x01\x12.\n\x03tag\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x02\x88\x01\x01\x12\x30\n\x05\x62\x61\x64ge\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x03\x88\x01\x01\x42\x14\n\x12_identity_guild_idB\x13\n\x11_identity_enabledB\x06\n\x04_tagB\x08\n\x06_badge\x1a\x86\x01\n\x18\x43rossPlatformRestriction\x12;\n\x12restriction_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x16\n\x0e\x61pplication_id\x18\x02 \x01(\x06\x42\x15\n\x13_restriction_expiry\x1a\xc0\x01\n\rUserNameplate\x12\r\n\x05\x61sset\x18\x01 \x01(\t\x12\x0f\n\x07palette\x18\x02 \x01(\t\x12\x31\n\x06sku_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x00\x88\x01\x01\x12\x33\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\r\n\x05label\x18\x05 \x01(\tB\t\n\x07_sku_idB\r\n\x0b_expires_at\x1ai\n\x10UserCollectibles\x12G\n\tnameplate\x18\x01 \x01(\x0b\x32/.discord_protos.users.v1.UserData.UserNameplateH\x00\x88\x01\x01\x42\x0c\n\n_nameplate\x1a\r\n\x0bNormalState\x1a\x61\n\x0fRestrictedState\x12\x39\n\x10restricted_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x13\n\x11_restricted_until\x1ao\n\x13\x44\x65\x66\x65rredActionState\x12>\n\x15\x61\x63tion_deferred_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x18\n\x16_action_deferred_until\x1aY\n\x0fTempBannedState\x12\x35\n\x0c\x62\x61nned_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0f\n\r_banned_until\x1a\r\n\x0b\x42\x61nnedState\x1a\xde\x04\n\x0bSafetyState\x12?\n\x06normal\x18\x65 \x01(\x0b\x32-.discord_protos.users.v1.UserData.NormalStateH\x00\x12G\n\nrestricted\x18\x66 \x01(\x0b\x32\x31.discord_protos.users.v1.UserData.RestrictedStateH\x00\x12P\n\x0f\x64\x65\x66\x65rred_action\x18g \x01(\x0b\x32\x35.discord_protos.users.v1.UserData.DeferredActionStateH\x00\x12H\n\x0btemp_banned\x18h \x01(\x0b\x32\x31.discord_protos.users.v1.UserData.TempBannedStateH\x00\x12?\n\x06\x62\x61nned\x18i \x01(\x0b\x32-.discord_protos.users.v1.UserData.BannedStateH\x00\x12\x43\n\x06reason\x18\x01 \x01(\x0e\x32\x33.discord_protos.users.v1.UserData.SafetyStateReason\x12H\n\x0b\x61nnotations\x18\x02 \x03(\x0e\x32\x33.discord_protos.users.v1.UserData.SafetyAnnotations\x12;\n\x10last_mutation_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x01\x88\x01\x01\x42\x07\n\x05stateB\x13\n\x11_last_mutation_id\x1a\x9e\x02\n\x0cPremiumState\x12G\n\x0epremium_source\x18\x01 \x01(\x0e\x32/.discord_protos.users.v1.UserData.PremiumSource\x12\\\n\x19premium_subscription_type\x18\x02 \x01(\x0e\x32\x39.discord_protos.users.v1.UserData.PremiumSubscriptionType\x12g\n\x1fpremium_subscription_group_role\x18\x03 \x01(\x0e\x32>.discord_protos.users.v1.UserData.PremiumSubscriptionGroupRole\x1a\xaf\x01\n\x11\x44isplayNameStyles\x12\x42\n\x07\x66ont_id\x18\x01 \x01(\x0e\x32\x31.discord_protos.users.v1.UserData.DisplayNameFont\x12\x46\n\teffect_id\x18\x02 \x01(\x0e\x32\x33.discord_protos.users.v1.UserData.DisplayNameEffect\x12\x0e\n\x06\x63olors\x18\x03 \x03(\r\x1a`\n\x10LinkedUsersEntry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.discord_protos.users.v1.UserData.LinkedUser:\x02\x38\x01\x1ak\n\x18SafetyFeatureLimitsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.discord_protos.users.v1.UserData.FeatureLimits:\x02\x38\x01\x1a`\n\x10SafetyFlagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.discord_protos.users.v1.UserData.SafetyFlag:\x02\x38\x01\"c\n\x0cUserLinkType\x12\x1e\n\x1aUSER_LINK_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15USER_LINK_TYPE_PARENT\x10\x01\x12\x18\n\x14USER_LINK_TYPE_CHILD\x10\x02\"\xab\x01\n\x0eUserLinkStatus\x12 \n\x1cUSER_LINK_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18USER_LINK_STATUS_PENDING\x10\x01\x12\x1b\n\x17USER_LINK_STATUS_ACTIVE\x10\x02\x12\x1d\n\x19USER_LINK_STATUS_INACTIVE\x10\x03\x12\x1d\n\x19USER_LINK_STATUS_DECLINED\x10\x04\"\x88\x06\n\x11SafetyStateReason\x12*\n&SAFETY_STATE_REASON_REASON_UNSPECIFIED\x10\x00\x12\x34\n0SAFETY_STATE_REASON_DISABLED_SUSPICIOUS_ACTIVITY\x10\x01\x12\x37\n3SAFETY_STATE_REASON_SMITE_REMOVE_EMAIL_VERIFICATION\x10\x02\x12G\nCSAFETY_STATE_REASON_USER_REQUIRED_VERIFICATION_INTERVENTIONS_CLIENT\x10\x03\x12\x33\n/SAFETY_STATE_REASON_ACTIVE_ASSIGNMENT_COMPLETED\x10\x04\x12\x31\n-SAFETY_STATE_REASON_ACTIVE_ASSIGNMENT_CREATED\x10\x05\x12\x33\n/SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_CREATED\x10\x06\x12>\n:SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_UPGRADED_TO_ACTIVE\x10\x07\x12\x35\n1SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_CANCELLED\x10\x08\x12\x31\n-SAFETY_STATE_REASON_ASSIGNMENT_STATE_REPAIRED\x10\t\x12,\n(SAFETY_STATE_REASON_MANUAL_PERMANENT_BAN\x10\n\x12+\n\'SAFETY_STATE_REASON_SAFETY_SYSTEM_UNBAN\x10\x0b\x12\x37\n3SAFETY_STATE_REASON_GENERIC_AUTOMATED_SAFETY_ACTION\x10\x0c\x12\x34\n0SAFETY_STATE_REASON_GENERIC_MANUAL_SAFETY_ACTION\x10\r\"\xd9\x02\n\x11SafetyAnnotations\x12-\n)SAFETY_ANNOTATIONS_ANNOTATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSAFETY_ANNOTATIONS_SPAMMER\x10\x01\x12#\n\x1fSAFETY_ANNOTATIONS_SELF_DELETED\x10\x02\x12$\n SAFETY_ANNOTATIONS_SELF_DISABLED\x10\x03\x12\'\n#SAFETY_ANNOTATIONS_UNDERAGE_DELETED\x10\x04\x12.\n*SAFETY_ANNOTATIONS_SAFETY_POLICY_VIOLATION\x10\x05\x12)\n%SAFETY_ANNOTATIONS_INACTIVITY_DELETED\x10\x06\x12&\n\"SAFETY_ANNOTATIONS_GENERIC_DELETED\x10\x07\"\xc3\x01\n\rPremiumSource\x12#\n\x1fPREMIUM_SOURCE_NONE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bPREMIUM_SOURCE_SUBSCRIPTION\x10\x01\x12#\n\x1fPREMIUM_SOURCE_FRACTIONAL_NITRO\x10\x02\x12 \n\x1cPREMIUM_SOURCE_REVERSE_TRIAL\x10\x03\x12%\n!PREMIUM_SOURCE_SUBSCRIPTION_GROUP\x10\x04\"\xe5\x01\n\x17PremiumSubscriptionType\x12.\n*PREMIUM_SUBSCRIPTION_TYPE_NONE_UNSPECIFIED\x10\x00\x12(\n$PREMIUM_SUBSCRIPTION_TYPE_BOOST_ONLY\x10\x01\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_0\x10\x02\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_1\x10\x03\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_2\x10\x04\"\xa8\x01\n\x1cPremiumSubscriptionGroupRole\x12/\n+PREMIUM_SUBSCRIPTION_GROUP_ROLE_UNSPECIFIED\x10\x00\x12+\n\'PREMIUM_SUBSCRIPTION_GROUP_ROLE_PRIMARY\x10\x01\x12*\n&PREMIUM_SUBSCRIPTION_GROUP_ROLE_MEMBER\x10\x02\"\xbb\x03\n\x0f\x44isplayNameFont\x12!\n\x1d\x44ISPLAY_NAME_FONT_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x44ISPLAY_NAME_FONT_DEFAULT\x10\x0b\x12\x1d\n\x19\x44ISPLAY_NAME_FONT_BANGERS\x10\x01\x12\x1f\n\x1b\x44ISPLAY_NAME_FONT_BIO_RHYME\x10\x02\x12!\n\x1d\x44ISPLAY_NAME_FONT_CHERRY_BOMB\x10\x03\x12\x1c\n\x18\x44ISPLAY_NAME_FONT_CHICLE\x10\x04\x12\x1f\n\x1b\x44ISPLAY_NAME_FONT_COMPAGNON\x10\x05\x12#\n\x1f\x44ISPLAY_NAME_FONT_MUSEO_MODERNO\x10\x06\x12 \n\x1c\x44ISPLAY_NAME_FONT_NEO_CASTEL\x10\x07\x12\x1e\n\x1a\x44ISPLAY_NAME_FONT_PIXELIFY\x10\x08\x12\x1b\n\x17\x44ISPLAY_NAME_FONT_RIBES\x10\t\x12\x1e\n\x1a\x44ISPLAY_NAME_FONT_SINISTRE\x10\n\x12 \n\x1c\x44ISPLAY_NAME_FONT_ZILLA_SLAB\x10\x0c\"\xf0\x01\n\x11\x44isplayNameEffect\x12#\n\x1f\x44ISPLAY_NAME_EFFECT_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x44ISPLAY_NAME_EFFECT_SOLID\x10\x01\x12 \n\x1c\x44ISPLAY_NAME_EFFECT_GRADIENT\x10\x02\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_NEON\x10\x03\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_TOON\x10\x04\x12\x1b\n\x17\x44ISPLAY_NAME_EFFECT_POP\x10\x05\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_GLOW\x10\x06\x42\x08\n\x06_questB\x10\n\x0e_primary_guildB\x1d\n\x1b_cross_platform_restrictionB\x0f\n\r_collectiblesB\x0f\n\r_safety_stateB\x10\n\x0e_premium_stateB\x16\n\x14_display_name_stylesb\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17users/v1/UserData.proto\x12\x17\x64iscord_protos.users.v1\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe1\x36\n\x08UserData\x12H\n\x0clinked_users\x18\x01 \x03(\x0b\x32\x32.discord_protos.users.v1.UserData.LinkedUsersEntry\x12Y\n\x15safety_feature_limits\x18\x02 \x03(\x0b\x32:.discord_protos.users.v1.UserData.SafetyFeatureLimitsEntry\x12H\n\x0csafety_flags\x18\x03 \x03(\x0b\x32\x32.discord_protos.users.v1.UserData.SafetyFlagsEntry\x12\x43\n\x05quest\x18\x04 \x01(\x0b\x32/.discord_protos.users.v1.UserData.QuestMetadataH\x00\x88\x01\x01\x12N\n\rprimary_guild\x18\x05 \x01(\x0b\x32\x32.discord_protos.users.v1.UserData.UserPrimaryGuildH\x01\x88\x01\x01\x12\x63\n\x1a\x63ross_platform_restriction\x18\x06 \x01(\x0b\x32:.discord_protos.users.v1.UserData.CrossPlatformRestrictionH\x02\x88\x01\x01\x12M\n\x0c\x63ollectibles\x18\x07 \x01(\x0b\x32\x32.discord_protos.users.v1.UserData.UserCollectiblesH\x03\x88\x01\x01\x12H\n\x0csafety_state\x18\x08 \x01(\x0b\x32-.discord_protos.users.v1.UserData.SafetyStateH\x04\x88\x01\x01\x12J\n\rpremium_state\x18\t \x01(\x0b\x32..discord_protos.users.v1.UserData.PremiumStateH\x05\x88\x01\x01\x12U\n\x13\x64isplay_name_styles\x18\n \x01(\x0b\x32\x33.discord_protos.users.v1.UserData.DisplayNameStylesH\x06\x88\x01\x01\x12J\n\rstore_country\x18\x0b \x01(\x0b\x32..discord_protos.users.v1.UserData.StoreCountryH\x07\x88\x01\x01\x1a\xc5\x02\n\nLinkedUser\x12\x0f\n\x07user_id\x18\x01 \x01(\x06\x12\x41\n\tlink_type\x18\x02 \x01(\x0e\x32..discord_protos.users.v1.UserData.UserLinkType\x12\x45\n\x0blink_status\x18\x03 \x01(\x0e\x32\x30.discord_protos.users.v1.UserData.UserLinkStatus\x12\x14\n\x0crequestor_id\x18\x04 \x01(\x06\x12\x33\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x33\n\nupdated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x42\r\n\x0b_created_atB\r\n\x0b_updated_at\x1aW\n\rRateLimitData\x12\x35\n\x0climit_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0f\n\r_limit_expiry\x1a\xb3\x01\n\rFeatureLimits\x12\x45\n\x03map\x18\x01 \x03(\x0b\x32\x38.discord_protos.users.v1.UserData.FeatureLimits.MapEntry\x1a[\n\x08MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.discord_protos.users.v1.UserData.RateLimitData:\x02\x38\x01\x1aR\n\nSafetyFlag\x12\x34\n\x0b\x66lag_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0e\n\x0c_flag_expiry\x1a)\n\rQuestMetadata\x12\x18\n\x10quests_completed\x18\x01 \x01(\r\x1a\xaa\x02\n\x10UserPrimaryGuild\x12<\n\x11identity_guild_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x00\x88\x01\x01\x12\x39\n\x10identity_enabled\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueH\x01\x88\x01\x01\x12.\n\x03tag\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x02\x88\x01\x01\x12\x30\n\x05\x62\x61\x64ge\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x03\x88\x01\x01\x42\x14\n\x12_identity_guild_idB\x13\n\x11_identity_enabledB\x06\n\x04_tagB\x08\n\x06_badge\x1a\x86\x01\n\x18\x43rossPlatformRestriction\x12;\n\x12restriction_expiry\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x16\n\x0e\x61pplication_id\x18\x02 \x01(\x06\x42\x15\n\x13_restriction_expiry\x1a\xc0\x01\n\rUserNameplate\x12\r\n\x05\x61sset\x18\x01 \x01(\t\x12\x0f\n\x07palette\x18\x02 \x01(\t\x12\x31\n\x06sku_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x00\x88\x01\x01\x12\x33\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\r\n\x05label\x18\x05 \x01(\tB\t\n\x07_sku_idB\r\n\x0b_expires_at\x1ai\n\x10UserCollectibles\x12G\n\tnameplate\x18\x01 \x01(\x0b\x32/.discord_protos.users.v1.UserData.UserNameplateH\x00\x88\x01\x01\x42\x0c\n\n_nameplate\x1a\r\n\x0bNormalState\x1a\x61\n\x0fRestrictedState\x12\x39\n\x10restricted_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x13\n\x11_restricted_until\x1ao\n\x13\x44\x65\x66\x65rredActionState\x12>\n\x15\x61\x63tion_deferred_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x18\n\x16_action_deferred_until\x1aY\n\x0fTempBannedState\x12\x35\n\x0c\x62\x61nned_until\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\x0f\n\r_banned_until\x1a\r\n\x0b\x42\x61nnedState\x1a\xde\x04\n\x0bSafetyState\x12?\n\x06normal\x18\x65 \x01(\x0b\x32-.discord_protos.users.v1.UserData.NormalStateH\x00\x12G\n\nrestricted\x18\x66 \x01(\x0b\x32\x31.discord_protos.users.v1.UserData.RestrictedStateH\x00\x12P\n\x0f\x64\x65\x66\x65rred_action\x18g \x01(\x0b\x32\x35.discord_protos.users.v1.UserData.DeferredActionStateH\x00\x12H\n\x0btemp_banned\x18h \x01(\x0b\x32\x31.discord_protos.users.v1.UserData.TempBannedStateH\x00\x12?\n\x06\x62\x61nned\x18i \x01(\x0b\x32-.discord_protos.users.v1.UserData.BannedStateH\x00\x12\x43\n\x06reason\x18\x01 \x01(\x0e\x32\x33.discord_protos.users.v1.UserData.SafetyStateReason\x12H\n\x0b\x61nnotations\x18\x02 \x03(\x0e\x32\x33.discord_protos.users.v1.UserData.SafetyAnnotations\x12;\n\x10last_mutation_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64ValueH\x01\x88\x01\x01\x42\x07\n\x05stateB\x13\n\x11_last_mutation_id\x1a\x9e\x02\n\x0cPremiumState\x12G\n\x0epremium_source\x18\x01 \x01(\x0e\x32/.discord_protos.users.v1.UserData.PremiumSource\x12\\\n\x19premium_subscription_type\x18\x02 \x01(\x0e\x32\x39.discord_protos.users.v1.UserData.PremiumSubscriptionType\x12g\n\x1fpremium_subscription_group_role\x18\x03 \x01(\x0e\x32>.discord_protos.users.v1.UserData.PremiumSubscriptionGroupRole\x1a\xaf\x01\n\x11\x44isplayNameStyles\x12\x42\n\x07\x66ont_id\x18\x01 \x01(\x0e\x32\x31.discord_protos.users.v1.UserData.DisplayNameFont\x12\x46\n\teffect_id\x18\x02 \x01(\x0e\x32\x33.discord_protos.users.v1.UserData.DisplayNameEffect\x12\x0e\n\x06\x63olors\x18\x03 \x03(\r\x1a[\n\x0cStoreCountry\x12\x0f\n\x07\x63ountry\x18\x01 \x01(\t\x12/\n\x06set_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x42\t\n\x07_set_at\x1a`\n\x10LinkedUsersEntry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.discord_protos.users.v1.UserData.LinkedUser:\x02\x38\x01\x1ak\n\x18SafetyFeatureLimitsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.discord_protos.users.v1.UserData.FeatureLimits:\x02\x38\x01\x1a`\n\x10SafetyFlagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.discord_protos.users.v1.UserData.SafetyFlag:\x02\x38\x01\"c\n\x0cUserLinkType\x12\x1e\n\x1aUSER_LINK_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15USER_LINK_TYPE_PARENT\x10\x01\x12\x18\n\x14USER_LINK_TYPE_CHILD\x10\x02\"\xab\x01\n\x0eUserLinkStatus\x12 \n\x1cUSER_LINK_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18USER_LINK_STATUS_PENDING\x10\x01\x12\x1b\n\x17USER_LINK_STATUS_ACTIVE\x10\x02\x12\x1d\n\x19USER_LINK_STATUS_INACTIVE\x10\x03\x12\x1d\n\x19USER_LINK_STATUS_DECLINED\x10\x04\"\x88\x06\n\x11SafetyStateReason\x12*\n&SAFETY_STATE_REASON_REASON_UNSPECIFIED\x10\x00\x12\x34\n0SAFETY_STATE_REASON_DISABLED_SUSPICIOUS_ACTIVITY\x10\x01\x12\x37\n3SAFETY_STATE_REASON_SMITE_REMOVE_EMAIL_VERIFICATION\x10\x02\x12G\nCSAFETY_STATE_REASON_USER_REQUIRED_VERIFICATION_INTERVENTIONS_CLIENT\x10\x03\x12\x33\n/SAFETY_STATE_REASON_ACTIVE_ASSIGNMENT_COMPLETED\x10\x04\x12\x31\n-SAFETY_STATE_REASON_ACTIVE_ASSIGNMENT_CREATED\x10\x05\x12\x33\n/SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_CREATED\x10\x06\x12>\n:SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_UPGRADED_TO_ACTIVE\x10\x07\x12\x35\n1SAFETY_STATE_REASON_DEFERRED_ASSIGNMENT_CANCELLED\x10\x08\x12\x31\n-SAFETY_STATE_REASON_ASSIGNMENT_STATE_REPAIRED\x10\t\x12,\n(SAFETY_STATE_REASON_MANUAL_PERMANENT_BAN\x10\n\x12+\n\'SAFETY_STATE_REASON_SAFETY_SYSTEM_UNBAN\x10\x0b\x12\x37\n3SAFETY_STATE_REASON_GENERIC_AUTOMATED_SAFETY_ACTION\x10\x0c\x12\x34\n0SAFETY_STATE_REASON_GENERIC_MANUAL_SAFETY_ACTION\x10\r\"\xd9\x02\n\x11SafetyAnnotations\x12-\n)SAFETY_ANNOTATIONS_ANNOTATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSAFETY_ANNOTATIONS_SPAMMER\x10\x01\x12#\n\x1fSAFETY_ANNOTATIONS_SELF_DELETED\x10\x02\x12$\n SAFETY_ANNOTATIONS_SELF_DISABLED\x10\x03\x12\'\n#SAFETY_ANNOTATIONS_UNDERAGE_DELETED\x10\x04\x12.\n*SAFETY_ANNOTATIONS_SAFETY_POLICY_VIOLATION\x10\x05\x12)\n%SAFETY_ANNOTATIONS_INACTIVITY_DELETED\x10\x06\x12&\n\"SAFETY_ANNOTATIONS_GENERIC_DELETED\x10\x07\"\xc3\x01\n\rPremiumSource\x12#\n\x1fPREMIUM_SOURCE_NONE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bPREMIUM_SOURCE_SUBSCRIPTION\x10\x01\x12#\n\x1fPREMIUM_SOURCE_FRACTIONAL_NITRO\x10\x02\x12 \n\x1cPREMIUM_SOURCE_REVERSE_TRIAL\x10\x03\x12%\n!PREMIUM_SOURCE_SUBSCRIPTION_GROUP\x10\x04\"\xe5\x01\n\x17PremiumSubscriptionType\x12.\n*PREMIUM_SUBSCRIPTION_TYPE_NONE_UNSPECIFIED\x10\x00\x12(\n$PREMIUM_SUBSCRIPTION_TYPE_BOOST_ONLY\x10\x01\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_0\x10\x02\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_1\x10\x03\x12$\n PREMIUM_SUBSCRIPTION_TYPE_TIER_2\x10\x04\"\xa8\x01\n\x1cPremiumSubscriptionGroupRole\x12/\n+PREMIUM_SUBSCRIPTION_GROUP_ROLE_UNSPECIFIED\x10\x00\x12+\n\'PREMIUM_SUBSCRIPTION_GROUP_ROLE_PRIMARY\x10\x01\x12*\n&PREMIUM_SUBSCRIPTION_GROUP_ROLE_MEMBER\x10\x02\"\xbb\x03\n\x0f\x44isplayNameFont\x12!\n\x1d\x44ISPLAY_NAME_FONT_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x44ISPLAY_NAME_FONT_DEFAULT\x10\x0b\x12\x1d\n\x19\x44ISPLAY_NAME_FONT_BANGERS\x10\x01\x12\x1f\n\x1b\x44ISPLAY_NAME_FONT_BIO_RHYME\x10\x02\x12!\n\x1d\x44ISPLAY_NAME_FONT_CHERRY_BOMB\x10\x03\x12\x1c\n\x18\x44ISPLAY_NAME_FONT_CHICLE\x10\x04\x12\x1f\n\x1b\x44ISPLAY_NAME_FONT_COMPAGNON\x10\x05\x12#\n\x1f\x44ISPLAY_NAME_FONT_MUSEO_MODERNO\x10\x06\x12 \n\x1c\x44ISPLAY_NAME_FONT_NEO_CASTEL\x10\x07\x12\x1e\n\x1a\x44ISPLAY_NAME_FONT_PIXELIFY\x10\x08\x12\x1b\n\x17\x44ISPLAY_NAME_FONT_RIBES\x10\t\x12\x1e\n\x1a\x44ISPLAY_NAME_FONT_SINISTRE\x10\n\x12 \n\x1c\x44ISPLAY_NAME_FONT_ZILLA_SLAB\x10\x0c\"\xf0\x01\n\x11\x44isplayNameEffect\x12#\n\x1f\x44ISPLAY_NAME_EFFECT_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x44ISPLAY_NAME_EFFECT_SOLID\x10\x01\x12 \n\x1c\x44ISPLAY_NAME_EFFECT_GRADIENT\x10\x02\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_NEON\x10\x03\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_TOON\x10\x04\x12\x1b\n\x17\x44ISPLAY_NAME_EFFECT_POP\x10\x05\x12\x1c\n\x18\x44ISPLAY_NAME_EFFECT_GLOW\x10\x06\x42\x08\n\x06_questB\x10\n\x0e_primary_guildB\x1d\n\x1b_cross_platform_restrictionB\x0f\n\r_collectiblesB\x0f\n\r_safety_stateB\x10\n\x0e_premium_stateB\x16\n\x14_display_name_stylesB\x10\n\x0e_store_countryb\x06proto3')
30
30
 
31
31
  _globals = globals()
32
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -42,65 +42,67 @@ if not _descriptor._USE_C_DESCRIPTORS:
42
42
  _globals['_USERDATA_SAFETYFLAGSENTRY']._loaded_options = None
43
43
  _globals['_USERDATA_SAFETYFLAGSENTRY']._serialized_options = b'8\001'
44
44
  _globals['_USERDATA']._serialized_start=118
45
- _globals['_USERDATA']._serialized_end=6940
46
- _globals['_USERDATA_LINKEDUSER']._serialized_start=936
47
- _globals['_USERDATA_LINKEDUSER']._serialized_end=1261
48
- _globals['_USERDATA_RATELIMITDATA']._serialized_start=1263
49
- _globals['_USERDATA_RATELIMITDATA']._serialized_end=1350
50
- _globals['_USERDATA_FEATURELIMITS']._serialized_start=1353
51
- _globals['_USERDATA_FEATURELIMITS']._serialized_end=1532
52
- _globals['_USERDATA_FEATURELIMITS_MAPENTRY']._serialized_start=1441
53
- _globals['_USERDATA_FEATURELIMITS_MAPENTRY']._serialized_end=1532
54
- _globals['_USERDATA_SAFETYFLAG']._serialized_start=1534
55
- _globals['_USERDATA_SAFETYFLAG']._serialized_end=1616
56
- _globals['_USERDATA_QUESTMETADATA']._serialized_start=1618
57
- _globals['_USERDATA_QUESTMETADATA']._serialized_end=1659
58
- _globals['_USERDATA_USERPRIMARYGUILD']._serialized_start=1662
59
- _globals['_USERDATA_USERPRIMARYGUILD']._serialized_end=1960
60
- _globals['_USERDATA_CROSSPLATFORMRESTRICTION']._serialized_start=1963
61
- _globals['_USERDATA_CROSSPLATFORMRESTRICTION']._serialized_end=2097
62
- _globals['_USERDATA_USERNAMEPLATE']._serialized_start=2100
63
- _globals['_USERDATA_USERNAMEPLATE']._serialized_end=2292
64
- _globals['_USERDATA_USERCOLLECTIBLES']._serialized_start=2294
65
- _globals['_USERDATA_USERCOLLECTIBLES']._serialized_end=2399
66
- _globals['_USERDATA_NORMALSTATE']._serialized_start=2401
67
- _globals['_USERDATA_NORMALSTATE']._serialized_end=2414
68
- _globals['_USERDATA_RESTRICTEDSTATE']._serialized_start=2416
69
- _globals['_USERDATA_RESTRICTEDSTATE']._serialized_end=2513
70
- _globals['_USERDATA_DEFERREDACTIONSTATE']._serialized_start=2515
71
- _globals['_USERDATA_DEFERREDACTIONSTATE']._serialized_end=2626
72
- _globals['_USERDATA_TEMPBANNEDSTATE']._serialized_start=2628
73
- _globals['_USERDATA_TEMPBANNEDSTATE']._serialized_end=2717
74
- _globals['_USERDATA_BANNEDSTATE']._serialized_start=2719
75
- _globals['_USERDATA_BANNEDSTATE']._serialized_end=2732
76
- _globals['_USERDATA_SAFETYSTATE']._serialized_start=2735
77
- _globals['_USERDATA_SAFETYSTATE']._serialized_end=3341
78
- _globals['_USERDATA_PREMIUMSTATE']._serialized_start=3344
79
- _globals['_USERDATA_PREMIUMSTATE']._serialized_end=3630
80
- _globals['_USERDATA_DISPLAYNAMESTYLES']._serialized_start=3633
81
- _globals['_USERDATA_DISPLAYNAMESTYLES']._serialized_end=3808
82
- _globals['_USERDATA_LINKEDUSERSENTRY']._serialized_start=3810
83
- _globals['_USERDATA_LINKEDUSERSENTRY']._serialized_end=3906
84
- _globals['_USERDATA_SAFETYFEATURELIMITSENTRY']._serialized_start=3908
85
- _globals['_USERDATA_SAFETYFEATURELIMITSENTRY']._serialized_end=4015
86
- _globals['_USERDATA_SAFETYFLAGSENTRY']._serialized_start=4017
87
- _globals['_USERDATA_SAFETYFLAGSENTRY']._serialized_end=4113
88
- _globals['_USERDATA_USERLINKTYPE']._serialized_start=4115
89
- _globals['_USERDATA_USERLINKTYPE']._serialized_end=4214
90
- _globals['_USERDATA_USERLINKSTATUS']._serialized_start=4217
91
- _globals['_USERDATA_USERLINKSTATUS']._serialized_end=4388
92
- _globals['_USERDATA_SAFETYSTATEREASON']._serialized_start=4391
93
- _globals['_USERDATA_SAFETYSTATEREASON']._serialized_end=5167
94
- _globals['_USERDATA_SAFETYANNOTATIONS']._serialized_start=5170
95
- _globals['_USERDATA_SAFETYANNOTATIONS']._serialized_end=5515
96
- _globals['_USERDATA_PREMIUMSOURCE']._serialized_start=5518
97
- _globals['_USERDATA_PREMIUMSOURCE']._serialized_end=5713
98
- _globals['_USERDATA_PREMIUMSUBSCRIPTIONTYPE']._serialized_start=5716
99
- _globals['_USERDATA_PREMIUMSUBSCRIPTIONTYPE']._serialized_end=5945
100
- _globals['_USERDATA_PREMIUMSUBSCRIPTIONGROUPROLE']._serialized_start=5948
101
- _globals['_USERDATA_PREMIUMSUBSCRIPTIONGROUPROLE']._serialized_end=6116
102
- _globals['_USERDATA_DISPLAYNAMEFONT']._serialized_start=6119
103
- _globals['_USERDATA_DISPLAYNAMEFONT']._serialized_end=6562
104
- _globals['_USERDATA_DISPLAYNAMEEFFECT']._serialized_start=6565
105
- _globals['_USERDATA_DISPLAYNAMEEFFECT']._serialized_end=6805
45
+ _globals['_USERDATA']._serialized_end=7127
46
+ _globals['_USERDATA_LINKEDUSER']._serialized_start=1012
47
+ _globals['_USERDATA_LINKEDUSER']._serialized_end=1337
48
+ _globals['_USERDATA_RATELIMITDATA']._serialized_start=1339
49
+ _globals['_USERDATA_RATELIMITDATA']._serialized_end=1426
50
+ _globals['_USERDATA_FEATURELIMITS']._serialized_start=1429
51
+ _globals['_USERDATA_FEATURELIMITS']._serialized_end=1608
52
+ _globals['_USERDATA_FEATURELIMITS_MAPENTRY']._serialized_start=1517
53
+ _globals['_USERDATA_FEATURELIMITS_MAPENTRY']._serialized_end=1608
54
+ _globals['_USERDATA_SAFETYFLAG']._serialized_start=1610
55
+ _globals['_USERDATA_SAFETYFLAG']._serialized_end=1692
56
+ _globals['_USERDATA_QUESTMETADATA']._serialized_start=1694
57
+ _globals['_USERDATA_QUESTMETADATA']._serialized_end=1735
58
+ _globals['_USERDATA_USERPRIMARYGUILD']._serialized_start=1738
59
+ _globals['_USERDATA_USERPRIMARYGUILD']._serialized_end=2036
60
+ _globals['_USERDATA_CROSSPLATFORMRESTRICTION']._serialized_start=2039
61
+ _globals['_USERDATA_CROSSPLATFORMRESTRICTION']._serialized_end=2173
62
+ _globals['_USERDATA_USERNAMEPLATE']._serialized_start=2176
63
+ _globals['_USERDATA_USERNAMEPLATE']._serialized_end=2368
64
+ _globals['_USERDATA_USERCOLLECTIBLES']._serialized_start=2370
65
+ _globals['_USERDATA_USERCOLLECTIBLES']._serialized_end=2475
66
+ _globals['_USERDATA_NORMALSTATE']._serialized_start=2477
67
+ _globals['_USERDATA_NORMALSTATE']._serialized_end=2490
68
+ _globals['_USERDATA_RESTRICTEDSTATE']._serialized_start=2492
69
+ _globals['_USERDATA_RESTRICTEDSTATE']._serialized_end=2589
70
+ _globals['_USERDATA_DEFERREDACTIONSTATE']._serialized_start=2591
71
+ _globals['_USERDATA_DEFERREDACTIONSTATE']._serialized_end=2702
72
+ _globals['_USERDATA_TEMPBANNEDSTATE']._serialized_start=2704
73
+ _globals['_USERDATA_TEMPBANNEDSTATE']._serialized_end=2793
74
+ _globals['_USERDATA_BANNEDSTATE']._serialized_start=2795
75
+ _globals['_USERDATA_BANNEDSTATE']._serialized_end=2808
76
+ _globals['_USERDATA_SAFETYSTATE']._serialized_start=2811
77
+ _globals['_USERDATA_SAFETYSTATE']._serialized_end=3417
78
+ _globals['_USERDATA_PREMIUMSTATE']._serialized_start=3420
79
+ _globals['_USERDATA_PREMIUMSTATE']._serialized_end=3706
80
+ _globals['_USERDATA_DISPLAYNAMESTYLES']._serialized_start=3709
81
+ _globals['_USERDATA_DISPLAYNAMESTYLES']._serialized_end=3884
82
+ _globals['_USERDATA_STORECOUNTRY']._serialized_start=3886
83
+ _globals['_USERDATA_STORECOUNTRY']._serialized_end=3977
84
+ _globals['_USERDATA_LINKEDUSERSENTRY']._serialized_start=3979
85
+ _globals['_USERDATA_LINKEDUSERSENTRY']._serialized_end=4075
86
+ _globals['_USERDATA_SAFETYFEATURELIMITSENTRY']._serialized_start=4077
87
+ _globals['_USERDATA_SAFETYFEATURELIMITSENTRY']._serialized_end=4184
88
+ _globals['_USERDATA_SAFETYFLAGSENTRY']._serialized_start=4186
89
+ _globals['_USERDATA_SAFETYFLAGSENTRY']._serialized_end=4282
90
+ _globals['_USERDATA_USERLINKTYPE']._serialized_start=4284
91
+ _globals['_USERDATA_USERLINKTYPE']._serialized_end=4383
92
+ _globals['_USERDATA_USERLINKSTATUS']._serialized_start=4386
93
+ _globals['_USERDATA_USERLINKSTATUS']._serialized_end=4557
94
+ _globals['_USERDATA_SAFETYSTATEREASON']._serialized_start=4560
95
+ _globals['_USERDATA_SAFETYSTATEREASON']._serialized_end=5336
96
+ _globals['_USERDATA_SAFETYANNOTATIONS']._serialized_start=5339
97
+ _globals['_USERDATA_SAFETYANNOTATIONS']._serialized_end=5684
98
+ _globals['_USERDATA_PREMIUMSOURCE']._serialized_start=5687
99
+ _globals['_USERDATA_PREMIUMSOURCE']._serialized_end=5882
100
+ _globals['_USERDATA_PREMIUMSUBSCRIPTIONTYPE']._serialized_start=5885
101
+ _globals['_USERDATA_PREMIUMSUBSCRIPTIONTYPE']._serialized_end=6114
102
+ _globals['_USERDATA_PREMIUMSUBSCRIPTIONGROUPROLE']._serialized_start=6117
103
+ _globals['_USERDATA_PREMIUMSUBSCRIPTIONGROUPROLE']._serialized_end=6285
104
+ _globals['_USERDATA_DISPLAYNAMEFONT']._serialized_start=6288
105
+ _globals['_USERDATA_DISPLAYNAMEFONT']._serialized_end=6731
106
+ _globals['_USERDATA_DISPLAYNAMEEFFECT']._serialized_start=6734
107
+ _globals['_USERDATA_DISPLAYNAMEEFFECT']._serialized_end=6974
106
108
  # @@protoc_insertion_point(module_scope)
@@ -628,6 +628,37 @@ export interface Experiment_UnitIdMatchesFilterSnapshot {
628
628
  */
629
629
  targetFilterValues: bigint[];
630
630
  }
631
+ /**
632
+ * @generated from protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildIds
633
+ */
634
+ export interface Experiment_GuildIds {
635
+ /**
636
+ * @generated from protobuf field: repeated fixed64 guild_ids = 1
637
+ */
638
+ guildIds: bigint[];
639
+ }
640
+ /**
641
+ * @generated from protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange
642
+ */
643
+ export interface Experiment_GuildMemberCountRange {
644
+ /**
645
+ * @generated from protobuf field: optional google.protobuf.UInt32Value min_count = 1
646
+ */
647
+ minCount?: UInt32Value;
648
+ /**
649
+ * @generated from protobuf field: optional google.protobuf.UInt32Value max_count = 2
650
+ */
651
+ maxCount?: UInt32Value;
652
+ }
653
+ /**
654
+ * @generated from protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature
655
+ */
656
+ export interface Experiment_GuildHasFeature {
657
+ /**
658
+ * @generated from protobuf field: repeated string features = 1 [packed = false]
659
+ */
660
+ features: string[];
661
+ }
631
662
  /**
632
663
  * @generated from protobuf message discord_protos.discord_experimentation.v1.Experiment.Filter
633
664
  */
@@ -755,6 +786,24 @@ export interface Experiment_Filter {
755
786
  * @generated from protobuf field: discord_protos.discord_experimentation.v1.Experiment.UnitIdMatchesFilterSnapshot unit_id_matches_filter_snapshot = 21
756
787
  */
757
788
  unitIdMatchesFilterSnapshot: Experiment_UnitIdMatchesFilterSnapshot;
789
+ } | {
790
+ oneofKind: "guildIds";
791
+ /**
792
+ * @generated from protobuf field: discord_protos.discord_experimentation.v1.Experiment.GuildIds guild_ids = 22
793
+ */
794
+ guildIds: Experiment_GuildIds;
795
+ } | {
796
+ oneofKind: "guildMemberCountRange";
797
+ /**
798
+ * @generated from protobuf field: discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange guild_member_count_range = 25
799
+ */
800
+ guildMemberCountRange: Experiment_GuildMemberCountRange;
801
+ } | {
802
+ oneofKind: "guildHasFeature";
803
+ /**
804
+ * @generated from protobuf field: discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature guild_has_feature = 26
805
+ */
806
+ guildHasFeature: Experiment_GuildHasFeature;
758
807
  } | {
759
808
  oneofKind: undefined;
760
809
  };
@@ -833,7 +882,11 @@ export declare enum Experiment_UnitType {
833
882
  /**
834
883
  * @generated from protobuf enum value: UNIT_TYPE_INSTALLATION = 2;
835
884
  */
836
- INSTALLATION = 2
885
+ INSTALLATION = 2,
886
+ /**
887
+ * @generated from protobuf enum value: UNIT_TYPE_GUILD = 3;
888
+ */
889
+ GUILD = 3
837
890
  }
838
891
  /**
839
892
  * @generated from protobuf enum discord_protos.discord_experimentation.v1.Experiment.Type
@@ -1308,6 +1361,36 @@ declare class Experiment_UnitIdMatchesFilterSnapshot$Type extends MessageType<Ex
1308
1361
  * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.UnitIdMatchesFilterSnapshot
1309
1362
  */
1310
1363
  export declare const Experiment_UnitIdMatchesFilterSnapshot: Experiment_UnitIdMatchesFilterSnapshot$Type;
1364
+ declare class Experiment_GuildIds$Type extends MessageType<Experiment_GuildIds> {
1365
+ constructor();
1366
+ create(value?: PartialMessage<Experiment_GuildIds>): Experiment_GuildIds;
1367
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Experiment_GuildIds): Experiment_GuildIds;
1368
+ internalBinaryWrite(message: Experiment_GuildIds, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
1369
+ }
1370
+ /**
1371
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildIds
1372
+ */
1373
+ export declare const Experiment_GuildIds: Experiment_GuildIds$Type;
1374
+ declare class Experiment_GuildMemberCountRange$Type extends MessageType<Experiment_GuildMemberCountRange> {
1375
+ constructor();
1376
+ create(value?: PartialMessage<Experiment_GuildMemberCountRange>): Experiment_GuildMemberCountRange;
1377
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Experiment_GuildMemberCountRange): Experiment_GuildMemberCountRange;
1378
+ internalBinaryWrite(message: Experiment_GuildMemberCountRange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
1379
+ }
1380
+ /**
1381
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange
1382
+ */
1383
+ export declare const Experiment_GuildMemberCountRange: Experiment_GuildMemberCountRange$Type;
1384
+ declare class Experiment_GuildHasFeature$Type extends MessageType<Experiment_GuildHasFeature> {
1385
+ constructor();
1386
+ create(value?: PartialMessage<Experiment_GuildHasFeature>): Experiment_GuildHasFeature;
1387
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Experiment_GuildHasFeature): Experiment_GuildHasFeature;
1388
+ internalBinaryWrite(message: Experiment_GuildHasFeature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
1389
+ }
1390
+ /**
1391
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature
1392
+ */
1393
+ export declare const Experiment_GuildHasFeature: Experiment_GuildHasFeature$Type;
1311
1394
  declare class Experiment_Filter$Type extends MessageType<Experiment_Filter> {
1312
1395
  constructor();
1313
1396
  create(value?: PartialMessage<Experiment_Filter>): Experiment_Filter;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Experiment_DebugConfig = exports.Experiment_Rule = exports.Experiment_Override = exports.Experiment_Filter = exports.Experiment_UnitIdMatchesFilterSnapshot = exports.Experiment_UserPremiumType = exports.Experiment_UnitIdInExperiment = exports.Experiment_ClientSystemLocale = exports.Experiment_Always = exports.Experiment_ClientReleaseChannel = exports.Experiment_UnitIdInRangeByHash = exports.Experiment_UserHasFlag = exports.Experiment_UserIDRange = exports.Experiment_Fixed64Value = exports.Experiment_UserAgeRange = exports.Experiment_UserIsBot = exports.Experiment_UserLocale = exports.Experiment_ClientIP = exports.Experiment_ClientLocation = exports.Experiment_Location = exports.Experiment_Place = exports.Experiment_ISORegion = exports.Experiment_ClientLocale = exports.Experiment_UserIds = exports.Experiment_UserInGuild = exports.Experiment_StaffUsers = exports.Experiment_ClientOperatingSystem = exports.Experiment_SDKVersion = exports.Experiment_SDKVersionRange = exports.Experiment_SDKVersionRangeBound = exports.Experiment_SDKVersionSpecifier = exports.Experiment_ClientPlatform = exports.Experiment_ClientRequiredChanges = exports.Experiment_PlatformVersion = exports.Experiment_PlatformVersionRange = exports.Experiment_PlatformVersionRangeBound = exports.Experiment_PlatformVersionSpecifier = exports.Experiment_Variation = exports.Experiment_Bucket = exports.Experiment = exports.Experiment_AssignmentMode = exports.Experiment_ExposureTracking = exports.Experiment_Surface = exports.Experiment_Phase = exports.Experiment_Type = exports.Experiment_UnitType = void 0;
3
+ exports.Experiment_DebugConfig = exports.Experiment_Rule = exports.Experiment_Override = exports.Experiment_Filter = exports.Experiment_GuildHasFeature = exports.Experiment_GuildMemberCountRange = exports.Experiment_GuildIds = exports.Experiment_UnitIdMatchesFilterSnapshot = exports.Experiment_UserPremiumType = exports.Experiment_UnitIdInExperiment = exports.Experiment_ClientSystemLocale = exports.Experiment_Always = exports.Experiment_ClientReleaseChannel = exports.Experiment_UnitIdInRangeByHash = exports.Experiment_UserHasFlag = exports.Experiment_UserIDRange = exports.Experiment_Fixed64Value = exports.Experiment_UserAgeRange = exports.Experiment_UserIsBot = exports.Experiment_UserLocale = exports.Experiment_ClientIP = exports.Experiment_ClientLocation = exports.Experiment_Location = exports.Experiment_Place = exports.Experiment_ISORegion = exports.Experiment_ClientLocale = exports.Experiment_UserIds = exports.Experiment_UserInGuild = exports.Experiment_StaffUsers = exports.Experiment_ClientOperatingSystem = exports.Experiment_SDKVersion = exports.Experiment_SDKVersionRange = exports.Experiment_SDKVersionRangeBound = exports.Experiment_SDKVersionSpecifier = exports.Experiment_ClientPlatform = exports.Experiment_ClientRequiredChanges = exports.Experiment_PlatformVersion = exports.Experiment_PlatformVersionRange = exports.Experiment_PlatformVersionRangeBound = exports.Experiment_PlatformVersionSpecifier = exports.Experiment_Variation = exports.Experiment_Bucket = exports.Experiment = exports.Experiment_AssignmentMode = exports.Experiment_ExposureTracking = exports.Experiment_Surface = exports.Experiment_Phase = exports.Experiment_Type = exports.Experiment_UnitType = void 0;
4
4
  const runtime_1 = require("@protobuf-ts/runtime");
5
5
  const runtime_2 = require("@protobuf-ts/runtime");
6
6
  const runtime_3 = require("@protobuf-ts/runtime");
@@ -26,6 +26,10 @@ var Experiment_UnitType;
26
26
  * @generated from protobuf enum value: UNIT_TYPE_INSTALLATION = 2;
27
27
  */
28
28
  Experiment_UnitType[Experiment_UnitType["INSTALLATION"] = 2] = "INSTALLATION";
29
+ /**
30
+ * @generated from protobuf enum value: UNIT_TYPE_GUILD = 3;
31
+ */
32
+ Experiment_UnitType[Experiment_UnitType["GUILD"] = 3] = "GUILD";
29
33
  })(Experiment_UnitType || (exports.Experiment_UnitType = Experiment_UnitType = {}));
30
34
  /**
31
35
  * @generated from protobuf enum discord_protos.discord_experimentation.v1.Experiment.Type
@@ -2445,6 +2449,161 @@ class Experiment_UnitIdMatchesFilterSnapshot$Type extends runtime_4.MessageType
2445
2449
  */
2446
2450
  exports.Experiment_UnitIdMatchesFilterSnapshot = new Experiment_UnitIdMatchesFilterSnapshot$Type();
2447
2451
  // @generated message type with reflection information, may provide speed optimized methods
2452
+ class Experiment_GuildIds$Type extends runtime_4.MessageType {
2453
+ constructor() {
2454
+ super("discord_protos.discord_experimentation.v1.Experiment.GuildIds", [
2455
+ { no: 1, name: "guild_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 6 /*ScalarType.FIXED64*/, L: 0 /*LongType.BIGINT*/ }
2456
+ ]);
2457
+ }
2458
+ create(value) {
2459
+ const message = globalThis.Object.create((this.messagePrototype));
2460
+ message.guildIds = [];
2461
+ if (value !== undefined)
2462
+ (0, runtime_3.reflectionMergePartial)(this, message, value);
2463
+ return message;
2464
+ }
2465
+ internalBinaryRead(reader, length, options, target) {
2466
+ let message = target ?? this.create(), end = reader.pos + length;
2467
+ while (reader.pos < end) {
2468
+ let [fieldNo, wireType] = reader.tag();
2469
+ switch (fieldNo) {
2470
+ case /* repeated fixed64 guild_ids */ 1:
2471
+ if (wireType === runtime_2.WireType.LengthDelimited)
2472
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
2473
+ message.guildIds.push(reader.fixed64().toBigInt());
2474
+ else
2475
+ message.guildIds.push(reader.fixed64().toBigInt());
2476
+ break;
2477
+ default:
2478
+ let u = options.readUnknownField;
2479
+ if (u === "throw")
2480
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
2481
+ let d = reader.skip(wireType);
2482
+ if (u !== false)
2483
+ (u === true ? runtime_1.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
2484
+ }
2485
+ }
2486
+ return message;
2487
+ }
2488
+ internalBinaryWrite(message, writer, options) {
2489
+ /* repeated fixed64 guild_ids = 1; */
2490
+ if (message.guildIds.length) {
2491
+ writer.tag(1, runtime_2.WireType.LengthDelimited).fork();
2492
+ for (let i = 0; i < message.guildIds.length; i++)
2493
+ writer.fixed64(message.guildIds[i]);
2494
+ writer.join();
2495
+ }
2496
+ let u = options.writeUnknownFields;
2497
+ if (u !== false)
2498
+ (u == true ? runtime_1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
2499
+ return writer;
2500
+ }
2501
+ }
2502
+ /**
2503
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildIds
2504
+ */
2505
+ exports.Experiment_GuildIds = new Experiment_GuildIds$Type();
2506
+ // @generated message type with reflection information, may provide speed optimized methods
2507
+ class Experiment_GuildMemberCountRange$Type extends runtime_4.MessageType {
2508
+ constructor() {
2509
+ super("discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange", [
2510
+ { no: 1, name: "min_count", kind: "message", T: () => wrappers_2.UInt32Value },
2511
+ { no: 2, name: "max_count", kind: "message", T: () => wrappers_2.UInt32Value }
2512
+ ]);
2513
+ }
2514
+ create(value) {
2515
+ const message = globalThis.Object.create((this.messagePrototype));
2516
+ if (value !== undefined)
2517
+ (0, runtime_3.reflectionMergePartial)(this, message, value);
2518
+ return message;
2519
+ }
2520
+ internalBinaryRead(reader, length, options, target) {
2521
+ let message = target ?? this.create(), end = reader.pos + length;
2522
+ while (reader.pos < end) {
2523
+ let [fieldNo, wireType] = reader.tag();
2524
+ switch (fieldNo) {
2525
+ case /* optional google.protobuf.UInt32Value min_count */ 1:
2526
+ message.minCount = wrappers_2.UInt32Value.internalBinaryRead(reader, reader.uint32(), options, message.minCount);
2527
+ break;
2528
+ case /* optional google.protobuf.UInt32Value max_count */ 2:
2529
+ message.maxCount = wrappers_2.UInt32Value.internalBinaryRead(reader, reader.uint32(), options, message.maxCount);
2530
+ break;
2531
+ default:
2532
+ let u = options.readUnknownField;
2533
+ if (u === "throw")
2534
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
2535
+ let d = reader.skip(wireType);
2536
+ if (u !== false)
2537
+ (u === true ? runtime_1.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
2538
+ }
2539
+ }
2540
+ return message;
2541
+ }
2542
+ internalBinaryWrite(message, writer, options) {
2543
+ /* optional google.protobuf.UInt32Value min_count = 1; */
2544
+ if (message.minCount)
2545
+ wrappers_2.UInt32Value.internalBinaryWrite(message.minCount, writer.tag(1, runtime_2.WireType.LengthDelimited).fork(), options).join();
2546
+ /* optional google.protobuf.UInt32Value max_count = 2; */
2547
+ if (message.maxCount)
2548
+ wrappers_2.UInt32Value.internalBinaryWrite(message.maxCount, writer.tag(2, runtime_2.WireType.LengthDelimited).fork(), options).join();
2549
+ let u = options.writeUnknownFields;
2550
+ if (u !== false)
2551
+ (u == true ? runtime_1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
2552
+ return writer;
2553
+ }
2554
+ }
2555
+ /**
2556
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange
2557
+ */
2558
+ exports.Experiment_GuildMemberCountRange = new Experiment_GuildMemberCountRange$Type();
2559
+ // @generated message type with reflection information, may provide speed optimized methods
2560
+ class Experiment_GuildHasFeature$Type extends runtime_4.MessageType {
2561
+ constructor() {
2562
+ super("discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature", [
2563
+ { no: 1, name: "features", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
2564
+ ]);
2565
+ }
2566
+ create(value) {
2567
+ const message = globalThis.Object.create((this.messagePrototype));
2568
+ message.features = [];
2569
+ if (value !== undefined)
2570
+ (0, runtime_3.reflectionMergePartial)(this, message, value);
2571
+ return message;
2572
+ }
2573
+ internalBinaryRead(reader, length, options, target) {
2574
+ let message = target ?? this.create(), end = reader.pos + length;
2575
+ while (reader.pos < end) {
2576
+ let [fieldNo, wireType] = reader.tag();
2577
+ switch (fieldNo) {
2578
+ case /* repeated string features = 1 [packed = false] */ 1:
2579
+ message.features.push(reader.string());
2580
+ break;
2581
+ default:
2582
+ let u = options.readUnknownField;
2583
+ if (u === "throw")
2584
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
2585
+ let d = reader.skip(wireType);
2586
+ if (u !== false)
2587
+ (u === true ? runtime_1.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
2588
+ }
2589
+ }
2590
+ return message;
2591
+ }
2592
+ internalBinaryWrite(message, writer, options) {
2593
+ /* repeated string features = 1 [packed = false]; */
2594
+ for (let i = 0; i < message.features.length; i++)
2595
+ writer.tag(1, runtime_2.WireType.LengthDelimited).string(message.features[i]);
2596
+ let u = options.writeUnknownFields;
2597
+ if (u !== false)
2598
+ (u == true ? runtime_1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
2599
+ return writer;
2600
+ }
2601
+ }
2602
+ /**
2603
+ * @generated MessageType for protobuf message discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature
2604
+ */
2605
+ exports.Experiment_GuildHasFeature = new Experiment_GuildHasFeature$Type();
2606
+ // @generated message type with reflection information, may provide speed optimized methods
2448
2607
  class Experiment_Filter$Type extends runtime_4.MessageType {
2449
2608
  constructor() {
2450
2609
  super("discord_protos.discord_experimentation.v1.Experiment.Filter", [
@@ -2467,7 +2626,10 @@ class Experiment_Filter$Type extends runtime_4.MessageType {
2467
2626
  { no: 18, name: "client_system_locale", kind: "message", oneof: "filter", T: () => exports.Experiment_ClientSystemLocale },
2468
2627
  { no: 19, name: "unit_id_in_experiment", kind: "message", oneof: "filter", T: () => exports.Experiment_UnitIdInExperiment },
2469
2628
  { no: 20, name: "user_premium_type", kind: "message", oneof: "filter", T: () => exports.Experiment_UserPremiumType },
2470
- { no: 21, name: "unit_id_matches_filter_snapshot", kind: "message", oneof: "filter", T: () => exports.Experiment_UnitIdMatchesFilterSnapshot }
2629
+ { no: 21, name: "unit_id_matches_filter_snapshot", kind: "message", oneof: "filter", T: () => exports.Experiment_UnitIdMatchesFilterSnapshot },
2630
+ { no: 22, name: "guild_ids", kind: "message", oneof: "filter", T: () => exports.Experiment_GuildIds },
2631
+ { no: 25, name: "guild_member_count_range", kind: "message", oneof: "filter", T: () => exports.Experiment_GuildMemberCountRange },
2632
+ { no: 26, name: "guild_has_feature", kind: "message", oneof: "filter", T: () => exports.Experiment_GuildHasFeature }
2471
2633
  ]);
2472
2634
  }
2473
2635
  create(value) {
@@ -2602,6 +2764,24 @@ class Experiment_Filter$Type extends runtime_4.MessageType {
2602
2764
  unitIdMatchesFilterSnapshot: exports.Experiment_UnitIdMatchesFilterSnapshot.internalBinaryRead(reader, reader.uint32(), options, message.filter.unitIdMatchesFilterSnapshot)
2603
2765
  };
2604
2766
  break;
2767
+ case /* discord_protos.discord_experimentation.v1.Experiment.GuildIds guild_ids */ 22:
2768
+ message.filter = {
2769
+ oneofKind: "guildIds",
2770
+ guildIds: exports.Experiment_GuildIds.internalBinaryRead(reader, reader.uint32(), options, message.filter.guildIds)
2771
+ };
2772
+ break;
2773
+ case /* discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange guild_member_count_range */ 25:
2774
+ message.filter = {
2775
+ oneofKind: "guildMemberCountRange",
2776
+ guildMemberCountRange: exports.Experiment_GuildMemberCountRange.internalBinaryRead(reader, reader.uint32(), options, message.filter.guildMemberCountRange)
2777
+ };
2778
+ break;
2779
+ case /* discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature guild_has_feature */ 26:
2780
+ message.filter = {
2781
+ oneofKind: "guildHasFeature",
2782
+ guildHasFeature: exports.Experiment_GuildHasFeature.internalBinaryRead(reader, reader.uint32(), options, message.filter.guildHasFeature)
2783
+ };
2784
+ break;
2605
2785
  default:
2606
2786
  let u = options.readUnknownField;
2607
2787
  if (u === "throw")
@@ -2674,6 +2854,15 @@ class Experiment_Filter$Type extends runtime_4.MessageType {
2674
2854
  /* discord_protos.discord_experimentation.v1.Experiment.UnitIdMatchesFilterSnapshot unit_id_matches_filter_snapshot = 21; */
2675
2855
  if (message.filter.oneofKind === "unitIdMatchesFilterSnapshot")
2676
2856
  exports.Experiment_UnitIdMatchesFilterSnapshot.internalBinaryWrite(message.filter.unitIdMatchesFilterSnapshot, writer.tag(21, runtime_2.WireType.LengthDelimited).fork(), options).join();
2857
+ /* discord_protos.discord_experimentation.v1.Experiment.GuildIds guild_ids = 22; */
2858
+ if (message.filter.oneofKind === "guildIds")
2859
+ exports.Experiment_GuildIds.internalBinaryWrite(message.filter.guildIds, writer.tag(22, runtime_2.WireType.LengthDelimited).fork(), options).join();
2860
+ /* discord_protos.discord_experimentation.v1.Experiment.GuildMemberCountRange guild_member_count_range = 25; */
2861
+ if (message.filter.oneofKind === "guildMemberCountRange")
2862
+ exports.Experiment_GuildMemberCountRange.internalBinaryWrite(message.filter.guildMemberCountRange, writer.tag(25, runtime_2.WireType.LengthDelimited).fork(), options).join();
2863
+ /* discord_protos.discord_experimentation.v1.Experiment.GuildHasFeature guild_has_feature = 26; */
2864
+ if (message.filter.oneofKind === "guildHasFeature")
2865
+ exports.Experiment_GuildHasFeature.internalBinaryWrite(message.filter.guildHasFeature, writer.tag(26, runtime_2.WireType.LengthDelimited).fork(), options).join();
2677
2866
  let u = options.writeUnknownFields;
2678
2867
  if (u !== false)
2679
2868
  (u == true ? runtime_1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-protos",
3
- "version": "1.2.96",
3
+ "version": "1.2.98",
4
4
  "description": "A parser for Discord's protobufs",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",