@devvit/protos 0.11.7 → 0.11.8-next-2025-02-10-c496a14e8.0
Sign up to get free protection for your applications and to get access to all the features.
- package/meta.min.json +7825 -0
- package/package.json +4 -4
- package/protos.min.js +2 -0
- package/protos.min.js.map +7 -0
- package/schema/.snootobuf/deps/buf/validate/expression.proto +92 -0
- package/schema/.snootobuf/deps/buf/validate/priv/private.proto +41 -0
- package/schema/.snootobuf/deps/buf/validate/validate.proto +4130 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/audit.proto +72 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/auth.proto +49 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/organization.proto +54 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/service.proto +46 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/subscription.proto +72 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/ui.proto +20 -0
- package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/user.proto +45 -0
- package/schema/.snootobuf/deps/devvit/data/api/v1alpha/admin.proto +54 -0
- package/schema/.snootobuf/deps/devvit/data/api/v1alpha/delivery.proto +773 -0
- package/schema/.snootobuf/deps/devvit/data/api/v1alpha/filter.proto +66 -0
- package/schema/.snootobuf/deps/devvit/data/api/v1alpha/firehose.proto +100 -0
- package/schema/.snootobuf/deps/devvit/data/api/v1alpha/intake.proto +19 -0
- package/schema/.snootobuf/deps/devvit/events/v1alpha/events.proto +446 -0
- package/schema/.snootobuf/deps/devvit/gateway/v1alpha/payments.proto +24 -0
- package/schema/.snootobuf/deps/devvit/options/options.proto +98 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/commentv2.proto +29 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/flair.proto +25 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/modaction.proto +53 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/modmail.proto +56 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/postv2.proto +107 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/subredditv2.proto +41 -0
- package/schema/.snootobuf/deps/devvit/reddit/v2alpha/userv2.proto +23 -0
- package/schema/.snootobuf/deps/devvit/triggers/v1alpha/triggers.proto +162 -0
- package/schema/.snootobuf/deps/enum/account_gender_category.proto +14 -0
- package/schema/.snootobuf/deps/enum/approval_status.proto +15 -0
- package/schema/.snootobuf/deps/enum/automated_reporting_level.proto +12 -0
- package/schema/.snootobuf/deps/enum/ban_evasion_threshold.proto +13 -0
- package/schema/.snootobuf/deps/enum/ban_info_action.proto +12 -0
- package/schema/.snootobuf/deps/enum/block_relation_type.proto +11 -0
- package/schema/.snootobuf/deps/enum/comment_sort.proto +18 -0
- package/schema/.snootobuf/deps/enum/comment_type.proto +11 -0
- package/schema/.snootobuf/deps/enum/crowd_control_level.proto +12 -0
- package/schema/.snootobuf/deps/enum/discussion_type.proto +10 -0
- package/schema/.snootobuf/deps/enum/distinguish_type.proto +14 -0
- package/schema/.snootobuf/deps/enum/flair_position.proto +11 -0
- package/schema/.snootobuf/deps/enum/hateful_content_threshold.proto +12 -0
- package/schema/.snootobuf/deps/enum/link_content_type.proto +11 -0
- package/schema/.snootobuf/deps/enum/link_type.proto +11 -0
- package/schema/.snootobuf/deps/enum/link_visibility.proto +11 -0
- package/schema/.snootobuf/deps/enum/prediction_leaderboard_entry_type.proto +11 -0
- package/schema/.snootobuf/deps/enum/promo_layout.proto +11 -0
- package/schema/.snootobuf/deps/enum/removed_by_type.proto +18 -0
- package/schema/.snootobuf/deps/enum/spam_level.proto +11 -0
- package/schema/.snootobuf/deps/enum/subreddit_type.proto +16 -0
- package/schema/.snootobuf/deps/enum/verdict.proto +14 -0
- package/schema/.snootobuf/deps/enum/vote.proto +12 -0
- package/schema/.snootobuf/deps/enum/whitelist_status.proto +17 -0
- package/schema/.snootobuf/deps/enum/wiki_edit_mode.proto +12 -0
- package/schema/.snootobuf/deps/evaluator/evaluator.proto +203 -0
- package/schema/.snootobuf/deps/google/api/annotations.proto +31 -0
- package/schema/.snootobuf/deps/google/api/apikeys/v2/apikeys.proto +288 -0
- package/schema/.snootobuf/deps/google/api/apikeys/v2/resources.proto +175 -0
- package/schema/.snootobuf/deps/google/api/auth.proto +237 -0
- package/schema/.snootobuf/deps/google/api/backend.proto +185 -0
- package/schema/.snootobuf/deps/google/api/billing.proto +77 -0
- package/schema/.snootobuf/deps/google/api/client.proto +431 -0
- package/schema/.snootobuf/deps/google/api/cloudquotas/v1/cloudquotas.proto +322 -0
- package/schema/.snootobuf/deps/google/api/cloudquotas/v1/resources.proto +315 -0
- package/schema/.snootobuf/deps/google/api/config_change.proto +84 -0
- package/schema/.snootobuf/deps/google/api/consumer.proto +82 -0
- package/schema/.snootobuf/deps/google/api/context.proto +92 -0
- package/schema/.snootobuf/deps/google/api/control.proto +41 -0
- package/schema/.snootobuf/deps/google/api/distribution.proto +213 -0
- package/schema/.snootobuf/deps/google/api/documentation.proto +168 -0
- package/schema/.snootobuf/deps/google/api/endpoint.proto +69 -0
- package/schema/.snootobuf/deps/google/api/error_reason.proto +589 -0
- package/schema/.snootobuf/deps/google/api/expr/conformance/v1alpha1/conformance_service.proto +183 -0
- package/schema/.snootobuf/deps/google/api/expr/v1alpha1/checked.proto +343 -0
- package/schema/.snootobuf/deps/google/api/expr/v1alpha1/eval.proto +118 -0
- package/schema/.snootobuf/deps/google/api/expr/v1alpha1/explain.proto +53 -0
- package/schema/.snootobuf/deps/google/api/expr/v1alpha1/syntax.proto +438 -0
- package/schema/.snootobuf/deps/google/api/expr/v1alpha1/value.proto +115 -0
- package/schema/.snootobuf/deps/google/api/expr/v1beta1/decl.proto +84 -0
- package/schema/.snootobuf/deps/google/api/expr/v1beta1/eval.proto +125 -0
- package/schema/.snootobuf/deps/google/api/expr/v1beta1/expr.proto +265 -0
- package/schema/.snootobuf/deps/google/api/expr/v1beta1/source.proto +62 -0
- package/schema/.snootobuf/deps/google/api/expr/v1beta1/value.proto +114 -0
- package/schema/.snootobuf/deps/google/api/field_behavior.proto +104 -0
- package/schema/.snootobuf/deps/google/api/field_info.proto +106 -0
- package/schema/.snootobuf/deps/google/api/http.proto +371 -0
- package/schema/.snootobuf/deps/google/api/httpbody.proto +81 -0
- package/schema/.snootobuf/deps/google/api/label.proto +48 -0
- package/schema/.snootobuf/deps/google/api/launch_stage.proto +72 -0
- package/schema/.snootobuf/deps/google/api/log.proto +54 -0
- package/schema/.snootobuf/deps/google/api/logging.proto +81 -0
- package/schema/.snootobuf/deps/google/api/metric.proto +268 -0
- package/schema/.snootobuf/deps/google/api/monitored_resource.proto +130 -0
- package/schema/.snootobuf/deps/google/api/monitoring.proto +107 -0
- package/schema/.snootobuf/deps/google/api/policy.proto +85 -0
- package/schema/.snootobuf/deps/google/api/quota.proto +184 -0
- package/schema/.snootobuf/deps/google/api/resource.proto +243 -0
- package/schema/.snootobuf/deps/google/api/routing.proto +461 -0
- package/schema/.snootobuf/deps/google/api/service.proto +191 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/check_error.proto +124 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/distribution.proto +166 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/http_request.proto +93 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/log_entry.proto +126 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/metric_value.proto +81 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/operation.proto +123 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/quota_controller.proto +245 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v1/service_controller.proto +260 -0
- package/schema/.snootobuf/deps/google/api/servicecontrol/v2/service_controller.proto +196 -0
- package/schema/.snootobuf/deps/google/api/servicemanagement/v1/resources.proto +295 -0
- package/schema/.snootobuf/deps/google/api/servicemanagement/v1/servicemanager.proto +508 -0
- package/schema/.snootobuf/deps/google/api/serviceusage/v1/resources.proto +130 -0
- package/schema/.snootobuf/deps/google/api/serviceusage/v1/serviceusage.proto +305 -0
- package/schema/.snootobuf/deps/google/api/serviceusage/v1beta1/resources.proto +458 -0
- package/schema/.snootobuf/deps/google/api/serviceusage/v1beta1/serviceusage.proto +793 -0
- package/schema/.snootobuf/deps/google/api/source_info.proto +31 -0
- package/schema/.snootobuf/deps/google/api/system_parameter.proto +96 -0
- package/schema/.snootobuf/deps/google/api/usage.proto +96 -0
- package/schema/.snootobuf/deps/google/api/visibility.proto +113 -0
- package/schema/.snootobuf/deps/google/cloud/extended_operations.proto +150 -0
- package/schema/.snootobuf/deps/google/iam/admin/v1/iam.proto +1087 -0
- package/schema/.snootobuf/deps/google/iam/v1/iam_policy.proto +145 -0
- package/schema/.snootobuf/deps/google/iam/v1/logging/audit_data.proto +34 -0
- package/schema/.snootobuf/deps/google/iam/v1/options.proto +41 -0
- package/schema/.snootobuf/deps/google/iam/v1/policy.proto +240 -0
- package/schema/.snootobuf/deps/google/logging/type/http_request.proto +92 -0
- package/schema/.snootobuf/deps/google/logging/type/log_severity.proto +72 -0
- package/schema/.snootobuf/deps/google/longrunning/operations.proto +247 -0
- package/schema/.snootobuf/deps/google/protobuf/any.proto +158 -0
- package/schema/.snootobuf/deps/google/protobuf/api.proto +208 -0
- package/schema/.snootobuf/deps/google/protobuf/compiler/plugin.proto +183 -0
- package/schema/.snootobuf/deps/google/protobuf/descriptor.proto +921 -0
- package/schema/.snootobuf/deps/google/protobuf/duration.proto +116 -0
- package/schema/.snootobuf/deps/google/protobuf/empty.proto +51 -0
- package/schema/.snootobuf/deps/google/protobuf/field_mask.proto +245 -0
- package/schema/.snootobuf/deps/google/protobuf/source_context.proto +48 -0
- package/schema/.snootobuf/deps/google/protobuf/struct.proto +95 -0
- package/schema/.snootobuf/deps/google/protobuf/timestamp.proto +147 -0
- package/schema/.snootobuf/deps/google/protobuf/type.proto +187 -0
- package/schema/.snootobuf/deps/google/protobuf/wrappers.proto +123 -0
- package/schema/.snootobuf/deps/google/rpc/code.proto +186 -0
- package/schema/.snootobuf/deps/google/rpc/context/attribute_context.proto +287 -0
- package/schema/.snootobuf/deps/google/rpc/error_details.proto +246 -0
- package/schema/.snootobuf/deps/google/rpc/status.proto +47 -0
- package/schema/.snootobuf/deps/google/type/calendar_period.proto +57 -0
- package/schema/.snootobuf/deps/google/type/color.proto +170 -0
- package/schema/.snootobuf/deps/google/type/date.proto +50 -0
- package/schema/.snootobuf/deps/google/type/datetime.proto +97 -0
- package/schema/.snootobuf/deps/google/type/dayofweek.proto +51 -0
- package/schema/.snootobuf/deps/google/type/expr.proto +51 -0
- package/schema/.snootobuf/deps/google/type/fraction.proto +34 -0
- package/schema/.snootobuf/deps/google/type/latlng.proto +37 -0
- package/schema/.snootobuf/deps/google/type/money.proto +43 -0
- package/schema/.snootobuf/deps/google/type/month.proto +66 -0
- package/schema/.snootobuf/deps/google/type/postal_address.proto +135 -0
- package/schema/.snootobuf/deps/google/type/quaternion.proto +95 -0
- package/schema/.snootobuf/deps/google/type/timeofday.proto +44 -0
- package/schema/.snootobuf/deps/openapi/helper.proto +20 -0
- package/schema/.snootobuf/deps/products-api/protos/reddit/xpaymentsplatform/payproducts/v1/currencies.proto +189 -0
- package/schema/.snootobuf/deps/products-api/protos/reddit/xpaymentsplatform/payproducts/v1/payproducts.proto +118 -0
- package/schema/.snootobuf/deps/reddit/api/metadata/v1/metadata.proto +55 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/account/v1/account.proto +579 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/account/v1/account_relations.proto +43 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/api/metadata/v1/metadata.proto +82 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/blocking/v1/user_blocking_service.proto +221 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree.proto +78 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree_service.proto +189 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree_structure.proto +29 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comments.proto +417 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comments_service.proto +72 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/auth.proto +25 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/features.proto +52 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/lang.proto +16 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/legal.proto +20 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/media.proto +149 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/moderation.proto +197 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/safety.proto +116 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/time.proto +25 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/domains/v1/domains_metadata_service.proto +101 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/grpc_thrift/v1/grpc_thrift_options.proto +34 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/links/v1/links.proto +798 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/links/v1/links_service.proto +186 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/messages/v1/messages.proto +110 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/sensitive/v1/wrappers.proto +51 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit.proto +1202 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_member_relations.proto +85 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_moderator_service.proto +363 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_service.proto +301 -0
- package/schema/.snootobuf/deps/reddit/coreplatform/thing/v0/thing.proto +2869 -0
- package/schema/.snootobuf/deps/reddit/devvit/custom_post/v1/custom_post.proto +15 -0
- package/schema/.snootobuf/deps/reddit/devvit/custom_post/v1/service.proto +11 -0
- package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/context_action.proto +48 -0
- package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/manifest.proto +70 -0
- package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/service.proto +11 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/acknowledge_order_delivery.proto +17 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/checkout.proto +89 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/common.proto +322 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/delete_products.proto +17 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/events.proto +14 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_batch_products.proto +15 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_gold_balances.proto +48 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_order.proto +31 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_orders.proto +26 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_orders_by_user.proto +15 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_payout_info_batch.proto +52 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_products.proto +23 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_user_profiles.proto +28 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/refund_order.proto +17 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/service.proto +49 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/service_data_compliance.proto +20 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/upsert_products.proto +17 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paygatewaypsps/v1/paygatewaypsps.proto +158 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payorders/v1/payments_data_compliance.proto +18 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payorders/v1/payorders.proto +195 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/admin.proto +44 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/ledger.proto +200 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/payments_data_compliance.proto +18 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/paypayments.proto +210 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payproducts/v1/currencies.proto +189 -0
- package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payproducts/v1/payproducts.proto +135 -0
- package/schema/.snootobuf/deps/snooron_sources/text_classification/text_classification.proto +29 -0
- package/schema/.snootobuf/deps/snooron_sources/v2_event/v2_event.proto +3292 -0
- package/schema/.snootobuf/deps/validate/validate.proto +862 -0
- package/schema/devvit/plugin/redditapi/linksandcomments/linksandcomments_msg.proto +3 -0
- package/schema/snootobuf.devenv.lock +444 -388
- package/schema/snootobuf.lock +444 -388
- package/schema/snootobuf.redditapi.lock +444 -388
- package/schema/snootobuf.ts.lock +444 -388
- package/types/devvit/plugin/redditapi/linksandcomments/linksandcomments_msg.d.ts +2 -0
- package/types/devvit/plugin/redditapi/linksandcomments/linksandcomments_msg.d.ts.map +1 -1
- package/types/devvit/plugin/redditapi/linksandcomments/linksandcomments_msg.js +16 -0
- package/types/devvit/plugin/redditapi/linksandcomments/linksandcomments_svc.d.ts +4 -0
- package/types/devvit/plugin/redditapi/linksandcomments/linksandcomments_svc.d.ts.map +1 -1
package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_member_relations.proto
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package reddit.coreplatform.subreddit.v1;
|
4
|
+
|
5
|
+
import "google/protobuf/descriptor.proto";
|
6
|
+
import "google/protobuf/timestamp.proto";
|
7
|
+
|
8
|
+
option go_package = "github.snooguts.net/reddit/thing-api/go/grpc/subreddit/v1;subreddit";
|
9
|
+
option java_multiple_files = true;
|
10
|
+
option java_outer_classname = "SubredditMemberRelationsProto";
|
11
|
+
option java_package = "com.reddit.coreplatform.api.subreddit.v1";
|
12
|
+
|
13
|
+
// This message describes the relationship between a subreddit and an account with permissions to moderate it.
|
14
|
+
message ModeratorRelation {
|
15
|
+
// A message representing the moderator permissions an account has on the moderating subreddit.
|
16
|
+
message Permissions {
|
17
|
+
// Superuser for the subreddit, when true the user has all moderator capabilities.
|
18
|
+
bool all = 1;
|
19
|
+
|
20
|
+
// Manage Users, when true, the moderator can approve submitters and ban and mute users.
|
21
|
+
bool manage_access = 2;
|
22
|
+
|
23
|
+
// Manage Settings, when true, the moderator can manage community settings, appearance, emojis, rules, and AutoMod.
|
24
|
+
bool manage_config = 3;
|
25
|
+
|
26
|
+
// Manage Flair, when true, the moderator can create and manage user and post flair.
|
27
|
+
bool manage_flair = 4;
|
28
|
+
|
29
|
+
// Manage Mail, when true, the moderator can read and respond to mod-mail and mute users.
|
30
|
+
bool manage_mail = 5;
|
31
|
+
|
32
|
+
// Manage Posts and Comments, when true, the moderator can access queues, take action on content,
|
33
|
+
// and manage collections and events.
|
34
|
+
bool manage_posts = 6;
|
35
|
+
|
36
|
+
// Manage Wiki Pages, when true, the moderator can create and manage wiki pages and AutoMod.
|
37
|
+
bool manage_wiki = 7;
|
38
|
+
|
39
|
+
// Manage Chats, when true, the moderator can create and manage chats, set up filters and rate limits, and block domains.
|
40
|
+
bool manage_chat_config = 8;
|
41
|
+
|
42
|
+
// Monitor Chats, when true, the moderator can remove messages, remove users, and lock chats.
|
43
|
+
bool monitor_chat = 9;
|
44
|
+
|
45
|
+
// Manage Channels, when true, a moderator can add, edit and remove subreddit channels.
|
46
|
+
bool manage_channels = 10;
|
47
|
+
|
48
|
+
// Manage Community Chat, when set to true, the moderator can moderate community chat channels.
|
49
|
+
bool manage_community_chat = 11;
|
50
|
+
}
|
51
|
+
|
52
|
+
// The base36 identifier of the subreddit moderator relationship prefixed with rb_.
|
53
|
+
string id = 1;
|
54
|
+
|
55
|
+
// The t5 id of the subreddit that the moderator relation is for.
|
56
|
+
string subreddit_id = 2;
|
57
|
+
|
58
|
+
// The t2 id of the account moderating the subreddit.
|
59
|
+
string account_id = 3;
|
60
|
+
|
61
|
+
// The date the moderator joined the mod team in UTC.
|
62
|
+
google.protobuf.Timestamp join_date = 4;
|
63
|
+
|
64
|
+
// The rank of this moderator vs other moderators. Lower outranks higher.
|
65
|
+
// Ranks across moderators of a subreddit aren't sequential.
|
66
|
+
int64 rank = 5;
|
67
|
+
|
68
|
+
// An set of moderator permission and restrictions.
|
69
|
+
Permissions permissions = 6;
|
70
|
+
}
|
71
|
+
|
72
|
+
// This message describes the relationship between a subreddit and a contributor to the subreddit.
|
73
|
+
message ContributorRelation {
|
74
|
+
// The base36 identifier of the subreddit contributor relationship prefixed with rb_.
|
75
|
+
string id = 1;
|
76
|
+
|
77
|
+
// The t5 id of the subreddit that the account is a contributor for.
|
78
|
+
string subreddit_id = 2;
|
79
|
+
|
80
|
+
// The t2 id of the account contributing to the subreddit.
|
81
|
+
string account_id = 3;
|
82
|
+
|
83
|
+
// The date the account was added as a contributor to the subreddit in UTC.
|
84
|
+
google.protobuf.Timestamp join_date = 4;
|
85
|
+
}
|
package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_moderator_service.proto
ADDED
@@ -0,0 +1,363 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package reddit.coreplatform.subreddit.v1;
|
4
|
+
|
5
|
+
import "reddit/coreplatform/subreddit/v1/subreddit.proto";
|
6
|
+
import "validate/validate.proto";
|
7
|
+
|
8
|
+
option go_package = "github.snooguts.net/reddit/thing-api/go/grpc/subreddit/v1;subreddit";
|
9
|
+
option java_multiple_files = true;
|
10
|
+
option java_outer_classname = "SubredditModeratorServiceProto";
|
11
|
+
option java_package = "com.reddit.coreplatform.api.subreddit.v1";
|
12
|
+
|
13
|
+
// RPC Service for working with Subreddit moderators
|
14
|
+
service SubredditModeratorService {
|
15
|
+
// Retrieve moderated subreddits for a given account
|
16
|
+
rpc GetModeratedSubreddits(GetModeratedSubredditsRequest) returns (GetModeratedSubredditsResponse) {
|
17
|
+
option idempotency_level = NO_SIDE_EFFECTS;
|
18
|
+
}
|
19
|
+
|
20
|
+
// Retrieve moderators for a given subreddit
|
21
|
+
rpc GetModeratorsBySubreddit(GetModeratorsBySubredditRequest) returns (GetModeratorsBySubredditResponse) {
|
22
|
+
option idempotency_level = NO_SIDE_EFFECTS;
|
23
|
+
}
|
24
|
+
|
25
|
+
// Retrieve visible moderators for a given subreddit that filters out any mods on the list of invisible mods
|
26
|
+
// https://github.snooguts.net/reddit/reddit-private/blob/ee159f8e2a9d9235c48001c9dcd8fc32b0628339/production.ini#L1778-L1792
|
27
|
+
rpc GetVisibleModeratorsBySubreddit(GetVisibleModeratorsBySubredditRequest) returns (GetVisibleModeratorsBySubredditResponse) {
|
28
|
+
option idempotency_level = IDEMPOTENT;
|
29
|
+
}
|
30
|
+
|
31
|
+
// Apply a new order of moderators for a given subreddit
|
32
|
+
rpc ReorderModerators(ReorderModeratorsRequest) returns (ReorderModeratorsResponse) {
|
33
|
+
option idempotency_level = IDEMPOTENT;
|
34
|
+
}
|
35
|
+
|
36
|
+
// CreateModerator adds a new user as subreddit moderator.
|
37
|
+
// The moderator has all permissions by default; to add specific permissions, use UpdateModeratorPermissions.
|
38
|
+
// Returns an AlreadyExists error if the moderator relation already exists.
|
39
|
+
//
|
40
|
+
// This method is asynchronous, and ordering is guaranteed by subreddit ID. The status of this operation
|
41
|
+
// can be checked by calling Cloudroutine's PollOperationStatus with the returned operation ID.
|
42
|
+
//
|
43
|
+
// Note: this only creates the relation record itself and does not perform any verification.
|
44
|
+
rpc CreateModerator(CreateModeratorRequest) returns (CreateModeratorResponse) {
|
45
|
+
option idempotency_level = IDEMPOTENT;
|
46
|
+
}
|
47
|
+
|
48
|
+
// DeleteModerator removes a user as subreddit moderator.
|
49
|
+
// Returns a NotFound error if the moderator relation does not exist.
|
50
|
+
//
|
51
|
+
// This method is asynchronous, and ordering is guaranteed by subreddit ID. The status of this operation
|
52
|
+
// can be checked by calling Cloudroutine's PollOperationStatus with the returned operation ID.
|
53
|
+
//
|
54
|
+
// Note: this only removes the relation record itself and does not perform any verification.
|
55
|
+
rpc DeleteModerator(DeleteModeratorRequest) returns (DeleteModeratorResponse) {
|
56
|
+
option idempotency_level = IDEMPOTENT;
|
57
|
+
}
|
58
|
+
|
59
|
+
// UpdateModeratorPermissions restricts a given moderator to the specified moderator permissions.
|
60
|
+
// Returns a NotFound error if the moderator relation does not exist.
|
61
|
+
//
|
62
|
+
// This method is asynchronous, and ordering is guaranteed by subreddit ID. The status of this operation
|
63
|
+
// can be checked by calling Cloudroutine's PollOperationStatus with the returned operation ID.
|
64
|
+
//
|
65
|
+
// Note: this only updates the permissions record itself and does not perform any verification.
|
66
|
+
rpc UpdateModeratorPermissions(UpdateModeratorPermissionsRequest) returns (UpdateModeratorPermissionsResponse) {
|
67
|
+
option idempotency_level = IDEMPOTENT;
|
68
|
+
}
|
69
|
+
|
70
|
+
// CreateModeratorInvite adds a new user as being invited to be a subreddit moderator.
|
71
|
+
// If the invite is accepted, the invite record is deleted and a moderator relation is created in its place.
|
72
|
+
// Returns an AlreadyExists error if the moderator invite relation already exists.
|
73
|
+
//
|
74
|
+
// This method is asynchronous and ordering is guaranteed by subreddit ID. The status of this operation
|
75
|
+
// can be checked by calling Cloudroutine's PollOperationStatus with the returned operation ID.
|
76
|
+
//
|
77
|
+
// Note: this only creates the relation record itself and does not perform any verification or sending out of invites.
|
78
|
+
rpc CreateModeratorInvite(CreateModeratorInviteRequest) returns (CreateModeratorInviteResponse) {
|
79
|
+
option idempotency_level = IDEMPOTENT;
|
80
|
+
}
|
81
|
+
|
82
|
+
// DeleteModeratorInvite removes a user from being invited to be a subreddit moderator.
|
83
|
+
// Returns a NotFound error if no moderator invite relation exists.
|
84
|
+
//
|
85
|
+
// This method is asynchronous, and ordering is guaranteed by subreddit ID. The status of this operation
|
86
|
+
// can be checked by calling Cloudroutine's PollOperationStatus with the returned operator ID.
|
87
|
+
//
|
88
|
+
// Note: this only creates the relation record itself and does not perform any verification.
|
89
|
+
rpc DeleteModeratorInvite(DeleteModeratorInviteRequest) returns (DeleteModeratorInviteResponse) {
|
90
|
+
option idempotency_level = IDEMPOTENT;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
// Request to get moderated subreddits for a given account
|
95
|
+
// The request must be made with a service account edge context or a user edge context matching the provided account.
|
96
|
+
message GetModeratedSubredditsRequest {
|
97
|
+
// Account identifier to request list of moderators for. Not necessary when requesting as a service.
|
98
|
+
// Specified account id should be a valid thing identifier with t2 prefix.
|
99
|
+
string account_id = 1 [(validate.rules).string = {pattern: "^t2_[a-zA-Z0-9]+$"}];
|
100
|
+
|
101
|
+
// Optional flag to hydrate the response subreddits with permissions.
|
102
|
+
bool include_permissions = 2;
|
103
|
+
|
104
|
+
// Cursor for the start index of the result set. When empty, the results start from the first page.
|
105
|
+
// The sort order is descending, so the first page will be the most recently added moderated subreddits.
|
106
|
+
// This API may be updated to allow that sort order to be specified, but the default will remain as descending.
|
107
|
+
string cursor = 3 [(validate.rules).string = {
|
108
|
+
ignore_empty: true,
|
109
|
+
min_len: 1,
|
110
|
+
}];
|
111
|
+
|
112
|
+
// Maximum page size limit (defaults to and capped at 1000).
|
113
|
+
int32 limit = 4 [(validate.rules).int32 = {
|
114
|
+
ignore_empty: true,
|
115
|
+
gte: 1,
|
116
|
+
lte: 1000,
|
117
|
+
}];
|
118
|
+
}
|
119
|
+
|
120
|
+
// Response of moderated subreddits for a given account
|
121
|
+
// If the provided account is not a moderator of any subreddits, including if it is not a valid account,
|
122
|
+
// an empty map will be returned in the response.
|
123
|
+
message GetModeratedSubredditsResponse {
|
124
|
+
// A map of moderated subreddits to permissions for the given account. Permissions will not be hydrated unless requested.
|
125
|
+
map<string, ModeratorPermissions> subreddit_id_to_permissions = 1;
|
126
|
+
|
127
|
+
// The cursor for the next page of results. If empty, then the end of the result set has been reached.
|
128
|
+
// Cursor format is subject to change.
|
129
|
+
string cursor = 2;
|
130
|
+
}
|
131
|
+
|
132
|
+
// Request to get moderators for a given subreddit
|
133
|
+
// If the request is made on behalf of a user, only subreddits viewable by the user will be returned in the response.
|
134
|
+
message GetModeratorsBySubredditRequest {
|
135
|
+
// Account identifier to request list of moderators from. Not necessary when requesting as a service.
|
136
|
+
// Specified account id should be a valid thing identifier with t2 prefix.
|
137
|
+
string account_id = 1 [(validate.rules).string = {pattern: "^t2_[a-zA-Z0-9]+$"}];
|
138
|
+
|
139
|
+
// Subreddit identifier to request list of moderators from.
|
140
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
141
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
142
|
+
|
143
|
+
// Optional flag to hydrate the response moderators with permissions.
|
144
|
+
bool include_permissions = 3;
|
145
|
+
|
146
|
+
// Cursor for the start index of the result set. When empty, the results start from the first page.
|
147
|
+
// The sort order is descending, so the first page will be the most recently added moderators.
|
148
|
+
// This API may be updated to allow that sort order to be specified, but the default will remain as descending.
|
149
|
+
string cursor = 4 [(validate.rules).string = {
|
150
|
+
ignore_empty: true,
|
151
|
+
min_len: 1,
|
152
|
+
}];
|
153
|
+
|
154
|
+
// Maximum page size limit (defaults to and capped at 1000).
|
155
|
+
int32 limit = 5 [(validate.rules).int32 = {
|
156
|
+
ignore_empty: true,
|
157
|
+
gte: 1,
|
158
|
+
lte: 1000,
|
159
|
+
}];
|
160
|
+
}
|
161
|
+
|
162
|
+
// Response of moderators for a given subreddit
|
163
|
+
// If the provided subreddit has no moderators, including if it is not a valid subreddit,
|
164
|
+
// an empty array and map will be returned in the response.
|
165
|
+
message GetModeratorsBySubredditResponse {
|
166
|
+
// A list of moderators for the given subreddit.
|
167
|
+
repeated Moderator moderators = 1;
|
168
|
+
|
169
|
+
// A map of moderator id to permissions for the given subreddit. Every moderator in the original list
|
170
|
+
// will have an entry in this map. Permissions will not be hydrated unless requested.
|
171
|
+
map<string, ModeratorPermissions> moderator_id_to_permissions = 2;
|
172
|
+
|
173
|
+
// The cursor for the next page of results. If empty, then the end of the result set has been reached.
|
174
|
+
// Cursor format is subject to change.
|
175
|
+
string cursor = 3;
|
176
|
+
}
|
177
|
+
|
178
|
+
// Request to get moderators for a given subreddit that filters out any mods on the list of invisible mods
|
179
|
+
// https://github.snooguts.net/reddit/reddit-private/blob/ee159f8e2a9d9235c48001c9dcd8fc32b0628339/production.ini#L1778-L1792
|
180
|
+
//
|
181
|
+
// If the request is made on behalf of a user, only subreddits viewable by the user will be returned in the response.
|
182
|
+
message GetVisibleModeratorsBySubredditRequest {
|
183
|
+
// Account identifier to request list of moderators from. Not necessary when requesting as a service.
|
184
|
+
// Specified account id should be a valid thing identifier with t2 prefix.
|
185
|
+
string account_id = 1 [(validate.rules).string = {
|
186
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
187
|
+
ignore_empty: true,
|
188
|
+
}];
|
189
|
+
|
190
|
+
// Subreddit identifier to request list of moderators from.
|
191
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
192
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
193
|
+
|
194
|
+
// Cursor for the start index of the result set. When empty, the results start from the first page.
|
195
|
+
// The sort order is descending, so the first page will be the most recently added moderators.
|
196
|
+
// This API may be updated to allow that sort order to be specified, but the default will remain as descending.
|
197
|
+
string cursor = 3 [(validate.rules).string = {
|
198
|
+
ignore_empty: true,
|
199
|
+
min_len: 1,
|
200
|
+
}];
|
201
|
+
|
202
|
+
// Maximum page size limit (defaults to and capped at 1000).
|
203
|
+
int32 limit = 4 [(validate.rules).int32 = {
|
204
|
+
ignore_empty: true,
|
205
|
+
gte: 1,
|
206
|
+
lte: 1000,
|
207
|
+
}];
|
208
|
+
}
|
209
|
+
|
210
|
+
// Response of moderators for a given subreddit that filters out any mods on the list invisible mods
|
211
|
+
// https://github.snooguts.net/reddit/reddit-private/blob/ee159f8e2a9d9235c48001c9dcd8fc32b0628339/production.ini#L1778-L1792
|
212
|
+
//
|
213
|
+
// If the provided subreddit has no moderators, including if it is not a valid subreddit,
|
214
|
+
// an empty array will be returned in the response.
|
215
|
+
message GetVisibleModeratorsBySubredditResponse {
|
216
|
+
// A list of moderators for the given subreddit.
|
217
|
+
repeated Moderator moderators = 1;
|
218
|
+
|
219
|
+
// The cursor for the next page of results. If empty, then the end of the result set has been reached.
|
220
|
+
// Cursor format is subject to change.
|
221
|
+
string cursor = 2;
|
222
|
+
}
|
223
|
+
|
224
|
+
// Request to reorder moderators for a given subreddit with a limit of 100 moderators to reorder at a time.
|
225
|
+
// The requester must have sufficient permissions (be a moderator with ALL permissions of the given subreddit)
|
226
|
+
// and can only reorder starting from their position or below in the moderator ranking.
|
227
|
+
message ReorderModeratorsRequest {
|
228
|
+
// Account identifier of the moderator reordering the list of moderators.
|
229
|
+
// Specified account id should be a valid thing identifier with t2 prefix.
|
230
|
+
string account_id = 1 [(validate.rules).string = {pattern: "^t2_[a-zA-Z0-9]+$"}];
|
231
|
+
|
232
|
+
// Subreddit identifier of subreddit to reorder moderators for.
|
233
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
234
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
235
|
+
|
236
|
+
// Existing moderator ranking on the given subreddit and will be validated against.
|
237
|
+
// This must be the full ranking of moderators.
|
238
|
+
// All moderators in the provided list must appear exactly in sequence in the existing moderator list.
|
239
|
+
repeated Moderator existing_mod_ranking = 3 [(validate.rules).repeated = {
|
240
|
+
min_items: 2,
|
241
|
+
max_items: 100
|
242
|
+
}];
|
243
|
+
|
244
|
+
// New moderator ranking to apply for the given subreddit. This must be a permutation of the
|
245
|
+
// existing full ranking of moderators on the request and at the time the request is processed.
|
246
|
+
// The order of moderators is important as it determines which mods are able act on mods below them in the hierarchy.
|
247
|
+
repeated Moderator new_mod_ranking = 4 [(validate.rules).repeated = {
|
248
|
+
min_items: 2,
|
249
|
+
max_items: 100
|
250
|
+
}];
|
251
|
+
}
|
252
|
+
|
253
|
+
// Response of reordering moderators for a given subreddit. An empty response with no error
|
254
|
+
// will be returned on a successful reorder.
|
255
|
+
message ReorderModeratorsResponse {}
|
256
|
+
|
257
|
+
// Request payload for creating a subreddit moderator
|
258
|
+
message CreateModeratorRequest {
|
259
|
+
// The account id of the user we want to add as moderator.
|
260
|
+
// The id should be a valid thing identifier with t2 prefix.
|
261
|
+
string account_id = 1 [(validate.rules).string = {
|
262
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
263
|
+
ignore_empty: true,
|
264
|
+
}];
|
265
|
+
|
266
|
+
// Subreddit identifier requested user will be a moderator of.
|
267
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
268
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
269
|
+
}
|
270
|
+
|
271
|
+
// The response message for creating a subreddit moderator
|
272
|
+
message CreateModeratorResponse {
|
273
|
+
// The operation URI, a unique identifier of the create request that the client can use to track progress.
|
274
|
+
// Calling Cloudroutine's PollOperationStatus endpoint with this URI will return the current status.
|
275
|
+
string operation_uri = 1;
|
276
|
+
}
|
277
|
+
|
278
|
+
// Request payload for removing a subreddit moderator
|
279
|
+
message DeleteModeratorRequest {
|
280
|
+
// The account id of the user we want to remove as moderator.
|
281
|
+
// The id should be a valid thing identifier with t2 prefix.
|
282
|
+
string account_id = 1 [(validate.rules).string = {
|
283
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
284
|
+
ignore_empty: true,
|
285
|
+
}];
|
286
|
+
|
287
|
+
// Subreddit requested user will be removed from.
|
288
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
289
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
290
|
+
}
|
291
|
+
|
292
|
+
// The response message for removing a subreddit moderator
|
293
|
+
message DeleteModeratorResponse {
|
294
|
+
// The operation URI, a unique identifier of the create request that the client can use to track progress.
|
295
|
+
// Calling Cloudroutine's PollOperationStatus endpoint with this URI will return the current status.
|
296
|
+
string operation_uri = 1;
|
297
|
+
}
|
298
|
+
|
299
|
+
// Request payload for updating moderator permissions
|
300
|
+
message UpdateModeratorPermissionsRequest {
|
301
|
+
// The account id of the user we want to update moderator permissions for.
|
302
|
+
// The id should be a valid thing identifier with t2 prefix.
|
303
|
+
string account_id = 1 [(validate.rules).string = {
|
304
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
305
|
+
ignore_empty: true,
|
306
|
+
}];
|
307
|
+
|
308
|
+
// Subreddit requested user will have their moderator permissions updated for.
|
309
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
310
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
311
|
+
|
312
|
+
// Permissions that the user should be granted for the current subreddit.
|
313
|
+
ModeratorPermissions permissions = 3;
|
314
|
+
}
|
315
|
+
|
316
|
+
// The response message for updating moderator permissions
|
317
|
+
message UpdateModeratorPermissionsResponse {
|
318
|
+
// The operation URI, a unique identifier of the create request that the client can use to track progress.
|
319
|
+
// Calling Cloudroutine's PollOperationStatus endpoint with this URI will return the current status.
|
320
|
+
string operation_uri = 1;
|
321
|
+
}
|
322
|
+
|
323
|
+
// Request payload for creating a subreddit moderator invite
|
324
|
+
message CreateModeratorInviteRequest {
|
325
|
+
// The account id of the user we want to invite as moderator.
|
326
|
+
// The id should be a valid thing identifier with t2 prefix.
|
327
|
+
string account_id = 1 [(validate.rules).string = {
|
328
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
329
|
+
ignore_empty: true,
|
330
|
+
}];
|
331
|
+
|
332
|
+
// Subreddit requested user will be invited to be moderator of.
|
333
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
334
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
335
|
+
}
|
336
|
+
|
337
|
+
// The response message for creating a subreddit moderator invite
|
338
|
+
message CreateModeratorInviteResponse {
|
339
|
+
// The operation URI, a unique identifier of the create request that the client can use to track progress.
|
340
|
+
// Calling Cloudroutine's PollOperationStatus endpoint with this URI will return the current status.
|
341
|
+
string operation_uri = 1;
|
342
|
+
}
|
343
|
+
|
344
|
+
// Request payload for removing a subreddit moderator invite
|
345
|
+
message DeleteModeratorInviteRequest {
|
346
|
+
// The account id of the user we want to remove a moderator invite from.
|
347
|
+
// The id should be a valid thing identifier with t2 prefix.
|
348
|
+
string account_id = 1 [(validate.rules).string = {
|
349
|
+
pattern: "^t2_[a-zA-Z0-9]+$",
|
350
|
+
ignore_empty: true,
|
351
|
+
}];
|
352
|
+
|
353
|
+
// Subreddit requested user will have their moderator invite removed from.
|
354
|
+
// Specified subreddit id should be a valid thing identifier with t5 prefix.
|
355
|
+
string subreddit_id = 2 [(validate.rules).string = {pattern: "^t5_[a-zA-Z0-9]+$"}];
|
356
|
+
}
|
357
|
+
|
358
|
+
// The response message for removing a subreddit moderator invite
|
359
|
+
message DeleteModeratorInviteResponse {
|
360
|
+
// The operation URI, a unique identifier of the create request that the client can use to track progress.
|
361
|
+
// Calling Cloudroutine's PollOperationStatus endpoint with this URI will return the current status.
|
362
|
+
string operation_uri = 1;
|
363
|
+
}
|