@devvit/protos 0.11.6 → 0.11.7-next-2025-01-28-641048aff.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. package/meta.min.json +7820 -0
  2. package/package.json +4 -4
  3. package/protos.min.js +2 -0
  4. package/protos.min.js.map +7 -0
  5. package/schema/.snootobuf/deps/buf/validate/expression.proto +92 -0
  6. package/schema/.snootobuf/deps/buf/validate/priv/private.proto +41 -0
  7. package/schema/.snootobuf/deps/buf/validate/validate.proto +4130 -0
  8. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/audit.proto +72 -0
  9. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/auth.proto +49 -0
  10. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/organization.proto +54 -0
  11. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/service.proto +46 -0
  12. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/subscription.proto +72 -0
  13. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/ui.proto +20 -0
  14. package/schema/.snootobuf/deps/devvit/data/api/admin/v1alpha/user.proto +45 -0
  15. package/schema/.snootobuf/deps/devvit/data/api/v1alpha/admin.proto +54 -0
  16. package/schema/.snootobuf/deps/devvit/data/api/v1alpha/delivery.proto +773 -0
  17. package/schema/.snootobuf/deps/devvit/data/api/v1alpha/filter.proto +66 -0
  18. package/schema/.snootobuf/deps/devvit/data/api/v1alpha/firehose.proto +100 -0
  19. package/schema/.snootobuf/deps/devvit/data/api/v1alpha/intake.proto +19 -0
  20. package/schema/.snootobuf/deps/devvit/events/v1alpha/events.proto +446 -0
  21. package/schema/.snootobuf/deps/devvit/gateway/v1alpha/payments.proto +24 -0
  22. package/schema/.snootobuf/deps/devvit/options/options.proto +98 -0
  23. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/commentv2.proto +29 -0
  24. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/flair.proto +25 -0
  25. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/modaction.proto +53 -0
  26. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/modmail.proto +56 -0
  27. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/postv2.proto +107 -0
  28. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/subredditv2.proto +41 -0
  29. package/schema/.snootobuf/deps/devvit/reddit/v2alpha/userv2.proto +23 -0
  30. package/schema/.snootobuf/deps/devvit/triggers/v1alpha/triggers.proto +162 -0
  31. package/schema/.snootobuf/deps/enum/account_gender_category.proto +14 -0
  32. package/schema/.snootobuf/deps/enum/approval_status.proto +15 -0
  33. package/schema/.snootobuf/deps/enum/automated_reporting_level.proto +12 -0
  34. package/schema/.snootobuf/deps/enum/ban_evasion_threshold.proto +13 -0
  35. package/schema/.snootobuf/deps/enum/ban_info_action.proto +12 -0
  36. package/schema/.snootobuf/deps/enum/block_relation_type.proto +11 -0
  37. package/schema/.snootobuf/deps/enum/comment_sort.proto +18 -0
  38. package/schema/.snootobuf/deps/enum/comment_type.proto +11 -0
  39. package/schema/.snootobuf/deps/enum/crowd_control_level.proto +12 -0
  40. package/schema/.snootobuf/deps/enum/discussion_type.proto +10 -0
  41. package/schema/.snootobuf/deps/enum/distinguish_type.proto +14 -0
  42. package/schema/.snootobuf/deps/enum/flair_position.proto +11 -0
  43. package/schema/.snootobuf/deps/enum/hateful_content_threshold.proto +12 -0
  44. package/schema/.snootobuf/deps/enum/link_content_type.proto +11 -0
  45. package/schema/.snootobuf/deps/enum/link_type.proto +11 -0
  46. package/schema/.snootobuf/deps/enum/link_visibility.proto +11 -0
  47. package/schema/.snootobuf/deps/enum/prediction_leaderboard_entry_type.proto +11 -0
  48. package/schema/.snootobuf/deps/enum/promo_layout.proto +11 -0
  49. package/schema/.snootobuf/deps/enum/removed_by_type.proto +18 -0
  50. package/schema/.snootobuf/deps/enum/spam_level.proto +11 -0
  51. package/schema/.snootobuf/deps/enum/subreddit_type.proto +16 -0
  52. package/schema/.snootobuf/deps/enum/verdict.proto +14 -0
  53. package/schema/.snootobuf/deps/enum/vote.proto +12 -0
  54. package/schema/.snootobuf/deps/enum/whitelist_status.proto +17 -0
  55. package/schema/.snootobuf/deps/enum/wiki_edit_mode.proto +12 -0
  56. package/schema/.snootobuf/deps/evaluator/evaluator.proto +203 -0
  57. package/schema/.snootobuf/deps/google/api/annotations.proto +31 -0
  58. package/schema/.snootobuf/deps/google/api/apikeys/v2/apikeys.proto +288 -0
  59. package/schema/.snootobuf/deps/google/api/apikeys/v2/resources.proto +175 -0
  60. package/schema/.snootobuf/deps/google/api/auth.proto +237 -0
  61. package/schema/.snootobuf/deps/google/api/backend.proto +185 -0
  62. package/schema/.snootobuf/deps/google/api/billing.proto +77 -0
  63. package/schema/.snootobuf/deps/google/api/client.proto +431 -0
  64. package/schema/.snootobuf/deps/google/api/cloudquotas/v1/cloudquotas.proto +322 -0
  65. package/schema/.snootobuf/deps/google/api/cloudquotas/v1/resources.proto +315 -0
  66. package/schema/.snootobuf/deps/google/api/config_change.proto +84 -0
  67. package/schema/.snootobuf/deps/google/api/consumer.proto +82 -0
  68. package/schema/.snootobuf/deps/google/api/context.proto +92 -0
  69. package/schema/.snootobuf/deps/google/api/control.proto +41 -0
  70. package/schema/.snootobuf/deps/google/api/distribution.proto +213 -0
  71. package/schema/.snootobuf/deps/google/api/documentation.proto +168 -0
  72. package/schema/.snootobuf/deps/google/api/endpoint.proto +69 -0
  73. package/schema/.snootobuf/deps/google/api/error_reason.proto +589 -0
  74. package/schema/.snootobuf/deps/google/api/expr/conformance/v1alpha1/conformance_service.proto +183 -0
  75. package/schema/.snootobuf/deps/google/api/expr/v1alpha1/checked.proto +343 -0
  76. package/schema/.snootobuf/deps/google/api/expr/v1alpha1/eval.proto +118 -0
  77. package/schema/.snootobuf/deps/google/api/expr/v1alpha1/explain.proto +53 -0
  78. package/schema/.snootobuf/deps/google/api/expr/v1alpha1/syntax.proto +438 -0
  79. package/schema/.snootobuf/deps/google/api/expr/v1alpha1/value.proto +115 -0
  80. package/schema/.snootobuf/deps/google/api/expr/v1beta1/decl.proto +84 -0
  81. package/schema/.snootobuf/deps/google/api/expr/v1beta1/eval.proto +125 -0
  82. package/schema/.snootobuf/deps/google/api/expr/v1beta1/expr.proto +265 -0
  83. package/schema/.snootobuf/deps/google/api/expr/v1beta1/source.proto +62 -0
  84. package/schema/.snootobuf/deps/google/api/expr/v1beta1/value.proto +114 -0
  85. package/schema/.snootobuf/deps/google/api/field_behavior.proto +104 -0
  86. package/schema/.snootobuf/deps/google/api/field_info.proto +106 -0
  87. package/schema/.snootobuf/deps/google/api/http.proto +371 -0
  88. package/schema/.snootobuf/deps/google/api/httpbody.proto +81 -0
  89. package/schema/.snootobuf/deps/google/api/label.proto +48 -0
  90. package/schema/.snootobuf/deps/google/api/launch_stage.proto +72 -0
  91. package/schema/.snootobuf/deps/google/api/log.proto +54 -0
  92. package/schema/.snootobuf/deps/google/api/logging.proto +81 -0
  93. package/schema/.snootobuf/deps/google/api/metric.proto +268 -0
  94. package/schema/.snootobuf/deps/google/api/monitored_resource.proto +130 -0
  95. package/schema/.snootobuf/deps/google/api/monitoring.proto +107 -0
  96. package/schema/.snootobuf/deps/google/api/policy.proto +85 -0
  97. package/schema/.snootobuf/deps/google/api/quota.proto +184 -0
  98. package/schema/.snootobuf/deps/google/api/resource.proto +243 -0
  99. package/schema/.snootobuf/deps/google/api/routing.proto +461 -0
  100. package/schema/.snootobuf/deps/google/api/service.proto +191 -0
  101. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/check_error.proto +124 -0
  102. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/distribution.proto +166 -0
  103. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/http_request.proto +93 -0
  104. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/log_entry.proto +126 -0
  105. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/metric_value.proto +81 -0
  106. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/operation.proto +123 -0
  107. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/quota_controller.proto +245 -0
  108. package/schema/.snootobuf/deps/google/api/servicecontrol/v1/service_controller.proto +260 -0
  109. package/schema/.snootobuf/deps/google/api/servicecontrol/v2/service_controller.proto +196 -0
  110. package/schema/.snootobuf/deps/google/api/servicemanagement/v1/resources.proto +295 -0
  111. package/schema/.snootobuf/deps/google/api/servicemanagement/v1/servicemanager.proto +508 -0
  112. package/schema/.snootobuf/deps/google/api/serviceusage/v1/resources.proto +130 -0
  113. package/schema/.snootobuf/deps/google/api/serviceusage/v1/serviceusage.proto +305 -0
  114. package/schema/.snootobuf/deps/google/api/serviceusage/v1beta1/resources.proto +458 -0
  115. package/schema/.snootobuf/deps/google/api/serviceusage/v1beta1/serviceusage.proto +793 -0
  116. package/schema/.snootobuf/deps/google/api/source_info.proto +31 -0
  117. package/schema/.snootobuf/deps/google/api/system_parameter.proto +96 -0
  118. package/schema/.snootobuf/deps/google/api/usage.proto +96 -0
  119. package/schema/.snootobuf/deps/google/api/visibility.proto +113 -0
  120. package/schema/.snootobuf/deps/google/cloud/extended_operations.proto +150 -0
  121. package/schema/.snootobuf/deps/google/iam/admin/v1/iam.proto +1087 -0
  122. package/schema/.snootobuf/deps/google/iam/v1/iam_policy.proto +145 -0
  123. package/schema/.snootobuf/deps/google/iam/v1/logging/audit_data.proto +34 -0
  124. package/schema/.snootobuf/deps/google/iam/v1/options.proto +41 -0
  125. package/schema/.snootobuf/deps/google/iam/v1/policy.proto +240 -0
  126. package/schema/.snootobuf/deps/google/logging/type/http_request.proto +92 -0
  127. package/schema/.snootobuf/deps/google/logging/type/log_severity.proto +72 -0
  128. package/schema/.snootobuf/deps/google/longrunning/operations.proto +247 -0
  129. package/schema/.snootobuf/deps/google/protobuf/any.proto +158 -0
  130. package/schema/.snootobuf/deps/google/protobuf/api.proto +208 -0
  131. package/schema/.snootobuf/deps/google/protobuf/compiler/plugin.proto +183 -0
  132. package/schema/.snootobuf/deps/google/protobuf/descriptor.proto +921 -0
  133. package/schema/.snootobuf/deps/google/protobuf/duration.proto +116 -0
  134. package/schema/.snootobuf/deps/google/protobuf/empty.proto +51 -0
  135. package/schema/.snootobuf/deps/google/protobuf/field_mask.proto +245 -0
  136. package/schema/.snootobuf/deps/google/protobuf/source_context.proto +48 -0
  137. package/schema/.snootobuf/deps/google/protobuf/struct.proto +95 -0
  138. package/schema/.snootobuf/deps/google/protobuf/timestamp.proto +147 -0
  139. package/schema/.snootobuf/deps/google/protobuf/type.proto +187 -0
  140. package/schema/.snootobuf/deps/google/protobuf/wrappers.proto +123 -0
  141. package/schema/.snootobuf/deps/google/rpc/code.proto +186 -0
  142. package/schema/.snootobuf/deps/google/rpc/context/attribute_context.proto +287 -0
  143. package/schema/.snootobuf/deps/google/rpc/error_details.proto +246 -0
  144. package/schema/.snootobuf/deps/google/rpc/status.proto +47 -0
  145. package/schema/.snootobuf/deps/google/type/calendar_period.proto +57 -0
  146. package/schema/.snootobuf/deps/google/type/color.proto +170 -0
  147. package/schema/.snootobuf/deps/google/type/date.proto +50 -0
  148. package/schema/.snootobuf/deps/google/type/datetime.proto +97 -0
  149. package/schema/.snootobuf/deps/google/type/dayofweek.proto +51 -0
  150. package/schema/.snootobuf/deps/google/type/expr.proto +51 -0
  151. package/schema/.snootobuf/deps/google/type/fraction.proto +34 -0
  152. package/schema/.snootobuf/deps/google/type/latlng.proto +37 -0
  153. package/schema/.snootobuf/deps/google/type/money.proto +43 -0
  154. package/schema/.snootobuf/deps/google/type/month.proto +66 -0
  155. package/schema/.snootobuf/deps/google/type/postal_address.proto +135 -0
  156. package/schema/.snootobuf/deps/google/type/quaternion.proto +95 -0
  157. package/schema/.snootobuf/deps/google/type/timeofday.proto +44 -0
  158. package/schema/.snootobuf/deps/openapi/helper.proto +20 -0
  159. package/schema/.snootobuf/deps/products-api/protos/reddit/xpaymentsplatform/payproducts/v1/currencies.proto +189 -0
  160. package/schema/.snootobuf/deps/products-api/protos/reddit/xpaymentsplatform/payproducts/v1/payproducts.proto +118 -0
  161. package/schema/.snootobuf/deps/reddit/api/metadata/v1/metadata.proto +55 -0
  162. package/schema/.snootobuf/deps/reddit/coreplatform/account/v1/account.proto +579 -0
  163. package/schema/.snootobuf/deps/reddit/coreplatform/account/v1/account_relations.proto +43 -0
  164. package/schema/.snootobuf/deps/reddit/coreplatform/api/metadata/v1/metadata.proto +82 -0
  165. package/schema/.snootobuf/deps/reddit/coreplatform/blocking/v1/user_blocking_service.proto +221 -0
  166. package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree.proto +78 -0
  167. package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree_service.proto +189 -0
  168. package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comment_tree_structure.proto +29 -0
  169. package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comments.proto +417 -0
  170. package/schema/.snootobuf/deps/reddit/coreplatform/comments/v1/comments_service.proto +72 -0
  171. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/auth.proto +25 -0
  172. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/features.proto +52 -0
  173. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/lang.proto +16 -0
  174. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/legal.proto +20 -0
  175. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/media.proto +149 -0
  176. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/moderation.proto +197 -0
  177. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/safety.proto +116 -0
  178. package/schema/.snootobuf/deps/reddit/coreplatform/common/v1/time.proto +25 -0
  179. package/schema/.snootobuf/deps/reddit/coreplatform/domains/v1/domains_metadata_service.proto +101 -0
  180. package/schema/.snootobuf/deps/reddit/coreplatform/grpc_thrift/v1/grpc_thrift_options.proto +34 -0
  181. package/schema/.snootobuf/deps/reddit/coreplatform/links/v1/links.proto +798 -0
  182. package/schema/.snootobuf/deps/reddit/coreplatform/links/v1/links_service.proto +186 -0
  183. package/schema/.snootobuf/deps/reddit/coreplatform/messages/v1/messages.proto +110 -0
  184. package/schema/.snootobuf/deps/reddit/coreplatform/sensitive/v1/wrappers.proto +51 -0
  185. package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit.proto +1202 -0
  186. package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_member_relations.proto +85 -0
  187. package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_moderator_service.proto +363 -0
  188. package/schema/.snootobuf/deps/reddit/coreplatform/subreddit/v1/subreddit_service.proto +301 -0
  189. package/schema/.snootobuf/deps/reddit/coreplatform/thing/v0/thing.proto +2869 -0
  190. package/schema/.snootobuf/deps/reddit/devvit/custom_post/v1/custom_post.proto +15 -0
  191. package/schema/.snootobuf/deps/reddit/devvit/custom_post/v1/service.proto +11 -0
  192. package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/context_action.proto +48 -0
  193. package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/manifest.proto +70 -0
  194. package/schema/.snootobuf/deps/reddit/devvit/subreddit/v1/service.proto +11 -0
  195. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/acknowledge_order_delivery.proto +17 -0
  196. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/checkout.proto +89 -0
  197. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/common.proto +322 -0
  198. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/delete_products.proto +17 -0
  199. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/events.proto +14 -0
  200. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_batch_products.proto +15 -0
  201. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_gold_balances.proto +48 -0
  202. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_order.proto +31 -0
  203. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_orders.proto +26 -0
  204. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_orders_by_user.proto +15 -0
  205. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_payout_info_batch.proto +52 -0
  206. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_products.proto +23 -0
  207. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/get_user_profiles.proto +28 -0
  208. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/refund_order.proto +17 -0
  209. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/service.proto +49 -0
  210. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/service_data_compliance.proto +20 -0
  211. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payapi/v1/upsert_products.proto +17 -0
  212. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paygatewaypsps/v1/paygatewaypsps.proto +158 -0
  213. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payorders/v1/payments_data_compliance.proto +18 -0
  214. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payorders/v1/payorders.proto +195 -0
  215. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/admin.proto +44 -0
  216. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/ledger.proto +200 -0
  217. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/payments_data_compliance.proto +18 -0
  218. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/paypayments/v1/paypayments.proto +210 -0
  219. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payproducts/v1/currencies.proto +189 -0
  220. package/schema/.snootobuf/deps/reddit/xpaymentsplatform/payproducts/v1/payproducts.proto +135 -0
  221. package/schema/.snootobuf/deps/snooron_sources/text_classification/text_classification.proto +29 -0
  222. package/schema/.snootobuf/deps/snooron_sources/v2_event/v2_event.proto +3292 -0
  223. package/schema/.snootobuf/deps/validate/validate.proto +862 -0
  224. package/schema/devvit/plugin/buildpack/buildpack_common.proto +6 -1
  225. package/schema/snootobuf.devenv.lock +210 -102
  226. package/schema/snootobuf.lock +210 -102
  227. package/schema/snootobuf.redditapi.lock +210 -102
  228. package/schema/snootobuf.ts.lock +210 -102
  229. package/types/devvit/dev_portal/dev_portal.d.ts +2 -0
  230. package/types/devvit/dev_portal/dev_portal.d.ts.map +1 -1
  231. package/types/devvit/plugin/builder/builder.d.ts +4 -0
  232. package/types/devvit/plugin/builder/builder.d.ts.map +1 -1
  233. package/types/devvit/plugin/buildpack/buildpack.d.ts +8 -0
  234. package/types/devvit/plugin/buildpack/buildpack.d.ts.map +1 -1
  235. package/types/devvit/plugin/buildpack/buildpack_common.d.ts +3 -0
  236. package/types/devvit/plugin/buildpack/buildpack_common.d.ts.map +1 -1
  237. package/types/devvit/plugin/buildpack/buildpack_common.js +37 -1
  238. package/types/devvit/plugin/linker/linker.d.ts +2 -0
  239. package/types/devvit/plugin/linker/linker.d.ts.map +1 -1
  240. package/types/devvit/plugin/linker/resolver.d.ts +2 -0
  241. package/types/devvit/plugin/linker/resolver.d.ts.map +1 -1
