# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: discord_experimentation/v1/Experiment.proto
# Protobuf Python Version: 5.28.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
    _runtime_version.Domain.PUBLIC,
    5,
    28,
    3,
    '',
    'discord_experimentation/v1/Experiment.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+discord_experimentation/v1/Experiment.proto\x12)discord_protos.discord_experimentation.v1\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd1W\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\x12\x42\n\x18guild_experiment_version\x18# \x01(\x0b\x32\x1b.google.protobuf.Int32ValueH\x07\x88\x01\x01\x12\x62\n\x12\x63ustom_unit_prefix\x18$ \x01(\x0e\x32\x46.discord_protos.discord_experimentation.v1.Experiment.CustomUnitPrefix\x12\x1b\n\x0fgrowthbook_tags\x18% \x03(\tB\x02\x10\x00\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\x95\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:\x04\x80\xb5\x18\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\xbb\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:\x04\x80\xb5\x18\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\x44\n\nStaffUsers\x12\x15\n\rwork_accounts\x18\x01 \x01(\x08\x12\x19\n\x11personal_accounts\x18\x02 \x01(\x08:\x04\x80\xb5\x18\x03\x1a&\n\x0bUserInGuild\x12\x11\n\tguild_ids\x18\x01 \x03(\x06:\x04\x80\xb5\x18\x03\x1a!\n\x07UserIds\x12\x10\n\x08user_ids\x18\x01 \x03(\x06:\x04\x80\xb5\x18\x03\x1a)\n\x0c\x43lientLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00:\x04\x80\xb5\x18\x01\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\x1ai\n\x0e\x43lientLocation\x12Q\n\tlocations\x18\x01 \x03(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.Location:\x04\x80\xb5\x18\x01\x1a$\n\x08\x43lientIP\x12\x12\n\x06\x62locks\x18\x01 \x03(\tB\x02\x10\x00:\x04\x80\xb5\x18\x01\x1a\'\n\nUserLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00:\x04\x80\xb5\x18\x03\x1a!\n\tUserIsBot\x12\x0e\n\x06is_bot\x18\x01 \x01(\x08:\x04\x80\xb5\x18\x03\x1a\xac\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:\x04\x80\xb5\x18\x03\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\xdb\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:\x04\x80\xb5\x18\x03\x42\t\n\x07_min_idB\t\n\x07_max_id\x1a!\n\x0bUserHasFlag\x12\x0c\n\x04mask\x18\x01 \x01(\x06:\x04\x80\xb5\x18\x03\x1a\x66\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:\x04\x80\xb5\x18\x04\x1a:\n\x14\x43lientReleaseChannel\x12\x1c\n\x10release_channels\x18\x01 \x03(\tB\x02\x10\x00:\x04\x80\xb5\x18\x01\x1a\x1d\n\x06\x41lways\x12\r\n\x05value\x18\x01 \x01(\x08:\x04\x80\xb5\x18\x04\x1a/\n\x12\x43lientSystemLocale\x12\x13\n\x07locales\x18\x01 \x03(\tB\x02\x10\x00:\x04\x80\xb5\x18\x01\x1aH\n\x12UnitIdInExperiment\x12\x15\n\rexperiment_id\x18\x01 \x01(\x06\x12\x15\n\rvariation_ids\x18\x02 \x03(\x05:\x04\x80\xb5\x18\x04\x1a.\n\x0fUserPremiumType\x12\x15\n\rpremium_types\x18\x01 \x03(\x05:\x04\x80\xb5\x18\x03\x1a_\n\x1bUnitIdMatchesFilterSnapshot\x12\x1c\n\x14\x66ilter_snapshot_name\x18\x01 \x01(\t\x12\x1c\n\x14target_filter_values\x18\x02 \x03(\x06:\x04\x80\xb5\x18\x04\x1a#\n\x08GuildIds\x12\x11\n\tguild_ids\x18\x01 \x03(\x06:\x04\x80\xb5\x18\x02\x1a\xa5\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:\x04\x80\xb5\x18\x02\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:\x04\x80\xb5\x18\x02\x1a\x81\x01\n\x0cUserLocation\x12Q\n\tlocations\x18\x01 \x03(\x0b\x32>.discord_protos.discord_experimentation.v1.Experiment.Location\x12\x18\n\x10prefer_client_ip\x18\x02 \x01(\x08:\x04\x80\xb5\x18\x03\x1a<\n\x06UserIP\x12\x12\n\x06\x62locks\x18\x01 \x03(\tB\x02\x10\x00\x12\x18\n\x10prefer_client_ip\x18\x02 \x01(\x08:\x04\x80\xb5\x18\x03\x1a\xe4\x12\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\x12[\n\ruser_location\x18\x1b \x01(\x0b\x32\x42.discord_protos.discord_experimentation.v1.Experiment.UserLocationH\x00\x12O\n\x07user_ip\x18\x1c \x01(\x0b\x32<.discord_protos.discord_experimentation.v1.Experiment.UserIPH\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\"\x80\x01\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\x12\x14\n\x10UNIT_TYPE_CUSTOM\x10\x04\"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\"\xbe\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\x12\x15\n\x11SURFACE_AV_WORKER\x10\x06\x12\x0f\n\x0bSURFACE_SEO\x10\x07\"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\"[\n\x10\x43ustomUnitPrefix\x12\"\n\x1e\x43USTOM_UNIT_PREFIX_UNSPECIFIED\x10\x00\x12#\n\x1f\x43USTOM_UNIT_PREFIX_SEO_URL_SLUG\x10\x01\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\x1b\n\x19_guild_experiment_version*\x9f\x01\n\x0e\x46ilterCategory\x12\x1f\n\x1b\x46ILTER_CATEGORY_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x46ILTER_CATEGORY_CLIENT\x10\x01\x12\x19\n\x15\x46ILTER_CATEGORY_GUILD\x10\x02\x12\x18\n\x14\x46ILTER_CATEGORY_USER\x10\x03\x12\x1b\n\x17\x46ILTER_CATEGORY_UTILITY\x10\x04:u\n\x0f\x66ilter_category\x12\x1f.google.protobuf.MessageOptions\x18\xd0\x86\x03 \x01(\x0e\x32\x39.discord_protos.discord_experimentation.v1.FilterCategoryb\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'discord_experimentation.v1.Experiment_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  DESCRIPTOR._loaded_options = None
  _globals['_EXPERIMENT_CLIENTREQUIREDCHANGES'].fields_by_name['commit_hashes']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTREQUIREDCHANGES'].fields_by_name['commit_hashes']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_CLIENTPLATFORM']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_STAFFUSERS']._loaded_options = None
  _globals['_EXPERIMENT_STAFFUSERS']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERINGUILD']._loaded_options = None
  _globals['_EXPERIMENT_USERINGUILD']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERIDS']._loaded_options = None
  _globals['_EXPERIMENT_USERIDS']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_CLIENTLOCALE'].fields_by_name['locales']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_CLIENTLOCALE']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTLOCALE']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_CLIENTLOCATION']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTLOCATION']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_CLIENTIP'].fields_by_name['blocks']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTIP'].fields_by_name['blocks']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_CLIENTIP']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTIP']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_USERLOCALE'].fields_by_name['locales']._loaded_options = None
  _globals['_EXPERIMENT_USERLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_USERLOCALE']._loaded_options = None
  _globals['_EXPERIMENT_USERLOCALE']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERISBOT']._loaded_options = None
  _globals['_EXPERIMENT_USERISBOT']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERAGERANGE']._loaded_options = None
  _globals['_EXPERIMENT_USERAGERANGE']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERIDRANGE']._loaded_options = None
  _globals['_EXPERIMENT_USERIDRANGE']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERHASFLAG']._loaded_options = None
  _globals['_EXPERIMENT_USERHASFLAG']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._loaded_options = None
  _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_options = b'\200\265\030\004'
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL'].fields_by_name['release_channels']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL'].fields_by_name['release_channels']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_ALWAYS']._loaded_options = None
  _globals['_EXPERIMENT_ALWAYS']._serialized_options = b'\200\265\030\004'
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE'].fields_by_name['locales']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._loaded_options = None
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_options = b'\200\265\030\001'
  _globals['_EXPERIMENT_UNITIDINEXPERIMENT']._loaded_options = None
  _globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_options = b'\200\265\030\004'
  _globals['_EXPERIMENT_USERPREMIUMTYPE']._loaded_options = None
  _globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._loaded_options = None
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_options = b'\200\265\030\004'
  _globals['_EXPERIMENT_GUILDIDS']._loaded_options = None
  _globals['_EXPERIMENT_GUILDIDS']._serialized_options = b'\200\265\030\002'
  _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._loaded_options = None
  _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_options = b'\200\265\030\002'
  _globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._loaded_options = None
  _globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_GUILDHASFEATURE']._loaded_options = None
  _globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_options = b'\200\265\030\002'
  _globals['_EXPERIMENT_USERLOCATION']._loaded_options = None
  _globals['_EXPERIMENT_USERLOCATION']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT_USERIP'].fields_by_name['blocks']._loaded_options = None
  _globals['_EXPERIMENT_USERIP'].fields_by_name['blocks']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT_USERIP']._loaded_options = None
  _globals['_EXPERIMENT_USERIP']._serialized_options = b'\200\265\030\003'
  _globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._loaded_options = None
  _globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._serialized_options = b'\020\000'
  _globals['_EXPERIMENT'].fields_by_name['growthbook_tags']._loaded_options = None
  _globals['_EXPERIMENT'].fields_by_name['growthbook_tags']._serialized_options = b'\020\000'
  _globals['_FILTERCATEGORY']._serialized_start=11410
  _globals['_FILTERCATEGORY']._serialized_end=11569
  _globals['_EXPERIMENT']._serialized_start=190
  _globals['_EXPERIMENT']._serialized_end=11407
  _globals['_EXPERIMENT_BUCKET']._serialized_start=1922
  _globals['_EXPERIMENT_BUCKET']._serialized_end=2033
  _globals['_EXPERIMENT_VARIATION']._serialized_start=2036
  _globals['_EXPERIMENT_VARIATION']._serialized_end=2330
  _globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_start=2333
  _globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_end=2494
  _globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_start=2497
  _globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_end=2657
  _globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_start=2660
  _globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_end=2928
  _globals['_EXPERIMENT_PLATFORMVERSION']._serialized_start=2931
  _globals['_EXPERIMENT_PLATFORMVERSION']._serialized_end=3071
  _globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_start=3073
  _globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_end=3143
  _globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_start=3146
  _globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_end=3807
  _globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_start=3809
  _globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_end=3847
  _globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_start=3850
  _globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_end=4000
  _globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_start=4003
  _globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_end=4256
  _globals['_EXPERIMENT_SDKVERSION']._serialized_start=4259
  _globals['_EXPERIMENT_SDKVERSION']._serialized_end=4389
  _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_start=4392
  _globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_end=5219
  _globals['_EXPERIMENT_STAFFUSERS']._serialized_start=5221
  _globals['_EXPERIMENT_STAFFUSERS']._serialized_end=5289
  _globals['_EXPERIMENT_USERINGUILD']._serialized_start=5291
  _globals['_EXPERIMENT_USERINGUILD']._serialized_end=5329
  _globals['_EXPERIMENT_USERIDS']._serialized_start=5331
  _globals['_EXPERIMENT_USERIDS']._serialized_end=5364
  _globals['_EXPERIMENT_CLIENTLOCALE']._serialized_start=5366
  _globals['_EXPERIMENT_CLIENTLOCALE']._serialized_end=5407
  _globals['_EXPERIMENT_ISOREGION']._serialized_start=5409
  _globals['_EXPERIMENT_ISOREGION']._serialized_end=5466
  _globals['_EXPERIMENT_PLACE']._serialized_start=5468
  _globals['_EXPERIMENT_PLACE']._serialized_end=5527
  _globals['_EXPERIMENT_LOCATION']._serialized_start=5530
  _globals['_EXPERIMENT_LOCATION']._serialized_end=5734
  _globals['_EXPERIMENT_CLIENTLOCATION']._serialized_start=5736
  _globals['_EXPERIMENT_CLIENTLOCATION']._serialized_end=5841
  _globals['_EXPERIMENT_CLIENTIP']._serialized_start=5843
  _globals['_EXPERIMENT_CLIENTIP']._serialized_end=5879
  _globals['_EXPERIMENT_USERLOCALE']._serialized_start=5881
  _globals['_EXPERIMENT_USERLOCALE']._serialized_end=5920
  _globals['_EXPERIMENT_USERISBOT']._serialized_start=5922
  _globals['_EXPERIMENT_USERISBOT']._serialized_end=5955
  _globals['_EXPERIMENT_USERAGERANGE']._serialized_start=5958
  _globals['_EXPERIMENT_USERAGERANGE']._serialized_end=6130
  _globals['_EXPERIMENT_FIXED64VALUE']._serialized_start=6132
  _globals['_EXPERIMENT_FIXED64VALUE']._serialized_end=6161
  _globals['_EXPERIMENT_USERIDRANGE']._serialized_start=6164
  _globals['_EXPERIMENT_USERIDRANGE']._serialized_end=6383
  _globals['_EXPERIMENT_USERHASFLAG']._serialized_start=6385
  _globals['_EXPERIMENT_USERHASFLAG']._serialized_end=6418
  _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_start=6420
  _globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_end=6522
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_start=6524
  _globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_end=6582
  _globals['_EXPERIMENT_ALWAYS']._serialized_start=6584
  _globals['_EXPERIMENT_ALWAYS']._serialized_end=6613
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_start=6615
  _globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_end=6662
  _globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_start=6664
  _globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_end=6736
  _globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_start=6738
  _globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_end=6784
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_start=6786
  _globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_end=6881
  _globals['_EXPERIMENT_GUILDIDS']._serialized_start=6883
  _globals['_EXPERIMENT_GUILDIDS']._serialized_end=6918
  _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_start=6921
  _globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_end=7086
  _globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_start=7088
  _globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_end=7133
  _globals['_EXPERIMENT_USERLOCATION']._serialized_start=7136
  _globals['_EXPERIMENT_USERLOCATION']._serialized_end=7265
  _globals['_EXPERIMENT_USERIP']._serialized_start=7267
  _globals['_EXPERIMENT_USERIP']._serialized_end=7327
  _globals['_EXPERIMENT_FILTER']._serialized_start=7330
  _globals['_EXPERIMENT_FILTER']._serialized_end=9734
  _globals['_EXPERIMENT_OVERRIDE']._serialized_start=9736
  _globals['_EXPERIMENT_OVERRIDE']._serialized_end=9768
  _globals['_EXPERIMENT_RULE']._serialized_start=9771
  _globals['_EXPERIMENT_RULE']._serialized_end=10134
  _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_start=10137
  _globals['_EXPERIMENT_DEBUGCONFIG']._serialized_end=10331
  _globals['_EXPERIMENT_UNITTYPE']._serialized_start=10334
  _globals['_EXPERIMENT_UNITTYPE']._serialized_end=10462
  _globals['_EXPERIMENT_TYPE']._serialized_start=10464
  _globals['_EXPERIMENT_TYPE']._serialized_end=10563
  _globals['_EXPERIMENT_SUBTYPE']._serialized_start=10565
  _globals['_EXPERIMENT_SUBTYPE']._serialized_end=10616
  _globals['_EXPERIMENT_PHASE']._serialized_start=10619
  _globals['_EXPERIMENT_PHASE']._serialized_end=10751
  _globals['_EXPERIMENT_SURFACE']._serialized_start=10754
  _globals['_EXPERIMENT_SURFACE']._serialized_end=10944
  _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_start=10946
  _globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_end=11027
  _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_start=11030
  _globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_end=11168
  _globals['_EXPERIMENT_CUSTOMUNITPREFIX']._serialized_start=11170
  _globals['_EXPERIMENT_CUSTOMUNITPREFIX']._serialized_end=11261
# @@protoc_insertion_point(module_scope)
