discord-protos 1.2.101 → 1.2.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +1 -0
- package/.github/workflows/update.yml +23 -12
- package/.prettierrc.yml +3 -3
- package/LICENSE +21 -21
- package/MANIFEST.in +1 -1
- package/README.md +12 -23
- package/__pycache__/PreloadedUserSettings_pb2.cpython-311.pyc +0 -0
- package/discord_protos/__init__.py +3 -1
- package/discord_protos/discord_experimentation/__init__.py +0 -0
- package/discord_protos/discord_experimentation/v1/Experiment.proto +22 -0
- package/discord_protos/discord_experimentation/v1/Experiment_pb2.py +108 -100
- package/discord_protos/discord_experimentation/v1/__init__.py +0 -0
- package/discord_protos/discord_kkv_store_value_models/__init__.py +0 -0
- package/discord_protos/discord_kkv_store_value_models/v1/__init__.py +0 -0
- package/discord_protos/discord_users/__init__.py +0 -0
- package/discord_protos/discord_users/v1/PreloadedUserSettings.proto +13 -0
- package/discord_protos/discord_users/v1/PreloadedUserSettings_pb2.py +111 -109
- package/discord_protos/discord_users/v1/__init__.py +0 -0
- package/discord_protos/premium_marketing/__init__.py +0 -0
- package/discord_protos/premium_marketing/v1/__init__.py +0 -0
- package/discord_protos/users/__init__.py +0 -0
- package/discord_protos/users/v1/User.proto +498 -0
- package/discord_protos/users/v1/UserData.proto +503 -0
- package/discord_protos/users/v1/UserData_pb2.py +77 -73
- package/discord_protos/users/v1/User_pb2.py +35 -33
- package/discord_protos/users/v1/__init__.py +0 -0
- package/discord_protos.egg-info/PKG-INFO +127 -0
- package/dist/load.js +83 -21
- package/package.json +32 -34
- package/pnpm-workspace.yaml +2 -0
- package/pyproject.toml +21 -21
- package/requirements.txt +1 -1
- package/scripts/preload.js +17 -17
- package/setup.py +4 -2
- package/tsconfig.script.json +12 -0
- package/dist/discord_protos/discord_experimentation/v1/Experiment.d.ts +0 -1455
- package/dist/discord_protos/discord_experimentation/v1/Experiment.js +0 -3105
- package/dist/discord_protos/discord_kkv_store_value_models/v1/AcknowledgedApplicationDisclosures.d.ts +0 -71
- package/dist/discord_protos/discord_kkv_store_value_models/v1/AcknowledgedApplicationDisclosures.js +0 -131
- package/dist/discord_protos/discord_kkv_store_value_models/v1/ApplicationUserRoleConnection.d.ts +0 -41
- package/dist/discord_protos/discord_kkv_store_value_models/v1/ApplicationUserRoleConnection.js +0 -94
- package/dist/discord_protos/discord_users/v1/FrecencyUserSettings.d.ts +0 -421
- package/dist/discord_protos/discord_users/v1/FrecencyUserSettings.js +0 -1077
- package/dist/discord_protos/discord_users/v1/PreloadedUserSettings.d.ts +0 -2270
- package/dist/discord_protos/discord_users/v1/PreloadedUserSettings.js +0 -4688
- package/dist/discord_protos/google/protobuf/timestamp.d.ts +0 -155
- package/dist/discord_protos/google/protobuf/timestamp.js +0 -135
- package/dist/discord_protos/google/protobuf/wrappers.d.ts +0 -307
- package/dist/discord_protos/google/protobuf/wrappers.js +0 -611
- package/dist/discord_protos/premium_marketing/v1/PremiumMarketingComponentProperties.d.ts +0 -853
- package/dist/discord_protos/premium_marketing/v1/PremiumMarketingComponentProperties.js +0 -1839
- package/dist/discord_protos/users/v1/GuildShardingConfig.d.ts +0 -26
- package/dist/discord_protos/users/v1/GuildShardingConfig.js +0 -62
- package/dist/discord_protos/users/v1/MediumUser.d.ts +0 -55
- package/dist/discord_protos/users/v1/MediumUser.js +0 -108
- package/dist/discord_protos/users/v1/User.d.ts +0 -552
- package/dist/discord_protos/users/v1/User.js +0 -989
- package/dist/discord_protos/users/v1/UserData.d.ts +0 -829
- package/dist/discord_protos/users/v1/UserData.js +0 -1554
- package/dist/index.d.ts +0 -16
- package/dist/index.js +0 -62
package/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
|
@@ -20,11 +20,14 @@ jobs:
|
|
|
20
20
|
with:
|
|
21
21
|
ref: ${{ github.head_ref }}
|
|
22
22
|
|
|
23
|
+
- name: Install pnpm
|
|
24
|
+
uses: pnpm/action-setup@v2
|
|
25
|
+
|
|
23
26
|
- name: Install Node.js
|
|
24
27
|
uses: actions/setup-node@v4
|
|
25
28
|
with:
|
|
26
|
-
node-version:
|
|
27
|
-
|
|
29
|
+
node-version: 23
|
|
30
|
+
cache: 'pnpm'
|
|
28
31
|
|
|
29
32
|
- name: Install protoc
|
|
30
33
|
uses: arduino/setup-protoc@v3
|
|
@@ -32,21 +35,16 @@ jobs:
|
|
|
32
35
|
version: '28.x'
|
|
33
36
|
|
|
34
37
|
- name: Install dependencies
|
|
35
|
-
run:
|
|
38
|
+
run: pnpm install --frozen-lockfile
|
|
36
39
|
|
|
37
40
|
- name: Load protobuf definitions
|
|
38
41
|
run: |
|
|
39
42
|
# Fix puppeteer on Ubuntu 23.10+
|
|
40
43
|
# See https://github.com/puppeteer/puppeteer/issues/12818
|
|
41
44
|
echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns
|
|
42
|
-
|
|
45
|
+
pnpm load
|
|
43
46
|
shell: bash
|
|
44
47
|
|
|
45
|
-
- name: Build protobuf definitions
|
|
46
|
-
run: |
|
|
47
|
-
npm run js
|
|
48
|
-
npm run py
|
|
49
|
-
|
|
50
48
|
- name: Commit changes
|
|
51
49
|
id: changes
|
|
52
50
|
run: |
|
|
@@ -63,8 +61,21 @@ jobs:
|
|
|
63
61
|
env:
|
|
64
62
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
65
63
|
|
|
64
|
+
- name: Install Python
|
|
65
|
+
if: steps.changes.outputs.has_changes == 'true'
|
|
66
|
+
uses: actions/setup-python@v4
|
|
67
|
+
with:
|
|
68
|
+
python-version: '3.11'
|
|
69
|
+
|
|
70
|
+
- name: Build package
|
|
71
|
+
run: |
|
|
72
|
+
rm -rf dist
|
|
73
|
+
python -m pip install -U pip build
|
|
74
|
+
python -m build
|
|
75
|
+
|
|
76
|
+
- name: Publish to PyPI
|
|
77
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
78
|
+
|
|
66
79
|
- name: Publish to NPM
|
|
67
80
|
if: steps.changes.outputs.has_changes == 'true'
|
|
68
|
-
run:
|
|
69
|
-
env:
|
|
70
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
81
|
+
run: pnpm publish --provenance --access public --no-git-checks
|
package/.prettierrc.yml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
trailingComma: "all"
|
|
2
|
-
tabWidth: 4
|
|
3
|
-
maxLineLength: 120
|
|
1
|
+
trailingComma: "all"
|
|
2
|
+
tabWidth: 4
|
|
3
|
+
maxLineLength: 120
|
|
4
4
|
printWidth: 140
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2022-present dolfies
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022-present dolfies
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/MANIFEST.in
CHANGED
package/README.md
CHANGED
|
@@ -5,18 +5,12 @@ This repository provides protocol buffer files for all protobufs found in Discor
|
|
|
5
5
|
|
|
6
6
|
These protobufs are used by Discord clients for transmitting data like user settings and premium marketing.
|
|
7
7
|
|
|
8
|
-
Provided for educational purposes only.
|
|
9
|
-
|
|
10
|
-
### Credits
|
|
11
|
-
|
|
12
|
-
- [arHSM](https://github.com/arHSM) for originally reverse-engineering the technology behind Discord's protobuf implementation.
|
|
13
|
-
|
|
14
8
|
## Usage
|
|
15
9
|
|
|
16
|
-
### Note
|
|
17
|
-
Automating user accounts is against the Discord ToS. This repository is a proof of concept and I cannot recommend using it. Do so at your own risk.
|
|
18
|
-
|
|
19
10
|
### Installation
|
|
11
|
+
|
|
12
|
+
Note: These packages are automatically updated when changes are detected in the protobufs. As Discord often updates their protobufs, pinning to a specific version may be advisable.
|
|
13
|
+
|
|
20
14
|
```
|
|
21
15
|
# with npm
|
|
22
16
|
npm install discord-protos
|
|
@@ -46,6 +40,7 @@ const encoded = PreloadedUserSettings.toBase64({
|
|
|
46
40
|
emojiId: 0n,
|
|
47
41
|
emojiName: "",
|
|
48
42
|
expiresAtMs: 0n,
|
|
43
|
+
createdAtMs: 0n,
|
|
49
44
|
},
|
|
50
45
|
},
|
|
51
46
|
});
|
|
@@ -58,26 +53,24 @@ console.log(encoded, decoded);
|
|
|
58
53
|
Python:
|
|
59
54
|
```py
|
|
60
55
|
import base64
|
|
56
|
+
|
|
57
|
+
from google.protobuf.json_format import ParseDict
|
|
61
58
|
from discord_protos import PreloadedUserSettings
|
|
62
59
|
|
|
63
60
|
settings = PreloadedUserSettings()
|
|
64
|
-
|
|
61
|
+
payload = ParseDict({
|
|
65
62
|
'status': {
|
|
66
|
-
'status':
|
|
67
|
-
'value': 'online',
|
|
68
|
-
},
|
|
63
|
+
'status': 'online',
|
|
69
64
|
'custom_status': {
|
|
70
65
|
'text': 'Hello World',
|
|
71
|
-
'emoji_id': 0,
|
|
72
|
-
'emoji_name': '',
|
|
73
|
-
'expires_at_ms': 0,
|
|
74
66
|
},
|
|
75
67
|
},
|
|
76
|
-
}).SerializeToString()
|
|
68
|
+
}, settings).SerializeToString()
|
|
77
69
|
|
|
70
|
+
encoded = base64.b64encode(payload).decode('ascii')
|
|
78
71
|
decoded = PreloadedUserSettings.FromString(base64.b64decode(encoded))
|
|
79
72
|
|
|
80
|
-
print(encoded, decoded)
|
|
73
|
+
print(encoded, decoded, sep='\n')
|
|
81
74
|
```
|
|
82
75
|
|
|
83
76
|
The following table shows which protobuf user settings correspond to which .proto file (the Python package also provides a `UserSettingsType` enum for convenience).
|
|
@@ -88,11 +81,7 @@ The following table shows which protobuf user settings correspond to which .prot
|
|
|
88
81
|
| 2 | `FRECENCY_AND_FAVORITES_SETTINGS` | FrecencyUserSettings.proto | Frecency and favorites storage for various things. |
|
|
89
82
|
| 3 | `TEST_SETTINGS` | - | Unknown. |
|
|
90
83
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
### Protobufs
|
|
94
|
-
The .proto files can be compiled down to Python or JavaScript files by running `npm run py` or `npm run js`. This requires protoc to be installed.
|
|
95
|
-
|
|
84
|
+
See [Userdoccers](https://docs.discord.food/resources/user-settings-proto) for more information.
|
|
96
85
|
|
|
97
86
|
### Development
|
|
98
87
|
Running `pnpm load` will extract and save the latest protobufs to the `discord_protos/` directory.
|
|
Binary file
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
# This file is auto-generated by src/load.ts. Do not edit manually.
|
|
2
|
+
|
|
1
3
|
from __future__ import annotations
|
|
2
4
|
|
|
3
5
|
from enum import Enum as _Enum
|
|
4
6
|
from typing import TYPE_CHECKING
|
|
5
7
|
|
|
6
|
-
__version__ = '1.2.
|
|
8
|
+
__version__ = '1.2.117'
|
|
7
9
|
|
|
8
10
|
if TYPE_CHECKING:
|
|
9
11
|
from google.protobuf.message import Message as _Message
|
|
File without changes
|
|
@@ -11,6 +11,7 @@ message Experiment {
|
|
|
11
11
|
UNIT_TYPE_USER = 1;
|
|
12
12
|
UNIT_TYPE_INSTALLATION = 2;
|
|
13
13
|
UNIT_TYPE_GUILD = 3;
|
|
14
|
+
UNIT_TYPE_CUSTOM = 4;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
enum Type {
|
|
@@ -215,6 +216,16 @@ message Experiment {
|
|
|
215
216
|
repeated string features = 1 [packed = false];
|
|
216
217
|
}
|
|
217
218
|
|
|
219
|
+
message UserLocation {
|
|
220
|
+
repeated Location locations = 1;
|
|
221
|
+
bool prefer_client_ip = 2;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
message UserIP {
|
|
225
|
+
repeated string blocks = 1 [packed = false];
|
|
226
|
+
bool prefer_client_ip = 2;
|
|
227
|
+
}
|
|
228
|
+
|
|
218
229
|
message Filter {
|
|
219
230
|
oneof filter {
|
|
220
231
|
ClientPlatform client_version = 2;
|
|
@@ -240,6 +251,8 @@ message Experiment {
|
|
|
240
251
|
GuildIds guild_ids = 22;
|
|
241
252
|
GuildMemberCountRange guild_member_count_range = 25;
|
|
242
253
|
GuildHasFeature guild_has_feature = 26;
|
|
254
|
+
UserLocation user_location = 27;
|
|
255
|
+
UserIP user_ip = 28;
|
|
243
256
|
}
|
|
244
257
|
}
|
|
245
258
|
|
|
@@ -276,6 +289,8 @@ message Experiment {
|
|
|
276
289
|
SURFACE_DEVELOPER_PORTAL = 3;
|
|
277
290
|
SURFACE_ADMIN_PANEL = 4;
|
|
278
291
|
SURFACE_ADS_BUDGET_AB = 5;
|
|
292
|
+
SURFACE_AV_WORKER = 6;
|
|
293
|
+
SURFACE_SEO = 7;
|
|
279
294
|
}
|
|
280
295
|
|
|
281
296
|
enum ExposureTracking {
|
|
@@ -299,6 +314,11 @@ message Experiment {
|
|
|
299
314
|
double decision_log_sample_rate = 6;
|
|
300
315
|
}
|
|
301
316
|
|
|
317
|
+
enum CustomUnitPrefix {
|
|
318
|
+
CUSTOM_UNIT_PREFIX_UNSPECIFIED = 0;
|
|
319
|
+
CUSTOM_UNIT_PREFIX_SEO_URL_SLUG = 1;
|
|
320
|
+
}
|
|
321
|
+
|
|
302
322
|
fixed64 id = 1;
|
|
303
323
|
string name = 2;
|
|
304
324
|
optional google.protobuf.Timestamp created_at = 3;
|
|
@@ -332,4 +352,6 @@ message Experiment {
|
|
|
332
352
|
optional google.protobuf.Timestamp expected_end_date = 31;
|
|
333
353
|
bool is_automated_change = 32;
|
|
334
354
|
optional google.protobuf.Timestamp archive_at = 33;
|
|
355
|
+
optional google.protobuf.Int32Value guild_experiment_version = 35;
|
|
356
|
+
CustomUnitPrefix custom_unit_prefix = 36;
|
|
335
357
|
}
|
|
@@ -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\"\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')
|
|
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\"\x9dV\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\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{\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\x1a\x36\n\x06UserIP\x12\x12\n\x06\x62locks\x18\x01 \x03(\tB\x02\x10\x00\x12\x18\n\x10prefer_client_ip\x18\x02 \x01(\x08\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_versionb\x06proto3')
|
|
30
30
|
|
|
31
31
|
_globals = globals()
|
|
32
32
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -47,106 +47,114 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
47
47
|
_globals['_EXPERIMENT_CLIENTSYSTEMLOCALE'].fields_by_name['locales']._serialized_options = b'\020\000'
|
|
48
48
|
_globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._loaded_options = None
|
|
49
49
|
_globals['_EXPERIMENT_GUILDHASFEATURE'].fields_by_name['features']._serialized_options = b'\020\000'
|
|
50
|
+
_globals['_EXPERIMENT_USERIP'].fields_by_name['blocks']._loaded_options = None
|
|
51
|
+
_globals['_EXPERIMENT_USERIP'].fields_by_name['blocks']._serialized_options = b'\020\000'
|
|
50
52
|
_globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._loaded_options = None
|
|
51
53
|
_globals['_EXPERIMENT'].fields_by_name['engine_feature_flags']._serialized_options = b'\020\000'
|
|
52
54
|
_globals['_EXPERIMENT']._serialized_start=156
|
|
53
|
-
_globals['_EXPERIMENT']._serialized_end=
|
|
54
|
-
_globals['_EXPERIMENT_BUCKET']._serialized_start=
|
|
55
|
-
_globals['_EXPERIMENT_BUCKET']._serialized_end=
|
|
56
|
-
_globals['_EXPERIMENT_VARIATION']._serialized_start=
|
|
57
|
-
_globals['_EXPERIMENT_VARIATION']._serialized_end=
|
|
58
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_start=
|
|
59
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_end=
|
|
60
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_start=
|
|
61
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_end=
|
|
62
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_start=
|
|
63
|
-
_globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_end=
|
|
64
|
-
_globals['_EXPERIMENT_PLATFORMVERSION']._serialized_start=
|
|
65
|
-
_globals['_EXPERIMENT_PLATFORMVERSION']._serialized_end=
|
|
66
|
-
_globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_start=
|
|
67
|
-
_globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_end=
|
|
68
|
-
_globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_start=
|
|
69
|
-
_globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_end=
|
|
70
|
-
_globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_start=
|
|
71
|
-
_globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_end=
|
|
72
|
-
_globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_start=
|
|
73
|
-
_globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_end=
|
|
74
|
-
_globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_start=
|
|
75
|
-
_globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_end=
|
|
76
|
-
_globals['_EXPERIMENT_SDKVERSION']._serialized_start=
|
|
77
|
-
_globals['_EXPERIMENT_SDKVERSION']._serialized_end=
|
|
78
|
-
_globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_start=
|
|
79
|
-
_globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_end=
|
|
80
|
-
_globals['_EXPERIMENT_STAFFUSERS']._serialized_start=
|
|
81
|
-
_globals['_EXPERIMENT_STAFFUSERS']._serialized_end=
|
|
82
|
-
_globals['_EXPERIMENT_USERINGUILD']._serialized_start=
|
|
83
|
-
_globals['_EXPERIMENT_USERINGUILD']._serialized_end=
|
|
84
|
-
_globals['_EXPERIMENT_USERIDS']._serialized_start=
|
|
85
|
-
_globals['_EXPERIMENT_USERIDS']._serialized_end=
|
|
86
|
-
_globals['_EXPERIMENT_CLIENTLOCALE']._serialized_start=
|
|
87
|
-
_globals['_EXPERIMENT_CLIENTLOCALE']._serialized_end=
|
|
88
|
-
_globals['_EXPERIMENT_ISOREGION']._serialized_start=
|
|
89
|
-
_globals['_EXPERIMENT_ISOREGION']._serialized_end=
|
|
90
|
-
_globals['_EXPERIMENT_PLACE']._serialized_start=
|
|
91
|
-
_globals['_EXPERIMENT_PLACE']._serialized_end=
|
|
92
|
-
_globals['_EXPERIMENT_LOCATION']._serialized_start=
|
|
93
|
-
_globals['_EXPERIMENT_LOCATION']._serialized_end=
|
|
94
|
-
_globals['_EXPERIMENT_CLIENTLOCATION']._serialized_start=
|
|
95
|
-
_globals['_EXPERIMENT_CLIENTLOCATION']._serialized_end=
|
|
96
|
-
_globals['_EXPERIMENT_CLIENTIP']._serialized_start=
|
|
97
|
-
_globals['_EXPERIMENT_CLIENTIP']._serialized_end=
|
|
98
|
-
_globals['_EXPERIMENT_USERLOCALE']._serialized_start=
|
|
99
|
-
_globals['_EXPERIMENT_USERLOCALE']._serialized_end=
|
|
100
|
-
_globals['_EXPERIMENT_USERISBOT']._serialized_start=
|
|
101
|
-
_globals['_EXPERIMENT_USERISBOT']._serialized_end=
|
|
102
|
-
_globals['_EXPERIMENT_USERAGERANGE']._serialized_start=
|
|
103
|
-
_globals['_EXPERIMENT_USERAGERANGE']._serialized_end=
|
|
104
|
-
_globals['_EXPERIMENT_FIXED64VALUE']._serialized_start=
|
|
105
|
-
_globals['_EXPERIMENT_FIXED64VALUE']._serialized_end=
|
|
106
|
-
_globals['_EXPERIMENT_USERIDRANGE']._serialized_start=
|
|
107
|
-
_globals['_EXPERIMENT_USERIDRANGE']._serialized_end=
|
|
108
|
-
_globals['_EXPERIMENT_USERHASFLAG']._serialized_start=
|
|
109
|
-
_globals['_EXPERIMENT_USERHASFLAG']._serialized_end=
|
|
110
|
-
_globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_start=
|
|
111
|
-
_globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_end=
|
|
112
|
-
_globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_start=
|
|
113
|
-
_globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_end=
|
|
114
|
-
_globals['_EXPERIMENT_ALWAYS']._serialized_start=
|
|
115
|
-
_globals['_EXPERIMENT_ALWAYS']._serialized_end=
|
|
116
|
-
_globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_start=
|
|
117
|
-
_globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_end=
|
|
118
|
-
_globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_start=
|
|
119
|
-
_globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_end=
|
|
120
|
-
_globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_start=
|
|
121
|
-
_globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_end=
|
|
122
|
-
_globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_start=
|
|
123
|
-
_globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_end=
|
|
124
|
-
_globals['_EXPERIMENT_GUILDIDS']._serialized_start=
|
|
125
|
-
_globals['_EXPERIMENT_GUILDIDS']._serialized_end=
|
|
126
|
-
_globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_start=
|
|
127
|
-
_globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_end=
|
|
128
|
-
_globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_start=
|
|
129
|
-
_globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_end=
|
|
130
|
-
_globals['
|
|
131
|
-
_globals['
|
|
132
|
-
_globals['
|
|
133
|
-
_globals['
|
|
134
|
-
_globals['
|
|
135
|
-
_globals['
|
|
136
|
-
_globals['
|
|
137
|
-
_globals['
|
|
138
|
-
_globals['
|
|
139
|
-
_globals['
|
|
140
|
-
_globals['
|
|
141
|
-
_globals['
|
|
142
|
-
_globals['
|
|
143
|
-
_globals['
|
|
144
|
-
_globals['
|
|
145
|
-
_globals['
|
|
146
|
-
_globals['
|
|
147
|
-
_globals['
|
|
148
|
-
_globals['
|
|
149
|
-
_globals['
|
|
150
|
-
_globals['
|
|
151
|
-
_globals['
|
|
55
|
+
_globals['_EXPERIMENT']._serialized_end=11193
|
|
56
|
+
_globals['_EXPERIMENT_BUCKET']._serialized_start=1859
|
|
57
|
+
_globals['_EXPERIMENT_BUCKET']._serialized_end=1970
|
|
58
|
+
_globals['_EXPERIMENT_VARIATION']._serialized_start=1973
|
|
59
|
+
_globals['_EXPERIMENT_VARIATION']._serialized_end=2267
|
|
60
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_start=2270
|
|
61
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONSPECIFIER']._serialized_end=2431
|
|
62
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_start=2434
|
|
63
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONRANGEBOUND']._serialized_end=2594
|
|
64
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_start=2597
|
|
65
|
+
_globals['_EXPERIMENT_PLATFORMVERSIONRANGE']._serialized_end=2865
|
|
66
|
+
_globals['_EXPERIMENT_PLATFORMVERSION']._serialized_start=2868
|
|
67
|
+
_globals['_EXPERIMENT_PLATFORMVERSION']._serialized_end=3008
|
|
68
|
+
_globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_start=3010
|
|
69
|
+
_globals['_EXPERIMENT_CLIENTREQUIREDCHANGES']._serialized_end=3080
|
|
70
|
+
_globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_start=3083
|
|
71
|
+
_globals['_EXPERIMENT_CLIENTPLATFORM']._serialized_end=3738
|
|
72
|
+
_globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_start=3740
|
|
73
|
+
_globals['_EXPERIMENT_SDKVERSIONSPECIFIER']._serialized_end=3778
|
|
74
|
+
_globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_start=3781
|
|
75
|
+
_globals['_EXPERIMENT_SDKVERSIONRANGEBOUND']._serialized_end=3931
|
|
76
|
+
_globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_start=3934
|
|
77
|
+
_globals['_EXPERIMENT_SDKVERSIONRANGE']._serialized_end=4187
|
|
78
|
+
_globals['_EXPERIMENT_SDKVERSION']._serialized_start=4190
|
|
79
|
+
_globals['_EXPERIMENT_SDKVERSION']._serialized_end=4320
|
|
80
|
+
_globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_start=4323
|
|
81
|
+
_globals['_EXPERIMENT_CLIENTOPERATINGSYSTEM']._serialized_end=5144
|
|
82
|
+
_globals['_EXPERIMENT_STAFFUSERS']._serialized_start=5146
|
|
83
|
+
_globals['_EXPERIMENT_STAFFUSERS']._serialized_end=5208
|
|
84
|
+
_globals['_EXPERIMENT_USERINGUILD']._serialized_start=5210
|
|
85
|
+
_globals['_EXPERIMENT_USERINGUILD']._serialized_end=5242
|
|
86
|
+
_globals['_EXPERIMENT_USERIDS']._serialized_start=5244
|
|
87
|
+
_globals['_EXPERIMENT_USERIDS']._serialized_end=5271
|
|
88
|
+
_globals['_EXPERIMENT_CLIENTLOCALE']._serialized_start=5273
|
|
89
|
+
_globals['_EXPERIMENT_CLIENTLOCALE']._serialized_end=5308
|
|
90
|
+
_globals['_EXPERIMENT_ISOREGION']._serialized_start=5310
|
|
91
|
+
_globals['_EXPERIMENT_ISOREGION']._serialized_end=5367
|
|
92
|
+
_globals['_EXPERIMENT_PLACE']._serialized_start=5369
|
|
93
|
+
_globals['_EXPERIMENT_PLACE']._serialized_end=5428
|
|
94
|
+
_globals['_EXPERIMENT_LOCATION']._serialized_start=5431
|
|
95
|
+
_globals['_EXPERIMENT_LOCATION']._serialized_end=5635
|
|
96
|
+
_globals['_EXPERIMENT_CLIENTLOCATION']._serialized_start=5637
|
|
97
|
+
_globals['_EXPERIMENT_CLIENTLOCATION']._serialized_end=5736
|
|
98
|
+
_globals['_EXPERIMENT_CLIENTIP']._serialized_start=5738
|
|
99
|
+
_globals['_EXPERIMENT_CLIENTIP']._serialized_end=5768
|
|
100
|
+
_globals['_EXPERIMENT_USERLOCALE']._serialized_start=5770
|
|
101
|
+
_globals['_EXPERIMENT_USERLOCALE']._serialized_end=5803
|
|
102
|
+
_globals['_EXPERIMENT_USERISBOT']._serialized_start=5805
|
|
103
|
+
_globals['_EXPERIMENT_USERISBOT']._serialized_end=5832
|
|
104
|
+
_globals['_EXPERIMENT_USERAGERANGE']._serialized_start=5835
|
|
105
|
+
_globals['_EXPERIMENT_USERAGERANGE']._serialized_end=6001
|
|
106
|
+
_globals['_EXPERIMENT_FIXED64VALUE']._serialized_start=6003
|
|
107
|
+
_globals['_EXPERIMENT_FIXED64VALUE']._serialized_end=6032
|
|
108
|
+
_globals['_EXPERIMENT_USERIDRANGE']._serialized_start=6035
|
|
109
|
+
_globals['_EXPERIMENT_USERIDRANGE']._serialized_end=6248
|
|
110
|
+
_globals['_EXPERIMENT_USERHASFLAG']._serialized_start=6250
|
|
111
|
+
_globals['_EXPERIMENT_USERHASFLAG']._serialized_end=6277
|
|
112
|
+
_globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_start=6279
|
|
113
|
+
_globals['_EXPERIMENT_UNITIDINRANGEBYHASH']._serialized_end=6375
|
|
114
|
+
_globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_start=6377
|
|
115
|
+
_globals['_EXPERIMENT_CLIENTRELEASECHANNEL']._serialized_end=6429
|
|
116
|
+
_globals['_EXPERIMENT_ALWAYS']._serialized_start=6431
|
|
117
|
+
_globals['_EXPERIMENT_ALWAYS']._serialized_end=6454
|
|
118
|
+
_globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_start=6456
|
|
119
|
+
_globals['_EXPERIMENT_CLIENTSYSTEMLOCALE']._serialized_end=6497
|
|
120
|
+
_globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_start=6499
|
|
121
|
+
_globals['_EXPERIMENT_UNITIDINEXPERIMENT']._serialized_end=6565
|
|
122
|
+
_globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_start=6567
|
|
123
|
+
_globals['_EXPERIMENT_USERPREMIUMTYPE']._serialized_end=6607
|
|
124
|
+
_globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_start=6609
|
|
125
|
+
_globals['_EXPERIMENT_UNITIDMATCHESFILTERSNAPSHOT']._serialized_end=6698
|
|
126
|
+
_globals['_EXPERIMENT_GUILDIDS']._serialized_start=6700
|
|
127
|
+
_globals['_EXPERIMENT_GUILDIDS']._serialized_end=6729
|
|
128
|
+
_globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_start=6732
|
|
129
|
+
_globals['_EXPERIMENT_GUILDMEMBERCOUNTRANGE']._serialized_end=6891
|
|
130
|
+
_globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_start=6893
|
|
131
|
+
_globals['_EXPERIMENT_GUILDHASFEATURE']._serialized_end=6932
|
|
132
|
+
_globals['_EXPERIMENT_USERLOCATION']._serialized_start=6934
|
|
133
|
+
_globals['_EXPERIMENT_USERLOCATION']._serialized_end=7057
|
|
134
|
+
_globals['_EXPERIMENT_USERIP']._serialized_start=7059
|
|
135
|
+
_globals['_EXPERIMENT_USERIP']._serialized_end=7113
|
|
136
|
+
_globals['_EXPERIMENT_FILTER']._serialized_start=7116
|
|
137
|
+
_globals['_EXPERIMENT_FILTER']._serialized_end=9520
|
|
138
|
+
_globals['_EXPERIMENT_OVERRIDE']._serialized_start=9522
|
|
139
|
+
_globals['_EXPERIMENT_OVERRIDE']._serialized_end=9554
|
|
140
|
+
_globals['_EXPERIMENT_RULE']._serialized_start=9557
|
|
141
|
+
_globals['_EXPERIMENT_RULE']._serialized_end=9920
|
|
142
|
+
_globals['_EXPERIMENT_DEBUGCONFIG']._serialized_start=9923
|
|
143
|
+
_globals['_EXPERIMENT_DEBUGCONFIG']._serialized_end=10117
|
|
144
|
+
_globals['_EXPERIMENT_UNITTYPE']._serialized_start=10120
|
|
145
|
+
_globals['_EXPERIMENT_UNITTYPE']._serialized_end=10248
|
|
146
|
+
_globals['_EXPERIMENT_TYPE']._serialized_start=10250
|
|
147
|
+
_globals['_EXPERIMENT_TYPE']._serialized_end=10349
|
|
148
|
+
_globals['_EXPERIMENT_SUBTYPE']._serialized_start=10351
|
|
149
|
+
_globals['_EXPERIMENT_SUBTYPE']._serialized_end=10402
|
|
150
|
+
_globals['_EXPERIMENT_PHASE']._serialized_start=10405
|
|
151
|
+
_globals['_EXPERIMENT_PHASE']._serialized_end=10537
|
|
152
|
+
_globals['_EXPERIMENT_SURFACE']._serialized_start=10540
|
|
153
|
+
_globals['_EXPERIMENT_SURFACE']._serialized_end=10730
|
|
154
|
+
_globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_start=10732
|
|
155
|
+
_globals['_EXPERIMENT_EXPOSURETRACKING']._serialized_end=10813
|
|
156
|
+
_globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_start=10816
|
|
157
|
+
_globals['_EXPERIMENT_ASSIGNMENTMODE']._serialized_end=10954
|
|
158
|
+
_globals['_EXPERIMENT_CUSTOMUNITPREFIX']._serialized_start=10956
|
|
159
|
+
_globals['_EXPERIMENT_CUSTOMUNITPREFIX']._serialized_end=11047
|
|
152
160
|
# @@protoc_insertion_point(module_scope)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -246,6 +246,10 @@ message PreloadedUserSettings {
|
|
|
246
246
|
optional google.protobuf.BoolValue enable_game_update_notifications = 15;
|
|
247
247
|
optional google.protobuf.BoolValue enable_profile_updates_notifications = 16;
|
|
248
248
|
optional google.protobuf.BoolValue enable_server_trending_notifications = 17;
|
|
249
|
+
optional google.protobuf.BoolValue enable_dm_reply_nudge_reminders = 18;
|
|
250
|
+
optional google.protobuf.BoolValue enable_summary_reminder_notifications = 19;
|
|
251
|
+
optional google.protobuf.BoolValue enable_gdm_all_reaction_notifications = 20;
|
|
252
|
+
optional google.protobuf.BoolValue enable_friend_gaming_activity_notifications = 21;
|
|
249
253
|
}
|
|
250
254
|
|
|
251
255
|
enum GuildActivityStatusRestrictionDefault {
|
|
@@ -273,6 +277,13 @@ message PreloadedUserSettings {
|
|
|
273
277
|
GUILD_ACTIVITY_STATUS_RESTRICTION_DEFAULT_V2_ACTIVITY_STATUS_ON = 3;
|
|
274
278
|
}
|
|
275
279
|
|
|
280
|
+
enum ProfileVisibility {
|
|
281
|
+
PROFILE_VISIBILITY_UNSET = 0;
|
|
282
|
+
PROFILE_VISIBILITY_FRIENDS_ONLY = 1;
|
|
283
|
+
PROFILE_VISIBILITY_FRIENDS_AND_SMALL_GUILDS = 2;
|
|
284
|
+
PROFILE_VISIBILITY_FRIENDS_AND_ALL_GUILDS = 3;
|
|
285
|
+
}
|
|
286
|
+
|
|
276
287
|
message PrivacySettings {
|
|
277
288
|
optional google.protobuf.BoolValue allow_activity_party_privacy_friends = 1;
|
|
278
289
|
optional google.protobuf.BoolValue allow_activity_party_privacy_voice_channel = 2;
|
|
@@ -303,6 +314,7 @@ message PreloadedUserSettings {
|
|
|
303
314
|
GuildActivityStatusRestrictionDefaultV2 default_guilds_activity_restricted_v2 = 29;
|
|
304
315
|
optional google.protobuf.BoolValue quests_3p_data_opted_out = 30;
|
|
305
316
|
optional google.protobuf.BoolValue show_local_time = 31;
|
|
317
|
+
ProfileVisibility profile_visibility = 32;
|
|
306
318
|
}
|
|
307
319
|
|
|
308
320
|
message DebugSettings {
|
|
@@ -428,6 +440,7 @@ message PreloadedUserSettings {
|
|
|
428
440
|
message Favorites {
|
|
429
441
|
map<fixed64, FavoriteChannel> favorite_channels = 1;
|
|
430
442
|
bool muted = 2;
|
|
443
|
+
optional google.protobuf.BoolValue guild_visible = 3;
|
|
431
444
|
}
|
|
432
445
|
|
|
433
446
|
message AudioContextSetting {
|