@devvit/protos 0.11.4 → 0.11.5-next-2024-12-09-1c29dd3cd.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/meta.min.json +7814 -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/dev_portal/app/app.proto +3 -0
  225. package/schema/devvit/dev_portal/app/info/app_info.proto +13 -1
  226. package/schema/devvit/ui/block_kit/v1beta/ui.proto +1 -1
  227. package/schema/devvit/ui/effects/web_view/v1alpha/fullscreen.proto +7 -1
  228. package/schema/snootobuf.devenv.lock +459 -292
  229. package/schema/snootobuf.lock +459 -292
  230. package/schema/snootobuf.redditapi.lock +459 -292
  231. package/schema/snootobuf.ts.lock +459 -293
  232. package/types/devvit/dev_portal/app/app.d.ts +2 -0
  233. package/types/devvit/dev_portal/app/app.d.ts.map +1 -1
  234. package/types/devvit/dev_portal/app/app.js +17 -0
  235. package/types/devvit/dev_portal/app/info/app_info.d.ts +13 -0
  236. package/types/devvit/dev_portal/app/info/app_info.d.ts.map +1 -1
  237. package/types/devvit/dev_portal/app/info/app_info.js +17 -0
  238. package/types/devvit/dev_portal/dev_portal.d.ts +42 -0
  239. package/types/devvit/dev_portal/dev_portal.d.ts.map +1 -1
  240. package/types/devvit/reddit/custom_post/v1alpha/custom_post.d.ts +4 -0
  241. package/types/devvit/reddit/custom_post/v1alpha/custom_post.d.ts.map +1 -1
  242. package/types/devvit/ui/effects/web_view/v1alpha/fullscreen.d.ts +8 -1
  243. package/types/devvit/ui/effects/web_view/v1alpha/fullscreen.d.ts.map +1 -1
  244. package/types/devvit/ui/effects/web_view/v1alpha/fullscreen.js +15 -1
