@devvit/protos 0.11.7 → 0.11.8-next-2025-02-10-4d44fb2af.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) 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
@@ -0,0 +1,237 @@
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;
18
+
19
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
20
+ option java_multiple_files = true;
21
+ option java_outer_classname = "AuthProto";
22
+ option java_package = "com.google.api";
23
+ option objc_class_prefix = "GAPI";
24
+
25
+ // `Authentication` defines the authentication configuration for API methods
26
+ // provided by an API service.
27
+ //
28
+ // Example:
29
+ //
30
+ // name: calendar.googleapis.com
31
+ // authentication:
32
+ // providers:
33
+ // - id: google_calendar_auth
34
+ // jwks_uri: https://www.googleapis.com/oauth2/v1/certs
35
+ // issuer: https://securetoken.google.com
36
+ // rules:
37
+ // - selector: "*"
38
+ // requirements:
39
+ // provider_id: google_calendar_auth
40
+ // - selector: google.calendar.Delegate
41
+ // oauth:
42
+ // canonical_scopes: https://www.googleapis.com/auth/calendar.read
43
+ message Authentication {
44
+ // A list of authentication rules that apply to individual API methods.
45
+ //
46
+ // **NOTE:** All service configuration rules follow "last one wins" order.
47
+ repeated AuthenticationRule rules = 3;
48
+
49
+ // Defines a set of authentication providers that a service supports.
50
+ repeated AuthProvider providers = 4;
51
+ }
52
+
53
+ // Authentication rules for the service.
54
+ //
55
+ // By default, if a method has any authentication requirements, every request
56
+ // must include a valid credential matching one of the requirements.
57
+ // It's an error to include more than one kind of credential in a single
58
+ // request.
59
+ //
60
+ // If a method doesn't have any auth requirements, request credentials will be
61
+ // ignored.
62
+ message AuthenticationRule {
63
+ // Selects the methods to which this rule applies.
64
+ //
65
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax
66
+ // details.
67
+ string selector = 1;
68
+
69
+ // The requirements for OAuth credentials.
70
+ OAuthRequirements oauth = 2;
71
+
72
+ // If true, the service accepts API keys without any other credential.
73
+ // This flag only applies to HTTP and gRPC requests.
74
+ bool allow_without_credential = 5;
75
+
76
+ // Requirements for additional authentication providers.
77
+ repeated AuthRequirement requirements = 7;
78
+ }
79
+
80
+ // Specifies a location to extract JWT from an API request.
81
+ message JwtLocation {
82
+ oneof in {
83
+ // Specifies HTTP header name to extract JWT token.
84
+ string header = 1;
85
+
86
+ // Specifies URL query parameter name to extract JWT token.
87
+ string query = 2;
88
+
89
+ // Specifies cookie name to extract JWT token.
90
+ string cookie = 4;
91
+ }
92
+
93
+ // The value prefix. The value format is "value_prefix{token}"
94
+ // Only applies to "in" header type. Must be empty for "in" query type.
95
+ // If not empty, the header value has to match (case sensitive) this prefix.
96
+ // If not matched, JWT will not be extracted. If matched, JWT will be
97
+ // extracted after the prefix is removed.
98
+ //
99
+ // For example, for "Authorization: Bearer {JWT}",
100
+ // value_prefix="Bearer " with a space at the end.
101
+ string value_prefix = 3;
102
+ }
103
+
104
+ // Configuration for an authentication provider, including support for
105
+ // [JSON Web Token
106
+ // (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
107
+ message AuthProvider {
108
+ // The unique identifier of the auth provider. It will be referred to by
109
+ // `AuthRequirement.provider_id`.
110
+ //
111
+ // Example: "bookstore_auth".
112
+ string id = 1;
113
+
114
+ // Identifies the principal that issued the JWT. See
115
+ // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
116
+ // Usually a URL or an email address.
117
+ //
118
+ // Example: https://securetoken.google.com
119
+ // Example: 1234567-compute@developer.gserviceaccount.com
120
+ string issuer = 2;
121
+
122
+ // URL of the provider's public key set to validate signature of the JWT. See
123
+ // [OpenID
124
+ // Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
125
+ // Optional if the key set document:
126
+ // - can be retrieved from
127
+ // [OpenID
128
+ // Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html)
129
+ // of the issuer.
130
+ // - can be inferred from the email domain of the issuer (e.g. a Google
131
+ // service account).
132
+ //
133
+ // Example: https://www.googleapis.com/oauth2/v1/certs
134
+ string jwks_uri = 3;
135
+
136
+ // The list of JWT
137
+ // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
138
+ // that are allowed to access. A JWT containing any of these audiences will
139
+ // be accepted. When this setting is absent, JWTs with audiences:
140
+ // - "https://[service.name]/[google.protobuf.Api.name]"
141
+ // - "https://[service.name]/"
142
+ // will be accepted.
143
+ // For example, if no audiences are in the setting, LibraryService API will
144
+ // accept JWTs with the following audiences:
145
+ // -
146
+ // https://library-example.googleapis.com/google.example.library.v1.LibraryService
147
+ // - https://library-example.googleapis.com/
148
+ //
149
+ // Example:
150
+ //
151
+ // audiences: bookstore_android.apps.googleusercontent.com,
152
+ // bookstore_web.apps.googleusercontent.com
153
+ string audiences = 4;
154
+
155
+ // Redirect URL if JWT token is required but not present or is expired.
156
+ // Implement authorizationUrl of securityDefinitions in OpenAPI spec.
157
+ string authorization_url = 5;
158
+
159
+ // Defines the locations to extract the JWT. For now it is only used by the
160
+ // Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations]
161
+ // (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations)
162
+ //
163
+ // JWT locations can be one of HTTP headers, URL query parameters or
164
+ // cookies. The rule is that the first match wins.
165
+ //
166
+ // If not specified, default to use following 3 locations:
167
+ // 1) Authorization: Bearer
168
+ // 2) x-goog-iap-jwt-assertion
169
+ // 3) access_token query parameter
170
+ //
171
+ // Default locations can be specified as followings:
172
+ // jwt_locations:
173
+ // - header: Authorization
174
+ // value_prefix: "Bearer "
175
+ // - header: x-goog-iap-jwt-assertion
176
+ // - query: access_token
177
+ repeated JwtLocation jwt_locations = 6;
178
+ }
179
+
180
+ // OAuth scopes are a way to define data and permissions on data. For example,
181
+ // there are scopes defined for "Read-only access to Google Calendar" and
182
+ // "Access to Cloud Platform". Users can consent to a scope for an application,
183
+ // giving it permission to access that data on their behalf.
184
+ //
185
+ // OAuth scope specifications should be fairly coarse grained; a user will need
186
+ // to see and understand the text description of what your scope means.
187
+ //
188
+ // In most cases: use one or at most two OAuth scopes for an entire family of
189
+ // products. If your product has multiple APIs, you should probably be sharing
190
+ // the OAuth scope across all of those APIs.
191
+ //
192
+ // When you need finer grained OAuth consent screens: talk with your product
193
+ // management about how developers will use them in practice.
194
+ //
195
+ // Please note that even though each of the canonical scopes is enough for a
196
+ // request to be accepted and passed to the backend, a request can still fail
197
+ // due to the backend requiring additional scopes or permissions.
198
+ message OAuthRequirements {
199
+ // The list of publicly documented OAuth scopes that are allowed access. An
200
+ // OAuth token containing any of these scopes will be accepted.
201
+ //
202
+ // Example:
203
+ //
204
+ // canonical_scopes: https://www.googleapis.com/auth/calendar,
205
+ // https://www.googleapis.com/auth/calendar.read
206
+ string canonical_scopes = 1;
207
+ }
208
+
209
+ // User-defined authentication requirements, including support for
210
+ // [JSON Web Token
211
+ // (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
212
+ message AuthRequirement {
213
+ // [id][google.api.AuthProvider.id] from authentication provider.
214
+ //
215
+ // Example:
216
+ //
217
+ // provider_id: bookstore_auth
218
+ string provider_id = 1;
219
+
220
+ // NOTE: This will be deprecated soon, once AuthProvider.audiences is
221
+ // implemented and accepted in all the runtime components.
222
+ //
223
+ // The list of JWT
224
+ // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
225
+ // that are allowed to access. A JWT containing any of these audiences will
226
+ // be accepted. When this setting is absent, only JWTs with audience
227
+ // "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
228
+ // will be accepted. For example, if no audiences are in the setting,
229
+ // LibraryService API will only accept JWTs with the following audience
230
+ // "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
231
+ //
232
+ // Example:
233
+ //
234
+ // audiences: bookstore_android.apps.googleusercontent.com,
235
+ // bookstore_web.apps.googleusercontent.com
236
+ string audiences = 2;
237
+ }
@@ -0,0 +1,185 @@
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;
18
+
19
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
20
+ option java_multiple_files = true;
21
+ option java_outer_classname = "BackendProto";
22
+ option java_package = "com.google.api";
23
+ option objc_class_prefix = "GAPI";
24
+
25
+ // `Backend` defines the backend configuration for a service.
26
+ message Backend {
27
+ // A list of API backend rules that apply to individual API methods.
28
+ //
29
+ // **NOTE:** All service configuration rules follow "last one wins" order.
30
+ repeated BackendRule rules = 1;
31
+ }
32
+
33
+ // A backend rule provides configuration for an individual API element.
34
+ message BackendRule {
35
+ // Path Translation specifies how to combine the backend address with the
36
+ // request path in order to produce the appropriate forwarding URL for the
37
+ // request.
38
+ //
39
+ // Path Translation is applicable only to HTTP-based backends. Backends which
40
+ // do not accept requests over HTTP/HTTPS should leave `path_translation`
41
+ // unspecified.
42
+ enum PathTranslation {
43
+ PATH_TRANSLATION_UNSPECIFIED = 0;
44
+
45
+ // Use the backend address as-is, with no modification to the path. If the
46
+ // URL pattern contains variables, the variable names and values will be
47
+ // appended to the query string. If a query string parameter and a URL
48
+ // pattern variable have the same name, this may result in duplicate keys in
49
+ // the query string.
50
+ //
51
+ // # Examples
52
+ //
53
+ // Given the following operation config:
54
+ //
55
+ // Method path: /api/company/{cid}/user/{uid}
56
+ // Backend address: https://example.cloudfunctions.net/getUser
57
+ //
58
+ // Requests to the following request paths will call the backend at the
59
+ // translated path:
60
+ //
61
+ // Request path: /api/company/widgetworks/user/johndoe
62
+ // Translated:
63
+ // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
64
+ //
65
+ // Request path: /api/company/widgetworks/user/johndoe?timezone=EST
66
+ // Translated:
67
+ // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
68
+ CONSTANT_ADDRESS = 1;
69
+
70
+ // The request path will be appended to the backend address.
71
+ //
72
+ // # Examples
73
+ //
74
+ // Given the following operation config:
75
+ //
76
+ // Method path: /api/company/{cid}/user/{uid}
77
+ // Backend address: https://example.appspot.com
78
+ //
79
+ // Requests to the following request paths will call the backend at the
80
+ // translated path:
81
+ //
82
+ // Request path: /api/company/widgetworks/user/johndoe
83
+ // Translated:
84
+ // https://example.appspot.com/api/company/widgetworks/user/johndoe
85
+ //
86
+ // Request path: /api/company/widgetworks/user/johndoe?timezone=EST
87
+ // Translated:
88
+ // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
89
+ APPEND_PATH_TO_ADDRESS = 2;
90
+ }
91
+
92
+ // Selects the methods to which this rule applies.
93
+ //
94
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax
95
+ // details.
96
+ string selector = 1;
97
+
98
+ // The address of the API backend.
99
+ //
100
+ // The scheme is used to determine the backend protocol and security.
101
+ // The following schemes are accepted:
102
+ //
103
+ // SCHEME PROTOCOL SECURITY
104
+ // http:// HTTP None
105
+ // https:// HTTP TLS
106
+ // grpc:// gRPC None
107
+ // grpcs:// gRPC TLS
108
+ //
109
+ // It is recommended to explicitly include a scheme. Leaving out the scheme
110
+ // may cause constrasting behaviors across platforms.
111
+ //
112
+ // If the port is unspecified, the default is:
113
+ // - 80 for schemes without TLS
114
+ // - 443 for schemes with TLS
115
+ //
116
+ // For HTTP backends, use [protocol][google.api.BackendRule.protocol]
117
+ // to specify the protocol version.
118
+ string address = 2;
119
+
120
+ // The number of seconds to wait for a response from a request. The default
121
+ // varies based on the request protocol and deployment environment.
122
+ double deadline = 3;
123
+
124
+ // Deprecated, do not use.
125
+ double min_deadline = 4 [deprecated = true];
126
+
127
+ // The number of seconds to wait for the completion of a long running
128
+ // operation. The default is no deadline.
129
+ double operation_deadline = 5;
130
+
131
+ PathTranslation path_translation = 6;
132
+
133
+ // Authentication settings used by the backend.
134
+ //
135
+ // These are typically used to provide service management functionality to
136
+ // a backend served on a publicly-routable URL. The `authentication`
137
+ // details should match the authentication behavior used by the backend.
138
+ //
139
+ // For example, specifying `jwt_audience` implies that the backend expects
140
+ // authentication via a JWT.
141
+ //
142
+ // When authentication is unspecified, the resulting behavior is the same
143
+ // as `disable_auth` set to `true`.
144
+ //
145
+ // Refer to https://developers.google.com/identity/protocols/OpenIDConnect for
146
+ // JWT ID token.
147
+ oneof authentication {
148
+ // The JWT audience is used when generating a JWT ID token for the backend.
149
+ // This ID token will be added in the HTTP "authorization" header, and sent
150
+ // to the backend.
151
+ string jwt_audience = 7;
152
+
153
+ // When disable_auth is true, a JWT ID token won't be generated and the
154
+ // original "Authorization" HTTP header will be preserved. If the header is
155
+ // used to carry the original token and is expected by the backend, this
156
+ // field must be set to true to preserve the header.
157
+ bool disable_auth = 8;
158
+ }
159
+
160
+ // The protocol used for sending a request to the backend.
161
+ // The supported values are "http/1.1" and "h2".
162
+ //
163
+ // The default value is inferred from the scheme in the
164
+ // [address][google.api.BackendRule.address] field:
165
+ //
166
+ // SCHEME PROTOCOL
167
+ // http:// http/1.1
168
+ // https:// http/1.1
169
+ // grpc:// h2
170
+ // grpcs:// h2
171
+ //
172
+ // For secure HTTP backends (https://) that support HTTP/2, set this field
173
+ // to "h2" for improved performance.
174
+ //
175
+ // Configuring this field to non-default values is only supported for secure
176
+ // HTTP backends. This field will be ignored for all other backends.
177
+ //
178
+ // See
179
+ // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
180
+ // for more details on the supported values.
181
+ string protocol = 9;
182
+
183
+ // The map between request protocol and the backend address.
184
+ map<string, BackendRule> overrides_by_request_protocol = 10;
185
+ }
@@ -0,0 +1,77 @@
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;
18
+
19
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
20
+ option java_multiple_files = true;
21
+ option java_outer_classname = "BillingProto";
22
+ option java_package = "com.google.api";
23
+ option objc_class_prefix = "GAPI";
24
+
25
+ // Billing related configuration of the service.
26
+ //
27
+ // The following example shows how to configure monitored resources and metrics
28
+ // for billing, `consumer_destinations` is the only supported destination and
29
+ // the monitored resources need at least one label key
30
+ // `cloud.googleapis.com/location` to indicate the location of the billing
31
+ // usage, using different monitored resources between monitoring and billing is
32
+ // recommended so they can be evolved independently:
33
+ //
34
+ //
35
+ // monitored_resources:
36
+ // - type: library.googleapis.com/billing_branch
37
+ // labels:
38
+ // - key: cloud.googleapis.com/location
39
+ // description: |
40
+ // Predefined label to support billing location restriction.
41
+ // - key: city
42
+ // description: |
43
+ // Custom label to define the city where the library branch is located
44
+ // in.
45
+ // - key: name
46
+ // description: Custom label to define the name of the library branch.
47
+ // metrics:
48
+ // - name: library.googleapis.com/book/borrowed_count
49
+ // metric_kind: DELTA
50
+ // value_type: INT64
51
+ // unit: "1"
52
+ // billing:
53
+ // consumer_destinations:
54
+ // - monitored_resource: library.googleapis.com/billing_branch
55
+ // metrics:
56
+ // - library.googleapis.com/book/borrowed_count
57
+ message Billing {
58
+ // Configuration of a specific billing destination (Currently only support
59
+ // bill against consumer project).
60
+ message BillingDestination {
61
+ // The monitored resource type. The type must be defined in
62
+ // [Service.monitored_resources][google.api.Service.monitored_resources]
63
+ // section.
64
+ string monitored_resource = 1;
65
+
66
+ // Names of the metrics to report to this billing destination.
67
+ // Each name must be defined in
68
+ // [Service.metrics][google.api.Service.metrics] section.
69
+ repeated string metrics = 2;
70
+ }
71
+
72
+ // Billing configurations for sending metrics to the consumer project.
73
+ // There can be multiple consumer destinations per service, each one must have
74
+ // a different monitored resource type. A metric can be used in at most
75
+ // one consumer destination.
76
+ repeated BillingDestination consumer_destinations = 8;
77
+ }