@@ -0,0 +1,921 @@
1
+ // Protocol Buffers - Google's data interchange format
2
+ // Copyright 2008 Google Inc. All rights reserved.
3
+ // https://developers.google.com/protocol-buffers/
4
+ //
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are
7
+ // met:
8
+ //
9
+ // * Redistributions of source code must retain the above copyright
10
+ // notice, this list of conditions and the following disclaimer.
11
+ // * Redistributions in binary form must reproduce the above
12
+ // copyright notice, this list of conditions and the following disclaimer
13
+ // in the documentation and/or other materials provided with the
14
+ // distribution.
15
+ // * Neither the name of Google Inc. nor the names of its
16
+ // contributors may be used to endorse or promote products derived from
17
+ // this software without specific prior written permission.
18
+ //
19
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ // Author: kenton@google.com (Kenton Varda)
32
+ // Based on original Protocol Buffers design by
33
+ // Sanjay Ghemawat, Jeff Dean, and others.
34
+ //
35
+ // The messages in this file describe the definitions found in .proto files.
36
+ // A valid .proto file can be translated directly to a FileDescriptorProto
37
+ // without any other information (e.g. without reading its imports).
38
+
39
+
40
+ syntax = "proto2";
41
+
42
+ package google.protobuf;
43
+
44
+ option go_package = "google.golang.org/protobuf/types/descriptorpb";
45
+ option java_package = "com.google.protobuf";
46
+ option java_outer_classname = "DescriptorProtos";
47
+ option csharp_namespace = "Google.Protobuf.Reflection";
48
+ option objc_class_prefix = "GPB";
49
+ option cc_enable_arenas = true;
50
+
51
+ // descriptor.proto must be optimized for speed because reflection-based
52
+ // algorithms don't work during bootstrapping.
53
+ option optimize_for = SPEED;
54
+
55
+ // The protocol compiler can output a FileDescriptorSet containing the .proto
56
+ // files it parses.
57
+ message FileDescriptorSet {
58
+ repeated FileDescriptorProto file = 1;
59
+ }
60
+
61
+ // Describes a complete .proto file.
62
+ message FileDescriptorProto {
63
+ optional string name = 1; // file name, relative to root of source tree
64
+ optional string package = 2; // e.g. "foo", "foo.bar", etc.
65
+
66
+ // Names of files imported by this file.
67
+ repeated string dependency = 3;
68
+ // Indexes of the public imported files in the dependency list above.
69
+ repeated int32 public_dependency = 10;
70
+ // Indexes of the weak imported files in the dependency list.
71
+ // For Google-internal migration only. Do not use.
72
+ repeated int32 weak_dependency = 11;
73
+
74
+ // All top-level definitions in this file.
75
+ repeated DescriptorProto message_type = 4;
76
+ repeated EnumDescriptorProto enum_type = 5;
77
+ repeated ServiceDescriptorProto service = 6;
78
+ repeated FieldDescriptorProto extension = 7;
79
+
80
+ optional FileOptions options = 8;
81
+
82
+ // This field contains optional information about the original source code.
83
+ // You may safely remove this entire field without harming runtime
84
+ // functionality of the descriptors -- the information is needed only by
85
+ // development tools.
86
+ optional SourceCodeInfo source_code_info = 9;
87
+
88
+ // The syntax of the proto file.
89
+ // The supported values are "proto2" and "proto3".
90
+ optional string syntax = 12;
91
+ }
92
+
93
+ // Describes a message type.
94
+ message DescriptorProto {
95
+ optional string name = 1;
96
+
97
+ repeated FieldDescriptorProto field = 2;
98
+ repeated FieldDescriptorProto extension = 6;
99
+
100
+ repeated DescriptorProto nested_type = 3;
101
+ repeated EnumDescriptorProto enum_type = 4;
102
+
103
+ message ExtensionRange {
104
+ optional int32 start = 1; // Inclusive.
105
+ optional int32 end = 2; // Exclusive.
106
+
107
+ optional ExtensionRangeOptions options = 3;
108
+ }
109
+ repeated ExtensionRange extension_range = 5;
110
+
111
+ repeated OneofDescriptorProto oneof_decl = 8;
112
+
113
+ optional MessageOptions options = 7;
114
+
115
+ // Range of reserved tag numbers. Reserved tag numbers may not be used by
116
+ // fields or extension ranges in the same message. Reserved ranges may
117
+ // not overlap.
118
+ message ReservedRange {
119
+ optional int32 start = 1; // Inclusive.
120
+ optional int32 end = 2; // Exclusive.
121
+ }
122
+ repeated ReservedRange reserved_range = 9;
123
+ // Reserved field names, which may not be used by fields in the same message.
124
+ // A given name may only be reserved once.
125
+ repeated string reserved_name = 10;
126
+ }
127
+
128
+ message ExtensionRangeOptions {
129
+ // The parser stores options it doesn't recognize here. See above.
130
+ repeated UninterpretedOption uninterpreted_option = 999;
131
+
132
+
133
+ // Clients can define custom options in extensions of this message. See above.
134
+ extensions 1000 to max;
135
+ }
136
+
137
+ // Describes a field within a message.
138
+ message FieldDescriptorProto {
139
+ enum Type {
140
+ // 0 is reserved for errors.
141
+ // Order is weird for historical reasons.
142
+ TYPE_DOUBLE = 1;
143
+ TYPE_FLOAT = 2;
144
+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
145
+ // negative values are likely.
146
+ TYPE_INT64 = 3;
147
+ TYPE_UINT64 = 4;
148
+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
149
+ // negative values are likely.
150
+ TYPE_INT32 = 5;
151
+ TYPE_FIXED64 = 6;
152
+ TYPE_FIXED32 = 7;
153
+ TYPE_BOOL = 8;
154
+ TYPE_STRING = 9;
155
+ // Tag-delimited aggregate.
156
+ // Group type is deprecated and not supported in proto3. However, Proto3
157
+ // implementations should still be able to parse the group wire format and
158
+ // treat group fields as unknown fields.
159
+ TYPE_GROUP = 10;
160
+ TYPE_MESSAGE = 11; // Length-delimited aggregate.
161
+
162
+ // New in version 2.
163
+ TYPE_BYTES = 12;
164
+ TYPE_UINT32 = 13;
165
+ TYPE_ENUM = 14;
166
+ TYPE_SFIXED32 = 15;
167
+ TYPE_SFIXED64 = 16;
168
+ TYPE_SINT32 = 17; // Uses ZigZag encoding.
169
+ TYPE_SINT64 = 18; // Uses ZigZag encoding.
170
+ }
171
+
172
+ enum Label {
173
+ // 0 is reserved for errors
174
+ LABEL_OPTIONAL = 1;
175
+ LABEL_REQUIRED = 2;
176
+ LABEL_REPEATED = 3;
177
+ }
178
+
179
+ optional string name = 1;
180
+ optional int32 number = 3;
181
+ optional Label label = 4;
182
+
183
+ // If type_name is set, this need not be set. If both this and type_name
184
+ // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
185
+ optional Type type = 5;
186
+
187
+ // For message and enum types, this is the name of the type. If the name
188
+ // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
189
+ // rules are used to find the type (i.e. first the nested types within this
190
+ // message are searched, then within the parent, on up to the root
191
+ // namespace).
192
+ optional string type_name = 6;
193
+
194
+ // For extensions, this is the name of the type being extended. It is
195
+ // resolved in the same manner as type_name.
196
+ optional string extendee = 2;
197
+
198
+ // For numeric types, contains the original text representation of the value.
199
+ // For booleans, "true" or "false".
200
+ // For strings, contains the default text contents (not escaped in any way).
201
+ // For bytes, contains the C escaped value. All bytes >= 128 are escaped.
202
+ optional string default_value = 7;
203
+
204
+ // If set, gives the index of a oneof in the containing type's oneof_decl
205
+ // list. This field is a member of that oneof.
206
+ optional int32 oneof_index = 9;
207
+
208
+ // JSON name of this field. The value is set by protocol compiler. If the
209
+ // user has set a "json_name" option on this field, that option's value
210
+ // will be used. Otherwise, it's deduced from the field's name by converting
211
+ // it to camelCase.
212
+ optional string json_name = 10;
213
+
214
+ optional FieldOptions options = 8;
215
+
216
+ // If true, this is a proto3 "optional". When a proto3 field is optional, it
217
+ // tracks presence regardless of field type.
218
+ //
219
+ // When proto3_optional is true, this field must be belong to a oneof to
220
+ // signal to old proto3 clients that presence is tracked for this field. This
221
+ // oneof is known as a "synthetic" oneof, and this field must be its sole
222
+ // member (each proto3 optional field gets its own synthetic oneof). Synthetic
223
+ // oneofs exist in the descriptor only, and do not generate any API. Synthetic
224
+ // oneofs must be ordered after all "real" oneofs.
225
+ //
226
+ // For message fields, proto3_optional doesn't create any semantic change,
227
+ // since non-repeated message fields always track presence. However it still
228
+ // indicates the semantic detail of whether the user wrote "optional" or not.
229
+ // This can be useful for round-tripping the .proto file. For consistency we
230
+ // give message fields a synthetic oneof also, even though it is not required
231
+ // to track presence. This is especially important because the parser can't
232
+ // tell if a field is a message or an enum, so it must always create a
233
+ // synthetic oneof.
234
+ //
235
+ // Proto2 optional fields do not set this flag, because they already indicate
236
+ // optional with `LABEL_OPTIONAL`.
237
+ optional bool proto3_optional = 17;
238
+ }
239
+
240
+ // Describes a oneof.
241
+ message OneofDescriptorProto {
242
+ optional string name = 1;
243
+ optional OneofOptions options = 2;
244
+ }
245
+
246
+ // Describes an enum type.
247
+ message EnumDescriptorProto {
248
+ optional string name = 1;
249
+
250
+ repeated EnumValueDescriptorProto value = 2;
251
+
252
+ optional EnumOptions options = 3;
253
+
254
+ // Range of reserved numeric values. Reserved values may not be used by
255
+ // entries in the same enum. Reserved ranges may not overlap.
256
+ //
257
+ // Note that this is distinct from DescriptorProto.ReservedRange in that it
258
+ // is inclusive such that it can appropriately represent the entire int32
259
+ // domain.
260
+ message EnumReservedRange {
261
+ optional int32 start = 1; // Inclusive.
262
+ optional int32 end = 2; // Inclusive.
263
+ }
264
+
265
+ // Range of reserved numeric values. Reserved numeric values may not be used
266
+ // by enum values in the same enum declaration. Reserved ranges may not
267
+ // overlap.
268
+ repeated EnumReservedRange reserved_range = 4;
269
+
270
+ // Reserved enum value names, which may not be reused. A given name may only
271
+ // be reserved once.
272
+ repeated string reserved_name = 5;
273
+ }
274
+
275
+ // Describes a value within an enum.
276
+ message EnumValueDescriptorProto {
277
+ optional string name = 1;
278
+ optional int32 number = 2;
279
+
280
+ optional EnumValueOptions options = 3;
281
+ }
282
+
283
+ // Describes a service.
284
+ message ServiceDescriptorProto {
285
+ optional string name = 1;
286
+ repeated MethodDescriptorProto method = 2;
287
+
288
+ optional ServiceOptions options = 3;
289
+ }
290
+
291
+ // Describes a method of a service.
292
+ message MethodDescriptorProto {
293
+ optional string name = 1;
294
+
295
+ // Input and output type names. These are resolved in the same way as
296
+ // FieldDescriptorProto.type_name, but must refer to a message type.
297
+ optional string input_type = 2;
298
+ optional string output_type = 3;
299
+
300
+ optional MethodOptions options = 4;
301
+
302
+ // Identifies if client streams multiple client messages
303
+ optional bool client_streaming = 5 [default = false];
304
+ // Identifies if server streams multiple server messages
305
+ optional bool server_streaming = 6 [default = false];
306
+ }
307
+
308
+
309
+ // ===================================================================
310
+ // Options
311
+
312
+ // Each of the definitions above may have "options" attached. These are
313
+ // just annotations which may cause code to be generated slightly differently
314
+ // or may contain hints for code that manipulates protocol messages.
315
+ //
316
+ // Clients may define custom options as extensions of the *Options messages.
317
+ // These extensions may not yet be known at parsing time, so the parser cannot
318
+ // store the values in them. Instead it stores them in a field in the *Options
319
+ // message called uninterpreted_option. This field must have the same name
320
+ // across all *Options messages. We then use this field to populate the
321
+ // extensions when we build a descriptor, at which point all protos have been
322
+ // parsed and so all extensions are known.
323
+ //
324
+ // Extension numbers for custom options may be chosen as follows:
325
+ // * For options which will only be used within a single application or
326
+ // organization, or for experimental options, use field numbers 50000
327
+ // through 99999. It is up to you to ensure that you do not use the
328
+ // same number for multiple options.
329
+ // * For options which will be published and used publicly by multiple
330
+ // independent entities, e-mail protobuf-global-extension-registry@google.com
331
+ // to reserve extension numbers. Simply provide your project name (e.g.
332
+ // Objective-C plugin) and your project website (if available) -- there's no
333
+ // need to explain how you intend to use them. Usually you only need one
334
+ // extension number. You can declare multiple options with only one extension
335
+ // number by putting them in a sub-message. See the Custom Options section of
336
+ // the docs for examples:
337
+ // https://developers.google.com/protocol-buffers/docs/proto#options
338
+ // If this turns out to be popular, a web service will be set up
339
+ // to automatically assign option numbers.
340
+
341
+ message FileOptions {
342
+
343
+ // Sets the Java package where classes generated from this .proto will be
344
+ // placed. By default, the proto package is used, but this is often
345
+ // inappropriate because proto packages do not normally start with backwards
346
+ // domain names.
347
+ optional string java_package = 1;
348
+
349
+
350
+ // Controls the name of the wrapper Java class generated for the .proto file.
351
+ // That class will always contain the .proto file's getDescriptor() method as
352
+ // well as any top-level extensions defined in the .proto file.
353
+ // If java_multiple_files is disabled, then all the other classes from the
354
+ // .proto file will be nested inside the single wrapper outer class.
355
+ optional string java_outer_classname = 8;
356
+
357
+ // If enabled, then the Java code generator will generate a separate .java
358
+ // file for each top-level message, enum, and service defined in the .proto
359
+ // file. Thus, these types will *not* be nested inside the wrapper class
360
+ // named by java_outer_classname. However, the wrapper class will still be
361
+ // generated to contain the file's getDescriptor() method as well as any
362
+ // top-level extensions defined in the file.
363
+ optional bool java_multiple_files = 10 [default = false];
364
+
365
+ // This option does nothing.
366
+ optional bool java_generate_equals_and_hash = 20 [deprecated=true];
367
+
368
+ // If set true, then the Java2 code generator will generate code that
369
+ // throws an exception whenever an attempt is made to assign a non-UTF-8
370
+ // byte sequence to a string field.
371
+ // Message reflection will do the same.
372
+ // However, an extension field still accepts non-UTF-8 byte sequences.
373
+ // This option has no effect on when used with the lite runtime.
374
+ optional bool java_string_check_utf8 = 27 [default = false];
375
+
376
+
377
+ // Generated classes can be optimized for speed or code size.
378
+ enum OptimizeMode {
379
+ SPEED = 1; // Generate complete code for parsing, serialization,
380
+ // etc.
381
+ CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
382
+ LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
383
+ }
384
+ optional OptimizeMode optimize_for = 9 [default = SPEED];
385
+
386
+ // Sets the Go package where structs generated from this .proto will be
387
+ // placed. If omitted, the Go package will be derived from the following:
388
+ // - The basename of the package import path, if provided.
389
+ // - Otherwise, the package statement in the .proto file, if present.
390
+ // - Otherwise, the basename of the .proto file, without extension.
391
+ optional string go_package = 11;
392
+
393
+
394
+
395
+
396
+ // Should generic services be generated in each language? "Generic" services
397
+ // are not specific to any particular RPC system. They are generated by the
398
+ // main code generators in each language (without additional plugins).
399
+ // Generic services were the only kind of service generation supported by
400
+ // early versions of google.protobuf.
401
+ //
402
+ // Generic services are now considered deprecated in favor of using plugins
403
+ // that generate code specific to your particular RPC system. Therefore,
404
+ // these default to false. Old code which depends on generic services should
405
+ // explicitly set them to true.
406
+ optional bool cc_generic_services = 16 [default = false];
407
+ optional bool java_generic_services = 17 [default = false];
408
+ optional bool py_generic_services = 18 [default = false];
409
+ optional bool php_generic_services = 42 [default = false];
410
+
411
+ // Is this file deprecated?
412
+ // Depending on the target platform, this can emit Deprecated annotations
413
+ // for everything in the file, or it will be completely ignored; in the very
414
+ // least, this is a formalization for deprecating files.
415
+ optional bool deprecated = 23 [default = false];
416
+
417
+ // Enables the use of arenas for the proto messages in this file. This applies
418
+ // only to generated classes for C++.
419
+ optional bool cc_enable_arenas = 31 [default = true];
420
+
421
+
422
+ // Sets the objective c class prefix which is prepended to all objective c
423
+ // generated classes from this .proto. There is no default.
424
+ optional string objc_class_prefix = 36;
425
+
426
+ // Namespace for generated classes; defaults to the package.
427
+ optional string csharp_namespace = 37;
428
+
429
+ // By default Swift generators will take the proto package and CamelCase it
430
+ // replacing '.' with underscore and use that to prefix the types/symbols
431
+ // defined. When this options is provided, they will use this value instead
432
+ // to prefix the types/symbols defined.
433
+ optional string swift_prefix = 39;
434
+
435
+ // Sets the php class prefix which is prepended to all php generated classes
436
+ // from this .proto. Default is empty.
437
+ optional string php_class_prefix = 40;
438
+
439
+ // Use this option to change the namespace of php generated classes. Default
440
+ // is empty. When this option is empty, the package name will be used for
441
+ // determining the namespace.
442
+ optional string php_namespace = 41;
443
+
444
+ // Use this option to change the namespace of php generated metadata classes.
445
+ // Default is empty. When this option is empty, the proto file name will be
446
+ // used for determining the namespace.
447
+ optional string php_metadata_namespace = 44;
448
+
449
+ // Use this option to change the package of ruby generated classes. Default
450
+ // is empty. When this option is not set, the package name will be used for
451
+ // determining the ruby package.
452
+ optional string ruby_package = 45;
453
+
454
+
455
+ // The parser stores options it doesn't recognize here.
456
+ // See the documentation for the "Options" section above.
457
+ repeated UninterpretedOption uninterpreted_option = 999;
458
+
459
+ // Clients can define custom options in extensions of this message.
460
+ // See the documentation for the "Options" section above.
461
+ extensions 1000 to max;
462
+
463
+ reserved 38;
464
+ }
465
+
466
+ message MessageOptions {
467
+ // Set true to use the old proto1 MessageSet wire format for extensions.
468
+ // This is provided for backwards-compatibility with the MessageSet wire
469
+ // format. You should not use this for any other reason: It's less
470
+ // efficient, has fewer features, and is more complicated.
471
+ //
472
+ // The message must be defined exactly as follows:
473
+ // message Foo {
474
+ // option message_set_wire_format = true;
475
+ // extensions 4 to max;
476
+ // }
477
+ // Note that the message cannot have any defined fields; MessageSets only
478
+ // have extensions.
479
+ //
480
+ // All extensions of your type must be singular messages; e.g. they cannot
481
+ // be int32s, enums, or repeated messages.
482
+ //
483
+ // Because this is an option, the above two restrictions are not enforced by
484
+ // the protocol compiler.
485
+ optional bool message_set_wire_format = 1 [default = false];
486
+
487
+ // Disables the generation of the standard "descriptor()" accessor, which can
488
+ // conflict with a field of the same name. This is meant to make migration
489
+ // from proto1 easier; new code should avoid fields named "descriptor".
490
+ optional bool no_standard_descriptor_accessor = 2 [default = false];
491
+
492
+ // Is this message deprecated?
493
+ // Depending on the target platform, this can emit Deprecated annotations
494
+ // for the message, or it will be completely ignored; in the very least,
495
+ // this is a formalization for deprecating messages.
496
+ optional bool deprecated = 3 [default = false];
497
+
498
+ reserved 4, 5, 6;
499
+
500
+ // Whether the message is an automatically generated map entry type for the
501
+ // maps field.
502
+ //
503
+ // For maps fields:
504
+ // map<KeyType, ValueType> map_field = 1;
505
+ // The parsed descriptor looks like:
506
+ // message MapFieldEntry {
507
+ // option map_entry = true;
508
+ // optional KeyType key = 1;
509
+ // optional ValueType value = 2;
510
+ // }
511
+ // repeated MapFieldEntry map_field = 1;
512
+ //
513
+ // Implementations may choose not to generate the map_entry=true message, but
514
+ // use a native map in the target language to hold the keys and values.
515
+ // The reflection APIs in such implementations still need to work as
516
+ // if the field is a repeated message field.
517
+ //
518
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
519
+ // instead. The option should only be implicitly set by the proto compiler
520
+ // parser.
521
+ optional bool map_entry = 7;
522
+
523
+ reserved 8; // javalite_serializable
524
+ reserved 9; // javanano_as_lite
525
+
526
+
527
+ // The parser stores options it doesn't recognize here. See above.
528
+ repeated UninterpretedOption uninterpreted_option = 999;
529
+
530
+ // Clients can define custom options in extensions of this message. See above.
531
+ extensions 1000 to max;
532
+ }
533
+
534
+ message FieldOptions {
535
+ // The ctype option instructs the C++ code generator to use a different
536
+ // representation of the field than it normally would. See the specific
537
+ // options below. This option is not yet implemented in the open source
538
+ // release -- sorry, we'll try to include it in a future version!
539
+ optional CType ctype = 1 [default = STRING];
540
+ enum CType {
541
+ // Default mode.
542
+ STRING = 0;
543
+
544
+ CORD = 1;
545
+
546
+ STRING_PIECE = 2;
547
+ }
548
+ // The packed option can be enabled for repeated primitive fields to enable
549
+ // a more efficient representation on the wire. Rather than repeatedly
550
+ // writing the tag and type for each element, the entire array is encoded as
551
+ // a single length-delimited blob. In proto3, only explicit setting it to
552
+ // false will avoid using packed encoding.
553
+ optional bool packed = 2;
554
+
555
+ // The jstype option determines the JavaScript type used for values of the
556
+ // field. The option is permitted only for 64 bit integral and fixed types
557
+ // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
558
+ // is represented as JavaScript string, which avoids loss of precision that
559
+ // can happen when a large value is converted to a floating point JavaScript.
560
+ // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
561
+ // use the JavaScript "number" type. The behavior of the default option
562
+ // JS_NORMAL is implementation dependent.
563
+ //
564
+ // This option is an enum to permit additional types to be added, e.g.
565
+ // goog.math.Integer.
566
+ optional JSType jstype = 6 [default = JS_NORMAL];
567
+ enum JSType {
568
+ // Use the default type.
569
+ JS_NORMAL = 0;
570
+
571
+ // Use JavaScript strings.
572
+ JS_STRING = 1;
573
+
574
+ // Use JavaScript numbers.
575
+ JS_NUMBER = 2;
576
+ }
577
+
578
+ // Should this field be parsed lazily? Lazy applies only to message-type
579
+ // fields. It means that when the outer message is initially parsed, the
580
+ // inner message's contents will not be parsed but instead stored in encoded
581
+ // form. The inner message will actually be parsed when it is first accessed.
582
+ //
583
+ // This is only a hint. Implementations are free to choose whether to use
584
+ // eager or lazy parsing regardless of the value of this option. However,
585
+ // setting this option true suggests that the protocol author believes that
586
+ // using lazy parsing on this field is worth the additional bookkeeping
587
+ // overhead typically needed to implement it.
588
+ //
589
+ // This option does not affect the public interface of any generated code;
590
+ // all method signatures remain the same. Furthermore, thread-safety of the
591
+ // interface is not affected by this option; const methods remain safe to
592
+ // call from multiple threads concurrently, while non-const methods continue
593
+ // to require exclusive access.
594
+ //
595
+ //
596
+ // Note that implementations may choose not to check required fields within
597
+ // a lazy sub-message. That is, calling IsInitialized() on the outer message
598
+ // may return true even if the inner message has missing required fields.
599
+ // This is necessary because otherwise the inner message would have to be
600
+ // parsed in order to perform the check, defeating the purpose of lazy
601
+ // parsing. An implementation which chooses not to check required fields
602
+ // must be consistent about it. That is, for any particular sub-message, the
603
+ // implementation must either *always* check its required fields, or *never*
604
+ // check its required fields, regardless of whether or not the message has
605
+ // been parsed.
606
+ //
607
+ // As of 2021, lazy does no correctness checks on the byte stream during
608
+ // parsing. This may lead to crashes if and when an invalid byte stream is
609
+ // finally parsed upon access.
610
+ //
611
+ // TODO(b/211906113): Enable validation on lazy fields.
612
+ optional bool lazy = 5 [default = false];
613
+
614
+ // unverified_lazy does no correctness checks on the byte stream. This should
615
+ // only be used where lazy with verification is prohibitive for performance
616
+ // reasons.
617
+ optional bool unverified_lazy = 15 [default = false];
618
+
619
+ // Is this field deprecated?
620
+ // Depending on the target platform, this can emit Deprecated annotations
621
+ // for accessors, or it will be completely ignored; in the very least, this
622
+ // is a formalization for deprecating fields.
623
+ optional bool deprecated = 3 [default = false];
624
+
625
+ // For Google-internal migration only. Do not use.
626
+ optional bool weak = 10 [default = false];
627
+
628
+
629
+ // The parser stores options it doesn't recognize here. See above.
630
+ repeated UninterpretedOption uninterpreted_option = 999;
631
+
632
+ // Clients can define custom options in extensions of this message. See above.
633
+ extensions 1000 to max;
634
+
635
+ reserved 4; // removed jtype
636
+ }
637
+
638
+ message OneofOptions {
639
+ // The parser stores options it doesn't recognize here. See above.
640
+ repeated UninterpretedOption uninterpreted_option = 999;
641
+
642
+ // Clients can define custom options in extensions of this message. See above.
643
+ extensions 1000 to max;
644
+ }
645
+
646
+ message EnumOptions {
647
+
648
+ // Set this option to true to allow mapping different tag names to the same
649
+ // value.
650
+ optional bool allow_alias = 2;
651
+
652
+ // Is this enum deprecated?
653
+ // Depending on the target platform, this can emit Deprecated annotations
654
+ // for the enum, or it will be completely ignored; in the very least, this
655
+ // is a formalization for deprecating enums.
656
+ optional bool deprecated = 3 [default = false];
657
+
658
+ reserved 5; // javanano_as_lite
659
+
660
+ // The parser stores options it doesn't recognize here. See above.
661
+ repeated UninterpretedOption uninterpreted_option = 999;
662
+
663
+ // Clients can define custom options in extensions of this message. See above.
664
+ extensions 1000 to max;
665
+ }
666
+
667
+ message EnumValueOptions {
668
+ // Is this enum value deprecated?
669
+ // Depending on the target platform, this can emit Deprecated annotations
670
+ // for the enum value, or it will be completely ignored; in the very least,
671
+ // this is a formalization for deprecating enum values.
672
+ optional bool deprecated = 1 [default = false];
673
+
674
+ // The parser stores options it doesn't recognize here. See above.
675
+ repeated UninterpretedOption uninterpreted_option = 999;
676
+
677
+ // Clients can define custom options in extensions of this message. See above.
678
+ extensions 1000 to max;
679
+ }
680
+
681
+ message ServiceOptions {
682
+
683
+ // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
684
+ // framework. We apologize for hoarding these numbers to ourselves, but
685
+ // we were already using them long before we decided to release Protocol
686
+ // Buffers.
687
+
688
+ // Is this service deprecated?
689
+ // Depending on the target platform, this can emit Deprecated annotations
690
+ // for the service, or it will be completely ignored; in the very least,
691
+ // this is a formalization for deprecating services.
692
+ optional bool deprecated = 33 [default = false];
693
+
694
+ // The parser stores options it doesn't recognize here. See above.
695
+ repeated UninterpretedOption uninterpreted_option = 999;
696
+
697
+ // Clients can define custom options in extensions of this message. See above.
698
+ extensions 1000 to max;
699
+ }
700
+
701
+ message MethodOptions {
702
+
703
+ // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
704
+ // framework. We apologize for hoarding these numbers to ourselves, but
705
+ // we were already using them long before we decided to release Protocol
706
+ // Buffers.
707
+
708
+ // Is this method deprecated?
709
+ // Depending on the target platform, this can emit Deprecated annotations
710
+ // for the method, or it will be completely ignored; in the very least,
711
+ // this is a formalization for deprecating methods.
712
+ optional bool deprecated = 33 [default = false];
713
+
714
+ // Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
715
+ // or neither? HTTP based RPC implementation may choose GET verb for safe
716
+ // methods, and PUT verb for idempotent methods instead of the default POST.
717
+ enum IdempotencyLevel {
718
+ IDEMPOTENCY_UNKNOWN = 0;
719
+ NO_SIDE_EFFECTS = 1; // implies idempotent
720
+ IDEMPOTENT = 2; // idempotent, but may have side effects
721
+ }
722
+ optional IdempotencyLevel idempotency_level = 34
723
+ [default = IDEMPOTENCY_UNKNOWN];
724
+
725
+ // The parser stores options it doesn't recognize here. See above.
726
+ repeated UninterpretedOption uninterpreted_option = 999;
727
+
728
+ // Clients can define custom options in extensions of this message. See above.
729
+ extensions 1000 to max;
730
+ }
731
+
732
+
733
+ // A message representing a option the parser does not recognize. This only
734
+ // appears in options protos created by the compiler::Parser class.
735
+ // DescriptorPool resolves these when building Descriptor objects. Therefore,
736
+ // options protos in descriptor objects (e.g. returned by Descriptor::options(),
737
+ // or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
738
+ // in them.
739
+ message UninterpretedOption {
740
+ // The name of the uninterpreted option. Each string represents a segment in
741
+ // a dot-separated name. is_extension is true iff a segment represents an
742
+ // extension (denoted with parentheses in options specs in .proto files).
743
+ // E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
744
+ // "foo.(bar.baz).moo".
745
+ message NamePart {
746
+ required string name_part = 1;
747
+ required bool is_extension = 2;
748
+ }
749
+ repeated NamePart name = 2;
750
+
751
+ // The value of the uninterpreted option, in whatever type the tokenizer
752
+ // identified it as during parsing. Exactly one of these should be set.
753
+ optional string identifier_value = 3;
754
+ optional uint64 positive_int_value = 4;
755
+ optional int64 negative_int_value = 5;
756
+ optional double double_value = 6;
757
+ optional bytes string_value = 7;
758
+ optional string aggregate_value = 8;
759
+ }
760
+
761
+ // ===================================================================
762
+ // Optional source code info
763
+
764
+ // Encapsulates information about the original source file from which a
765
+ // FileDescriptorProto was generated.
766
+ message SourceCodeInfo {
767
+ // A Location identifies a piece of source code in a .proto file which
768
+ // corresponds to a particular definition. This information is intended
769
+ // to be useful to IDEs, code indexers, documentation generators, and similar
770
+ // tools.
771
+ //
772
+ // For example, say we have a file like:
773
+ // message Foo {
774
+ // optional string foo = 1;
775
+ // }
776
+ // Let's look at just the field definition:
777
+ // optional string foo = 1;
778
+ // ^ ^^ ^^ ^ ^^^
779
+ // a bc de f ghi
780
+ // We have the following locations:
781
+ // span path represents
782
+ // [a,i) [ 4, 0, 2, 0 ] The whole field definition.
783
+ // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
784
+ // [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
785
+ // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
786
+ // [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
787
+ //
788
+ // Notes:
789
+ // - A location may refer to a repeated field itself (i.e. not to any
790
+ // particular index within it). This is used whenever a set of elements are
791
+ // logically enclosed in a single code segment. For example, an entire
792
+ // extend block (possibly containing multiple extension definitions) will
793
+ // have an outer location whose path refers to the "extensions" repeated
794
+ // field without an index.
795
+ // - Multiple locations may have the same path. This happens when a single
796
+ // logical declaration is spread out across multiple places. The most
797
+ // obvious example is the "extend" block again -- there may be multiple
798
+ // extend blocks in the same scope, each of which will have the same path.
799
+ // - A location's span is not always a subset of its parent's span. For
800
+ // example, the "extendee" of an extension declaration appears at the
801
+ // beginning of the "extend" block and is shared by all extensions within
802
+ // the block.
803
+ // - Just because a location's span is a subset of some other location's span
804
+ // does not mean that it is a descendant. For example, a "group" defines
805
+ // both a type and a field in a single declaration. Thus, the locations
806
+ // corresponding to the type and field and their components will overlap.
807
+ // - Code which tries to interpret locations should probably be designed to
808
+ // ignore those that it doesn't understand, as more types of locations could
809
+ // be recorded in the future.
810
+ repeated Location location = 1;
811
+ message Location {
812
+ // Identifies which part of the FileDescriptorProto was defined at this
813
+ // location.
814
+ //
815
+ // Each element is a field number or an index. They form a path from
816
+ // the root FileDescriptorProto to the place where the definition occurs.
817
+ // For example, this path:
818
+ // [ 4, 3, 2, 7, 1 ]
819
+ // refers to:
820
+ // file.message_type(3) // 4, 3
821
+ // .field(7) // 2, 7
822
+ // .name() // 1
823
+ // This is because FileDescriptorProto.message_type has field number 4:
824
+ // repeated DescriptorProto message_type = 4;
825
+ // and DescriptorProto.field has field number 2:
826
+ // repeated FieldDescriptorProto field = 2;
827
+ // and FieldDescriptorProto.name has field number 1:
828
+ // optional string name = 1;
829
+ //
830
+ // Thus, the above path gives the location of a field name. If we removed
831
+ // the last element:
832
+ // [ 4, 3, 2, 7 ]
833
+ // this path refers to the whole field declaration (from the beginning
834
+ // of the label to the terminating semicolon).
835
+ repeated int32 path = 1 [packed = true];
836
+
837
+ // Always has exactly three or four elements: start line, start column,
838
+ // end line (optional, otherwise assumed same as start line), end column.
839
+ // These are packed into a single field for efficiency. Note that line
840
+ // and column numbers are zero-based -- typically you will want to add
841
+ // 1 to each before displaying to a user.
842
+ repeated int32 span = 2 [packed = true];
843
+
844
+ // If this SourceCodeInfo represents a complete declaration, these are any
845
+ // comments appearing before and after the declaration which appear to be
846
+ // attached to the declaration.
847
+ //
848
+ // A series of line comments appearing on consecutive lines, with no other
849
+ // tokens appearing on those lines, will be treated as a single comment.
850
+ //
851
+ // leading_detached_comments will keep paragraphs of comments that appear
852
+ // before (but not connected to) the current element. Each paragraph,
853
+ // separated by empty lines, will be one comment element in the repeated
854
+ // field.
855
+ //
856
+ // Only the comment content is provided; comment markers (e.g. //) are
857
+ // stripped out. For block comments, leading whitespace and an asterisk
858
+ // will be stripped from the beginning of each line other than the first.
859
+ // Newlines are included in the output.
860
+ //
861
+ // Examples:
862
+ //
863
+ // optional int32 foo = 1; // Comment attached to foo.
864
+ // // Comment attached to bar.
865
+ // optional int32 bar = 2;
866
+ //
867
+ // optional string baz = 3;
868
+ // // Comment attached to baz.
869
+ // // Another line attached to baz.
870
+ //
871
+ // // Comment attached to moo.
872
+ // //
873
+ // // Another line attached to moo.
874
+ // optional double moo = 4;
875
+ //
876
+ // // Detached comment for corge. This is not leading or trailing comments
877
+ // // to moo or corge because there are blank lines separating it from
878
+ // // both.
879
+ //
880
+ // // Detached comment for corge paragraph 2.
881
+ //
882
+ // optional string corge = 5;
883
+ // /* Block comment attached
884
+ // * to corge. Leading asterisks
885
+ // * will be removed. */
886
+ // /* Block comment attached to
887
+ // * grault. */
888
+ // optional int32 grault = 6;
889
+ //
890
+ // // ignored detached comments.
891
+ optional string leading_comments = 3;
892
+ optional string trailing_comments = 4;
893
+ repeated string leading_detached_comments = 6;
894
+ }
895
+ }
896
+
897
+ // Describes the relationship between generated code and its original source
898
+ // file. A GeneratedCodeInfo message is associated with only one generated
899
+ // source file, but may contain references to different source .proto files.
900
+ message GeneratedCodeInfo {
901
+ // An Annotation connects some span of text in generated code to an element
902
+ // of its generating .proto file.
903
+ repeated Annotation annotation = 1;
904
+ message Annotation {
905
+ // Identifies the element in the original source .proto file. This field
906
+ // is formatted the same as SourceCodeInfo.Location.path.
907
+ repeated int32 path = 1 [packed = true];
908
+
909
+ // Identifies the filesystem path to the original source .proto.
910
+ optional string source_file = 2;
911
+
912
+ // Identifies the starting offset in bytes in the generated code
913
+ // that relates to the identified object.
914
+ optional int32 begin = 3;
915
+
916
+ // Identifies the ending offset in bytes in the generated code that
917
+ // relates to the identified offset. The end offset should be one past
918
+ // the last relevant byte (so the length of the text = end - begin).
919
+ optional int32 end = 4;
920
+ }
921
+ }