@@ -0,0 +1,183 @@
1
+ // Copyright 2024 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api.expr.conformance.v1alpha1;
18
+
19
+ import "google/api/client.proto";
20
+ import "google/api/expr/v1alpha1/checked.proto";
21
+ import "google/api/expr/v1alpha1/eval.proto";
22
+ import "google/api/expr/v1alpha1/syntax.proto";
23
+ import "google/rpc/status.proto";
24
+
25
+ option cc_enable_arenas = true;
26
+ option go_package = "google.golang.org/genproto/googleapis/api/expr/conformance/v1alpha1;confpb";
27
+ option java_multiple_files = true;
28
+ option java_outer_classname = "ConformanceServiceProto";
29
+ option java_package = "com.google.api.expr.conformance.v1alpha1";
30
+
31
+ // Access a CEL implementation from another process or machine.
32
+ // A CEL implementation is decomposed as a parser, a static checker,
33
+ // and an evaluator. Every CEL implementation is expected to provide
34
+ // a server for this API. The API will be used for conformance testing
35
+ // and other utilities.
36
+ service ConformanceService {
37
+ option (google.api.default_host) = "cel.googleapis.com";
38
+
39
+ // Transforms CEL source text into a parsed representation.
40
+ rpc Parse(ParseRequest) returns (ParseResponse) {
41
+ }
42
+
43
+ // Runs static checks on a parsed CEL representation and return
44
+ // an annotated representation, or a set of issues.
45
+ rpc Check(CheckRequest) returns (CheckResponse) {
46
+ }
47
+
48
+ // Evaluates a parsed or annotation CEL representation given
49
+ // values of external bindings.
50
+ rpc Eval(EvalRequest) returns (EvalResponse) {
51
+ }
52
+ }
53
+
54
+ // Request message for the Parse method.
55
+ message ParseRequest {
56
+ // Required. Source text in CEL syntax.
57
+ string cel_source = 1;
58
+
59
+ // Tag for version of CEL syntax, for future use.
60
+ string syntax_version = 2;
61
+
62
+ // File or resource for source text, used in [SourceInfo][google.api.SourceInfo].
63
+ string source_location = 3;
64
+
65
+ // Prevent macro expansion. See "Macros" in Language Defiinition.
66
+ bool disable_macros = 4;
67
+ }
68
+
69
+ // Response message for the Parse method.
70
+ message ParseResponse {
71
+ // The parsed representation, or unset if parsing failed.
72
+ google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
73
+
74
+ // Any number of issues with [StatusDetails][] as the details.
75
+ repeated google.rpc.Status issues = 2;
76
+ }
77
+
78
+ // Request message for the Check method.
79
+ message CheckRequest {
80
+ // Required. The parsed representation of the CEL program.
81
+ google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
82
+
83
+ // Declarations of types for external variables and functions.
84
+ // Required if program uses external variables or functions
85
+ // not in the default environment.
86
+ repeated google.api.expr.v1alpha1.Decl type_env = 2;
87
+
88
+ // The protocol buffer context. See "Name Resolution" in the
89
+ // Language Definition.
90
+ string container = 3;
91
+
92
+ // If true, use only the declarations in [type_env][google.api.expr.conformance.v1alpha1.CheckRequest.type_env]. If false (default),
93
+ // add declarations for the standard definitions to the type environment. See
94
+ // "Standard Definitions" in the Language Definition.
95
+ bool no_std_env = 4;
96
+ }
97
+
98
+ // Response message for the Check method.
99
+ message CheckResponse {
100
+ // The annotated representation, or unset if checking failed.
101
+ google.api.expr.v1alpha1.CheckedExpr checked_expr = 1;
102
+
103
+ // Any number of issues with [StatusDetails][] as the details.
104
+ repeated google.rpc.Status issues = 2;
105
+ }
106
+
107
+ // Request message for the Eval method.
108
+ message EvalRequest {
109
+ // Required. Either the parsed or annotated representation of the CEL program.
110
+ oneof expr_kind {
111
+ // Evaluate based on the parsed representation.
112
+ google.api.expr.v1alpha1.ParsedExpr parsed_expr = 1;
113
+
114
+ // Evaluate based on the checked representation.
115
+ google.api.expr.v1alpha1.CheckedExpr checked_expr = 2;
116
+ }
117
+
118
+ // Bindings for the external variables. The types SHOULD be compatible
119
+ // with the type environment in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
120
+ map<string, google.api.expr.v1alpha1.ExprValue> bindings = 3;
121
+
122
+ // SHOULD be the same container as used in [CheckRequest][google.api.expr.conformance.v1alpha1.CheckRequest], if checked.
123
+ string container = 4;
124
+ }
125
+
126
+ // Response message for the Eval method.
127
+ message EvalResponse {
128
+ // The execution result, or unset if execution couldn't start.
129
+ google.api.expr.v1alpha1.ExprValue result = 1;
130
+
131
+ // Any number of issues with [StatusDetails][] as the details.
132
+ // Note that CEL execution errors are reified into [ExprValue][].
133
+ // Nevertheless, we'll allow out-of-band issues to be raised,
134
+ // which also makes the replies more regular.
135
+ repeated google.rpc.Status issues = 2;
136
+ }
137
+
138
+ // A specific position in source.
139
+ message SourcePosition {
140
+ // The source location name (e.g. file name).
141
+ string location = 1;
142
+
143
+ // The UTF-8 code unit offset.
144
+ int32 offset = 2;
145
+
146
+ // The 1-based index of the starting line in the source text
147
+ // where the issue occurs, or 0 if unknown.
148
+ int32 line = 3;
149
+
150
+ // The 0-based index of the starting position within the line of source text
151
+ // where the issue occurs. Only meaningful if line is nonzero.
152
+ int32 column = 4;
153
+ }
154
+
155
+ // Warnings or errors in service execution are represented by
156
+ // [google.rpc.Status][google.rpc.Status] messages, with the following message
157
+ // in the details field.
158
+ message IssueDetails {
159
+ // Severities of issues.
160
+ enum Severity {
161
+ // An unspecified severity.
162
+ SEVERITY_UNSPECIFIED = 0;
163
+
164
+ // Deprecation issue for statements and method that may no longer be
165
+ // supported or maintained.
166
+ DEPRECATION = 1;
167
+
168
+ // Warnings such as: unused variables.
169
+ WARNING = 2;
170
+
171
+ // Errors such as: unmatched curly braces or variable redefinition.
172
+ ERROR = 3;
173
+ }
174
+
175
+ // The severity of the issue.
176
+ Severity severity = 1;
177
+
178
+ // Position in the source, if known.
179
+ SourcePosition position = 2;
180
+
181
+ // Expression ID from [Expr][], 0 if unknown.
182
+ int64 id = 3;
183
+ }
@@ -0,0 +1,343 @@
1
+ // Copyright 2024 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api.expr.v1alpha1;
18
+
19
+ import "google/api/expr/v1alpha1/syntax.proto";
20
+ import "google/protobuf/empty.proto";
21
+ import "google/protobuf/struct.proto";
22
+
23
+ option cc_enable_arenas = true;
24
+ option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
25
+ option java_multiple_files = true;
26
+ option java_outer_classname = "DeclProto";
27
+ option java_package = "com.google.api.expr.v1alpha1";
28
+
29
+ // Protos for representing CEL declarations and typed checked expressions.
30
+
31
+ // A CEL expression which has been successfully type checked.
32
+ message CheckedExpr {
33
+ // A map from expression ids to resolved references.
34
+ //
35
+ // The following entries are in this table:
36
+ //
37
+ // - An Ident or Select expression is represented here if it resolves to a
38
+ // declaration. For instance, if `a.b.c` is represented by
39
+ // `select(select(id(a), b), c)`, and `a.b` resolves to a declaration,
40
+ // while `c` is a field selection, then the reference is attached to the
41
+ // nested select expression (but not to the id or or the outer select).
42
+ // In turn, if `a` resolves to a declaration and `b.c` are field selections,
43
+ // the reference is attached to the ident expression.
44
+ // - Every Call expression has an entry here, identifying the function being
45
+ // called.
46
+ // - Every CreateStruct expression for a message has an entry, identifying
47
+ // the message.
48
+ map<int64, Reference> reference_map = 2;
49
+
50
+ // A map from expression ids to types.
51
+ //
52
+ // Every expression node which has a type different than DYN has a mapping
53
+ // here. If an expression has type DYN, it is omitted from this map to save
54
+ // space.
55
+ map<int64, Type> type_map = 3;
56
+
57
+ // The source info derived from input that generated the parsed `expr` and
58
+ // any optimizations made during the type-checking pass.
59
+ SourceInfo source_info = 5;
60
+
61
+ // The expr version indicates the major / minor version number of the `expr`
62
+ // representation.
63
+ //
64
+ // The most common reason for a version change will be to indicate to the CEL
65
+ // runtimes that transformations have been performed on the expr during static
66
+ // analysis. In some cases, this will save the runtime the work of applying
67
+ // the same or similar transformations prior to evaluation.
68
+ string expr_version = 6;
69
+
70
+ // The checked expression. Semantically equivalent to the parsed `expr`, but
71
+ // may have structural differences.
72
+ Expr expr = 4;
73
+ }
74
+
75
+ // Represents a CEL type.
76
+ message Type {
77
+ // List type with typed elements, e.g. `list<example.proto.MyMessage>`.
78
+ message ListType {
79
+ // The element type.
80
+ Type elem_type = 1;
81
+ }
82
+
83
+ // Map type with parameterized key and value types, e.g. `map<string, int>`.
84
+ message MapType {
85
+ // The type of the key.
86
+ Type key_type = 1;
87
+
88
+ // The type of the value.
89
+ Type value_type = 2;
90
+ }
91
+
92
+ // Function type with result and arg types.
93
+ message FunctionType {
94
+ // Result type of the function.
95
+ Type result_type = 1;
96
+
97
+ // Argument types of the function.
98
+ repeated Type arg_types = 2;
99
+ }
100
+
101
+ // Application defined abstract type.
102
+ message AbstractType {
103
+ // The fully qualified name of this abstract type.
104
+ string name = 1;
105
+
106
+ // Parameter types for this abstract type.
107
+ repeated Type parameter_types = 2;
108
+ }
109
+
110
+ // CEL primitive types.
111
+ enum PrimitiveType {
112
+ // Unspecified type.
113
+ PRIMITIVE_TYPE_UNSPECIFIED = 0;
114
+
115
+ // Boolean type.
116
+ BOOL = 1;
117
+
118
+ // Int64 type.
119
+ //
120
+ // Proto-based integer values are widened to int64.
121
+ INT64 = 2;
122
+
123
+ // Uint64 type.
124
+ //
125
+ // Proto-based unsigned integer values are widened to uint64.
126
+ UINT64 = 3;
127
+
128
+ // Double type.
129
+ //
130
+ // Proto-based float values are widened to double values.
131
+ DOUBLE = 4;
132
+
133
+ // String type.
134
+ STRING = 5;
135
+
136
+ // Bytes type.
137
+ BYTES = 6;
138
+ }
139
+
140
+ // Well-known protobuf types treated with first-class support in CEL.
141
+ enum WellKnownType {
142
+ // Unspecified type.
143
+ WELL_KNOWN_TYPE_UNSPECIFIED = 0;
144
+
145
+ // Well-known protobuf.Any type.
146
+ //
147
+ // Any types are a polymorphic message type. During type-checking they are
148
+ // treated like `DYN` types, but at runtime they are resolved to a specific
149
+ // message type specified at evaluation time.
150
+ ANY = 1;
151
+
152
+ // Well-known protobuf.Timestamp type, internally referenced as `timestamp`.
153
+ TIMESTAMP = 2;
154
+
155
+ // Well-known protobuf.Duration type, internally referenced as `duration`.
156
+ DURATION = 3;
157
+ }
158
+
159
+ // The kind of type.
160
+ oneof type_kind {
161
+ // Dynamic type.
162
+ google.protobuf.Empty dyn = 1;
163
+
164
+ // Null value.
165
+ google.protobuf.NullValue null = 2;
166
+
167
+ // Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`.
168
+ PrimitiveType primitive = 3;
169
+
170
+ // Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`.
171
+ PrimitiveType wrapper = 4;
172
+
173
+ // Well-known protobuf type such as `google.protobuf.Timestamp`.
174
+ WellKnownType well_known = 5;
175
+
176
+ // Parameterized list with elements of `list_type`, e.g. `list<timestamp>`.
177
+ ListType list_type = 6;
178
+
179
+ // Parameterized map with typed keys and values.
180
+ MapType map_type = 7;
181
+
182
+ // Function type.
183
+ FunctionType function = 8;
184
+
185
+ // Protocol buffer message type.
186
+ //
187
+ // The `message_type` string specifies the qualified message type name. For
188
+ // example, `google.plus.Profile`.
189
+ string message_type = 9;
190
+
191
+ // Type param type.
192
+ //
193
+ // The `type_param` string specifies the type parameter name, e.g. `list<E>`
194
+ // would be a `list_type` whose element type was a `type_param` type
195
+ // named `E`.
196
+ string type_param = 10;
197
+
198
+ // Type type.
199
+ //
200
+ // The `type` value specifies the target type. e.g. int is type with a
201
+ // target type of `Primitive.INT`.
202
+ Type type = 11;
203
+
204
+ // Error type.
205
+ //
206
+ // During type-checking if an expression is an error, its type is propagated
207
+ // as the `ERROR` type. This permits the type-checker to discover other
208
+ // errors present in the expression.
209
+ google.protobuf.Empty error = 12;
210
+
211
+ // Abstract, application defined type.
212
+ AbstractType abstract_type = 14;
213
+ }
214
+ }
215
+
216
+ // Represents a declaration of a named value or function.
217
+ //
218
+ // A declaration is part of the contract between the expression, the agent
219
+ // evaluating that expression, and the caller requesting evaluation.
220
+ message Decl {
221
+ // Identifier declaration which specifies its type and optional `Expr` value.
222
+ //
223
+ // An identifier without a value is a declaration that must be provided at
224
+ // evaluation time. An identifier with a value should resolve to a constant,
225
+ // but may be used in conjunction with other identifiers bound at evaluation
226
+ // time.
227
+ message IdentDecl {
228
+ // Required. The type of the identifier.
229
+ Type type = 1;
230
+
231
+ // The constant value of the identifier. If not specified, the identifier
232
+ // must be supplied at evaluation time.
233
+ Constant value = 2;
234
+
235
+ // Documentation string for the identifier.
236
+ string doc = 3;
237
+ }
238
+
239
+ // Function declaration specifies one or more overloads which indicate the
240
+ // function's parameter types and return type.
241
+ //
242
+ // Functions have no observable side-effects (there may be side-effects like
243
+ // logging which are not observable from CEL).
244
+ message FunctionDecl {
245
+ // An overload indicates a function's parameter types and return type, and
246
+ // may optionally include a function body described in terms of
247
+ // [Expr][google.api.expr.v1alpha1.Expr] values.
248
+ //
249
+ // Functions overloads are declared in either a function or method
250
+ // call-style. For methods, the `params[0]` is the expected type of the
251
+ // target receiver.
252
+ //
253
+ // Overloads must have non-overlapping argument types after erasure of all
254
+ // parameterized type variables (similar as type erasure in Java).
255
+ message Overload {
256
+ // Required. Globally unique overload name of the function which reflects
257
+ // the function name and argument types.
258
+ //
259
+ // This will be used by a [Reference][google.api.expr.v1alpha1.Reference]
260
+ // to indicate the `overload_id` that was resolved for the function
261
+ // `name`.
262
+ string overload_id = 1;
263
+
264
+ // List of function parameter [Type][google.api.expr.v1alpha1.Type]
265
+ // values.
266
+ //
267
+ // Param types are disjoint after generic type parameters have been
268
+ // replaced with the type `DYN`. Since the `DYN` type is compatible with
269
+ // any other type, this means that if `A` is a type parameter, the
270
+ // function types `int<A>` and `int<int>` are not disjoint. Likewise,
271
+ // `map<string, string>` is not disjoint from `map<K, V>`.
272
+ //
273
+ // When the `result_type` of a function is a generic type param, the
274
+ // type param name also appears as the `type` of on at least one params.
275
+ repeated Type params = 2;
276
+
277
+ // The type param names associated with the function declaration.
278
+ //
279
+ // For example, `function ex<K,V>(K key, map<K, V> map) : V` would yield
280
+ // the type params of `K, V`.
281
+ repeated string type_params = 3;
282
+
283
+ // Required. The result type of the function. For example, the operator
284
+ // `string.isEmpty()` would have `result_type` of `kind: BOOL`.
285
+ Type result_type = 4;
286
+
287
+ // Whether the function is to be used in a method call-style `x.f(...)`
288
+ // or a function call-style `f(x, ...)`.
289
+ //
290
+ // For methods, the first parameter declaration, `params[0]` is the
291
+ // expected type of the target receiver.
292
+ bool is_instance_function = 5;
293
+
294
+ // Documentation string for the overload.
295
+ string doc = 6;
296
+ }
297
+
298
+ // Required. List of function overloads, must contain at least one overload.
299
+ repeated Overload overloads = 1;
300
+ }
301
+
302
+ // The fully qualified name of the declaration.
303
+ //
304
+ // Declarations are organized in containers and this represents the full path
305
+ // to the declaration in its container, as in `google.api.expr.Decl`.
306
+ //
307
+ // Declarations used as
308
+ // [FunctionDecl.Overload][google.api.expr.v1alpha1.Decl.FunctionDecl.Overload]
309
+ // parameters may or may not have a name depending on whether the overload is
310
+ // function declaration or a function definition containing a result
311
+ // [Expr][google.api.expr.v1alpha1.Expr].
312
+ string name = 1;
313
+
314
+ // Required. The declaration kind.
315
+ oneof decl_kind {
316
+ // Identifier declaration.
317
+ IdentDecl ident = 2;
318
+
319
+ // Function declaration.
320
+ FunctionDecl function = 3;
321
+ }
322
+ }
323
+
324
+ // Describes a resolved reference to a declaration.
325
+ message Reference {
326
+ // The fully qualified name of the declaration.
327
+ string name = 1;
328
+
329
+ // For references to functions, this is a list of `Overload.overload_id`
330
+ // values which match according to typing rules.
331
+ //
332
+ // If the list has more than one element, overload resolution among the
333
+ // presented candidates must happen at runtime because of dynamic types. The
334
+ // type checker attempts to narrow down this list as much as possible.
335
+ //
336
+ // Empty if this is not a reference to a
337
+ // [Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl].
338
+ repeated string overload_id = 3;
339
+
340
+ // For references to constants, this may contain the value of the
341
+ // constant if known at compile time.
342
+ Constant value = 4;
343
+ }
@@ -0,0 +1,118 @@
1
+ // Copyright 2024 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api.expr.v1alpha1;
18
+
19
+ import "google/api/expr/v1alpha1/value.proto";
20
+ import "google/rpc/status.proto";
21
+
22
+ option cc_enable_arenas = true;
23
+ option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
24
+ option java_multiple_files = true;
25
+ option java_outer_classname = "EvalProto";
26
+ option java_package = "com.google.api.expr.v1alpha1";
27
+
28
+ // The state of an evaluation.
29
+ //
30
+ // Can represent an inital, partial, or completed state of evaluation.
31
+ message EvalState {
32
+ // A single evalution result.
33
+ message Result {
34
+ // The id of the expression this result if for.
35
+ int64 expr = 1;
36
+
37
+ // The index in `values` of the resulting value.
38
+ int64 value = 2;
39
+ }
40
+
41
+ // The unique values referenced in this message.
42
+ repeated ExprValue values = 1;
43
+
44
+ // An ordered list of results.
45
+ //
46
+ // Tracks the flow of evaluation through the expression.
47
+ // May be sparse.
48
+ repeated Result results = 3;
49
+ }
50
+
51
+ // The value of an evaluated expression.
52
+ message ExprValue {
53
+ // An expression can resolve to a value, error or unknown.
54
+ oneof kind {
55
+ // A concrete value.
56
+ Value value = 1;
57
+
58
+ // The set of errors in the critical path of evalution.
59
+ //
60
+ // Only errors in the critical path are included. For example,
61
+ // `(<error1> || true) && <error2>` will only result in `<error2>`,
62
+ // while `<error1> || <error2>` will result in both `<error1>` and
63
+ // `<error2>`.
64
+ //
65
+ // Errors cause by the presence of other errors are not included in the
66
+ // set. For example `<error1>.foo`, `foo(<error1>)`, and `<error1> + 1` will
67
+ // only result in `<error1>`.
68
+ //
69
+ // Multiple errors *might* be included when evaluation could result
70
+ // in different errors. For example `<error1> + <error2>` and
71
+ // `foo(<error1>, <error2>)` may result in `<error1>`, `<error2>` or both.
72
+ // The exact subset of errors included for this case is unspecified and
73
+ // depends on the implementation details of the evaluator.
74
+ ErrorSet error = 2;
75
+
76
+ // The set of unknowns in the critical path of evaluation.
77
+ //
78
+ // Unknown behaves identically to Error with regards to propagation.
79
+ // Specifically, only unknowns in the critical path are included, unknowns
80
+ // caused by the presence of other unknowns are not included, and multiple
81
+ // unknowns *might* be included included when evaluation could result in
82
+ // different unknowns. For example:
83
+ //
84
+ // (<unknown[1]> || true) && <unknown[2]> -> <unknown[2]>
85
+ // <unknown[1]> || <unknown[2]> -> <unknown[1,2]>
86
+ // <unknown[1]>.foo -> <unknown[1]>
87
+ // foo(<unknown[1]>) -> <unknown[1]>
88
+ // <unknown[1]> + <unknown[2]> -> <unknown[1]> or <unknown[2[>
89
+ //
90
+ // Unknown takes precidence over Error in cases where a `Value` can short
91
+ // circuit the result:
92
+ //
93
+ // <error> || <unknown> -> <unknown>
94
+ // <error> && <unknown> -> <unknown>
95
+ //
96
+ // Errors take precidence in all other cases:
97
+ //
98
+ // <unknown> + <error> -> <error>
99
+ // foo(<unknown>, <error>) -> <error>
100
+ UnknownSet unknown = 3;
101
+ }
102
+ }
103
+
104
+ // A set of errors.
105
+ //
106
+ // The errors included depend on the context. See `ExprValue.error`.
107
+ message ErrorSet {
108
+ // The errors in the set.
109
+ repeated google.rpc.Status errors = 1;
110
+ }
111
+
112
+ // A set of expressions for which the value is unknown.
113
+ //
114
+ // The unknowns included depend on the context. See `ExprValue.unknown`.
115
+ message UnknownSet {
116
+ // The ids of the expressions with unknown values.
117
+ repeated int64 exprs = 1;
118
+ }
@@ -0,0 +1,53 @@
1
+ // Copyright 2024 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api.expr.v1alpha1;
18
+
19
+ import "google/api/expr/v1alpha1/value.proto";
20
+
21
+ option cc_enable_arenas = true;
22
+ option go_package = "google.golang.org/genproto/googleapis/api/expr/v1alpha1;expr";
23
+ option java_multiple_files = true;
24
+ option java_outer_classname = "ExplainProto";
25
+ option java_package = "com.google.api.expr.v1alpha1";
26
+
27
+ // Values of intermediate expressions produced when evaluating expression.
28
+ // Deprecated, use `EvalState` instead.
29
+ message Explain {
30
+ option deprecated = true;
31
+
32
+ // ID and value index of one step.
33
+ message ExprStep {
34
+ // ID of corresponding Expr node.
35
+ int64 id = 1;
36
+
37
+ // Index of the value in the values list.
38
+ int32 value_index = 2;
39
+ }
40
+
41
+ // All of the observed values.
42
+ //
43
+ // The field value_index is an index in the values list.
44
+ // Separating values from steps is needed to remove redundant values.
45
+ repeated Value values = 1;
46
+
47
+ // List of steps.
48
+ //
49
+ // Repeated evaluations of the same expression generate new ExprStep
50
+ // instances. The order of such ExprStep instances matches the order of
51
+ // elements returned by Comprehension.iter_range.
52
+ repeated ExprStep expr_steps = 2;
53
+ }