Skip to main content

udb_client/
generated_rpcs.rs

1//! Generated by `udb sdk generate` from the embedded proto descriptor set. Edit the template under sdk-templates/<lang>/, not this file.
2//!
3//! The RPC registry, derived from the proto descriptor set.
4//!
5//! Its reason for existing is [`RpcSpec::retry_safe`]. Whether an RPC may be
6//! retried is a property the PROTO declares, not something a client should infer
7//! from a method name — "update" is not reliably a mutation and "get" is not
8//! reliably a read across every service. Guessing from names is how a retry ends
9//! up replaying a charge.
10//!
11//! Generated from the same descriptor the broker serves, so the table cannot
12//! drift from the contract: adding an RPC upstream adds a row here.
13
14/// One RPC, as the contract declares it.
15#[derive(Debug, Clone, Copy, PartialEq, Eq)]
16pub struct RpcSpec {
17    /// Full gRPC method path, e.g. `/udb.services.v1.DataBroker/Select`.
18    pub path: &'static str,
19    /// Service short name, e.g. `DataBroker`.
20    pub service: &'static str,
21    /// Fully-qualified service name, e.g. `udb.services.v1.DataBroker`.
22    pub service_full: &'static str,
23    /// Method name as it appears on the wire, e.g. `Select`.
24    pub method: &'static str,
25    /// Snake-case alias used by the SDK surfaces.
26    pub alias: &'static str,
27    /// Declared operation kind: `read_only`, `mutation`, or `destructive`.
28    pub operation_kind: &'static str,
29    /// True when the RPC performs no mutation.
30    pub read_only: bool,
31    /// True when the contract EXPLICITLY declares this mutation replayable
32    /// (`idempotency_contract`). `false` also means "no contract declared", which
33    /// is why most read-only RPCs report `false` here. Do not read this alone
34    /// before retrying — call [`RpcSpec::retry_safe`].
35    pub replay_safe: bool,
36    pub client_streaming: bool,
37    pub server_streaming: bool,
38    /// REST verb and path from the `google.api.http` annotation, when annotated.
39    pub http_method: &'static str,
40    pub http_path: &'static str,
41}
42
43impl RpcSpec {
44    /// Whether this RPC streams in either direction.
45    pub fn is_streaming(&self) -> bool {
46        self.client_streaming || self.server_streaming
47    }
48
49    /// Whether repeating this call is safe.
50    ///
51    /// TWO independent facts, and both matter:
52    ///
53    /// - `read_only` comes from `operation_kind`. A read applies no mutation, so
54    ///   repeating it is safe regardless of what else is declared.
55    /// - `replay_safe` comes from an OPTIONAL `idempotency_contract`, and is
56    ///   `false` when that contract is simply absent. It marks the handful of
57    ///   MUTATIONS the broker guarantees are replayable.
58    ///
59    /// Reading `replay_safe` alone would therefore treat "no contract declared"
60    /// as "unsafe" and refuse to retry any read — the overwhelming majority of
61    /// the surface. Consult this, not either field on its own.
62    pub fn retry_safe(&self) -> bool {
63        self.read_only || self.replay_safe
64    }
65}
66
67/// Every RPC the broker serves, sorted as the descriptor emits them.
68pub static RPCS: &[RpcSpec] = &[
69    RpcSpec {
70        path: "/udb.core.analytics.services.v1.AnalyticsService/GetExecutorPerformance",
71        service: "AnalyticsService",
72        service_full: "udb.core.analytics.services.v1.AnalyticsService",
73        method: "GetExecutorPerformance",
74        alias: "get_executor_performance",
75        operation_kind: "read_only",
76        read_only: true,
77        replay_safe: false,
78        client_streaming: false,
79        server_streaming: false,
80        http_method: "get",
81        http_path: "/v1/analytics/executor-performance",
82    },
83    RpcSpec {
84        path: "/udb.core.analytics.services.v1.AnalyticsService/GetPipelineSummary",
85        service: "AnalyticsService",
86        service_full: "udb.core.analytics.services.v1.AnalyticsService",
87        method: "GetPipelineSummary",
88        alias: "get_pipeline_summary",
89        operation_kind: "read_only",
90        read_only: true,
91        replay_safe: false,
92        client_streaming: false,
93        server_streaming: false,
94        http_method: "get",
95        http_path: "/v1/analytics/pipeline-summaries",
96    },
97    RpcSpec {
98        path: "/udb.core.analytics.services.v1.AnalyticsService/GetReconciliationAnalytics",
99        service: "AnalyticsService",
100        service_full: "udb.core.analytics.services.v1.AnalyticsService",
101        method: "GetReconciliationAnalytics",
102        alias: "get_reconciliation_analytics",
103        operation_kind: "read_only",
104        read_only: true,
105        replay_safe: false,
106        client_streaming: false,
107        server_streaming: false,
108        http_method: "get",
109        http_path: "/v1/analytics/reconciliation-stats",
110    },
111    RpcSpec {
112        path: "/udb.core.analytics.services.v1.AnalyticsService/GetSlaCompliance",
113        service: "AnalyticsService",
114        service_full: "udb.core.analytics.services.v1.AnalyticsService",
115        method: "GetSlaCompliance",
116        alias: "get_sla_compliance",
117        operation_kind: "read_only",
118        read_only: true,
119        replay_safe: false,
120        client_streaming: false,
121        server_streaming: false,
122        http_method: "get",
123        http_path: "/v1/analytics/sla-compliance",
124    },
125    RpcSpec {
126        path: "/udb.core.analytics.services.v1.AnalyticsService/GetThroughput",
127        service: "AnalyticsService",
128        service_full: "udb.core.analytics.services.v1.AnalyticsService",
129        method: "GetThroughput",
130        alias: "get_throughput",
131        operation_kind: "read_only",
132        read_only: true,
133        replay_safe: false,
134        client_streaming: false,
135        server_streaming: false,
136        http_method: "get",
137        http_path: "/v1/analytics/throughput",
138    },
139    RpcSpec {
140        path: "/udb.core.analytics.services.v1.AnalyticsService/RecordPipelineMetric",
141        service: "AnalyticsService",
142        service_full: "udb.core.analytics.services.v1.AnalyticsService",
143        method: "RecordPipelineMetric",
144        alias: "record_pipeline_metric",
145        operation_kind: "mutation",
146        read_only: false,
147        replay_safe: false,
148        client_streaming: false,
149        server_streaming: false,
150        http_method: "post",
151        http_path: "/v1/analytics/pipeline-metrics",
152    },
153    RpcSpec {
154        path: "/udb.core.analytics.services.v1.AnalyticsService/TriggerSnapshot",
155        service: "AnalyticsService",
156        service_full: "udb.core.analytics.services.v1.AnalyticsService",
157        method: "TriggerSnapshot",
158        alias: "trigger_snapshot",
159        operation_kind: "mutation",
160        read_only: false,
161        replay_safe: false,
162        client_streaming: false,
163        server_streaming: false,
164        http_method: "post",
165        http_path: "/v1/analytics/snapshots:trigger",
166    },
167    RpcSpec {
168        path: "/udb.core.apikey.services.v1.ApiKeyService/CreateApiKey",
169        service: "ApiKeyService",
170        service_full: "udb.core.apikey.services.v1.ApiKeyService",
171        method: "CreateApiKey",
172        alias: "create_api_key",
173        operation_kind: "mutation",
174        read_only: false,
175        replay_safe: false,
176        client_streaming: false,
177        server_streaming: false,
178        http_method: "post",
179        http_path: "/v1/api-keys",
180    },
181    RpcSpec {
182        path: "/udb.core.apikey.services.v1.ApiKeyService/EmergencyRevokeApiKeys",
183        service: "ApiKeyService",
184        service_full: "udb.core.apikey.services.v1.ApiKeyService",
185        method: "EmergencyRevokeApiKeys",
186        alias: "emergency_revoke_api_keys",
187        operation_kind: "destructive",
188        read_only: false,
189        replay_safe: false,
190        client_streaming: false,
191        server_streaming: false,
192        http_method: "post",
193        http_path: "/v1/api-keys:emergencyRevoke",
194    },
195    RpcSpec {
196        path: "/udb.core.apikey.services.v1.ApiKeyService/GetApiKey",
197        service: "ApiKeyService",
198        service_full: "udb.core.apikey.services.v1.ApiKeyService",
199        method: "GetApiKey",
200        alias: "get_api_key",
201        operation_kind: "read_only",
202        read_only: true,
203        replay_safe: false,
204        client_streaming: false,
205        server_streaming: false,
206        http_method: "get",
207        http_path: "/v1/api-keys/{key_id}",
208    },
209    RpcSpec {
210        path: "/udb.core.apikey.services.v1.ApiKeyService/GetApiKeyUsageStats",
211        service: "ApiKeyService",
212        service_full: "udb.core.apikey.services.v1.ApiKeyService",
213        method: "GetApiKeyUsageStats",
214        alias: "get_api_key_usage_stats",
215        operation_kind: "read_only",
216        read_only: true,
217        replay_safe: false,
218        client_streaming: false,
219        server_streaming: false,
220        http_method: "get",
221        http_path: "/v1/api-keys/{key_id}/stats",
222    },
223    RpcSpec {
224        path: "/udb.core.apikey.services.v1.ApiKeyService/ListApiKeys",
225        service: "ApiKeyService",
226        service_full: "udb.core.apikey.services.v1.ApiKeyService",
227        method: "ListApiKeys",
228        alias: "list_api_keys",
229        operation_kind: "read_only",
230        read_only: true,
231        replay_safe: false,
232        client_streaming: false,
233        server_streaming: false,
234        http_method: "get",
235        http_path: "/v1/api-keys",
236    },
237    RpcSpec {
238        path: "/udb.core.apikey.services.v1.ApiKeyService/RevokeApiKey",
239        service: "ApiKeyService",
240        service_full: "udb.core.apikey.services.v1.ApiKeyService",
241        method: "RevokeApiKey",
242        alias: "revoke_api_key",
243        operation_kind: "mutation",
244        read_only: false,
245        replay_safe: false,
246        client_streaming: false,
247        server_streaming: false,
248        http_method: "delete",
249        http_path: "/v1/api-keys/{key_id}",
250    },
251    RpcSpec {
252        path: "/udb.core.apikey.services.v1.ApiKeyService/RotateApiKey",
253        service: "ApiKeyService",
254        service_full: "udb.core.apikey.services.v1.ApiKeyService",
255        method: "RotateApiKey",
256        alias: "rotate_api_key",
257        operation_kind: "mutation",
258        read_only: false,
259        replay_safe: false,
260        client_streaming: false,
261        server_streaming: false,
262        http_method: "post",
263        http_path: "/v1/api-keys/{key_id}:rotate",
264    },
265    RpcSpec {
266        path: "/udb.core.apikey.services.v1.ApiKeyService/UpdateApiKey",
267        service: "ApiKeyService",
268        service_full: "udb.core.apikey.services.v1.ApiKeyService",
269        method: "UpdateApiKey",
270        alias: "update_api_key",
271        operation_kind: "mutation",
272        read_only: false,
273        replay_safe: false,
274        client_streaming: false,
275        server_streaming: false,
276        http_method: "patch",
277        http_path: "/v1/api-keys/{key_id}",
278    },
279    RpcSpec {
280        path: "/udb.core.apikey.services.v1.ApiKeyService/ValidateApiKey",
281        service: "ApiKeyService",
282        service_full: "udb.core.apikey.services.v1.ApiKeyService",
283        method: "ValidateApiKey",
284        alias: "validate_api_key",
285        operation_kind: "read_only",
286        read_only: true,
287        replay_safe: false,
288        client_streaming: false,
289        server_streaming: false,
290        http_method: "post",
291        http_path: "/v1/api-keys:validate",
292    },
293    RpcSpec {
294        path: "/udb.core.asset.services.v1.AssetService/CompleteStep",
295        service: "AssetService",
296        service_full: "udb.core.asset.services.v1.AssetService",
297        method: "CompleteStep",
298        alias: "complete_step",
299        operation_kind: "mutation",
300        read_only: false,
301        replay_safe: false,
302        client_streaming: false,
303        server_streaming: false,
304        http_method: "post",
305        http_path: "/v1/assets/steps/{step_id}:complete",
306    },
307    RpcSpec {
308        path: "/udb.core.asset.services.v1.AssetService/CreatePipelineDefinition",
309        service: "AssetService",
310        service_full: "udb.core.asset.services.v1.AssetService",
311        method: "CreatePipelineDefinition",
312        alias: "create_pipeline_definition",
313        operation_kind: "mutation",
314        read_only: false,
315        replay_safe: false,
316        client_streaming: false,
317        server_streaming: false,
318        http_method: "post",
319        http_path: "/v1/assets/pipeline-definitions",
320    },
321    RpcSpec {
322        path: "/udb.core.asset.services.v1.AssetService/GetAsset",
323        service: "AssetService",
324        service_full: "udb.core.asset.services.v1.AssetService",
325        method: "GetAsset",
326        alias: "get_asset",
327        operation_kind: "read_only",
328        read_only: true,
329        replay_safe: false,
330        client_streaming: false,
331        server_streaming: false,
332        http_method: "get",
333        http_path: "/v1/assets/{asset_id}",
334    },
335    RpcSpec {
336        path: "/udb.core.asset.services.v1.AssetService/GetPipeline",
337        service: "AssetService",
338        service_full: "udb.core.asset.services.v1.AssetService",
339        method: "GetPipeline",
340        alias: "get_pipeline",
341        operation_kind: "read_only",
342        read_only: true,
343        replay_safe: false,
344        client_streaming: false,
345        server_streaming: false,
346        http_method: "get",
347        http_path: "/v1/assets/pipelines/{instance_id}",
348    },
349    RpcSpec {
350        path: "/udb.core.asset.services.v1.AssetService/GetPipelineDefinition",
351        service: "AssetService",
352        service_full: "udb.core.asset.services.v1.AssetService",
353        method: "GetPipelineDefinition",
354        alias: "get_pipeline_definition",
355        operation_kind: "read_only",
356        read_only: true,
357        replay_safe: false,
358        client_streaming: false,
359        server_streaming: false,
360        http_method: "get",
361        http_path: "/v1/assets/pipeline-definitions/{definition_id}",
362    },
363    RpcSpec {
364        path: "/udb.core.asset.services.v1.AssetService/ListAssets",
365        service: "AssetService",
366        service_full: "udb.core.asset.services.v1.AssetService",
367        method: "ListAssets",
368        alias: "list_assets",
369        operation_kind: "read_only",
370        read_only: true,
371        replay_safe: false,
372        client_streaming: false,
373        server_streaming: false,
374        http_method: "get",
375        http_path: "/v1/assets",
376    },
377    RpcSpec {
378        path: "/udb.core.asset.services.v1.AssetService/RegisterAsset",
379        service: "AssetService",
380        service_full: "udb.core.asset.services.v1.AssetService",
381        method: "RegisterAsset",
382        alias: "register_asset",
383        operation_kind: "mutation",
384        read_only: false,
385        replay_safe: false,
386        client_streaming: false,
387        server_streaming: false,
388        http_method: "post",
389        http_path: "/v1/assets",
390    },
391    RpcSpec {
392        path: "/udb.core.asset.services.v1.AssetService/StartPipeline",
393        service: "AssetService",
394        service_full: "udb.core.asset.services.v1.AssetService",
395        method: "StartPipeline",
396        alias: "start_pipeline",
397        operation_kind: "mutation",
398        read_only: false,
399        replay_safe: true,
400        client_streaming: false,
401        server_streaming: false,
402        http_method: "post",
403        http_path: "/v1/assets/pipelines",
404    },
405    RpcSpec {
406        path: "/udb.core.authn.services.v1.AuthnService/AdminResetMfa",
407        service: "AuthnService",
408        service_full: "udb.core.authn.services.v1.AuthnService",
409        method: "AdminResetMfa",
410        alias: "admin_reset_mfa",
411        operation_kind: "destructive",
412        read_only: false,
413        replay_safe: false,
414        client_streaming: false,
415        server_streaming: false,
416        http_method: "post",
417        http_path: "/v1/auth/admin/users/{user_id}/mfa:reset",
418    },
419    RpcSpec {
420        path: "/udb.core.authn.services.v1.AuthnService/AdminResetPassword",
421        service: "AuthnService",
422        service_full: "udb.core.authn.services.v1.AuthnService",
423        method: "AdminResetPassword",
424        alias: "admin_reset_password",
425        operation_kind: "destructive",
426        read_only: false,
427        replay_safe: false,
428        client_streaming: false,
429        server_streaming: false,
430        http_method: "post",
431        http_path: "/v1/auth/users/{user_id}/passwords:reset",
432    },
433    RpcSpec {
434        path: "/udb.core.authn.services.v1.AuthnService/AdminRevokeAllTenantSessions",
435        service: "AuthnService",
436        service_full: "udb.core.authn.services.v1.AuthnService",
437        method: "AdminRevokeAllTenantSessions",
438        alias: "admin_revoke_all_tenant_sessions",
439        operation_kind: "destructive",
440        read_only: false,
441        replay_safe: false,
442        client_streaming: false,
443        server_streaming: false,
444        http_method: "post",
445        http_path: "/v1/auth/admin/tenants/{tenant_id}/sessions:revokeAll",
446    },
447    RpcSpec {
448        path: "/udb.core.authn.services.v1.AuthnService/AdminRevokeAllUserSessions",
449        service: "AuthnService",
450        service_full: "udb.core.authn.services.v1.AuthnService",
451        method: "AdminRevokeAllUserSessions",
452        alias: "admin_revoke_all_user_sessions",
453        operation_kind: "destructive",
454        read_only: false,
455        replay_safe: false,
456        client_streaming: false,
457        server_streaming: false,
458        http_method: "post",
459        http_path: "/v1/auth/admin/users/{user_id}/sessions:revokeAll",
460    },
461    RpcSpec {
462        path: "/udb.core.authn.services.v1.AuthnService/AdminRevokeSession",
463        service: "AuthnService",
464        service_full: "udb.core.authn.services.v1.AuthnService",
465        method: "AdminRevokeSession",
466        alias: "admin_revoke_session",
467        operation_kind: "destructive",
468        read_only: false,
469        replay_safe: false,
470        client_streaming: false,
471        server_streaming: false,
472        http_method: "post",
473        http_path: "/v1/auth/admin/users/{user_id}/sessions:revoke",
474    },
475    RpcSpec {
476        path: "/udb.core.authn.services.v1.AuthnService/Authenticate",
477        service: "AuthnService",
478        service_full: "udb.core.authn.services.v1.AuthnService",
479        method: "Authenticate",
480        alias: "authenticate",
481        operation_kind: "read_only",
482        read_only: true,
483        replay_safe: false,
484        client_streaming: false,
485        server_streaming: false,
486        http_method: "post",
487        http_path: "/v1/auth/credentials:authenticate",
488    },
489    RpcSpec {
490        path: "/udb.core.authn.services.v1.AuthnService/ChangePassword",
491        service: "AuthnService",
492        service_full: "udb.core.authn.services.v1.AuthnService",
493        method: "ChangePassword",
494        alias: "change_password",
495        operation_kind: "mutation",
496        read_only: false,
497        replay_safe: false,
498        client_streaming: false,
499        server_streaming: false,
500        http_method: "post",
501        http_path: "/v1/auth/passwords:change",
502    },
503    RpcSpec {
504        path: "/udb.core.authn.services.v1.AuthnService/ChangeUserStatus",
505        service: "AuthnService",
506        service_full: "udb.core.authn.services.v1.AuthnService",
507        method: "ChangeUserStatus",
508        alias: "change_user_status",
509        operation_kind: "destructive",
510        read_only: false,
511        replay_safe: false,
512        client_streaming: false,
513        server_streaming: false,
514        http_method: "post",
515        http_path: "/v1/auth/users/{user_id}:changeStatus",
516    },
517    RpcSpec {
518        path: "/udb.core.authn.services.v1.AuthnService/ConfirmMFAEnrollment",
519        service: "AuthnService",
520        service_full: "udb.core.authn.services.v1.AuthnService",
521        method: "ConfirmMFAEnrollment",
522        alias: "confirm_mfaenrollment",
523        operation_kind: "mutation",
524        read_only: false,
525        replay_safe: false,
526        client_streaming: false,
527        server_streaming: false,
528        http_method: "post",
529        http_path: "/v1/auth/users/{user_id}/mfa:confirm",
530    },
531    RpcSpec {
532        path: "/udb.core.authn.services.v1.AuthnService/CreateCertificateBinding",
533        service: "AuthnService",
534        service_full: "udb.core.authn.services.v1.AuthnService",
535        method: "CreateCertificateBinding",
536        alias: "create_certificate_binding",
537        operation_kind: "mutation",
538        read_only: false,
539        replay_safe: false,
540        client_streaming: false,
541        server_streaming: false,
542        http_method: "post",
543        http_path: "/v1/auth/certificate-bindings",
544    },
545    RpcSpec {
546        path: "/udb.core.authn.services.v1.AuthnService/CreateServiceAccountGrant",
547        service: "AuthnService",
548        service_full: "udb.core.authn.services.v1.AuthnService",
549        method: "CreateServiceAccountGrant",
550        alias: "create_service_account_grant",
551        operation_kind: "mutation",
552        read_only: false,
553        replay_safe: false,
554        client_streaming: false,
555        server_streaming: false,
556        http_method: "post",
557        http_path: "/v1/auth/service-accounts/{user_id}/grant",
558    },
559    RpcSpec {
560        path: "/udb.core.authn.services.v1.AuthnService/CreateSession",
561        service: "AuthnService",
562        service_full: "udb.core.authn.services.v1.AuthnService",
563        method: "CreateSession",
564        alias: "create_session",
565        operation_kind: "mutation",
566        read_only: false,
567        replay_safe: false,
568        client_streaming: false,
569        server_streaming: false,
570        http_method: "post",
571        http_path: "/v1/auth/sessions",
572    },
573    RpcSpec {
574        path: "/udb.core.authn.services.v1.AuthnService/CreateUser",
575        service: "AuthnService",
576        service_full: "udb.core.authn.services.v1.AuthnService",
577        method: "CreateUser",
578        alias: "create_user",
579        operation_kind: "mutation",
580        read_only: false,
581        replay_safe: false,
582        client_streaming: false,
583        server_streaming: false,
584        http_method: "post",
585        http_path: "/v1/auth/users",
586    },
587    RpcSpec {
588        path: "/udb.core.authn.services.v1.AuthnService/DeleteWebAuthnCredential",
589        service: "AuthnService",
590        service_full: "udb.core.authn.services.v1.AuthnService",
591        method: "DeleteWebAuthnCredential",
592        alias: "delete_web_authn_credential",
593        operation_kind: "mutation",
594        read_only: false,
595        replay_safe: false,
596        client_streaming: false,
597        server_streaming: false,
598        http_method: "delete",
599        http_path: "/v1/auth/users/{user_id}/webauthn/credentials/{credential_id}",
600    },
601    RpcSpec {
602        path: "/udb.core.authn.services.v1.AuthnService/DisableMfaFactor",
603        service: "AuthnService",
604        service_full: "udb.core.authn.services.v1.AuthnService",
605        method: "DisableMfaFactor",
606        alias: "disable_mfa_factor",
607        operation_kind: "mutation",
608        read_only: false,
609        replay_safe: false,
610        client_streaming: false,
611        server_streaming: false,
612        http_method: "post",
613        http_path: "/v1/auth/users/{user_id}/mfa/factors:disable",
614    },
615    RpcSpec {
616        path: "/udb.core.authn.services.v1.AuthnService/EmergencyRevoke",
617        service: "AuthnService",
618        service_full: "udb.core.authn.services.v1.AuthnService",
619        method: "EmergencyRevoke",
620        alias: "emergency_revoke",
621        operation_kind: "destructive",
622        read_only: false,
623        replay_safe: false,
624        client_streaming: false,
625        server_streaming: false,
626        http_method: "post",
627        http_path: "/v1/auth/admin:emergencyRevoke",
628    },
629    RpcSpec {
630        path: "/udb.core.authn.services.v1.AuthnService/EnrollMFA",
631        service: "AuthnService",
632        service_full: "udb.core.authn.services.v1.AuthnService",
633        method: "EnrollMFA",
634        alias: "enroll_mfa",
635        operation_kind: "mutation",
636        read_only: false,
637        replay_safe: false,
638        client_streaming: false,
639        server_streaming: false,
640        http_method: "post",
641        http_path: "/v1/auth/users/{user_id}/mfa:enroll",
642    },
643    RpcSpec {
644        path: "/udb.core.authn.services.v1.AuthnService/FinishWebAuthnAuthentication",
645        service: "AuthnService",
646        service_full: "udb.core.authn.services.v1.AuthnService",
647        method: "FinishWebAuthnAuthentication",
648        alias: "finish_web_authn_authentication",
649        operation_kind: "mutation",
650        read_only: false,
651        replay_safe: false,
652        client_streaming: false,
653        server_streaming: false,
654        http_method: "post",
655        http_path: "/v1/auth/webauthn/authentication:finish",
656    },
657    RpcSpec {
658        path: "/udb.core.authn.services.v1.AuthnService/FinishWebAuthnRegistration",
659        service: "AuthnService",
660        service_full: "udb.core.authn.services.v1.AuthnService",
661        method: "FinishWebAuthnRegistration",
662        alias: "finish_web_authn_registration",
663        operation_kind: "mutation",
664        read_only: false,
665        replay_safe: false,
666        client_streaming: false,
667        server_streaming: false,
668        http_method: "post",
669        http_path: "/v1/auth/webauthn/registration:finish",
670    },
671    RpcSpec {
672        path: "/udb.core.authn.services.v1.AuthnService/ForgotPassword",
673        service: "AuthnService",
674        service_full: "udb.core.authn.services.v1.AuthnService",
675        method: "ForgotPassword",
676        alias: "forgot_password",
677        operation_kind: "mutation",
678        read_only: false,
679        replay_safe: false,
680        client_streaming: false,
681        server_streaming: false,
682        http_method: "post",
683        http_path: "/v1/auth/passwords:forgot",
684    },
685    RpcSpec {
686        path: "/udb.core.authn.services.v1.AuthnService/GenerateRecoveryCodes",
687        service: "AuthnService",
688        service_full: "udb.core.authn.services.v1.AuthnService",
689        method: "GenerateRecoveryCodes",
690        alias: "generate_recovery_codes",
691        operation_kind: "mutation",
692        read_only: false,
693        replay_safe: false,
694        client_streaming: false,
695        server_streaming: false,
696        http_method: "post",
697        http_path: "/v1/auth/users/{user_id}/recovery-codes:generate",
698    },
699    RpcSpec {
700        path: "/udb.core.authn.services.v1.AuthnService/GetJwks",
701        service: "AuthnService",
702        service_full: "udb.core.authn.services.v1.AuthnService",
703        method: "GetJwks",
704        alias: "get_jwks",
705        operation_kind: "read_only",
706        read_only: true,
707        replay_safe: false,
708        client_streaming: false,
709        server_streaming: false,
710        http_method: "get",
711        http_path: "/v1/auth/.well-known/jwks.json",
712    },
713    RpcSpec {
714        path: "/udb.core.authn.services.v1.AuthnService/GetMfaPolicy",
715        service: "AuthnService",
716        service_full: "udb.core.authn.services.v1.AuthnService",
717        method: "GetMfaPolicy",
718        alias: "get_mfa_policy",
719        operation_kind: "read_only",
720        read_only: true,
721        replay_safe: false,
722        client_streaming: false,
723        server_streaming: false,
724        http_method: "get",
725        http_path: "/v1/auth/tenants/{tenant_id}/mfa-policy",
726    },
727    RpcSpec {
728        path: "/udb.core.authn.services.v1.AuthnService/GetServiceAccountGrant",
729        service: "AuthnService",
730        service_full: "udb.core.authn.services.v1.AuthnService",
731        method: "GetServiceAccountGrant",
732        alias: "get_service_account_grant",
733        operation_kind: "read_only",
734        read_only: true,
735        replay_safe: false,
736        client_streaming: false,
737        server_streaming: false,
738        http_method: "get",
739        http_path: "/v1/auth/service-accounts/{user_id}/grant",
740    },
741    RpcSpec {
742        path: "/udb.core.authn.services.v1.AuthnService/GetSession",
743        service: "AuthnService",
744        service_full: "udb.core.authn.services.v1.AuthnService",
745        method: "GetSession",
746        alias: "get_session",
747        operation_kind: "read_only",
748        read_only: true,
749        replay_safe: false,
750        client_streaming: false,
751        server_streaming: false,
752        http_method: "get",
753        http_path: "/v1/auth/sessions/{session_id}",
754    },
755    RpcSpec {
756        path: "/udb.core.authn.services.v1.AuthnService/GetUser",
757        service: "AuthnService",
758        service_full: "udb.core.authn.services.v1.AuthnService",
759        method: "GetUser",
760        alias: "get_user",
761        operation_kind: "read_only",
762        read_only: true,
763        replay_safe: false,
764        client_streaming: false,
765        server_streaming: false,
766        http_method: "get",
767        http_path: "/v1/auth/users/{user_id}",
768    },
769    RpcSpec {
770        path: "/udb.core.authn.services.v1.AuthnService/IntrospectToken",
771        service: "AuthnService",
772        service_full: "udb.core.authn.services.v1.AuthnService",
773        method: "IntrospectToken",
774        alias: "introspect_token",
775        operation_kind: "read_only",
776        read_only: true,
777        replay_safe: false,
778        client_streaming: false,
779        server_streaming: false,
780        http_method: "post",
781        http_path: "/v1/auth/tokens:introspect",
782    },
783    RpcSpec {
784        path: "/udb.core.authn.services.v1.AuthnService/IssueMfaChallenge",
785        service: "AuthnService",
786        service_full: "udb.core.authn.services.v1.AuthnService",
787        method: "IssueMfaChallenge",
788        alias: "issue_mfa_challenge",
789        operation_kind: "mutation",
790        read_only: false,
791        replay_safe: false,
792        client_streaming: false,
793        server_streaming: false,
794        http_method: "post",
795        http_path: "/v1/auth/mfa/challenges:issue",
796    },
797    RpcSpec {
798        path: "/udb.core.authn.services.v1.AuthnService/ListCertificateBindings",
799        service: "AuthnService",
800        service_full: "udb.core.authn.services.v1.AuthnService",
801        method: "ListCertificateBindings",
802        alias: "list_certificate_bindings",
803        operation_kind: "read_only",
804        read_only: true,
805        replay_safe: false,
806        client_streaming: false,
807        server_streaming: false,
808        http_method: "get",
809        http_path: "/v1/auth/certificate-bindings",
810    },
811    RpcSpec {
812        path: "/udb.core.authn.services.v1.AuthnService/ListDevices",
813        service: "AuthnService",
814        service_full: "udb.core.authn.services.v1.AuthnService",
815        method: "ListDevices",
816        alias: "list_devices",
817        operation_kind: "read_only",
818        read_only: true,
819        replay_safe: false,
820        client_streaming: false,
821        server_streaming: false,
822        http_method: "get",
823        http_path: "/v1/auth/users/{user_id}/devices",
824    },
825    RpcSpec {
826        path: "/udb.core.authn.services.v1.AuthnService/ListMfaFactors",
827        service: "AuthnService",
828        service_full: "udb.core.authn.services.v1.AuthnService",
829        method: "ListMfaFactors",
830        alias: "list_mfa_factors",
831        operation_kind: "read_only",
832        read_only: true,
833        replay_safe: false,
834        client_streaming: false,
835        server_streaming: false,
836        http_method: "get",
837        http_path: "/v1/auth/users/{user_id}/mfa/factors",
838    },
839    RpcSpec {
840        path: "/udb.core.authn.services.v1.AuthnService/ListServiceAccountGrants",
841        service: "AuthnService",
842        service_full: "udb.core.authn.services.v1.AuthnService",
843        method: "ListServiceAccountGrants",
844        alias: "list_service_account_grants",
845        operation_kind: "read_only",
846        read_only: true,
847        replay_safe: false,
848        client_streaming: false,
849        server_streaming: false,
850        http_method: "get",
851        http_path: "/v1/auth/service-account-grants",
852    },
853    RpcSpec {
854        path: "/udb.core.authn.services.v1.AuthnService/ListSessions",
855        service: "AuthnService",
856        service_full: "udb.core.authn.services.v1.AuthnService",
857        method: "ListSessions",
858        alias: "list_sessions",
859        operation_kind: "read_only",
860        read_only: true,
861        replay_safe: false,
862        client_streaming: false,
863        server_streaming: false,
864        http_method: "get",
865        http_path: "/v1/auth/users/{user_id}/sessions",
866    },
867    RpcSpec {
868        path: "/udb.core.authn.services.v1.AuthnService/ListUsers",
869        service: "AuthnService",
870        service_full: "udb.core.authn.services.v1.AuthnService",
871        method: "ListUsers",
872        alias: "list_users",
873        operation_kind: "read_only",
874        read_only: true,
875        replay_safe: false,
876        client_streaming: false,
877        server_streaming: false,
878        http_method: "get",
879        http_path: "/v1/auth/users",
880    },
881    RpcSpec {
882        path: "/udb.core.authn.services.v1.AuthnService/ListWebAuthnCredentials",
883        service: "AuthnService",
884        service_full: "udb.core.authn.services.v1.AuthnService",
885        method: "ListWebAuthnCredentials",
886        alias: "list_web_authn_credentials",
887        operation_kind: "read_only",
888        read_only: true,
889        replay_safe: false,
890        client_streaming: false,
891        server_streaming: false,
892        http_method: "get",
893        http_path: "/v1/auth/users/{user_id}/webauthn/credentials",
894    },
895    RpcSpec {
896        path: "/udb.core.authn.services.v1.AuthnService/Login",
897        service: "AuthnService",
898        service_full: "udb.core.authn.services.v1.AuthnService",
899        method: "Login",
900        alias: "login",
901        operation_kind: "mutation",
902        read_only: false,
903        replay_safe: false,
904        client_streaming: false,
905        server_streaming: false,
906        http_method: "post",
907        http_path: "/v1/auth/password-sessions",
908    },
909    RpcSpec {
910        path: "/udb.core.authn.services.v1.AuthnService/Logout",
911        service: "AuthnService",
912        service_full: "udb.core.authn.services.v1.AuthnService",
913        method: "Logout",
914        alias: "logout",
915        operation_kind: "mutation",
916        read_only: false,
917        replay_safe: false,
918        client_streaming: false,
919        server_streaming: false,
920        http_method: "post",
921        http_path: "/v1/auth/sessions:logout",
922    },
923    RpcSpec {
924        path: "/udb.core.authn.services.v1.AuthnService/PutMfaPolicy",
925        service: "AuthnService",
926        service_full: "udb.core.authn.services.v1.AuthnService",
927        method: "PutMfaPolicy",
928        alias: "put_mfa_policy",
929        operation_kind: "mutation",
930        read_only: false,
931        replay_safe: false,
932        client_streaming: false,
933        server_streaming: false,
934        http_method: "put",
935        http_path: "/v1/auth/tenants/{tenant_id}/mfa-policy",
936    },
937    RpcSpec {
938        path: "/udb.core.authn.services.v1.AuthnService/RefreshSession",
939        service: "AuthnService",
940        service_full: "udb.core.authn.services.v1.AuthnService",
941        method: "RefreshSession",
942        alias: "refresh_session",
943        operation_kind: "mutation",
944        read_only: false,
945        replay_safe: false,
946        client_streaming: false,
947        server_streaming: false,
948        http_method: "post",
949        http_path: "/v1/auth/sessions/{session_id}:refresh",
950    },
951    RpcSpec {
952        path: "/udb.core.authn.services.v1.AuthnService/RefreshToken",
953        service: "AuthnService",
954        service_full: "udb.core.authn.services.v1.AuthnService",
955        method: "RefreshToken",
956        alias: "refresh_token",
957        operation_kind: "mutation",
958        read_only: false,
959        replay_safe: false,
960        client_streaming: false,
961        server_streaming: false,
962        http_method: "post",
963        http_path: "/v1/auth/tokens:refresh",
964    },
965    RpcSpec {
966        path: "/udb.core.authn.services.v1.AuthnService/RenamePasskey",
967        service: "AuthnService",
968        service_full: "udb.core.authn.services.v1.AuthnService",
969        method: "RenamePasskey",
970        alias: "rename_passkey",
971        operation_kind: "mutation",
972        read_only: false,
973        replay_safe: false,
974        client_streaming: false,
975        server_streaming: false,
976        http_method: "post",
977        http_path: "/v1/auth/users/{user_id}/webauthn/credentials:rename",
978    },
979    RpcSpec {
980        path: "/udb.core.authn.services.v1.AuthnService/ReplaceServiceAccountGrant",
981        service: "AuthnService",
982        service_full: "udb.core.authn.services.v1.AuthnService",
983        method: "ReplaceServiceAccountGrant",
984        alias: "replace_service_account_grant",
985        operation_kind: "mutation",
986        read_only: false,
987        replay_safe: false,
988        client_streaming: false,
989        server_streaming: false,
990        http_method: "post",
991        http_path: "/v1/auth/service-accounts/{user_id}/grant:replace",
992    },
993    RpcSpec {
994        path: "/udb.core.authn.services.v1.AuthnService/ResendOTP",
995        service: "AuthnService",
996        service_full: "udb.core.authn.services.v1.AuthnService",
997        method: "ResendOTP",
998        alias: "resend_otp",
999        operation_kind: "mutation",
1000        read_only: false,
1001        replay_safe: false,
1002        client_streaming: false,
1003        server_streaming: false,
1004        http_method: "post",
1005        http_path: "/v1/auth/otps:resend",
1006    },
1007    RpcSpec {
1008        path: "/udb.core.authn.services.v1.AuthnService/ResetPassword",
1009        service: "AuthnService",
1010        service_full: "udb.core.authn.services.v1.AuthnService",
1011        method: "ResetPassword",
1012        alias: "reset_password",
1013        operation_kind: "mutation",
1014        read_only: false,
1015        replay_safe: false,
1016        client_streaming: false,
1017        server_streaming: false,
1018        http_method: "post",
1019        http_path: "/v1/auth/passwords:reset",
1020    },
1021    RpcSpec {
1022        path: "/udb.core.authn.services.v1.AuthnService/RevokeCertificateBinding",
1023        service: "AuthnService",
1024        service_full: "udb.core.authn.services.v1.AuthnService",
1025        method: "RevokeCertificateBinding",
1026        alias: "revoke_certificate_binding",
1027        operation_kind: "destructive",
1028        read_only: false,
1029        replay_safe: false,
1030        client_streaming: false,
1031        server_streaming: false,
1032        http_method: "post",
1033        http_path: "/v1/auth/certificate-bindings/{binding_id}:revoke",
1034    },
1035    RpcSpec {
1036        path: "/udb.core.authn.services.v1.AuthnService/RevokeDevice",
1037        service: "AuthnService",
1038        service_full: "udb.core.authn.services.v1.AuthnService",
1039        method: "RevokeDevice",
1040        alias: "revoke_device",
1041        operation_kind: "mutation",
1042        read_only: false,
1043        replay_safe: false,
1044        client_streaming: false,
1045        server_streaming: false,
1046        http_method: "delete",
1047        http_path: "/v1/auth/devices/{device_id}",
1048    },
1049    RpcSpec {
1050        path: "/udb.core.authn.services.v1.AuthnService/RevokeRecoveryCodes",
1051        service: "AuthnService",
1052        service_full: "udb.core.authn.services.v1.AuthnService",
1053        method: "RevokeRecoveryCodes",
1054        alias: "revoke_recovery_codes",
1055        operation_kind: "mutation",
1056        read_only: false,
1057        replay_safe: false,
1058        client_streaming: false,
1059        server_streaming: false,
1060        http_method: "post",
1061        http_path: "/v1/auth/users/{user_id}/recovery-codes:revoke",
1062    },
1063    RpcSpec {
1064        path: "/udb.core.authn.services.v1.AuthnService/RevokeServiceAccountGrant",
1065        service: "AuthnService",
1066        service_full: "udb.core.authn.services.v1.AuthnService",
1067        method: "RevokeServiceAccountGrant",
1068        alias: "revoke_service_account_grant",
1069        operation_kind: "destructive",
1070        read_only: false,
1071        replay_safe: false,
1072        client_streaming: false,
1073        server_streaming: false,
1074        http_method: "post",
1075        http_path: "/v1/auth/service-accounts/{user_id}/grant:revoke",
1076    },
1077    RpcSpec {
1078        path: "/udb.core.authn.services.v1.AuthnService/RevokeSession",
1079        service: "AuthnService",
1080        service_full: "udb.core.authn.services.v1.AuthnService",
1081        method: "RevokeSession",
1082        alias: "revoke_session",
1083        operation_kind: "mutation",
1084        read_only: false,
1085        replay_safe: false,
1086        client_streaming: false,
1087        server_streaming: false,
1088        http_method: "delete",
1089        http_path: "/v1/auth/sessions/{session_id}",
1090    },
1091    RpcSpec {
1092        path: "/udb.core.authn.services.v1.AuthnService/RotateServiceAccountIdentity",
1093        service: "AuthnService",
1094        service_full: "udb.core.authn.services.v1.AuthnService",
1095        method: "RotateServiceAccountIdentity",
1096        alias: "rotate_service_account_identity",
1097        operation_kind: "destructive",
1098        read_only: false,
1099        replay_safe: false,
1100        client_streaming: false,
1101        server_streaming: false,
1102        http_method: "post",
1103        http_path: "/v1/auth/service-accounts/{user_id}/grant:rotateIdentity",
1104    },
1105    RpcSpec {
1106        path: "/udb.core.authn.services.v1.AuthnService/SendOTP",
1107        service: "AuthnService",
1108        service_full: "udb.core.authn.services.v1.AuthnService",
1109        method: "SendOTP",
1110        alias: "send_otp",
1111        operation_kind: "mutation",
1112        read_only: false,
1113        replay_safe: false,
1114        client_streaming: false,
1115        server_streaming: false,
1116        http_method: "post",
1117        http_path: "/v1/auth/otps:send",
1118    },
1119    RpcSpec {
1120        path: "/udb.core.authn.services.v1.AuthnService/SendPhoneVerification",
1121        service: "AuthnService",
1122        service_full: "udb.core.authn.services.v1.AuthnService",
1123        method: "SendPhoneVerification",
1124        alias: "send_phone_verification",
1125        operation_kind: "mutation",
1126        read_only: false,
1127        replay_safe: false,
1128        client_streaming: false,
1129        server_streaming: false,
1130        http_method: "post",
1131        http_path: "/v1/auth/users/{user_id}/phones:verify",
1132    },
1133    RpcSpec {
1134        path: "/udb.core.authn.services.v1.AuthnService/StartWebAuthnAuthentication",
1135        service: "AuthnService",
1136        service_full: "udb.core.authn.services.v1.AuthnService",
1137        method: "StartWebAuthnAuthentication",
1138        alias: "start_web_authn_authentication",
1139        operation_kind: "mutation",
1140        read_only: false,
1141        replay_safe: false,
1142        client_streaming: false,
1143        server_streaming: false,
1144        http_method: "post",
1145        http_path: "/v1/auth/webauthn/authentication:start",
1146    },
1147    RpcSpec {
1148        path: "/udb.core.authn.services.v1.AuthnService/StartWebAuthnRegistration",
1149        service: "AuthnService",
1150        service_full: "udb.core.authn.services.v1.AuthnService",
1151        method: "StartWebAuthnRegistration",
1152        alias: "start_web_authn_registration",
1153        operation_kind: "mutation",
1154        read_only: false,
1155        replay_safe: false,
1156        client_streaming: false,
1157        server_streaming: false,
1158        http_method: "post",
1159        http_path: "/v1/auth/users/{user_id}/webauthn/registration:start",
1160    },
1161    RpcSpec {
1162        path: "/udb.core.authn.services.v1.AuthnService/TransferServiceAccountGrant",
1163        service: "AuthnService",
1164        service_full: "udb.core.authn.services.v1.AuthnService",
1165        method: "TransferServiceAccountGrant",
1166        alias: "transfer_service_account_grant",
1167        operation_kind: "destructive",
1168        read_only: false,
1169        replay_safe: false,
1170        client_streaming: false,
1171        server_streaming: false,
1172        http_method: "post",
1173        http_path: "/v1/auth/service-accounts/{from_user_id}/grant:transfer",
1174    },
1175    RpcSpec {
1176        path: "/udb.core.authn.services.v1.AuthnService/UpdateUser",
1177        service: "AuthnService",
1178        service_full: "udb.core.authn.services.v1.AuthnService",
1179        method: "UpdateUser",
1180        alias: "update_user",
1181        operation_kind: "mutation",
1182        read_only: false,
1183        replay_safe: false,
1184        client_streaming: false,
1185        server_streaming: false,
1186        http_method: "patch",
1187        http_path: "/v1/auth/users/{user_id}",
1188    },
1189    RpcSpec {
1190        path: "/udb.core.authn.services.v1.AuthnService/ValidateCSRF",
1191        service: "AuthnService",
1192        service_full: "udb.core.authn.services.v1.AuthnService",
1193        method: "ValidateCSRF",
1194        alias: "validate_csrf",
1195        operation_kind: "read_only",
1196        read_only: true,
1197        replay_safe: false,
1198        client_streaming: false,
1199        server_streaming: false,
1200        http_method: "post",
1201        http_path: "/v1/auth/csrf-tokens:validate",
1202    },
1203    RpcSpec {
1204        path: "/udb.core.authn.services.v1.AuthnService/ValidateToken",
1205        service: "AuthnService",
1206        service_full: "udb.core.authn.services.v1.AuthnService",
1207        method: "ValidateToken",
1208        alias: "validate_token",
1209        operation_kind: "read_only",
1210        read_only: true,
1211        replay_safe: false,
1212        client_streaming: false,
1213        server_streaming: false,
1214        http_method: "post",
1215        http_path: "/v1/auth/tokens:validate",
1216    },
1217    RpcSpec {
1218        path: "/udb.core.authn.services.v1.AuthnService/VerifyMfaChallenge",
1219        service: "AuthnService",
1220        service_full: "udb.core.authn.services.v1.AuthnService",
1221        method: "VerifyMfaChallenge",
1222        alias: "verify_mfa_challenge",
1223        operation_kind: "mutation",
1224        read_only: false,
1225        replay_safe: false,
1226        client_streaming: false,
1227        server_streaming: false,
1228        http_method: "post",
1229        http_path: "/v1/auth/mfa/challenges:verify",
1230    },
1231    RpcSpec {
1232        path: "/udb.core.authn.services.v1.AuthnService/VerifyOTP",
1233        service: "AuthnService",
1234        service_full: "udb.core.authn.services.v1.AuthnService",
1235        method: "VerifyOTP",
1236        alias: "verify_otp",
1237        operation_kind: "read_only",
1238        read_only: true,
1239        replay_safe: false,
1240        client_streaming: false,
1241        server_streaming: false,
1242        http_method: "post",
1243        http_path: "/v1/auth/otps:verify",
1244    },
1245    RpcSpec {
1246        path: "/udb.core.authz.services.v1.AuthzService/ActivateCanary",
1247        service: "AuthzService",
1248        service_full: "udb.core.authz.services.v1.AuthzService",
1249        method: "ActivateCanary",
1250        alias: "activate_canary",
1251        operation_kind: "destructive",
1252        read_only: false,
1253        replay_safe: false,
1254        client_streaming: false,
1255        server_streaming: false,
1256        http_method: "post",
1257        http_path: "/v1/authz/governance/canaries:activate",
1258    },
1259    RpcSpec {
1260        path: "/udb.core.authz.services.v1.AuthzService/ActivatePolicyVersion",
1261        service: "AuthzService",
1262        service_full: "udb.core.authz.services.v1.AuthzService",
1263        method: "ActivatePolicyVersion",
1264        alias: "activate_policy_version",
1265        operation_kind: "destructive",
1266        read_only: false,
1267        replay_safe: false,
1268        client_streaming: false,
1269        server_streaming: false,
1270        http_method: "post",
1271        http_path: "/v1/authz/governance/versions:activate",
1272    },
1273    RpcSpec {
1274        path: "/udb.core.authz.services.v1.AuthzService/ApprovePolicyDraft",
1275        service: "AuthzService",
1276        service_full: "udb.core.authz.services.v1.AuthzService",
1277        method: "ApprovePolicyDraft",
1278        alias: "approve_policy_draft",
1279        operation_kind: "mutation",
1280        read_only: false,
1281        replay_safe: false,
1282        client_streaming: false,
1283        server_streaming: false,
1284        http_method: "post",
1285        http_path: "/v1/authz/governance/drafts:approve",
1286    },
1287    RpcSpec {
1288        path: "/udb.core.authz.services.v1.AuthzService/AssignRole",
1289        service: "AuthzService",
1290        service_full: "udb.core.authz.services.v1.AuthzService",
1291        method: "AssignRole",
1292        alias: "assign_role",
1293        operation_kind: "mutation",
1294        read_only: false,
1295        replay_safe: false,
1296        client_streaming: false,
1297        server_streaming: false,
1298        http_method: "post",
1299        http_path: "/v1/authz/users/{user_id}/roles",
1300    },
1301    RpcSpec {
1302        path: "/udb.core.authz.services.v1.AuthzService/Authorize",
1303        service: "AuthzService",
1304        service_full: "udb.core.authz.services.v1.AuthzService",
1305        method: "Authorize",
1306        alias: "authorize",
1307        operation_kind: "read_only",
1308        read_only: true,
1309        replay_safe: false,
1310        client_streaming: false,
1311        server_streaming: false,
1312        http_method: "post",
1313        http_path: "/v1/authz/authorize",
1314    },
1315    RpcSpec {
1316        path: "/udb.core.authz.services.v1.AuthzService/BatchCheckPermissions",
1317        service: "AuthzService",
1318        service_full: "udb.core.authz.services.v1.AuthzService",
1319        method: "BatchCheckPermissions",
1320        alias: "batch_check_permissions",
1321        operation_kind: "read_only",
1322        read_only: true,
1323        replay_safe: false,
1324        client_streaming: false,
1325        server_streaming: false,
1326        http_method: "post",
1327        http_path: "/v1/authz/checks:batch",
1328    },
1329    RpcSpec {
1330        path: "/udb.core.authz.services.v1.AuthzService/CheckAccess",
1331        service: "AuthzService",
1332        service_full: "udb.core.authz.services.v1.AuthzService",
1333        method: "CheckAccess",
1334        alias: "check_access",
1335        operation_kind: "read_only",
1336        read_only: true,
1337        replay_safe: false,
1338        client_streaming: false,
1339        server_streaming: false,
1340        http_method: "post",
1341        http_path: "/v1/authz/checks",
1342    },
1343    RpcSpec {
1344        path: "/udb.core.authz.services.v1.AuthzService/CreatePolicyDraft",
1345        service: "AuthzService",
1346        service_full: "udb.core.authz.services.v1.AuthzService",
1347        method: "CreatePolicyDraft",
1348        alias: "create_policy_draft",
1349        operation_kind: "mutation",
1350        read_only: false,
1351        replay_safe: false,
1352        client_streaming: false,
1353        server_streaming: false,
1354        http_method: "post",
1355        http_path: "/v1/authz/governance/drafts",
1356    },
1357    RpcSpec {
1358        path: "/udb.core.authz.services.v1.AuthzService/CreatePolicyRule",
1359        service: "AuthzService",
1360        service_full: "udb.core.authz.services.v1.AuthzService",
1361        method: "CreatePolicyRule",
1362        alias: "create_policy_rule",
1363        operation_kind: "mutation",
1364        read_only: false,
1365        replay_safe: false,
1366        client_streaming: false,
1367        server_streaming: false,
1368        http_method: "post",
1369        http_path: "/v1/authz/policies",
1370    },
1371    RpcSpec {
1372        path: "/udb.core.authz.services.v1.AuthzService/CreateRole",
1373        service: "AuthzService",
1374        service_full: "udb.core.authz.services.v1.AuthzService",
1375        method: "CreateRole",
1376        alias: "create_role",
1377        operation_kind: "mutation",
1378        read_only: false,
1379        replay_safe: false,
1380        client_streaming: false,
1381        server_streaming: false,
1382        http_method: "post",
1383        http_path: "/v1/authz/roles",
1384    },
1385    RpcSpec {
1386        path: "/udb.core.authz.services.v1.AuthzService/DeletePolicyRule",
1387        service: "AuthzService",
1388        service_full: "udb.core.authz.services.v1.AuthzService",
1389        method: "DeletePolicyRule",
1390        alias: "delete_policy_rule",
1391        operation_kind: "mutation",
1392        read_only: false,
1393        replay_safe: false,
1394        client_streaming: false,
1395        server_streaming: false,
1396        http_method: "delete",
1397        http_path: "/v1/authz/policies/{policy_id}",
1398    },
1399    RpcSpec {
1400        path: "/udb.core.authz.services.v1.AuthzService/DeleteRole",
1401        service: "AuthzService",
1402        service_full: "udb.core.authz.services.v1.AuthzService",
1403        method: "DeleteRole",
1404        alias: "delete_role",
1405        operation_kind: "mutation",
1406        read_only: false,
1407        replay_safe: false,
1408        client_streaming: false,
1409        server_streaming: false,
1410        http_method: "delete",
1411        http_path: "/v1/authz/roles/{role_id}",
1412    },
1413    RpcSpec {
1414        path: "/udb.core.authz.services.v1.AuthzService/DiffPolicyDraft",
1415        service: "AuthzService",
1416        service_full: "udb.core.authz.services.v1.AuthzService",
1417        method: "DiffPolicyDraft",
1418        alias: "diff_policy_draft",
1419        operation_kind: "read_only",
1420        read_only: true,
1421        replay_safe: false,
1422        client_streaming: false,
1423        server_streaming: false,
1424        http_method: "post",
1425        http_path: "/v1/authz/governance/drafts:diff",
1426    },
1427    RpcSpec {
1428        path: "/udb.core.authz.services.v1.AuthzService/ExplainPolicy",
1429        service: "AuthzService",
1430        service_full: "udb.core.authz.services.v1.AuthzService",
1431        method: "ExplainPolicy",
1432        alias: "explain_policy",
1433        operation_kind: "read_only",
1434        read_only: true,
1435        replay_safe: false,
1436        client_streaming: false,
1437        server_streaming: false,
1438        http_method: "post",
1439        http_path: "/v1/authz/governance/policy-explanations",
1440    },
1441    RpcSpec {
1442        path: "/udb.core.authz.services.v1.AuthzService/GetAuthzRevision",
1443        service: "AuthzService",
1444        service_full: "udb.core.authz.services.v1.AuthzService",
1445        method: "GetAuthzRevision",
1446        alias: "get_authz_revision",
1447        operation_kind: "read_only",
1448        read_only: true,
1449        replay_safe: false,
1450        client_streaming: false,
1451        server_streaming: false,
1452        http_method: "get",
1453        http_path: "/v1/authz/governance/revisions/current",
1454    },
1455    RpcSpec {
1456        path: "/udb.core.authz.services.v1.AuthzService/GetCanaryStatus",
1457        service: "AuthzService",
1458        service_full: "udb.core.authz.services.v1.AuthzService",
1459        method: "GetCanaryStatus",
1460        alias: "get_canary_status",
1461        operation_kind: "read_only",
1462        read_only: true,
1463        replay_safe: false,
1464        client_streaming: false,
1465        server_streaming: false,
1466        http_method: "get",
1467        http_path: "/v1/authz/governance/canaries/{canary_id}",
1468    },
1469    RpcSpec {
1470        path: "/udb.core.authz.services.v1.AuthzService/GetNativeAccess",
1471        service: "AuthzService",
1472        service_full: "udb.core.authz.services.v1.AuthzService",
1473        method: "GetNativeAccess",
1474        alias: "get_native_access",
1475        operation_kind: "read_only",
1476        read_only: true,
1477        replay_safe: false,
1478        client_streaming: false,
1479        server_streaming: false,
1480        http_method: "post",
1481        http_path: "/v1/authz/native-access",
1482    },
1483    RpcSpec {
1484        path: "/udb.core.authz.services.v1.AuthzService/GetPolicyBundle",
1485        service: "AuthzService",
1486        service_full: "udb.core.authz.services.v1.AuthzService",
1487        method: "GetPolicyBundle",
1488        alias: "get_policy_bundle",
1489        operation_kind: "read_only",
1490        read_only: true,
1491        replay_safe: false,
1492        client_streaming: false,
1493        server_streaming: false,
1494        http_method: "post",
1495        http_path: "/v1/authz/policy-bundle",
1496    },
1497    RpcSpec {
1498        path: "/udb.core.authz.services.v1.AuthzService/GetPolicyRule",
1499        service: "AuthzService",
1500        service_full: "udb.core.authz.services.v1.AuthzService",
1501        method: "GetPolicyRule",
1502        alias: "get_policy_rule",
1503        operation_kind: "read_only",
1504        read_only: true,
1505        replay_safe: false,
1506        client_streaming: false,
1507        server_streaming: false,
1508        http_method: "get",
1509        http_path: "/v1/authz/policies/{policy_id}",
1510    },
1511    RpcSpec {
1512        path: "/udb.core.authz.services.v1.AuthzService/GetRole",
1513        service: "AuthzService",
1514        service_full: "udb.core.authz.services.v1.AuthzService",
1515        method: "GetRole",
1516        alias: "get_role",
1517        operation_kind: "read_only",
1518        read_only: true,
1519        replay_safe: false,
1520        client_streaming: false,
1521        server_streaming: false,
1522        http_method: "get",
1523        http_path: "/v1/authz/roles/{role_id}",
1524    },
1525    RpcSpec {
1526        path: "/udb.core.authz.services.v1.AuthzService/InvalidatePolicyBundles",
1527        service: "AuthzService",
1528        service_full: "udb.core.authz.services.v1.AuthzService",
1529        method: "InvalidatePolicyBundles",
1530        alias: "invalidate_policy_bundles",
1531        operation_kind: "destructive",
1532        read_only: false,
1533        replay_safe: false,
1534        client_streaming: false,
1535        server_streaming: false,
1536        http_method: "post",
1537        http_path: "/v1/authz/governance/bundles:invalidate",
1538    },
1539    RpcSpec {
1540        path: "/udb.core.authz.services.v1.AuthzService/LintAuthzPolicies",
1541        service: "AuthzService",
1542        service_full: "udb.core.authz.services.v1.AuthzService",
1543        method: "LintAuthzPolicies",
1544        alias: "lint_authz_policies",
1545        operation_kind: "read_only",
1546        read_only: true,
1547        replay_safe: false,
1548        client_streaming: false,
1549        server_streaming: false,
1550        http_method: "post",
1551        http_path: "/v1/authz/policies:lint",
1552    },
1553    RpcSpec {
1554        path: "/udb.core.authz.services.v1.AuthzService/ListAccessDecisionAudits",
1555        service: "AuthzService",
1556        service_full: "udb.core.authz.services.v1.AuthzService",
1557        method: "ListAccessDecisionAudits",
1558        alias: "list_access_decision_audits",
1559        operation_kind: "read_only",
1560        read_only: true,
1561        replay_safe: false,
1562        client_streaming: false,
1563        server_streaming: false,
1564        http_method: "get",
1565        http_path: "/v1/authz/audits",
1566    },
1567    RpcSpec {
1568        path: "/udb.core.authz.services.v1.AuthzService/ListPolicyRules",
1569        service: "AuthzService",
1570        service_full: "udb.core.authz.services.v1.AuthzService",
1571        method: "ListPolicyRules",
1572        alias: "list_policy_rules",
1573        operation_kind: "read_only",
1574        read_only: true,
1575        replay_safe: false,
1576        client_streaming: false,
1577        server_streaming: false,
1578        http_method: "get",
1579        http_path: "/v1/authz/policies",
1580    },
1581    RpcSpec {
1582        path: "/udb.core.authz.services.v1.AuthzService/ListPolicyVersions",
1583        service: "AuthzService",
1584        service_full: "udb.core.authz.services.v1.AuthzService",
1585        method: "ListPolicyVersions",
1586        alias: "list_policy_versions",
1587        operation_kind: "read_only",
1588        read_only: true,
1589        replay_safe: false,
1590        client_streaming: false,
1591        server_streaming: false,
1592        http_method: "get",
1593        http_path: "/v1/authz/governance/versions",
1594    },
1595    RpcSpec {
1596        path: "/udb.core.authz.services.v1.AuthzService/ListRoles",
1597        service: "AuthzService",
1598        service_full: "udb.core.authz.services.v1.AuthzService",
1599        method: "ListRoles",
1600        alias: "list_roles",
1601        operation_kind: "read_only",
1602        read_only: true,
1603        replay_safe: false,
1604        client_streaming: false,
1605        server_streaming: false,
1606        http_method: "get",
1607        http_path: "/v1/authz/roles",
1608    },
1609    RpcSpec {
1610        path: "/udb.core.authz.services.v1.AuthzService/ListUserPermissions",
1611        service: "AuthzService",
1612        service_full: "udb.core.authz.services.v1.AuthzService",
1613        method: "ListUserPermissions",
1614        alias: "list_user_permissions",
1615        operation_kind: "read_only",
1616        read_only: true,
1617        replay_safe: false,
1618        client_streaming: false,
1619        server_streaming: false,
1620        http_method: "get",
1621        http_path: "/v1/authz/users/{user_id}/permissions",
1622    },
1623    RpcSpec {
1624        path: "/udb.core.authz.services.v1.AuthzService/ListUserRoles",
1625        service: "AuthzService",
1626        service_full: "udb.core.authz.services.v1.AuthzService",
1627        method: "ListUserRoles",
1628        alias: "list_user_roles",
1629        operation_kind: "read_only",
1630        read_only: true,
1631        replay_safe: false,
1632        client_streaming: false,
1633        server_streaming: false,
1634        http_method: "get",
1635        http_path: "/v1/authz/users/{user_id}/roles",
1636    },
1637    RpcSpec {
1638        path: "/udb.core.authz.services.v1.AuthzService/MigrateLegacyPolicies",
1639        service: "AuthzService",
1640        service_full: "udb.core.authz.services.v1.AuthzService",
1641        method: "MigrateLegacyPolicies",
1642        alias: "migrate_legacy_policies",
1643        operation_kind: "destructive",
1644        read_only: false,
1645        replay_safe: false,
1646        client_streaming: false,
1647        server_streaming: false,
1648        http_method: "post",
1649        http_path: "/v1/authz/governance/legacy:migrate",
1650    },
1651    RpcSpec {
1652        path: "/udb.core.authz.services.v1.AuthzService/PromoteCanary",
1653        service: "AuthzService",
1654        service_full: "udb.core.authz.services.v1.AuthzService",
1655        method: "PromoteCanary",
1656        alias: "promote_canary",
1657        operation_kind: "destructive",
1658        read_only: false,
1659        replay_safe: false,
1660        client_streaming: false,
1661        server_streaming: false,
1662        http_method: "post",
1663        http_path: "/v1/authz/governance/canaries:promote",
1664    },
1665    RpcSpec {
1666        path: "/udb.core.authz.services.v1.AuthzService/PutAuthzPolicy",
1667        service: "AuthzService",
1668        service_full: "udb.core.authz.services.v1.AuthzService",
1669        method: "PutAuthzPolicy",
1670        alias: "put_authz_policy",
1671        operation_kind: "mutation",
1672        read_only: false,
1673        replay_safe: false,
1674        client_streaming: false,
1675        server_streaming: false,
1676        http_method: "put",
1677        http_path: "/v1/authz/policies",
1678    },
1679    RpcSpec {
1680        path: "/udb.core.authz.services.v1.AuthzService/PutRelationship",
1681        service: "AuthzService",
1682        service_full: "udb.core.authz.services.v1.AuthzService",
1683        method: "PutRelationship",
1684        alias: "put_relationship",
1685        operation_kind: "mutation",
1686        read_only: false,
1687        replay_safe: false,
1688        client_streaming: false,
1689        server_streaming: false,
1690        http_method: "put",
1691        http_path: "/v1/authz/relationships",
1692    },
1693    RpcSpec {
1694        path: "/udb.core.authz.services.v1.AuthzService/PutRoleBinding",
1695        service: "AuthzService",
1696        service_full: "udb.core.authz.services.v1.AuthzService",
1697        method: "PutRoleBinding",
1698        alias: "put_role_binding",
1699        operation_kind: "mutation",
1700        read_only: false,
1701        replay_safe: false,
1702        client_streaming: false,
1703        server_streaming: false,
1704        http_method: "put",
1705        http_path: "/v1/authz/role-bindings",
1706    },
1707    RpcSpec {
1708        path: "/udb.core.authz.services.v1.AuthzService/RejectPolicyDraft",
1709        service: "AuthzService",
1710        service_full: "udb.core.authz.services.v1.AuthzService",
1711        method: "RejectPolicyDraft",
1712        alias: "reject_policy_draft",
1713        operation_kind: "mutation",
1714        read_only: false,
1715        replay_safe: false,
1716        client_streaming: false,
1717        server_streaming: false,
1718        http_method: "post",
1719        http_path: "/v1/authz/governance/drafts:reject",
1720    },
1721    RpcSpec {
1722        path: "/udb.core.authz.services.v1.AuthzService/RevokeRole",
1723        service: "AuthzService",
1724        service_full: "udb.core.authz.services.v1.AuthzService",
1725        method: "RevokeRole",
1726        alias: "revoke_role",
1727        operation_kind: "mutation",
1728        read_only: false,
1729        replay_safe: false,
1730        client_streaming: false,
1731        server_streaming: false,
1732        http_method: "post",
1733        http_path: "/v1/authz/users/{user_id}/roles/{user_role_id}:revoke",
1734    },
1735    RpcSpec {
1736        path: "/udb.core.authz.services.v1.AuthzService/RollbackPolicyVersion",
1737        service: "AuthzService",
1738        service_full: "udb.core.authz.services.v1.AuthzService",
1739        method: "RollbackPolicyVersion",
1740        alias: "rollback_policy_version",
1741        operation_kind: "destructive",
1742        read_only: false,
1743        replay_safe: false,
1744        client_streaming: false,
1745        server_streaming: false,
1746        http_method: "post",
1747        http_path: "/v1/authz/governance/versions:rollback",
1748    },
1749    RpcSpec {
1750        path: "/udb.core.authz.services.v1.AuthzService/SeedBuiltinRoles",
1751        service: "AuthzService",
1752        service_full: "udb.core.authz.services.v1.AuthzService",
1753        method: "SeedBuiltinRoles",
1754        alias: "seed_builtin_roles",
1755        operation_kind: "mutation",
1756        read_only: false,
1757        replay_safe: false,
1758        client_streaming: false,
1759        server_streaming: false,
1760        http_method: "post",
1761        http_path: "/v1/authz/governance/roles:seed",
1762    },
1763    RpcSpec {
1764        path: "/udb.core.authz.services.v1.AuthzService/SimulatePolicy",
1765        service: "AuthzService",
1766        service_full: "udb.core.authz.services.v1.AuthzService",
1767        method: "SimulatePolicy",
1768        alias: "simulate_policy",
1769        operation_kind: "mutation",
1770        read_only: false,
1771        replay_safe: false,
1772        client_streaming: false,
1773        server_streaming: false,
1774        http_method: "post",
1775        http_path: "/v1/authz/governance/policy-simulations",
1776    },
1777    RpcSpec {
1778        path: "/udb.core.authz.services.v1.AuthzService/SubmitPolicyDraft",
1779        service: "AuthzService",
1780        service_full: "udb.core.authz.services.v1.AuthzService",
1781        method: "SubmitPolicyDraft",
1782        alias: "submit_policy_draft",
1783        operation_kind: "mutation",
1784        read_only: false,
1785        replay_safe: false,
1786        client_streaming: false,
1787        server_streaming: false,
1788        http_method: "post",
1789        http_path: "/v1/authz/governance/drafts:submit",
1790    },
1791    RpcSpec {
1792        path: "/udb.core.authz.services.v1.AuthzService/UpdatePolicyDraft",
1793        service: "AuthzService",
1794        service_full: "udb.core.authz.services.v1.AuthzService",
1795        method: "UpdatePolicyDraft",
1796        alias: "update_policy_draft",
1797        operation_kind: "mutation",
1798        read_only: false,
1799        replay_safe: false,
1800        client_streaming: false,
1801        server_streaming: false,
1802        http_method: "post",
1803        http_path: "/v1/authz/governance/drafts:update",
1804    },
1805    RpcSpec {
1806        path: "/udb.core.authz.services.v1.AuthzService/UpdateRole",
1807        service: "AuthzService",
1808        service_full: "udb.core.authz.services.v1.AuthzService",
1809        method: "UpdateRole",
1810        alias: "update_role",
1811        operation_kind: "mutation",
1812        read_only: false,
1813        replay_safe: false,
1814        client_streaming: false,
1815        server_streaming: false,
1816        http_method: "patch",
1817        http_path: "/v1/authz/roles/{role_id}",
1818    },
1819    RpcSpec {
1820        path: "/udb.core.backup.services.v1.BackupService/DeleteBackupPolicy",
1821        service: "BackupService",
1822        service_full: "udb.core.backup.services.v1.BackupService",
1823        method: "DeleteBackupPolicy",
1824        alias: "delete_backup_policy",
1825        operation_kind: "mutation",
1826        read_only: false,
1827        replay_safe: false,
1828        client_streaming: false,
1829        server_streaming: false,
1830        http_method: "delete",
1831        http_path: "/v1/backups/policies/{policy_name}",
1832    },
1833    RpcSpec {
1834        path: "/udb.core.backup.services.v1.BackupService/GetBackup",
1835        service: "BackupService",
1836        service_full: "udb.core.backup.services.v1.BackupService",
1837        method: "GetBackup",
1838        alias: "get_backup",
1839        operation_kind: "read_only",
1840        read_only: true,
1841        replay_safe: false,
1842        client_streaming: false,
1843        server_streaming: false,
1844        http_method: "get",
1845        http_path: "/v1/backups/{backup_id}",
1846    },
1847    RpcSpec {
1848        path: "/udb.core.backup.services.v1.BackupService/GetBackupPolicy",
1849        service: "BackupService",
1850        service_full: "udb.core.backup.services.v1.BackupService",
1851        method: "GetBackupPolicy",
1852        alias: "get_backup_policy",
1853        operation_kind: "read_only",
1854        read_only: true,
1855        replay_safe: false,
1856        client_streaming: false,
1857        server_streaming: false,
1858        http_method: "get",
1859        http_path: "/v1/backups/policies/{policy_name}",
1860    },
1861    RpcSpec {
1862        path: "/udb.core.backup.services.v1.BackupService/ListBackupPolicies",
1863        service: "BackupService",
1864        service_full: "udb.core.backup.services.v1.BackupService",
1865        method: "ListBackupPolicies",
1866        alias: "list_backup_policies",
1867        operation_kind: "read_only",
1868        read_only: true,
1869        replay_safe: false,
1870        client_streaming: false,
1871        server_streaming: false,
1872        http_method: "get",
1873        http_path: "/v1/backups/policies",
1874    },
1875    RpcSpec {
1876        path: "/udb.core.backup.services.v1.BackupService/ListBackups",
1877        service: "BackupService",
1878        service_full: "udb.core.backup.services.v1.BackupService",
1879        method: "ListBackups",
1880        alias: "list_backups",
1881        operation_kind: "read_only",
1882        read_only: true,
1883        replay_safe: false,
1884        client_streaming: false,
1885        server_streaming: false,
1886        http_method: "get",
1887        http_path: "/v1/backups",
1888    },
1889    RpcSpec {
1890        path: "/udb.core.backup.services.v1.BackupService/PutBackupPolicy",
1891        service: "BackupService",
1892        service_full: "udb.core.backup.services.v1.BackupService",
1893        method: "PutBackupPolicy",
1894        alias: "put_backup_policy",
1895        operation_kind: "mutation",
1896        read_only: false,
1897        replay_safe: false,
1898        client_streaming: false,
1899        server_streaming: false,
1900        http_method: "post",
1901        http_path: "/v1/backups/policies",
1902    },
1903    RpcSpec {
1904        path: "/udb.core.backup.services.v1.BackupService/RestoreTenant",
1905        service: "BackupService",
1906        service_full: "udb.core.backup.services.v1.BackupService",
1907        method: "RestoreTenant",
1908        alias: "restore_tenant",
1909        operation_kind: "destructive",
1910        read_only: false,
1911        replay_safe: false,
1912        client_streaming: false,
1913        server_streaming: false,
1914        http_method: "post",
1915        http_path: "/v1/backups:restore",
1916    },
1917    RpcSpec {
1918        path: "/udb.core.backup.services.v1.BackupService/StartTenantBackup",
1919        service: "BackupService",
1920        service_full: "udb.core.backup.services.v1.BackupService",
1921        method: "StartTenantBackup",
1922        alias: "start_tenant_backup",
1923        operation_kind: "mutation",
1924        read_only: false,
1925        replay_safe: false,
1926        client_streaming: false,
1927        server_streaming: false,
1928        http_method: "post",
1929        http_path: "/v1/backups:start",
1930    },
1931    RpcSpec {
1932        path: "/udb.core.cache.services.v1.CacheService/CreateNamespace",
1933        service: "CacheService",
1934        service_full: "udb.core.cache.services.v1.CacheService",
1935        method: "CreateNamespace",
1936        alias: "create_cache_namespace",
1937        operation_kind: "mutation",
1938        read_only: false,
1939        replay_safe: false,
1940        client_streaming: false,
1941        server_streaming: false,
1942        http_method: "post",
1943        http_path: "/v1/cache/namespaces",
1944    },
1945    RpcSpec {
1946        path: "/udb.core.cache.services.v1.CacheService/Delete",
1947        service: "CacheService",
1948        service_full: "udb.core.cache.services.v1.CacheService",
1949        method: "Delete",
1950        alias: "cache_delete",
1951        operation_kind: "mutation",
1952        read_only: false,
1953        replay_safe: false,
1954        client_streaming: false,
1955        server_streaming: false,
1956        http_method: "delete",
1957        http_path: "/v1/cache/{namespace}/{key}",
1958    },
1959    RpcSpec {
1960        path: "/udb.core.cache.services.v1.CacheService/DeleteNamespace",
1961        service: "CacheService",
1962        service_full: "udb.core.cache.services.v1.CacheService",
1963        method: "DeleteNamespace",
1964        alias: "delete_cache_namespace",
1965        operation_kind: "destructive",
1966        read_only: false,
1967        replay_safe: false,
1968        client_streaming: false,
1969        server_streaming: false,
1970        http_method: "post",
1971        http_path: "/v1/cache/namespaces/{namespace}:flush",
1972    },
1973    RpcSpec {
1974        path: "/udb.core.cache.services.v1.CacheService/Get",
1975        service: "CacheService",
1976        service_full: "udb.core.cache.services.v1.CacheService",
1977        method: "Get",
1978        alias: "cache_get",
1979        operation_kind: "read_only",
1980        read_only: true,
1981        replay_safe: false,
1982        client_streaming: false,
1983        server_streaming: false,
1984        http_method: "get",
1985        http_path: "/v1/cache/{namespace}/{key}",
1986    },
1987    RpcSpec {
1988        path: "/udb.core.cache.services.v1.CacheService/GetNamespaceStats",
1989        service: "CacheService",
1990        service_full: "udb.core.cache.services.v1.CacheService",
1991        method: "GetNamespaceStats",
1992        alias: "get_cache_namespace_stats",
1993        operation_kind: "read_only",
1994        read_only: true,
1995        replay_safe: false,
1996        client_streaming: false,
1997        server_streaming: false,
1998        http_method: "get",
1999        http_path: "/v1/cache/namespaces/{namespace}/stats",
2000    },
2001    RpcSpec {
2002        path: "/udb.core.cache.services.v1.CacheService/Scan",
2003        service: "CacheService",
2004        service_full: "udb.core.cache.services.v1.CacheService",
2005        method: "Scan",
2006        alias: "cache_scan",
2007        operation_kind: "read_only",
2008        read_only: true,
2009        replay_safe: false,
2010        client_streaming: false,
2011        server_streaming: false,
2012        http_method: "get",
2013        http_path: "/v1/cache/{namespace}:scan",
2014    },
2015    RpcSpec {
2016        path: "/udb.core.cache.services.v1.CacheService/Set",
2017        service: "CacheService",
2018        service_full: "udb.core.cache.services.v1.CacheService",
2019        method: "Set",
2020        alias: "cache_set",
2021        operation_kind: "mutation",
2022        read_only: false,
2023        replay_safe: false,
2024        client_streaming: false,
2025        server_streaming: false,
2026        http_method: "put",
2027        http_path: "/v1/cache/{namespace}/{key}",
2028    },
2029    RpcSpec {
2030        path: "/udb.core.config.services.v1.ConfigService/DeleteFlag",
2031        service: "ConfigService",
2032        service_full: "udb.core.config.services.v1.ConfigService",
2033        method: "DeleteFlag",
2034        alias: "delete_flag",
2035        operation_kind: "destructive",
2036        read_only: false,
2037        replay_safe: false,
2038        client_streaming: false,
2039        server_streaming: false,
2040        http_method: "post",
2041        http_path: "/v1/config/flags:delete",
2042    },
2043    RpcSpec {
2044        path: "/udb.core.config.services.v1.ConfigService/EvaluateFlags",
2045        service: "ConfigService",
2046        service_full: "udb.core.config.services.v1.ConfigService",
2047        method: "EvaluateFlags",
2048        alias: "evaluate_flags",
2049        operation_kind: "read_only",
2050        read_only: true,
2051        replay_safe: false,
2052        client_streaming: false,
2053        server_streaming: false,
2054        http_method: "post",
2055        http_path: "/v1/config/flags:evaluate",
2056    },
2057    RpcSpec {
2058        path: "/udb.core.config.services.v1.ConfigService/GetFlag",
2059        service: "ConfigService",
2060        service_full: "udb.core.config.services.v1.ConfigService",
2061        method: "GetFlag",
2062        alias: "get_flag",
2063        operation_kind: "read_only",
2064        read_only: true,
2065        replay_safe: false,
2066        client_streaming: false,
2067        server_streaming: false,
2068        http_method: "get",
2069        http_path: "/v1/config/flags/{flag_key}",
2070    },
2071    RpcSpec {
2072        path: "/udb.core.config.services.v1.ConfigService/ListFlags",
2073        service: "ConfigService",
2074        service_full: "udb.core.config.services.v1.ConfigService",
2075        method: "ListFlags",
2076        alias: "list_flags",
2077        operation_kind: "read_only",
2078        read_only: true,
2079        replay_safe: false,
2080        client_streaming: false,
2081        server_streaming: false,
2082        http_method: "get",
2083        http_path: "/v1/config/flags",
2084    },
2085    RpcSpec {
2086        path: "/udb.core.config.services.v1.ConfigService/PutFlag",
2087        service: "ConfigService",
2088        service_full: "udb.core.config.services.v1.ConfigService",
2089        method: "PutFlag",
2090        alias: "put_flag",
2091        operation_kind: "mutation",
2092        read_only: false,
2093        replay_safe: false,
2094        client_streaming: false,
2095        server_streaming: false,
2096        http_method: "post",
2097        http_path: "/v1/config/flags:put",
2098    },
2099    RpcSpec {
2100        path: "/udb.core.control.services.v1.ControlPlaneService/AckStatus",
2101        service: "ControlPlaneService",
2102        service_full: "udb.core.control.services.v1.ControlPlaneService",
2103        method: "AckStatus",
2104        alias: "ack_status",
2105        operation_kind: "mutation",
2106        read_only: false,
2107        replay_safe: false,
2108        client_streaming: false,
2109        server_streaming: false,
2110        http_method: "post",
2111        http_path: "/v1/control/node-states/{node_id}:ackStatus",
2112    },
2113    RpcSpec {
2114        path: "/udb.core.control.services.v1.ControlPlaneService/DeltaResources",
2115        service: "ControlPlaneService",
2116        service_full: "udb.core.control.services.v1.ControlPlaneService",
2117        method: "DeltaResources",
2118        alias: "delta_resources",
2119        operation_kind: "mutation",
2120        read_only: false,
2121        replay_safe: false,
2122        client_streaming: true,
2123        server_streaming: true,
2124        http_method: "",
2125        http_path: "",
2126    },
2127    RpcSpec {
2128        path: "/udb.core.control.services.v1.ControlPlaneService/GetResources",
2129        service: "ControlPlaneService",
2130        service_full: "udb.core.control.services.v1.ControlPlaneService",
2131        method: "GetResources",
2132        alias: "get_resources",
2133        operation_kind: "read_only",
2134        read_only: true,
2135        replay_safe: false,
2136        client_streaming: false,
2137        server_streaming: false,
2138        http_method: "get",
2139        http_path: "/v1/control/resources",
2140    },
2141    RpcSpec {
2142        path: "/udb.core.control.services.v1.ControlPlaneService/ListNodeStates",
2143        service: "ControlPlaneService",
2144        service_full: "udb.core.control.services.v1.ControlPlaneService",
2145        method: "ListNodeStates",
2146        alias: "list_node_states",
2147        operation_kind: "read_only",
2148        read_only: true,
2149        replay_safe: false,
2150        client_streaming: false,
2151        server_streaming: false,
2152        http_method: "get",
2153        http_path: "/v1/control/node-states",
2154    },
2155    RpcSpec {
2156        path: "/udb.core.control.services.v1.ControlPlaneService/RollbackResources",
2157        service: "ControlPlaneService",
2158        service_full: "udb.core.control.services.v1.ControlPlaneService",
2159        method: "RollbackResources",
2160        alias: "rollback_resources",
2161        operation_kind: "mutation",
2162        read_only: false,
2163        replay_safe: false,
2164        client_streaming: false,
2165        server_streaming: false,
2166        http_method: "post",
2167        http_path: "/v1/control/node-states/{node_id}:rollbackResources",
2168    },
2169    RpcSpec {
2170        path: "/udb.core.control.services.v1.ControlPlaneService/StreamResources",
2171        service: "ControlPlaneService",
2172        service_full: "udb.core.control.services.v1.ControlPlaneService",
2173        method: "StreamResources",
2174        alias: "stream_resources",
2175        operation_kind: "mutation",
2176        read_only: false,
2177        replay_safe: false,
2178        client_streaming: true,
2179        server_streaming: true,
2180        http_method: "",
2181        http_path: "",
2182    },
2183    RpcSpec {
2184        path: "/udb.core.embedding.services.v1.EmbeddingService/Backfill",
2185        service: "EmbeddingService",
2186        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2187        method: "Backfill",
2188        alias: "backfill",
2189        operation_kind: "mutation",
2190        read_only: false,
2191        replay_safe: false,
2192        client_streaming: false,
2193        server_streaming: false,
2194        http_method: "post",
2195        http_path: "/v1/embedding/sources:backfill",
2196    },
2197    RpcSpec {
2198        path: "/udb.core.embedding.services.v1.EmbeddingService/CutoverModelAlias",
2199        service: "EmbeddingService",
2200        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2201        method: "CutoverModelAlias",
2202        alias: "cutover_model_alias",
2203        operation_kind: "mutation",
2204        read_only: false,
2205        replay_safe: false,
2206        client_streaming: false,
2207        server_streaming: false,
2208        http_method: "post",
2209        http_path: "/v1/embedding/models:cutover",
2210    },
2211    RpcSpec {
2212        path: "/udb.core.embedding.services.v1.EmbeddingService/DeleteModel",
2213        service: "EmbeddingService",
2214        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2215        method: "DeleteModel",
2216        alias: "delete_model",
2217        operation_kind: "destructive",
2218        read_only: false,
2219        replay_safe: false,
2220        client_streaming: false,
2221        server_streaming: false,
2222        http_method: "post",
2223        http_path: "/v1/embedding/models:delete",
2224    },
2225    RpcSpec {
2226        path: "/udb.core.embedding.services.v1.EmbeddingService/DeleteSource",
2227        service: "EmbeddingService",
2228        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2229        method: "DeleteSource",
2230        alias: "delete_source",
2231        operation_kind: "destructive",
2232        read_only: false,
2233        replay_safe: false,
2234        client_streaming: false,
2235        server_streaming: false,
2236        http_method: "post",
2237        http_path: "/v1/embedding/sources:delete",
2238    },
2239    RpcSpec {
2240        path: "/udb.core.embedding.services.v1.EmbeddingService/GetEmbeddingJobStatus",
2241        service: "EmbeddingService",
2242        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2243        method: "GetEmbeddingJobStatus",
2244        alias: "get_job_status",
2245        operation_kind: "read_only",
2246        read_only: true,
2247        replay_safe: false,
2248        client_streaming: false,
2249        server_streaming: false,
2250        http_method: "get",
2251        http_path: "/v1/embedding/jobs/{job_id}",
2252    },
2253    RpcSpec {
2254        path: "/udb.core.embedding.services.v1.EmbeddingService/IngestDocument",
2255        service: "EmbeddingService",
2256        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2257        method: "IngestDocument",
2258        alias: "ingest_document",
2259        operation_kind: "mutation",
2260        read_only: false,
2261        replay_safe: false,
2262        client_streaming: false,
2263        server_streaming: false,
2264        http_method: "post",
2265        http_path: "/v1/embedding/documents:ingest",
2266    },
2267    RpcSpec {
2268        path: "/udb.core.embedding.services.v1.EmbeddingService/IngestDocumentBatch",
2269        service: "EmbeddingService",
2270        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2271        method: "IngestDocumentBatch",
2272        alias: "ingest_document_batch",
2273        operation_kind: "mutation",
2274        read_only: false,
2275        replay_safe: false,
2276        client_streaming: false,
2277        server_streaming: false,
2278        http_method: "post",
2279        http_path: "/v1/embedding/documents:batchIngest",
2280    },
2281    RpcSpec {
2282        path: "/udb.core.embedding.services.v1.EmbeddingService/ListEmbeddingWorkItems",
2283        service: "EmbeddingService",
2284        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2285        method: "ListEmbeddingWorkItems",
2286        alias: "list_work_items",
2287        operation_kind: "read_only",
2288        read_only: true,
2289        replay_safe: false,
2290        client_streaming: false,
2291        server_streaming: false,
2292        http_method: "get",
2293        http_path: "/v1/embedding/jobs/{job_id}/work-items",
2294    },
2295    RpcSpec {
2296        path: "/udb.core.embedding.services.v1.EmbeddingService/ListModels",
2297        service: "EmbeddingService",
2298        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2299        method: "ListModels",
2300        alias: "list_models",
2301        operation_kind: "read_only",
2302        read_only: true,
2303        replay_safe: false,
2304        client_streaming: false,
2305        server_streaming: false,
2306        http_method: "get",
2307        http_path: "/v1/embedding/models",
2308    },
2309    RpcSpec {
2310        path: "/udb.core.embedding.services.v1.EmbeddingService/ListSources",
2311        service: "EmbeddingService",
2312        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2313        method: "ListSources",
2314        alias: "list_sources",
2315        operation_kind: "read_only",
2316        read_only: true,
2317        replay_safe: false,
2318        client_streaming: false,
2319        server_streaming: false,
2320        http_method: "get",
2321        http_path: "/v1/embedding/sources",
2322    },
2323    RpcSpec {
2324        path: "/udb.core.embedding.services.v1.EmbeddingService/RegisterModel",
2325        service: "EmbeddingService",
2326        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2327        method: "RegisterModel",
2328        alias: "register_model",
2329        operation_kind: "mutation",
2330        read_only: false,
2331        replay_safe: false,
2332        client_streaming: false,
2333        server_streaming: false,
2334        http_method: "post",
2335        http_path: "/v1/embedding/models:register",
2336    },
2337    RpcSpec {
2338        path: "/udb.core.embedding.services.v1.EmbeddingService/RegisterSource",
2339        service: "EmbeddingService",
2340        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2341        method: "RegisterSource",
2342        alias: "register_source",
2343        operation_kind: "mutation",
2344        read_only: false,
2345        replay_safe: false,
2346        client_streaming: false,
2347        server_streaming: false,
2348        http_method: "post",
2349        http_path: "/v1/embedding/sources:register",
2350    },
2351    RpcSpec {
2352        path: "/udb.core.embedding.services.v1.EmbeddingService/ReportEmbedding",
2353        service: "EmbeddingService",
2354        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2355        method: "ReportEmbedding",
2356        alias: "report_embedding",
2357        operation_kind: "mutation",
2358        read_only: false,
2359        replay_safe: false,
2360        client_streaming: false,
2361        server_streaming: false,
2362        http_method: "",
2363        http_path: "",
2364    },
2365    RpcSpec {
2366        path: "/udb.core.embedding.services.v1.EmbeddingService/ReportEmbeddingBatch",
2367        service: "EmbeddingService",
2368        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2369        method: "ReportEmbeddingBatch",
2370        alias: "report_embedding_batch",
2371        operation_kind: "mutation",
2372        read_only: false,
2373        replay_safe: false,
2374        client_streaming: false,
2375        server_streaming: false,
2376        http_method: "",
2377        http_path: "",
2378    },
2379    RpcSpec {
2380        path: "/udb.core.embedding.services.v1.EmbeddingService/ReportEmbeddingFailure",
2381        service: "EmbeddingService",
2382        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2383        method: "ReportEmbeddingFailure",
2384        alias: "report_embedding_failure",
2385        operation_kind: "mutation",
2386        read_only: false,
2387        replay_safe: false,
2388        client_streaming: false,
2389        server_streaming: false,
2390        http_method: "",
2391        http_path: "",
2392    },
2393    RpcSpec {
2394        path: "/udb.core.embedding.services.v1.EmbeddingService/ReportParsedDocument",
2395        service: "EmbeddingService",
2396        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2397        method: "ReportParsedDocument",
2398        alias: "report_parsed_document",
2399        operation_kind: "mutation",
2400        read_only: false,
2401        replay_safe: false,
2402        client_streaming: false,
2403        server_streaming: false,
2404        http_method: "",
2405        http_path: "",
2406    },
2407    RpcSpec {
2408        path: "/udb.core.embedding.services.v1.EmbeddingService/ReportRetrievalEvaluation",
2409        service: "EmbeddingService",
2410        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2411        method: "ReportRetrievalEvaluation",
2412        alias: "report_retrieval_evaluation",
2413        operation_kind: "mutation",
2414        read_only: false,
2415        replay_safe: false,
2416        client_streaming: false,
2417        server_streaming: false,
2418        http_method: "",
2419        http_path: "",
2420    },
2421    RpcSpec {
2422        path: "/udb.core.embedding.services.v1.EmbeddingService/Retrieve",
2423        service: "EmbeddingService",
2424        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2425        method: "Retrieve",
2426        alias: "retrieve",
2427        operation_kind: "read_only",
2428        read_only: true,
2429        replay_safe: false,
2430        client_streaming: false,
2431        server_streaming: false,
2432        http_method: "post",
2433        http_path: "/v1/embedding:retrieve",
2434    },
2435    RpcSpec {
2436        path: "/udb.core.embedding.services.v1.EmbeddingService/SetModelStatus",
2437        service: "EmbeddingService",
2438        service_full: "udb.core.embedding.services.v1.EmbeddingService",
2439        method: "SetModelStatus",
2440        alias: "set_model_status",
2441        operation_kind: "mutation",
2442        read_only: false,
2443        replay_safe: false,
2444        client_streaming: false,
2445        server_streaming: false,
2446        http_method: "post",
2447        http_path: "/v1/embedding/models:setStatus",
2448    },
2449    RpcSpec {
2450        path: "/udb.core.idp.services.v1.IdentityProviderService/CreateProvider",
2451        service: "IdentityProviderService",
2452        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2453        method: "CreateProvider",
2454        alias: "create_provider",
2455        operation_kind: "mutation",
2456        read_only: false,
2457        replay_safe: false,
2458        client_streaming: false,
2459        server_streaming: false,
2460        http_method: "post",
2461        http_path: "/v1/idp/providers",
2462    },
2463    RpcSpec {
2464        path: "/udb.core.idp.services.v1.IdentityProviderService/DisableProvider",
2465        service: "IdentityProviderService",
2466        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2467        method: "DisableProvider",
2468        alias: "disable_provider",
2469        operation_kind: "mutation",
2470        read_only: false,
2471        replay_safe: false,
2472        client_streaming: false,
2473        server_streaming: false,
2474        http_method: "post",
2475        http_path: "/v1/idp/providers/{provider_id}:disable",
2476    },
2477    RpcSpec {
2478        path: "/udb.core.idp.services.v1.IdentityProviderService/ForceJwksRefresh",
2479        service: "IdentityProviderService",
2480        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2481        method: "ForceJwksRefresh",
2482        alias: "force_jwks_refresh",
2483        operation_kind: "mutation",
2484        read_only: false,
2485        replay_safe: false,
2486        client_streaming: false,
2487        server_streaming: false,
2488        http_method: "post",
2489        http_path: "/v1/idp/providers/{provider_id}:refreshJwks",
2490    },
2491    RpcSpec {
2492        path: "/udb.core.idp.services.v1.IdentityProviderService/GetProvider",
2493        service: "IdentityProviderService",
2494        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2495        method: "GetProvider",
2496        alias: "get_provider",
2497        operation_kind: "read_only",
2498        read_only: true,
2499        replay_safe: false,
2500        client_streaming: false,
2501        server_streaming: false,
2502        http_method: "get",
2503        http_path: "/v1/idp/providers/{provider_id}",
2504    },
2505    RpcSpec {
2506        path: "/udb.core.idp.services.v1.IdentityProviderService/ImportSamlMetadata",
2507        service: "IdentityProviderService",
2508        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2509        method: "ImportSamlMetadata",
2510        alias: "import_saml_metadata",
2511        operation_kind: "mutation",
2512        read_only: false,
2513        replay_safe: false,
2514        client_streaming: false,
2515        server_streaming: false,
2516        http_method: "post",
2517        http_path: "/v1/idp/providers/{provider_id}:importSamlMetadata",
2518    },
2519    RpcSpec {
2520        path: "/udb.core.idp.services.v1.IdentityProviderService/LinkIdentity",
2521        service: "IdentityProviderService",
2522        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2523        method: "LinkIdentity",
2524        alias: "link_identity",
2525        operation_kind: "mutation",
2526        read_only: false,
2527        replay_safe: false,
2528        client_streaming: false,
2529        server_streaming: false,
2530        http_method: "post",
2531        http_path: "/v1/idp/external-identities:link",
2532    },
2533    RpcSpec {
2534        path: "/udb.core.idp.services.v1.IdentityProviderService/ListExternalIdentities",
2535        service: "IdentityProviderService",
2536        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2537        method: "ListExternalIdentities",
2538        alias: "list_external_identities",
2539        operation_kind: "read_only",
2540        read_only: true,
2541        replay_safe: false,
2542        client_streaming: false,
2543        server_streaming: false,
2544        http_method: "get",
2545        http_path: "/v1/idp/external-identities",
2546    },
2547    RpcSpec {
2548        path: "/udb.core.idp.services.v1.IdentityProviderService/ListProviders",
2549        service: "IdentityProviderService",
2550        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2551        method: "ListProviders",
2552        alias: "list_providers",
2553        operation_kind: "read_only",
2554        read_only: true,
2555        replay_safe: false,
2556        client_streaming: false,
2557        server_streaming: false,
2558        http_method: "get",
2559        http_path: "/v1/idp/providers",
2560    },
2561    RpcSpec {
2562        path: "/udb.core.idp.services.v1.IdentityProviderService/PreviewClaimMapping",
2563        service: "IdentityProviderService",
2564        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2565        method: "PreviewClaimMapping",
2566        alias: "preview_claim_mapping",
2567        operation_kind: "read_only",
2568        read_only: true,
2569        replay_safe: false,
2570        client_streaming: false,
2571        server_streaming: false,
2572        http_method: "post",
2573        http_path: "/v1/idp/providers/{provider_id}:previewClaimMapping",
2574    },
2575    RpcSpec {
2576        path: "/udb.core.idp.services.v1.IdentityProviderService/PreviewGroupMapping",
2577        service: "IdentityProviderService",
2578        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2579        method: "PreviewGroupMapping",
2580        alias: "preview_group_mapping",
2581        operation_kind: "read_only",
2582        read_only: true,
2583        replay_safe: false,
2584        client_streaming: false,
2585        server_streaming: false,
2586        http_method: "post",
2587        http_path: "/v1/idp/providers/{provider_id}:previewGroupMapping",
2588    },
2589    RpcSpec {
2590        path: "/udb.core.idp.services.v1.IdentityProviderService/ResolveExternalIdentity",
2591        service: "IdentityProviderService",
2592        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2593        method: "ResolveExternalIdentity",
2594        alias: "resolve_external_identity",
2595        operation_kind: "mutation",
2596        read_only: false,
2597        replay_safe: false,
2598        client_streaming: false,
2599        server_streaming: false,
2600        http_method: "post",
2601        http_path: "/v1/idp/providers/{provider_id}:resolveIdentity",
2602    },
2603    RpcSpec {
2604        path: "/udb.core.idp.services.v1.IdentityProviderService/SamlAcs",
2605        service: "IdentityProviderService",
2606        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2607        method: "SamlAcs",
2608        alias: "saml_acs",
2609        operation_kind: "mutation",
2610        read_only: false,
2611        replay_safe: false,
2612        client_streaming: false,
2613        server_streaming: false,
2614        http_method: "post",
2615        http_path: "/v1/idp/providers/{provider_id}:samlAcs",
2616    },
2617    RpcSpec {
2618        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimCreateGroup",
2619        service: "IdentityProviderService",
2620        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2621        method: "ScimCreateGroup",
2622        alias: "scim_create_group",
2623        operation_kind: "mutation",
2624        read_only: false,
2625        replay_safe: false,
2626        client_streaming: false,
2627        server_streaming: false,
2628        http_method: "post",
2629        http_path: "/v1/idp/scim/{provider_id}/Groups",
2630    },
2631    RpcSpec {
2632        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimCreateUser",
2633        service: "IdentityProviderService",
2634        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2635        method: "ScimCreateUser",
2636        alias: "scim_create_user",
2637        operation_kind: "mutation",
2638        read_only: false,
2639        replay_safe: false,
2640        client_streaming: false,
2641        server_streaming: false,
2642        http_method: "post",
2643        http_path: "/v1/idp/scim/{provider_id}/Users",
2644    },
2645    RpcSpec {
2646        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimDeleteGroup",
2647        service: "IdentityProviderService",
2648        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2649        method: "ScimDeleteGroup",
2650        alias: "scim_delete_group",
2651        operation_kind: "mutation",
2652        read_only: false,
2653        replay_safe: false,
2654        client_streaming: false,
2655        server_streaming: false,
2656        http_method: "delete",
2657        http_path: "/v1/idp/scim/{provider_id}/Groups/{scim_group_id}",
2658    },
2659    RpcSpec {
2660        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimDeleteUser",
2661        service: "IdentityProviderService",
2662        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2663        method: "ScimDeleteUser",
2664        alias: "scim_delete_user",
2665        operation_kind: "mutation",
2666        read_only: false,
2667        replay_safe: false,
2668        client_streaming: false,
2669        server_streaming: false,
2670        http_method: "delete",
2671        http_path: "/v1/idp/scim/{provider_id}/Users/{scim_user_id}",
2672    },
2673    RpcSpec {
2674        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimGetGroup",
2675        service: "IdentityProviderService",
2676        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2677        method: "ScimGetGroup",
2678        alias: "scim_get_group",
2679        operation_kind: "mutation",
2680        read_only: false,
2681        replay_safe: false,
2682        client_streaming: false,
2683        server_streaming: false,
2684        http_method: "get",
2685        http_path: "/v1/idp/scim/{provider_id}/Groups/{scim_group_id}",
2686    },
2687    RpcSpec {
2688        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimGetUser",
2689        service: "IdentityProviderService",
2690        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2691        method: "ScimGetUser",
2692        alias: "scim_get_user",
2693        operation_kind: "mutation",
2694        read_only: false,
2695        replay_safe: false,
2696        client_streaming: false,
2697        server_streaming: false,
2698        http_method: "get",
2699        http_path: "/v1/idp/scim/{provider_id}/Users/{scim_user_id}",
2700    },
2701    RpcSpec {
2702        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimListGroups",
2703        service: "IdentityProviderService",
2704        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2705        method: "ScimListGroups",
2706        alias: "scim_list_groups",
2707        operation_kind: "mutation",
2708        read_only: false,
2709        replay_safe: false,
2710        client_streaming: false,
2711        server_streaming: false,
2712        http_method: "get",
2713        http_path: "/v1/idp/scim/{provider_id}/Groups",
2714    },
2715    RpcSpec {
2716        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimListUsers",
2717        service: "IdentityProviderService",
2718        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2719        method: "ScimListUsers",
2720        alias: "scim_list_users",
2721        operation_kind: "mutation",
2722        read_only: false,
2723        replay_safe: false,
2724        client_streaming: false,
2725        server_streaming: false,
2726        http_method: "get",
2727        http_path: "/v1/idp/scim/{provider_id}/Users",
2728    },
2729    RpcSpec {
2730        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimPatchGroup",
2731        service: "IdentityProviderService",
2732        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2733        method: "ScimPatchGroup",
2734        alias: "scim_patch_group",
2735        operation_kind: "mutation",
2736        read_only: false,
2737        replay_safe: false,
2738        client_streaming: false,
2739        server_streaming: false,
2740        http_method: "patch",
2741        http_path: "/v1/idp/scim/{provider_id}/Groups/{scim_group_id}",
2742    },
2743    RpcSpec {
2744        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimPatchUser",
2745        service: "IdentityProviderService",
2746        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2747        method: "ScimPatchUser",
2748        alias: "scim_patch_user",
2749        operation_kind: "mutation",
2750        read_only: false,
2751        replay_safe: false,
2752        client_streaming: false,
2753        server_streaming: false,
2754        http_method: "patch",
2755        http_path: "/v1/idp/scim/{provider_id}/Users/{scim_user_id}",
2756    },
2757    RpcSpec {
2758        path: "/udb.core.idp.services.v1.IdentityProviderService/ScimReplaceUser",
2759        service: "IdentityProviderService",
2760        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2761        method: "ScimReplaceUser",
2762        alias: "scim_replace_user",
2763        operation_kind: "mutation",
2764        read_only: false,
2765        replay_safe: false,
2766        client_streaming: false,
2767        server_streaming: false,
2768        http_method: "put",
2769        http_path: "/v1/idp/scim/{provider_id}/Users/{scim_user_id}",
2770    },
2771    RpcSpec {
2772        path: "/udb.core.idp.services.v1.IdentityProviderService/StartSamlLogin",
2773        service: "IdentityProviderService",
2774        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2775        method: "StartSamlLogin",
2776        alias: "start_saml_login",
2777        operation_kind: "mutation",
2778        read_only: false,
2779        replay_safe: false,
2780        client_streaming: false,
2781        server_streaming: false,
2782        http_method: "post",
2783        http_path: "/v1/idp/providers/{provider_id}:startSamlLogin",
2784    },
2785    RpcSpec {
2786        path: "/udb.core.idp.services.v1.IdentityProviderService/TestProviderDiscovery",
2787        service: "IdentityProviderService",
2788        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2789        method: "TestProviderDiscovery",
2790        alias: "test_provider_discovery",
2791        operation_kind: "read_only",
2792        read_only: true,
2793        replay_safe: false,
2794        client_streaming: false,
2795        server_streaming: false,
2796        http_method: "post",
2797        http_path: "/v1/idp/providers/{provider_id}:testDiscovery",
2798    },
2799    RpcSpec {
2800        path: "/udb.core.idp.services.v1.IdentityProviderService/UnlinkIdentity",
2801        service: "IdentityProviderService",
2802        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2803        method: "UnlinkIdentity",
2804        alias: "unlink_identity",
2805        operation_kind: "mutation",
2806        read_only: false,
2807        replay_safe: false,
2808        client_streaming: false,
2809        server_streaming: false,
2810        http_method: "post",
2811        http_path: "/v1/idp/external-identities/{external_identity_id}:unlink",
2812    },
2813    RpcSpec {
2814        path: "/udb.core.idp.services.v1.IdentityProviderService/UpdateProvider",
2815        service: "IdentityProviderService",
2816        service_full: "udb.core.idp.services.v1.IdentityProviderService",
2817        method: "UpdateProvider",
2818        alias: "update_provider",
2819        operation_kind: "mutation",
2820        read_only: false,
2821        replay_safe: false,
2822        client_streaming: false,
2823        server_streaming: false,
2824        http_method: "patch",
2825        http_path: "/v1/idp/providers/{provider_id}",
2826    },
2827    RpcSpec {
2828        path: "/udb.core.livequery.services.v1.LiveQueryService/Subscribe",
2829        service: "LiveQueryService",
2830        service_full: "udb.core.livequery.services.v1.LiveQueryService",
2831        method: "Subscribe",
2832        alias: "subscribe",
2833        operation_kind: "read_only",
2834        read_only: true,
2835        replay_safe: false,
2836        client_streaming: false,
2837        server_streaming: true,
2838        http_method: "post",
2839        http_path: "/v1/livequery:subscribe",
2840    },
2841    RpcSpec {
2842        path: "/udb.core.lock.services.v1.LockService/AcquireLock",
2843        service: "LockService",
2844        service_full: "udb.core.lock.services.v1.LockService",
2845        method: "AcquireLock",
2846        alias: "acquire_lock",
2847        operation_kind: "mutation",
2848        read_only: false,
2849        replay_safe: false,
2850        client_streaming: false,
2851        server_streaming: false,
2852        http_method: "post",
2853        http_path: "/v1/locks:acquire",
2854    },
2855    RpcSpec {
2856        path: "/udb.core.lock.services.v1.LockService/GetLock",
2857        service: "LockService",
2858        service_full: "udb.core.lock.services.v1.LockService",
2859        method: "GetLock",
2860        alias: "get_lock",
2861        operation_kind: "read_only",
2862        read_only: true,
2863        replay_safe: false,
2864        client_streaming: false,
2865        server_streaming: false,
2866        http_method: "get",
2867        http_path: "/v1/locks/{lock_name}",
2868    },
2869    RpcSpec {
2870        path: "/udb.core.lock.services.v1.LockService/ListLocks",
2871        service: "LockService",
2872        service_full: "udb.core.lock.services.v1.LockService",
2873        method: "ListLocks",
2874        alias: "list_locks",
2875        operation_kind: "read_only",
2876        read_only: true,
2877        replay_safe: false,
2878        client_streaming: false,
2879        server_streaming: false,
2880        http_method: "get",
2881        http_path: "/v1/locks",
2882    },
2883    RpcSpec {
2884        path: "/udb.core.lock.services.v1.LockService/ReleaseLock",
2885        service: "LockService",
2886        service_full: "udb.core.lock.services.v1.LockService",
2887        method: "ReleaseLock",
2888        alias: "release_lock",
2889        operation_kind: "mutation",
2890        read_only: false,
2891        replay_safe: false,
2892        client_streaming: false,
2893        server_streaming: false,
2894        http_method: "post",
2895        http_path: "/v1/locks:release",
2896    },
2897    RpcSpec {
2898        path: "/udb.core.lock.services.v1.LockService/RenewLock",
2899        service: "LockService",
2900        service_full: "udb.core.lock.services.v1.LockService",
2901        method: "RenewLock",
2902        alias: "renew_lock",
2903        operation_kind: "mutation",
2904        read_only: false,
2905        replay_safe: false,
2906        client_streaming: false,
2907        server_streaming: false,
2908        http_method: "post",
2909        http_path: "/v1/locks:renew",
2910    },
2911    RpcSpec {
2912        path: "/udb.core.metering.services.v1.MeteringService/CheckQuota",
2913        service: "MeteringService",
2914        service_full: "udb.core.metering.services.v1.MeteringService",
2915        method: "CheckQuota",
2916        alias: "check_quota",
2917        operation_kind: "read_only",
2918        read_only: true,
2919        replay_safe: false,
2920        client_streaming: false,
2921        server_streaming: false,
2922        http_method: "post",
2923        http_path: "/v1/metering/quotas:check",
2924    },
2925    RpcSpec {
2926        path: "/udb.core.metering.services.v1.MeteringService/GetQuota",
2927        service: "MeteringService",
2928        service_full: "udb.core.metering.services.v1.MeteringService",
2929        method: "GetQuota",
2930        alias: "get_quota",
2931        operation_kind: "read_only",
2932        read_only: true,
2933        replay_safe: false,
2934        client_streaming: false,
2935        server_streaming: false,
2936        http_method: "get",
2937        http_path: "/v1/metering/quotas/{metric}",
2938    },
2939    RpcSpec {
2940        path: "/udb.core.metering.services.v1.MeteringService/ListQuotas",
2941        service: "MeteringService",
2942        service_full: "udb.core.metering.services.v1.MeteringService",
2943        method: "ListQuotas",
2944        alias: "list_quotas",
2945        operation_kind: "read_only",
2946        read_only: true,
2947        replay_safe: false,
2948        client_streaming: false,
2949        server_streaming: false,
2950        http_method: "get",
2951        http_path: "/v1/metering/quotas",
2952    },
2953    RpcSpec {
2954        path: "/udb.core.metering.services.v1.MeteringService/PutQuota",
2955        service: "MeteringService",
2956        service_full: "udb.core.metering.services.v1.MeteringService",
2957        method: "PutQuota",
2958        alias: "put_quota",
2959        operation_kind: "mutation",
2960        read_only: false,
2961        replay_safe: false,
2962        client_streaming: false,
2963        server_streaming: false,
2964        http_method: "post",
2965        http_path: "/v1/metering/quotas:put",
2966    },
2967    RpcSpec {
2968        path: "/udb.core.metering.services.v1.MeteringService/QueryUsage",
2969        service: "MeteringService",
2970        service_full: "udb.core.metering.services.v1.MeteringService",
2971        method: "QueryUsage",
2972        alias: "query_usage",
2973        operation_kind: "read_only",
2974        read_only: true,
2975        replay_safe: false,
2976        client_streaming: false,
2977        server_streaming: false,
2978        http_method: "post",
2979        http_path: "/v1/metering/usage:query",
2980    },
2981    RpcSpec {
2982        path: "/udb.core.metering.services.v1.MeteringService/RecordUsage",
2983        service: "MeteringService",
2984        service_full: "udb.core.metering.services.v1.MeteringService",
2985        method: "RecordUsage",
2986        alias: "record_usage",
2987        operation_kind: "mutation",
2988        read_only: false,
2989        replay_safe: false,
2990        client_streaming: false,
2991        server_streaming: false,
2992        http_method: "post",
2993        http_path: "/v1/metering/usage:record",
2994    },
2995    RpcSpec {
2996        path: "/udb.core.notification.services.v1.NotificationService/GetDeliveryStats",
2997        service: "NotificationService",
2998        service_full: "udb.core.notification.services.v1.NotificationService",
2999        method: "GetDeliveryStats",
3000        alias: "get_delivery_stats",
3001        operation_kind: "read_only",
3002        read_only: true,
3003        replay_safe: false,
3004        client_streaming: false,
3005        server_streaming: false,
3006        http_method: "get",
3007        http_path: "/v1/notifications/stats",
3008    },
3009    RpcSpec {
3010        path: "/udb.core.notification.services.v1.NotificationService/GetNotification",
3011        service: "NotificationService",
3012        service_full: "udb.core.notification.services.v1.NotificationService",
3013        method: "GetNotification",
3014        alias: "get_notification",
3015        operation_kind: "read_only",
3016        read_only: true,
3017        replay_safe: false,
3018        client_streaming: false,
3019        server_streaming: false,
3020        http_method: "get",
3021        http_path: "/v1/notifications/{log_id}",
3022    },
3023    RpcSpec {
3024        path: "/udb.core.notification.services.v1.NotificationService/GetPreference",
3025        service: "NotificationService",
3026        service_full: "udb.core.notification.services.v1.NotificationService",
3027        method: "GetPreference",
3028        alias: "get_preference",
3029        operation_kind: "read_only",
3030        read_only: true,
3031        replay_safe: false,
3032        client_streaming: false,
3033        server_streaming: false,
3034        http_method: "get",
3035        http_path: "/v1/notifications/preferences/{user_id}/{channel}",
3036    },
3037    RpcSpec {
3038        path: "/udb.core.notification.services.v1.NotificationService/GetTemplate",
3039        service: "NotificationService",
3040        service_full: "udb.core.notification.services.v1.NotificationService",
3041        method: "GetTemplate",
3042        alias: "get_template",
3043        operation_kind: "read_only",
3044        read_only: true,
3045        replay_safe: false,
3046        client_streaming: false,
3047        server_streaming: false,
3048        http_method: "get",
3049        http_path: "/v1/notifications/templates/{event_type}/{channel}",
3050    },
3051    RpcSpec {
3052        path: "/udb.core.notification.services.v1.NotificationService/ListNotifications",
3053        service: "NotificationService",
3054        service_full: "udb.core.notification.services.v1.NotificationService",
3055        method: "ListNotifications",
3056        alias: "list_notifications",
3057        operation_kind: "read_only",
3058        read_only: true,
3059        replay_safe: false,
3060        client_streaming: false,
3061        server_streaming: false,
3062        http_method: "get",
3063        http_path: "/v1/notifications",
3064    },
3065    RpcSpec {
3066        path: "/udb.core.notification.services.v1.NotificationService/ListPreferences",
3067        service: "NotificationService",
3068        service_full: "udb.core.notification.services.v1.NotificationService",
3069        method: "ListPreferences",
3070        alias: "list_preferences",
3071        operation_kind: "read_only",
3072        read_only: true,
3073        replay_safe: false,
3074        client_streaming: false,
3075        server_streaming: false,
3076        http_method: "get",
3077        http_path: "/v1/notifications/preferences/{user_id}",
3078    },
3079    RpcSpec {
3080        path: "/udb.core.notification.services.v1.NotificationService/ListTemplates",
3081        service: "NotificationService",
3082        service_full: "udb.core.notification.services.v1.NotificationService",
3083        method: "ListTemplates",
3084        alias: "list_templates",
3085        operation_kind: "read_only",
3086        read_only: true,
3087        replay_safe: false,
3088        client_streaming: false,
3089        server_streaming: false,
3090        http_method: "get",
3091        http_path: "/v1/notifications/templates",
3092    },
3093    RpcSpec {
3094        path: "/udb.core.notification.services.v1.NotificationService/ReportDelivery",
3095        service: "NotificationService",
3096        service_full: "udb.core.notification.services.v1.NotificationService",
3097        method: "ReportDelivery",
3098        alias: "report_delivery",
3099        operation_kind: "mutation",
3100        read_only: false,
3101        replay_safe: false,
3102        client_streaming: false,
3103        server_streaming: false,
3104        http_method: "post",
3105        http_path: "/v1/notifications/{log_id}:report-delivery",
3106    },
3107    RpcSpec {
3108        path: "/udb.core.notification.services.v1.NotificationService/RetryNotification",
3109        service: "NotificationService",
3110        service_full: "udb.core.notification.services.v1.NotificationService",
3111        method: "RetryNotification",
3112        alias: "retry_notification",
3113        operation_kind: "mutation",
3114        read_only: false,
3115        replay_safe: false,
3116        client_streaming: false,
3117        server_streaming: false,
3118        http_method: "post",
3119        http_path: "/v1/notifications/{log_id}:retry",
3120    },
3121    RpcSpec {
3122        path: "/udb.core.notification.services.v1.NotificationService/SendNotification",
3123        service: "NotificationService",
3124        service_full: "udb.core.notification.services.v1.NotificationService",
3125        method: "SendNotification",
3126        alias: "send_notification",
3127        operation_kind: "mutation",
3128        read_only: false,
3129        replay_safe: false,
3130        client_streaming: false,
3131        server_streaming: false,
3132        http_method: "post",
3133        http_path: "/v1/notifications",
3134    },
3135    RpcSpec {
3136        path: "/udb.core.notification.services.v1.NotificationService/SetPreference",
3137        service: "NotificationService",
3138        service_full: "udb.core.notification.services.v1.NotificationService",
3139        method: "SetPreference",
3140        alias: "set_preference",
3141        operation_kind: "mutation",
3142        read_only: false,
3143        replay_safe: false,
3144        client_streaming: false,
3145        server_streaming: false,
3146        http_method: "put",
3147        http_path: "/v1/notifications/preferences/{user_id}/{channel}",
3148    },
3149    RpcSpec {
3150        path: "/udb.core.notification.services.v1.NotificationService/UpsertTemplate",
3151        service: "NotificationService",
3152        service_full: "udb.core.notification.services.v1.NotificationService",
3153        method: "UpsertTemplate",
3154        alias: "upsert_template",
3155        operation_kind: "mutation",
3156        read_only: false,
3157        replay_safe: false,
3158        client_streaming: false,
3159        server_streaming: false,
3160        http_method: "put",
3161        http_path: "/v1/notifications/templates/{event_type}/{channel}",
3162    },
3163    RpcSpec {
3164        path: "/udb.core.scheduler.services.v1.SchedulerService/CreateJob",
3165        service: "SchedulerService",
3166        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3167        method: "CreateJob",
3168        alias: "create_job",
3169        operation_kind: "mutation",
3170        read_only: false,
3171        replay_safe: false,
3172        client_streaming: false,
3173        server_streaming: false,
3174        http_method: "post",
3175        http_path: "/v1/scheduler/jobs",
3176    },
3177    RpcSpec {
3178        path: "/udb.core.scheduler.services.v1.SchedulerService/DeleteJob",
3179        service: "SchedulerService",
3180        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3181        method: "DeleteJob",
3182        alias: "delete_job",
3183        operation_kind: "destructive",
3184        read_only: false,
3185        replay_safe: false,
3186        client_streaming: false,
3187        server_streaming: false,
3188        http_method: "delete",
3189        http_path: "/v1/scheduler/jobs/{job_id}",
3190    },
3191    RpcSpec {
3192        path: "/udb.core.scheduler.services.v1.SchedulerService/GetJob",
3193        service: "SchedulerService",
3194        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3195        method: "GetJob",
3196        alias: "get_job",
3197        operation_kind: "read_only",
3198        read_only: true,
3199        replay_safe: false,
3200        client_streaming: false,
3201        server_streaming: false,
3202        http_method: "get",
3203        http_path: "/v1/scheduler/jobs/{job_id}",
3204    },
3205    RpcSpec {
3206        path: "/udb.core.scheduler.services.v1.SchedulerService/ListJobs",
3207        service: "SchedulerService",
3208        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3209        method: "ListJobs",
3210        alias: "list_jobs",
3211        operation_kind: "read_only",
3212        read_only: true,
3213        replay_safe: false,
3214        client_streaming: false,
3215        server_streaming: false,
3216        http_method: "get",
3217        http_path: "/v1/scheduler/jobs",
3218    },
3219    RpcSpec {
3220        path: "/udb.core.scheduler.services.v1.SchedulerService/PauseJob",
3221        service: "SchedulerService",
3222        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3223        method: "PauseJob",
3224        alias: "pause_job",
3225        operation_kind: "mutation",
3226        read_only: false,
3227        replay_safe: false,
3228        client_streaming: false,
3229        server_streaming: false,
3230        http_method: "post",
3231        http_path: "/v1/scheduler/jobs/{job_id}:pause",
3232    },
3233    RpcSpec {
3234        path: "/udb.core.scheduler.services.v1.SchedulerService/ResumeJob",
3235        service: "SchedulerService",
3236        service_full: "udb.core.scheduler.services.v1.SchedulerService",
3237        method: "ResumeJob",
3238        alias: "resume_job",
3239        operation_kind: "mutation",
3240        read_only: false,
3241        replay_safe: false,
3242        client_streaming: false,
3243        server_streaming: false,
3244        http_method: "post",
3245        http_path: "/v1/scheduler/jobs/{job_id}:resume",
3246    },
3247    RpcSpec {
3248        path: "/udb.core.search.services.v1.SearchService/CreateIndex",
3249        service: "SearchService",
3250        service_full: "udb.core.search.services.v1.SearchService",
3251        method: "CreateIndex",
3252        alias: "create_index",
3253        operation_kind: "mutation",
3254        read_only: false,
3255        replay_safe: false,
3256        client_streaming: false,
3257        server_streaming: false,
3258        http_method: "post",
3259        http_path: "/v1/search/indexes:create",
3260    },
3261    RpcSpec {
3262        path: "/udb.core.search.services.v1.SearchService/DeleteIndex",
3263        service: "SearchService",
3264        service_full: "udb.core.search.services.v1.SearchService",
3265        method: "DeleteIndex",
3266        alias: "delete_index",
3267        operation_kind: "destructive",
3268        read_only: false,
3269        replay_safe: false,
3270        client_streaming: false,
3271        server_streaming: false,
3272        http_method: "post",
3273        http_path: "/v1/search/indexes:delete",
3274    },
3275    RpcSpec {
3276        path: "/udb.core.search.services.v1.SearchService/ListIndexes",
3277        service: "SearchService",
3278        service_full: "udb.core.search.services.v1.SearchService",
3279        method: "ListIndexes",
3280        alias: "list_indexes",
3281        operation_kind: "read_only",
3282        read_only: true,
3283        replay_safe: false,
3284        client_streaming: false,
3285        server_streaming: false,
3286        http_method: "get",
3287        http_path: "/v1/search/indexes",
3288    },
3289    RpcSpec {
3290        path: "/udb.core.search.services.v1.SearchService/Reindex",
3291        service: "SearchService",
3292        service_full: "udb.core.search.services.v1.SearchService",
3293        method: "Reindex",
3294        alias: "reindex",
3295        operation_kind: "mutation",
3296        read_only: false,
3297        replay_safe: false,
3298        client_streaming: false,
3299        server_streaming: false,
3300        http_method: "post",
3301        http_path: "/v1/search/indexes:reindex",
3302    },
3303    RpcSpec {
3304        path: "/udb.core.search.services.v1.SearchService/Search",
3305        service: "SearchService",
3306        service_full: "udb.core.search.services.v1.SearchService",
3307        method: "Search",
3308        alias: "search",
3309        operation_kind: "read_only",
3310        read_only: true,
3311        replay_safe: false,
3312        client_streaming: false,
3313        server_streaming: false,
3314        http_method: "post",
3315        http_path: "/v1/search:query",
3316    },
3317    RpcSpec {
3318        path: "/udb.core.storage.services.v1.StorageService/DeleteFile",
3319        service: "StorageService",
3320        service_full: "udb.core.storage.services.v1.StorageService",
3321        method: "DeleteFile",
3322        alias: "delete_file",
3323        operation_kind: "mutation",
3324        read_only: false,
3325        replay_safe: false,
3326        client_streaming: false,
3327        server_streaming: false,
3328        http_method: "delete",
3329        http_path: "/v1/storage/files/{file_id}",
3330    },
3331    RpcSpec {
3332        path: "/udb.core.storage.services.v1.StorageService/DownloadFile",
3333        service: "StorageService",
3334        service_full: "udb.core.storage.services.v1.StorageService",
3335        method: "DownloadFile",
3336        alias: "download_file",
3337        operation_kind: "read_only",
3338        read_only: true,
3339        replay_safe: false,
3340        client_streaming: false,
3341        server_streaming: true,
3342        http_method: "get",
3343        http_path: "/v1/storage/files/{file_id}:download",
3344    },
3345    RpcSpec {
3346        path: "/udb.core.storage.services.v1.StorageService/FinalizeUpload",
3347        service: "StorageService",
3348        service_full: "udb.core.storage.services.v1.StorageService",
3349        method: "FinalizeUpload",
3350        alias: "finalize_upload",
3351        operation_kind: "mutation",
3352        read_only: false,
3353        replay_safe: false,
3354        client_streaming: false,
3355        server_streaming: false,
3356        http_method: "post",
3357        http_path: "/v1/storage/uploads/{file_id}:finalize",
3358    },
3359    RpcSpec {
3360        path: "/udb.core.storage.services.v1.StorageService/GetDownloadUrl",
3361        service: "StorageService",
3362        service_full: "udb.core.storage.services.v1.StorageService",
3363        method: "GetDownloadUrl",
3364        alias: "get_download_url",
3365        operation_kind: "read_only",
3366        read_only: true,
3367        replay_safe: false,
3368        client_streaming: false,
3369        server_streaming: false,
3370        http_method: "get",
3371        http_path: "/v1/storage/files/{file_id}:getDownloadUrl",
3372    },
3373    RpcSpec {
3374        path: "/udb.core.storage.services.v1.StorageService/GetFile",
3375        service: "StorageService",
3376        service_full: "udb.core.storage.services.v1.StorageService",
3377        method: "GetFile",
3378        alias: "get_file",
3379        operation_kind: "read_only",
3380        read_only: true,
3381        replay_safe: false,
3382        client_streaming: false,
3383        server_streaming: false,
3384        http_method: "get",
3385        http_path: "/v1/storage/files/{file_id}",
3386    },
3387    RpcSpec {
3388        path: "/udb.core.storage.services.v1.StorageService/ListFiles",
3389        service: "StorageService",
3390        service_full: "udb.core.storage.services.v1.StorageService",
3391        method: "ListFiles",
3392        alias: "list_files",
3393        operation_kind: "read_only",
3394        read_only: true,
3395        replay_safe: false,
3396        client_streaming: false,
3397        server_streaming: false,
3398        http_method: "get",
3399        http_path: "/v1/storage/files",
3400    },
3401    RpcSpec {
3402        path: "/udb.core.storage.services.v1.StorageService/RegisterUpload",
3403        service: "StorageService",
3404        service_full: "udb.core.storage.services.v1.StorageService",
3405        method: "RegisterUpload",
3406        alias: "register_upload",
3407        operation_kind: "mutation",
3408        read_only: false,
3409        replay_safe: false,
3410        client_streaming: false,
3411        server_streaming: false,
3412        http_method: "post",
3413        http_path: "/v1/storage/uploads",
3414    },
3415    RpcSpec {
3416        path: "/udb.core.storage.services.v1.StorageService/ReissueUploadUrl",
3417        service: "StorageService",
3418        service_full: "udb.core.storage.services.v1.StorageService",
3419        method: "ReissueUploadUrl",
3420        alias: "reissue_upload_url",
3421        operation_kind: "read_only",
3422        read_only: true,
3423        replay_safe: false,
3424        client_streaming: false,
3425        server_streaming: false,
3426        http_method: "get",
3427        http_path: "/v1/storage/files/{file_id}:reissueUploadUrl",
3428    },
3429    RpcSpec {
3430        path: "/udb.core.storage.services.v1.StorageService/SetScanVerdict",
3431        service: "StorageService",
3432        service_full: "udb.core.storage.services.v1.StorageService",
3433        method: "SetScanVerdict",
3434        alias: "set_scan_verdict",
3435        operation_kind: "mutation",
3436        read_only: false,
3437        replay_safe: false,
3438        client_streaming: false,
3439        server_streaming: false,
3440        http_method: "post",
3441        http_path: "/v1/storage/files/{file_id}:setScanVerdict",
3442    },
3443    RpcSpec {
3444        path: "/udb.core.storage.services.v1.StorageService/UpdateFile",
3445        service: "StorageService",
3446        service_full: "udb.core.storage.services.v1.StorageService",
3447        method: "UpdateFile",
3448        alias: "update_file",
3449        operation_kind: "mutation",
3450        read_only: false,
3451        replay_safe: false,
3452        client_streaming: false,
3453        server_streaming: false,
3454        http_method: "patch",
3455        http_path: "/v1/storage/files/{file_id}",
3456    },
3457    RpcSpec {
3458        path: "/udb.core.tenant.services.v1.TenantService/AdminPurgeTenant",
3459        service: "TenantService",
3460        service_full: "udb.core.tenant.services.v1.TenantService",
3461        method: "AdminPurgeTenant",
3462        alias: "admin_purge_tenant",
3463        operation_kind: "destructive",
3464        read_only: false,
3465        replay_safe: false,
3466        client_streaming: false,
3467        server_streaming: false,
3468        http_method: "post",
3469        http_path: "/v1/tenants/{target_tenant_id}:adminPurge",
3470    },
3471    RpcSpec {
3472        path: "/udb.core.tenant.services.v1.TenantService/CreateTenant",
3473        service: "TenantService",
3474        service_full: "udb.core.tenant.services.v1.TenantService",
3475        method: "CreateTenant",
3476        alias: "create_tenant",
3477        operation_kind: "mutation",
3478        read_only: false,
3479        replay_safe: false,
3480        client_streaming: false,
3481        server_streaming: false,
3482        http_method: "post",
3483        http_path: "/v1/tenants",
3484    },
3485    RpcSpec {
3486        path: "/udb.core.tenant.services.v1.TenantService/GetTenant",
3487        service: "TenantService",
3488        service_full: "udb.core.tenant.services.v1.TenantService",
3489        method: "GetTenant",
3490        alias: "get_tenant",
3491        operation_kind: "read_only",
3492        read_only: true,
3493        replay_safe: false,
3494        client_streaming: false,
3495        server_streaming: false,
3496        http_method: "get",
3497        http_path: "/v1/tenants/{tenant_id}",
3498    },
3499    RpcSpec {
3500        path: "/udb.core.tenant.services.v1.TenantService/GetTenantConfig",
3501        service: "TenantService",
3502        service_full: "udb.core.tenant.services.v1.TenantService",
3503        method: "GetTenantConfig",
3504        alias: "get_tenant_config",
3505        operation_kind: "read_only",
3506        read_only: true,
3507        replay_safe: false,
3508        client_streaming: false,
3509        server_streaming: false,
3510        http_method: "get",
3511        http_path: "/v1/tenants/{tenant_id}/config",
3512    },
3513    RpcSpec {
3514        path: "/udb.core.tenant.services.v1.TenantService/ListTenants",
3515        service: "TenantService",
3516        service_full: "udb.core.tenant.services.v1.TenantService",
3517        method: "ListTenants",
3518        alias: "list_tenants",
3519        operation_kind: "read_only",
3520        read_only: true,
3521        replay_safe: false,
3522        client_streaming: false,
3523        server_streaming: false,
3524        http_method: "get",
3525        http_path: "/v1/tenants",
3526    },
3527    RpcSpec {
3528        path: "/udb.core.tenant.services.v1.TenantService/PurgeTenant",
3529        service: "TenantService",
3530        service_full: "udb.core.tenant.services.v1.TenantService",
3531        method: "PurgeTenant",
3532        alias: "purge_tenant",
3533        operation_kind: "destructive",
3534        read_only: false,
3535        replay_safe: false,
3536        client_streaming: false,
3537        server_streaming: false,
3538        http_method: "post",
3539        http_path: "/v1/tenants/{tenant_id}:purge",
3540    },
3541    RpcSpec {
3542        path: "/udb.core.tenant.services.v1.TenantService/UpdateTenant",
3543        service: "TenantService",
3544        service_full: "udb.core.tenant.services.v1.TenantService",
3545        method: "UpdateTenant",
3546        alias: "update_tenant",
3547        operation_kind: "mutation",
3548        read_only: false,
3549        replay_safe: false,
3550        client_streaming: false,
3551        server_streaming: false,
3552        http_method: "patch",
3553        http_path: "/v1/tenants/{tenant_id}",
3554    },
3555    RpcSpec {
3556        path: "/udb.core.tenant.services.v1.TenantService/UpdateTenantConfig",
3557        service: "TenantService",
3558        service_full: "udb.core.tenant.services.v1.TenantService",
3559        method: "UpdateTenantConfig",
3560        alias: "update_tenant_config",
3561        operation_kind: "mutation",
3562        read_only: false,
3563        replay_safe: false,
3564        client_streaming: false,
3565        server_streaming: false,
3566        http_method: "put",
3567        http_path: "/v1/tenants/{tenant_id}/config",
3568    },
3569    RpcSpec {
3570        path: "/udb.core.vault.services.v1.VaultService/BatchDecrypt",
3571        service: "VaultService",
3572        service_full: "udb.core.vault.services.v1.VaultService",
3573        method: "BatchDecrypt",
3574        alias: "batch_decrypt",
3575        operation_kind: "mutation",
3576        read_only: false,
3577        replay_safe: false,
3578        client_streaming: false,
3579        server_streaming: false,
3580        http_method: "post",
3581        http_path: "/v1/vault/transit:batchDecrypt",
3582    },
3583    RpcSpec {
3584        path: "/udb.core.vault.services.v1.VaultService/BatchEncrypt",
3585        service: "VaultService",
3586        service_full: "udb.core.vault.services.v1.VaultService",
3587        method: "BatchEncrypt",
3588        alias: "batch_encrypt",
3589        operation_kind: "mutation",
3590        read_only: false,
3591        replay_safe: false,
3592        client_streaming: false,
3593        server_streaming: false,
3594        http_method: "post",
3595        http_path: "/v1/vault/transit:batchEncrypt",
3596    },
3597    RpcSpec {
3598        path: "/udb.core.vault.services.v1.VaultService/CreateTransitKey",
3599        service: "VaultService",
3600        service_full: "udb.core.vault.services.v1.VaultService",
3601        method: "CreateTransitKey",
3602        alias: "create_transit_key",
3603        operation_kind: "mutation",
3604        read_only: false,
3605        replay_safe: false,
3606        client_streaming: false,
3607        server_streaming: false,
3608        http_method: "post",
3609        http_path: "/v1/vault/transit/keys",
3610    },
3611    RpcSpec {
3612        path: "/udb.core.vault.services.v1.VaultService/Decrypt",
3613        service: "VaultService",
3614        service_full: "udb.core.vault.services.v1.VaultService",
3615        method: "Decrypt",
3616        alias: "decrypt",
3617        operation_kind: "read_only",
3618        read_only: true,
3619        replay_safe: false,
3620        client_streaming: false,
3621        server_streaming: false,
3622        http_method: "post",
3623        http_path: "/v1/vault/transit:decrypt",
3624    },
3625    RpcSpec {
3626        path: "/udb.core.vault.services.v1.VaultService/DeleteSecret",
3627        service: "VaultService",
3628        service_full: "udb.core.vault.services.v1.VaultService",
3629        method: "DeleteSecret",
3630        alias: "delete_secret",
3631        operation_kind: "mutation",
3632        read_only: false,
3633        replay_safe: false,
3634        client_streaming: false,
3635        server_streaming: false,
3636        http_method: "post",
3637        http_path: "/v1/vault/secrets:delete",
3638    },
3639    RpcSpec {
3640        path: "/udb.core.vault.services.v1.VaultService/DestroySecret",
3641        service: "VaultService",
3642        service_full: "udb.core.vault.services.v1.VaultService",
3643        method: "DestroySecret",
3644        alias: "destroy_secret",
3645        operation_kind: "destructive",
3646        read_only: false,
3647        replay_safe: false,
3648        client_streaming: false,
3649        server_streaming: false,
3650        http_method: "post",
3651        http_path: "/v1/vault/secrets:destroy",
3652    },
3653    RpcSpec {
3654        path: "/udb.core.vault.services.v1.VaultService/EmergencyRevokeDatabaseCredentials",
3655        service: "VaultService",
3656        service_full: "udb.core.vault.services.v1.VaultService",
3657        method: "EmergencyRevokeDatabaseCredentials",
3658        alias: "emergency_revoke_database_credentials",
3659        operation_kind: "destructive",
3660        read_only: false,
3661        replay_safe: false,
3662        client_streaming: false,
3663        server_streaming: false,
3664        http_method: "post",
3665        http_path: "/v1/vault/database/credentials:emergencyRevoke",
3666    },
3667    RpcSpec {
3668        path: "/udb.core.vault.services.v1.VaultService/Encrypt",
3669        service: "VaultService",
3670        service_full: "udb.core.vault.services.v1.VaultService",
3671        method: "Encrypt",
3672        alias: "encrypt",
3673        operation_kind: "mutation",
3674        read_only: false,
3675        replay_safe: false,
3676        client_streaming: false,
3677        server_streaming: false,
3678        http_method: "post",
3679        http_path: "/v1/vault/transit:encrypt",
3680    },
3681    RpcSpec {
3682        path: "/udb.core.vault.services.v1.VaultService/GenerateDataKey",
3683        service: "VaultService",
3684        service_full: "udb.core.vault.services.v1.VaultService",
3685        method: "GenerateDataKey",
3686        alias: "generate_data_key",
3687        operation_kind: "mutation",
3688        read_only: false,
3689        replay_safe: false,
3690        client_streaming: false,
3691        server_streaming: false,
3692        http_method: "post",
3693        http_path: "/v1/vault/transit:generateDataKey",
3694    },
3695    RpcSpec {
3696        path: "/udb.core.vault.services.v1.VaultService/GenerateDatabaseCredentials",
3697        service: "VaultService",
3698        service_full: "udb.core.vault.services.v1.VaultService",
3699        method: "GenerateDatabaseCredentials",
3700        alias: "generate_database_credentials",
3701        operation_kind: "mutation",
3702        read_only: false,
3703        replay_safe: true,
3704        client_streaming: false,
3705        server_streaming: false,
3706        http_method: "post",
3707        http_path: "/v1/vault/database/credentials",
3708    },
3709    RpcSpec {
3710        path: "/udb.core.vault.services.v1.VaultService/GetSecret",
3711        service: "VaultService",
3712        service_full: "udb.core.vault.services.v1.VaultService",
3713        method: "GetSecret",
3714        alias: "get_secret",
3715        operation_kind: "read_only",
3716        read_only: true,
3717        replay_safe: false,
3718        client_streaming: false,
3719        server_streaming: false,
3720        http_method: "get",
3721        http_path: "/v1/vault/secrets/{secret_path=**}",
3722    },
3723    RpcSpec {
3724        path: "/udb.core.vault.services.v1.VaultService/GetTransitPublicKey",
3725        service: "VaultService",
3726        service_full: "udb.core.vault.services.v1.VaultService",
3727        method: "GetTransitPublicKey",
3728        alias: "get_transit_public_key",
3729        operation_kind: "read_only",
3730        read_only: true,
3731        replay_safe: false,
3732        client_streaming: false,
3733        server_streaming: false,
3734        http_method: "post",
3735        http_path: "/v1/vault/transit:publicKey",
3736    },
3737    RpcSpec {
3738        path: "/udb.core.vault.services.v1.VaultService/Hmac",
3739        service: "VaultService",
3740        service_full: "udb.core.vault.services.v1.VaultService",
3741        method: "Hmac",
3742        alias: "hmac",
3743        operation_kind: "mutation",
3744        read_only: false,
3745        replay_safe: false,
3746        client_streaming: false,
3747        server_streaming: false,
3748        http_method: "post",
3749        http_path: "/v1/vault/transit:hmac",
3750    },
3751    RpcSpec {
3752        path: "/udb.core.vault.services.v1.VaultService/ListSecrets",
3753        service: "VaultService",
3754        service_full: "udb.core.vault.services.v1.VaultService",
3755        method: "ListSecrets",
3756        alias: "list_secrets",
3757        operation_kind: "read_only",
3758        read_only: true,
3759        replay_safe: false,
3760        client_streaming: false,
3761        server_streaming: false,
3762        http_method: "get",
3763        http_path: "/v1/vault/secrets",
3764    },
3765    RpcSpec {
3766        path: "/udb.core.vault.services.v1.VaultService/PutSecret",
3767        service: "VaultService",
3768        service_full: "udb.core.vault.services.v1.VaultService",
3769        method: "PutSecret",
3770        alias: "put_secret",
3771        operation_kind: "mutation",
3772        read_only: false,
3773        replay_safe: false,
3774        client_streaming: false,
3775        server_streaming: false,
3776        http_method: "post",
3777        http_path: "/v1/vault/secrets:put",
3778    },
3779    RpcSpec {
3780        path: "/udb.core.vault.services.v1.VaultService/RevokeDatabaseCredentials",
3781        service: "VaultService",
3782        service_full: "udb.core.vault.services.v1.VaultService",
3783        method: "RevokeDatabaseCredentials",
3784        alias: "revoke_database_credentials",
3785        operation_kind: "destructive",
3786        read_only: false,
3787        replay_safe: true,
3788        client_streaming: false,
3789        server_streaming: false,
3790        http_method: "post",
3791        http_path: "/v1/vault/database/credentials/{lease_id}:revoke",
3792    },
3793    RpcSpec {
3794        path: "/udb.core.vault.services.v1.VaultService/Rewrap",
3795        service: "VaultService",
3796        service_full: "udb.core.vault.services.v1.VaultService",
3797        method: "Rewrap",
3798        alias: "rewrap",
3799        operation_kind: "mutation",
3800        read_only: false,
3801        replay_safe: false,
3802        client_streaming: false,
3803        server_streaming: false,
3804        http_method: "post",
3805        http_path: "/v1/vault/transit:rewrap",
3806    },
3807    RpcSpec {
3808        path: "/udb.core.vault.services.v1.VaultService/RotateTransitKey",
3809        service: "VaultService",
3810        service_full: "udb.core.vault.services.v1.VaultService",
3811        method: "RotateTransitKey",
3812        alias: "rotate_transit_key",
3813        operation_kind: "mutation",
3814        read_only: false,
3815        replay_safe: false,
3816        client_streaming: false,
3817        server_streaming: false,
3818        http_method: "post",
3819        http_path: "/v1/vault/transit/keys:rotate",
3820    },
3821    RpcSpec {
3822        path: "/udb.core.vault.services.v1.VaultService/SealStatus",
3823        service: "VaultService",
3824        service_full: "udb.core.vault.services.v1.VaultService",
3825        method: "SealStatus",
3826        alias: "seal_status",
3827        operation_kind: "read_only",
3828        read_only: true,
3829        replay_safe: false,
3830        client_streaming: false,
3831        server_streaming: false,
3832        http_method: "get",
3833        http_path: "/v1/vault/seal-status",
3834    },
3835    RpcSpec {
3836        path: "/udb.core.vault.services.v1.VaultService/Sign",
3837        service: "VaultService",
3838        service_full: "udb.core.vault.services.v1.VaultService",
3839        method: "Sign",
3840        alias: "sign",
3841        operation_kind: "mutation",
3842        read_only: false,
3843        replay_safe: false,
3844        client_streaming: false,
3845        server_streaming: false,
3846        http_method: "post",
3847        http_path: "/v1/vault/transit:sign",
3848    },
3849    RpcSpec {
3850        path: "/udb.core.vault.services.v1.VaultService/UndeleteSecret",
3851        service: "VaultService",
3852        service_full: "udb.core.vault.services.v1.VaultService",
3853        method: "UndeleteSecret",
3854        alias: "undelete_secret",
3855        operation_kind: "mutation",
3856        read_only: false,
3857        replay_safe: false,
3858        client_streaming: false,
3859        server_streaming: false,
3860        http_method: "post",
3861        http_path: "/v1/vault/secrets:undelete",
3862    },
3863    RpcSpec {
3864        path: "/udb.core.vault.services.v1.VaultService/Verify",
3865        service: "VaultService",
3866        service_full: "udb.core.vault.services.v1.VaultService",
3867        method: "Verify",
3868        alias: "verify",
3869        operation_kind: "read_only",
3870        read_only: true,
3871        replay_safe: false,
3872        client_streaming: false,
3873        server_streaming: false,
3874        http_method: "post",
3875        http_path: "/v1/vault/transit:verify",
3876    },
3877    RpcSpec {
3878        path: "/udb.core.webhook.services.v1.WebhookService/CreateEndpoint",
3879        service: "WebhookService",
3880        service_full: "udb.core.webhook.services.v1.WebhookService",
3881        method: "CreateEndpoint",
3882        alias: "create_endpoint",
3883        operation_kind: "mutation",
3884        read_only: false,
3885        replay_safe: false,
3886        client_streaming: false,
3887        server_streaming: false,
3888        http_method: "post",
3889        http_path: "/v1/webhook/endpoints",
3890    },
3891    RpcSpec {
3892        path: "/udb.core.webhook.services.v1.WebhookService/DeleteEndpoint",
3893        service: "WebhookService",
3894        service_full: "udb.core.webhook.services.v1.WebhookService",
3895        method: "DeleteEndpoint",
3896        alias: "delete_endpoint",
3897        operation_kind: "destructive",
3898        read_only: false,
3899        replay_safe: false,
3900        client_streaming: false,
3901        server_streaming: false,
3902        http_method: "delete",
3903        http_path: "/v1/webhook/endpoints/{endpoint_id}",
3904    },
3905    RpcSpec {
3906        path: "/udb.core.webhook.services.v1.WebhookService/GetEndpoint",
3907        service: "WebhookService",
3908        service_full: "udb.core.webhook.services.v1.WebhookService",
3909        method: "GetEndpoint",
3910        alias: "get_endpoint",
3911        operation_kind: "read_only",
3912        read_only: true,
3913        replay_safe: false,
3914        client_streaming: false,
3915        server_streaming: false,
3916        http_method: "get",
3917        http_path: "/v1/webhook/endpoints/{endpoint_id}",
3918    },
3919    RpcSpec {
3920        path: "/udb.core.webhook.services.v1.WebhookService/ListDeliveries",
3921        service: "WebhookService",
3922        service_full: "udb.core.webhook.services.v1.WebhookService",
3923        method: "ListDeliveries",
3924        alias: "list_deliveries",
3925        operation_kind: "read_only",
3926        read_only: true,
3927        replay_safe: false,
3928        client_streaming: false,
3929        server_streaming: false,
3930        http_method: "get",
3931        http_path: "/v1/webhook/deliveries",
3932    },
3933    RpcSpec {
3934        path: "/udb.core.webhook.services.v1.WebhookService/ListEndpoints",
3935        service: "WebhookService",
3936        service_full: "udb.core.webhook.services.v1.WebhookService",
3937        method: "ListEndpoints",
3938        alias: "list_endpoints",
3939        operation_kind: "read_only",
3940        read_only: true,
3941        replay_safe: false,
3942        client_streaming: false,
3943        server_streaming: false,
3944        http_method: "get",
3945        http_path: "/v1/webhook/endpoints",
3946    },
3947    RpcSpec {
3948        path: "/udb.core.webhook.services.v1.WebhookService/UpdateEndpoint",
3949        service: "WebhookService",
3950        service_full: "udb.core.webhook.services.v1.WebhookService",
3951        method: "UpdateEndpoint",
3952        alias: "update_endpoint",
3953        operation_kind: "mutation",
3954        read_only: false,
3955        replay_safe: false,
3956        client_streaming: false,
3957        server_streaming: false,
3958        http_method: "patch",
3959        http_path: "/v1/webhook/endpoints/{endpoint_id}",
3960    },
3961    RpcSpec {
3962        path: "/udb.core.webrtc.services.v1.PeerService/GetPeer",
3963        service: "PeerService",
3964        service_full: "udb.core.webrtc.services.v1.PeerService",
3965        method: "GetPeer",
3966        alias: "get_peer",
3967        operation_kind: "read_only",
3968        read_only: true,
3969        replay_safe: false,
3970        client_streaming: false,
3971        server_streaming: false,
3972        http_method: "get",
3973        http_path: "/v1/webrtc/peers/{peer_id}",
3974    },
3975    RpcSpec {
3976        path: "/udb.core.webrtc.services.v1.PeerService/JoinRoom",
3977        service: "PeerService",
3978        service_full: "udb.core.webrtc.services.v1.PeerService",
3979        method: "JoinRoom",
3980        alias: "join_room",
3981        operation_kind: "mutation",
3982        read_only: false,
3983        replay_safe: false,
3984        client_streaming: false,
3985        server_streaming: false,
3986        http_method: "post",
3987        http_path: "/v1/webrtc/rooms/{room_id}/peers",
3988    },
3989    RpcSpec {
3990        path: "/udb.core.webrtc.services.v1.PeerService/JoinSession",
3991        service: "PeerService",
3992        service_full: "udb.core.webrtc.services.v1.PeerService",
3993        method: "JoinSession",
3994        alias: "join_session",
3995        operation_kind: "mutation",
3996        read_only: false,
3997        replay_safe: false,
3998        client_streaming: false,
3999        server_streaming: false,
4000        http_method: "",
4001        http_path: "",
4002    },
4003    RpcSpec {
4004        path: "/udb.core.webrtc.services.v1.PeerService/LeaveRoom",
4005        service: "PeerService",
4006        service_full: "udb.core.webrtc.services.v1.PeerService",
4007        method: "LeaveRoom",
4008        alias: "leave_room",
4009        operation_kind: "mutation",
4010        read_only: false,
4011        replay_safe: false,
4012        client_streaming: false,
4013        server_streaming: false,
4014        http_method: "post",
4015        http_path: "/v1/webrtc/rooms/{room_id}/peers/{peer_id}:leave",
4016    },
4017    RpcSpec {
4018        path: "/udb.core.webrtc.services.v1.PeerService/ListPeers",
4019        service: "PeerService",
4020        service_full: "udb.core.webrtc.services.v1.PeerService",
4021        method: "ListPeers",
4022        alias: "list_peers",
4023        operation_kind: "read_only",
4024        read_only: true,
4025        replay_safe: false,
4026        client_streaming: false,
4027        server_streaming: false,
4028        http_method: "get",
4029        http_path: "/v1/webrtc/rooms/{room_id}/peers",
4030    },
4031    RpcSpec {
4032        path: "/udb.core.webrtc.services.v1.RoomService/CloseRoom",
4033        service: "RoomService",
4034        service_full: "udb.core.webrtc.services.v1.RoomService",
4035        method: "CloseRoom",
4036        alias: "close_room",
4037        operation_kind: "mutation",
4038        read_only: false,
4039        replay_safe: false,
4040        client_streaming: false,
4041        server_streaming: false,
4042        http_method: "post",
4043        http_path: "/v1/webrtc/rooms/{room_id}:close",
4044    },
4045    RpcSpec {
4046        path: "/udb.core.webrtc.services.v1.RoomService/CreateRoom",
4047        service: "RoomService",
4048        service_full: "udb.core.webrtc.services.v1.RoomService",
4049        method: "CreateRoom",
4050        alias: "create_room",
4051        operation_kind: "mutation",
4052        read_only: false,
4053        replay_safe: false,
4054        client_streaming: false,
4055        server_streaming: false,
4056        http_method: "post",
4057        http_path: "/v1/webrtc/rooms",
4058    },
4059    RpcSpec {
4060        path: "/udb.core.webrtc.services.v1.RoomService/GetRoom",
4061        service: "RoomService",
4062        service_full: "udb.core.webrtc.services.v1.RoomService",
4063        method: "GetRoom",
4064        alias: "get_room",
4065        operation_kind: "read_only",
4066        read_only: true,
4067        replay_safe: false,
4068        client_streaming: false,
4069        server_streaming: false,
4070        http_method: "get",
4071        http_path: "/v1/webrtc/rooms/{room_id}",
4072    },
4073    RpcSpec {
4074        path: "/udb.core.webrtc.services.v1.RoomService/ListEgress",
4075        service: "RoomService",
4076        service_full: "udb.core.webrtc.services.v1.RoomService",
4077        method: "ListEgress",
4078        alias: "list_egress",
4079        operation_kind: "read_only",
4080        read_only: true,
4081        replay_safe: false,
4082        client_streaming: false,
4083        server_streaming: false,
4084        http_method: "get",
4085        http_path: "/v1/webrtc/egress",
4086    },
4087    RpcSpec {
4088        path: "/udb.core.webrtc.services.v1.RoomService/ListRooms",
4089        service: "RoomService",
4090        service_full: "udb.core.webrtc.services.v1.RoomService",
4091        method: "ListRooms",
4092        alias: "list_rooms",
4093        operation_kind: "read_only",
4094        read_only: true,
4095        replay_safe: false,
4096        client_streaming: false,
4097        server_streaming: false,
4098        http_method: "get",
4099        http_path: "/v1/webrtc/rooms",
4100    },
4101    RpcSpec {
4102        path: "/udb.core.webrtc.services.v1.RoomService/StartRoomComposite",
4103        service: "RoomService",
4104        service_full: "udb.core.webrtc.services.v1.RoomService",
4105        method: "StartRoomComposite",
4106        alias: "start_room_composite",
4107        operation_kind: "mutation",
4108        read_only: false,
4109        replay_safe: false,
4110        client_streaming: false,
4111        server_streaming: false,
4112        http_method: "post",
4113        http_path: "/v1/webrtc/rooms/{room_id}/egress:composite",
4114    },
4115    RpcSpec {
4116        path: "/udb.core.webrtc.services.v1.RoomService/StartTrackEgress",
4117        service: "RoomService",
4118        service_full: "udb.core.webrtc.services.v1.RoomService",
4119        method: "StartTrackEgress",
4120        alias: "start_track_egress",
4121        operation_kind: "mutation",
4122        read_only: false,
4123        replay_safe: false,
4124        client_streaming: false,
4125        server_streaming: false,
4126        http_method: "post",
4127        http_path: "/v1/webrtc/tracks/{track_id}:startEgress",
4128    },
4129    RpcSpec {
4130        path: "/udb.core.webrtc.services.v1.RoomService/StopEgress",
4131        service: "RoomService",
4132        service_full: "udb.core.webrtc.services.v1.RoomService",
4133        method: "StopEgress",
4134        alias: "stop_egress",
4135        operation_kind: "mutation",
4136        read_only: false,
4137        replay_safe: false,
4138        client_streaming: false,
4139        server_streaming: false,
4140        http_method: "post",
4141        http_path: "/v1/webrtc/egress/{egress_id}:stop",
4142    },
4143    RpcSpec {
4144        path: "/udb.core.webrtc.services.v1.RoomService/UpdateRoom",
4145        service: "RoomService",
4146        service_full: "udb.core.webrtc.services.v1.RoomService",
4147        method: "UpdateRoom",
4148        alias: "update_room",
4149        operation_kind: "mutation",
4150        read_only: false,
4151        replay_safe: false,
4152        client_streaming: false,
4153        server_streaming: false,
4154        http_method: "patch",
4155        http_path: "/v1/webrtc/rooms/{room_id}",
4156    },
4157    RpcSpec {
4158        path: "/udb.core.webrtc.services.v1.SignalingService/Signal",
4159        service: "SignalingService",
4160        service_full: "udb.core.webrtc.services.v1.SignalingService",
4161        method: "Signal",
4162        alias: "signal",
4163        operation_kind: "mutation",
4164        read_only: false,
4165        replay_safe: false,
4166        client_streaming: true,
4167        server_streaming: true,
4168        http_method: "",
4169        http_path: "",
4170    },
4171    RpcSpec {
4172        path: "/udb.core.webrtc.services.v1.TrackService/ListTracks",
4173        service: "TrackService",
4174        service_full: "udb.core.webrtc.services.v1.TrackService",
4175        method: "ListTracks",
4176        alias: "list_tracks",
4177        operation_kind: "read_only",
4178        read_only: true,
4179        replay_safe: false,
4180        client_streaming: false,
4181        server_streaming: false,
4182        http_method: "get",
4183        http_path: "/v1/webrtc/rooms/{room_id}/tracks",
4184    },
4185    RpcSpec {
4186        path: "/udb.core.webrtc.services.v1.TrackService/MuteTrack",
4187        service: "TrackService",
4188        service_full: "udb.core.webrtc.services.v1.TrackService",
4189        method: "MuteTrack",
4190        alias: "mute_track",
4191        operation_kind: "mutation",
4192        read_only: false,
4193        replay_safe: false,
4194        client_streaming: false,
4195        server_streaming: false,
4196        http_method: "post",
4197        http_path: "/v1/webrtc/tracks/{track_id}:mute",
4198    },
4199    RpcSpec {
4200        path: "/udb.core.webrtc.services.v1.TrackService/PublishTrack",
4201        service: "TrackService",
4202        service_full: "udb.core.webrtc.services.v1.TrackService",
4203        method: "PublishTrack",
4204        alias: "publish_track",
4205        operation_kind: "mutation",
4206        read_only: false,
4207        replay_safe: false,
4208        client_streaming: false,
4209        server_streaming: false,
4210        http_method: "post",
4211        http_path: "/v1/webrtc/tracks",
4212    },
4213    RpcSpec {
4214        path: "/udb.core.webrtc.services.v1.TrackService/UnpublishTrack",
4215        service: "TrackService",
4216        service_full: "udb.core.webrtc.services.v1.TrackService",
4217        method: "UnpublishTrack",
4218        alias: "unpublish_track",
4219        operation_kind: "mutation",
4220        read_only: false,
4221        replay_safe: false,
4222        client_streaming: false,
4223        server_streaming: false,
4224        http_method: "post",
4225        http_path: "/v1/webrtc/tracks/{track_id}:unpublish",
4226    },
4227    RpcSpec {
4228        path: "/udb.core.webrtc.services.v1.TurnService/IssueCredentials",
4229        service: "TurnService",
4230        service_full: "udb.core.webrtc.services.v1.TurnService",
4231        method: "IssueCredentials",
4232        alias: "issue_credentials",
4233        operation_kind: "mutation",
4234        read_only: false,
4235        replay_safe: false,
4236        client_streaming: false,
4237        server_streaming: false,
4238        http_method: "post",
4239        http_path: "/v1/webrtc/turn/credentials",
4240    },
4241    RpcSpec {
4242        path: "/udb.core.workflow.services.v1.WorkflowService/CancelWorkflow",
4243        service: "WorkflowService",
4244        service_full: "udb.core.workflow.services.v1.WorkflowService",
4245        method: "CancelWorkflow",
4246        alias: "cancel_workflow",
4247        operation_kind: "destructive",
4248        read_only: false,
4249        replay_safe: false,
4250        client_streaming: false,
4251        server_streaming: false,
4252        http_method: "post",
4253        http_path: "/v1/workflows/{workflow_id}:cancel",
4254    },
4255    RpcSpec {
4256        path: "/udb.core.workflow.services.v1.WorkflowService/GetWorkflow",
4257        service: "WorkflowService",
4258        service_full: "udb.core.workflow.services.v1.WorkflowService",
4259        method: "GetWorkflow",
4260        alias: "get_workflow",
4261        operation_kind: "read_only",
4262        read_only: true,
4263        replay_safe: false,
4264        client_streaming: false,
4265        server_streaming: false,
4266        http_method: "get",
4267        http_path: "/v1/workflows/{workflow_id}",
4268    },
4269    RpcSpec {
4270        path: "/udb.core.workflow.services.v1.WorkflowService/ListWorkflows",
4271        service: "WorkflowService",
4272        service_full: "udb.core.workflow.services.v1.WorkflowService",
4273        method: "ListWorkflows",
4274        alias: "list_workflows",
4275        operation_kind: "read_only",
4276        read_only: true,
4277        replay_safe: false,
4278        client_streaming: false,
4279        server_streaming: false,
4280        http_method: "get",
4281        http_path: "/v1/workflows",
4282    },
4283    RpcSpec {
4284        path: "/udb.core.workflow.services.v1.WorkflowService/SignalWorkflow",
4285        service: "WorkflowService",
4286        service_full: "udb.core.workflow.services.v1.WorkflowService",
4287        method: "SignalWorkflow",
4288        alias: "signal_workflow",
4289        operation_kind: "mutation",
4290        read_only: false,
4291        replay_safe: false,
4292        client_streaming: false,
4293        server_streaming: false,
4294        http_method: "post",
4295        http_path: "/v1/workflows/{workflow_id}:signal",
4296    },
4297    RpcSpec {
4298        path: "/udb.core.workflow.services.v1.WorkflowService/StartWorkflow",
4299        service: "WorkflowService",
4300        service_full: "udb.core.workflow.services.v1.WorkflowService",
4301        method: "StartWorkflow",
4302        alias: "start_workflow",
4303        operation_kind: "mutation",
4304        read_only: false,
4305        replay_safe: false,
4306        client_streaming: false,
4307        server_streaming: false,
4308        http_method: "post",
4309        http_path: "/v1/workflows:start",
4310    },
4311    RpcSpec {
4312        path: "/udb.services.v1.DataBroker/ActivateCatalog",
4313        service: "DataBroker",
4314        service_full: "udb.services.v1.DataBroker",
4315        method: "ActivateCatalog",
4316        alias: "activate_catalog",
4317        operation_kind: "destructive",
4318        read_only: false,
4319        replay_safe: false,
4320        client_streaming: false,
4321        server_streaming: false,
4322        http_method: "",
4323        http_path: "",
4324    },
4325    RpcSpec {
4326        path: "/udb.services.v1.DataBroker/AnalyticalQuery",
4327        service: "DataBroker",
4328        service_full: "udb.services.v1.DataBroker",
4329        method: "AnalyticalQuery",
4330        alias: "analytical_query",
4331        operation_kind: "read_only",
4332        read_only: true,
4333        replay_safe: false,
4334        client_streaming: false,
4335        server_streaming: false,
4336        http_method: "",
4337        http_path: "",
4338    },
4339    RpcSpec {
4340        path: "/udb.services.v1.DataBroker/ApplyMigration",
4341        service: "DataBroker",
4342        service_full: "udb.services.v1.DataBroker",
4343        method: "ApplyMigration",
4344        alias: "apply_migration",
4345        operation_kind: "mutation",
4346        read_only: false,
4347        replay_safe: false,
4348        client_streaming: false,
4349        server_streaming: false,
4350        http_method: "",
4351        http_path: "",
4352    },
4353    RpcSpec {
4354        path: "/udb.services.v1.DataBroker/ApproveMigrationPlan",
4355        service: "DataBroker",
4356        service_full: "udb.services.v1.DataBroker",
4357        method: "ApproveMigrationPlan",
4358        alias: "approve_migration_plan",
4359        operation_kind: "mutation",
4360        read_only: false,
4361        replay_safe: false,
4362        client_streaming: false,
4363        server_streaming: false,
4364        http_method: "",
4365        http_path: "",
4366    },
4367    RpcSpec {
4368        path: "/udb.services.v1.DataBroker/BatchSelect",
4369        service: "DataBroker",
4370        service_full: "udb.services.v1.DataBroker",
4371        method: "BatchSelect",
4372        alias: "batch_select",
4373        operation_kind: "mutation",
4374        read_only: false,
4375        replay_safe: false,
4376        client_streaming: true,
4377        server_streaming: true,
4378        http_method: "",
4379        http_path: "",
4380    },
4381    RpcSpec {
4382        path: "/udb.services.v1.DataBroker/BatchUpsert",
4383        service: "DataBroker",
4384        service_full: "udb.services.v1.DataBroker",
4385        method: "BatchUpsert",
4386        alias: "batch_upsert",
4387        operation_kind: "mutation",
4388        read_only: false,
4389        replay_safe: false,
4390        client_streaming: true,
4391        server_streaming: true,
4392        http_method: "",
4393        http_path: "",
4394    },
4395    RpcSpec {
4396        path: "/udb.services.v1.DataBroker/BeginTx",
4397        service: "DataBroker",
4398        service_full: "udb.services.v1.DataBroker",
4399        method: "BeginTx",
4400        alias: "begin_tx",
4401        operation_kind: "mutation",
4402        read_only: false,
4403        replay_safe: false,
4404        client_streaming: true,
4405        server_streaming: true,
4406        http_method: "",
4407        http_path: "",
4408    },
4409    RpcSpec {
4410        path: "/udb.services.v1.DataBroker/BulkCas",
4411        service: "DataBroker",
4412        service_full: "udb.services.v1.DataBroker",
4413        method: "BulkCas",
4414        alias: "bulk_cas",
4415        operation_kind: "mutation",
4416        read_only: false,
4417        replay_safe: false,
4418        client_streaming: false,
4419        server_streaming: false,
4420        http_method: "",
4421        http_path: "",
4422    },
4423    RpcSpec {
4424        path: "/udb.services.v1.DataBroker/CacheDelete",
4425        service: "DataBroker",
4426        service_full: "udb.services.v1.DataBroker",
4427        method: "CacheDelete",
4428        alias: "cache_delete",
4429        operation_kind: "mutation",
4430        read_only: false,
4431        replay_safe: false,
4432        client_streaming: false,
4433        server_streaming: false,
4434        http_method: "",
4435        http_path: "",
4436    },
4437    RpcSpec {
4438        path: "/udb.services.v1.DataBroker/CacheGet",
4439        service: "DataBroker",
4440        service_full: "udb.services.v1.DataBroker",
4441        method: "CacheGet",
4442        alias: "cache_get",
4443        operation_kind: "read_only",
4444        read_only: true,
4445        replay_safe: false,
4446        client_streaming: false,
4447        server_streaming: false,
4448        http_method: "",
4449        http_path: "",
4450    },
4451    RpcSpec {
4452        path: "/udb.services.v1.DataBroker/CacheScan",
4453        service: "DataBroker",
4454        service_full: "udb.services.v1.DataBroker",
4455        method: "CacheScan",
4456        alias: "cache_scan",
4457        operation_kind: "read_only",
4458        read_only: true,
4459        replay_safe: false,
4460        client_streaming: false,
4461        server_streaming: false,
4462        http_method: "",
4463        http_path: "",
4464    },
4465    RpcSpec {
4466        path: "/udb.services.v1.DataBroker/CacheSet",
4467        service: "DataBroker",
4468        service_full: "udb.services.v1.DataBroker",
4469        method: "CacheSet",
4470        alias: "cache_set",
4471        operation_kind: "mutation",
4472        read_only: false,
4473        replay_safe: false,
4474        client_streaming: false,
4475        server_streaming: false,
4476        http_method: "",
4477        http_path: "",
4478    },
4479    RpcSpec {
4480        path: "/udb.services.v1.DataBroker/CreateMaterializedView",
4481        service: "DataBroker",
4482        service_full: "udb.services.v1.DataBroker",
4483        method: "CreateMaterializedView",
4484        alias: "create_materialized_view",
4485        operation_kind: "mutation",
4486        read_only: false,
4487        replay_safe: false,
4488        client_streaming: false,
4489        server_streaming: false,
4490        http_method: "",
4491        http_path: "",
4492    },
4493    RpcSpec {
4494        path: "/udb.services.v1.DataBroker/Delete",
4495        service: "DataBroker",
4496        service_full: "udb.services.v1.DataBroker",
4497        method: "Delete",
4498        alias: "delete",
4499        operation_kind: "mutation",
4500        read_only: false,
4501        replay_safe: true,
4502        client_streaming: false,
4503        server_streaming: false,
4504        http_method: "",
4505        http_path: "",
4506    },
4507    RpcSpec {
4508        path: "/udb.services.v1.DataBroker/DeletePolicy",
4509        service: "DataBroker",
4510        service_full: "udb.services.v1.DataBroker",
4511        method: "DeletePolicy",
4512        alias: "delete_policy",
4513        operation_kind: "mutation",
4514        read_only: false,
4515        replay_safe: false,
4516        client_streaming: false,
4517        server_streaming: false,
4518        http_method: "",
4519        http_path: "",
4520    },
4521    RpcSpec {
4522        path: "/udb.services.v1.DataBroker/DismissDlqEvent",
4523        service: "DataBroker",
4524        service_full: "udb.services.v1.DataBroker",
4525        method: "DismissDlqEvent",
4526        alias: "dismiss_dlq_event",
4527        operation_kind: "mutation",
4528        read_only: false,
4529        replay_safe: false,
4530        client_streaming: false,
4531        server_streaming: false,
4532        http_method: "",
4533        http_path: "",
4534    },
4535    RpcSpec {
4536        path: "/udb.services.v1.DataBroker/DocumentDelete",
4537        service: "DataBroker",
4538        service_full: "udb.services.v1.DataBroker",
4539        method: "DocumentDelete",
4540        alias: "document_delete",
4541        operation_kind: "mutation",
4542        read_only: false,
4543        replay_safe: false,
4544        client_streaming: false,
4545        server_streaming: false,
4546        http_method: "",
4547        http_path: "",
4548    },
4549    RpcSpec {
4550        path: "/udb.services.v1.DataBroker/DocumentFind",
4551        service: "DataBroker",
4552        service_full: "udb.services.v1.DataBroker",
4553        method: "DocumentFind",
4554        alias: "document_find",
4555        operation_kind: "read_only",
4556        read_only: true,
4557        replay_safe: false,
4558        client_streaming: false,
4559        server_streaming: false,
4560        http_method: "",
4561        http_path: "",
4562    },
4563    RpcSpec {
4564        path: "/udb.services.v1.DataBroker/DocumentGet",
4565        service: "DataBroker",
4566        service_full: "udb.services.v1.DataBroker",
4567        method: "DocumentGet",
4568        alias: "document_get",
4569        operation_kind: "read_only",
4570        read_only: true,
4571        replay_safe: false,
4572        client_streaming: false,
4573        server_streaming: false,
4574        http_method: "",
4575        http_path: "",
4576    },
4577    RpcSpec {
4578        path: "/udb.services.v1.DataBroker/DocumentUpsert",
4579        service: "DataBroker",
4580        service_full: "udb.services.v1.DataBroker",
4581        method: "DocumentUpsert",
4582        alias: "document_upsert",
4583        operation_kind: "mutation",
4584        read_only: false,
4585        replay_safe: false,
4586        client_streaming: false,
4587        server_streaming: false,
4588        http_method: "",
4589        http_path: "",
4590    },
4591    RpcSpec {
4592        path: "/udb.services.v1.DataBroker/DropResource",
4593        service: "DataBroker",
4594        service_full: "udb.services.v1.DataBroker",
4595        method: "DropResource",
4596        alias: "drop_resource",
4597        operation_kind: "destructive",
4598        read_only: false,
4599        replay_safe: false,
4600        client_streaming: false,
4601        server_streaming: false,
4602        http_method: "",
4603        http_path: "",
4604    },
4605    RpcSpec {
4606        path: "/udb.services.v1.DataBroker/EnqueueOutboxEvent",
4607        service: "DataBroker",
4608        service_full: "udb.services.v1.DataBroker",
4609        method: "EnqueueOutboxEvent",
4610        alias: "enqueue_outbox_event",
4611        operation_kind: "mutation",
4612        read_only: false,
4613        replay_safe: false,
4614        client_streaming: false,
4615        server_streaming: false,
4616        http_method: "",
4617        http_path: "",
4618    },
4619    RpcSpec {
4620        path: "/udb.services.v1.DataBroker/EnsureBaseline",
4621        service: "DataBroker",
4622        service_full: "udb.services.v1.DataBroker",
4623        method: "EnsureBaseline",
4624        alias: "ensure_baseline",
4625        operation_kind: "mutation",
4626        read_only: false,
4627        replay_safe: false,
4628        client_streaming: false,
4629        server_streaming: false,
4630        http_method: "",
4631        http_path: "",
4632    },
4633    RpcSpec {
4634        path: "/udb.services.v1.DataBroker/EnsureProject",
4635        service: "DataBroker",
4636        service_full: "udb.services.v1.DataBroker",
4637        method: "EnsureProject",
4638        alias: "ensure_project",
4639        operation_kind: "mutation",
4640        read_only: false,
4641        replay_safe: false,
4642        client_streaming: false,
4643        server_streaming: false,
4644        http_method: "",
4645        http_path: "",
4646    },
4647    RpcSpec {
4648        path: "/udb.services.v1.DataBroker/EnsureResource",
4649        service: "DataBroker",
4650        service_full: "udb.services.v1.DataBroker",
4651        method: "EnsureResource",
4652        alias: "ensure_resource",
4653        operation_kind: "mutation",
4654        read_only: false,
4655        replay_safe: false,
4656        client_streaming: false,
4657        server_streaming: false,
4658        http_method: "",
4659        http_path: "",
4660    },
4661    RpcSpec {
4662        path: "/udb.services.v1.DataBroker/GeneratePresignedUrl",
4663        service: "DataBroker",
4664        service_full: "udb.services.v1.DataBroker",
4665        method: "GeneratePresignedUrl",
4666        alias: "generate_presigned_url",
4667        operation_kind: "mutation",
4668        read_only: false,
4669        replay_safe: false,
4670        client_streaming: false,
4671        server_streaming: false,
4672        http_method: "",
4673        http_path: "",
4674    },
4675    RpcSpec {
4676        path: "/udb.services.v1.DataBroker/GenericDispatch",
4677        service: "DataBroker",
4678        service_full: "udb.services.v1.DataBroker",
4679        method: "GenericDispatch",
4680        alias: "generic_dispatch",
4681        operation_kind: "mutation",
4682        read_only: false,
4683        replay_safe: false,
4684        client_streaming: false,
4685        server_streaming: false,
4686        http_method: "",
4687        http_path: "",
4688    },
4689    RpcSpec {
4690        path: "/udb.services.v1.DataBroker/GetAdminSummary",
4691        service: "DataBroker",
4692        service_full: "udb.services.v1.DataBroker",
4693        method: "GetAdminSummary",
4694        alias: "get_admin_summary",
4695        operation_kind: "read_only",
4696        read_only: true,
4697        replay_safe: false,
4698        client_streaming: false,
4699        server_streaming: false,
4700        http_method: "",
4701        http_path: "",
4702    },
4703    RpcSpec {
4704        path: "/udb.services.v1.DataBroker/GetCapabilities",
4705        service: "DataBroker",
4706        service_full: "udb.services.v1.DataBroker",
4707        method: "GetCapabilities",
4708        alias: "get_capabilities",
4709        operation_kind: "read_only",
4710        read_only: true,
4711        replay_safe: false,
4712        client_streaming: false,
4713        server_streaming: false,
4714        http_method: "",
4715        http_path: "",
4716    },
4717    RpcSpec {
4718        path: "/udb.services.v1.DataBroker/GetCatalogManifest",
4719        service: "DataBroker",
4720        service_full: "udb.services.v1.DataBroker",
4721        method: "GetCatalogManifest",
4722        alias: "get_catalog_manifest",
4723        operation_kind: "read_only",
4724        read_only: true,
4725        replay_safe: false,
4726        client_streaming: false,
4727        server_streaming: false,
4728        http_method: "",
4729        http_path: "",
4730    },
4731    RpcSpec {
4732        path: "/udb.services.v1.DataBroker/GetCatalogVersion",
4733        service: "DataBroker",
4734        service_full: "udb.services.v1.DataBroker",
4735        method: "GetCatalogVersion",
4736        alias: "get_catalog_version",
4737        operation_kind: "read_only",
4738        read_only: true,
4739        replay_safe: false,
4740        client_streaming: false,
4741        server_streaming: false,
4742        http_method: "",
4743        http_path: "",
4744    },
4745    RpcSpec {
4746        path: "/udb.services.v1.DataBroker/GetCatalogVersions",
4747        service: "DataBroker",
4748        service_full: "udb.services.v1.DataBroker",
4749        method: "GetCatalogVersions",
4750        alias: "get_catalog_versions",
4751        operation_kind: "read_only",
4752        read_only: true,
4753        replay_safe: false,
4754        client_streaming: false,
4755        server_streaming: false,
4756        http_method: "",
4757        http_path: "",
4758    },
4759    RpcSpec {
4760        path: "/udb.services.v1.DataBroker/GetCdcStatus",
4761        service: "DataBroker",
4762        service_full: "udb.services.v1.DataBroker",
4763        method: "GetCdcStatus",
4764        alias: "get_cdc_status",
4765        operation_kind: "read_only",
4766        read_only: true,
4767        replay_safe: false,
4768        client_streaming: false,
4769        server_streaming: false,
4770        http_method: "",
4771        http_path: "",
4772    },
4773    RpcSpec {
4774        path: "/udb.services.v1.DataBroker/GetDlqEvent",
4775        service: "DataBroker",
4776        service_full: "udb.services.v1.DataBroker",
4777        method: "GetDlqEvent",
4778        alias: "get_dlq_event",
4779        operation_kind: "read_only",
4780        read_only: true,
4781        replay_safe: false,
4782        client_streaming: false,
4783        server_streaming: false,
4784        http_method: "",
4785        http_path: "",
4786    },
4787    RpcSpec {
4788        path: "/udb.services.v1.DataBroker/GetHealthReport",
4789        service: "DataBroker",
4790        service_full: "udb.services.v1.DataBroker",
4791        method: "GetHealthReport",
4792        alias: "get_health_report",
4793        operation_kind: "read_only",
4794        read_only: true,
4795        replay_safe: false,
4796        client_streaming: false,
4797        server_streaming: false,
4798        http_method: "",
4799        http_path: "",
4800    },
4801    RpcSpec {
4802        path: "/udb.services.v1.DataBroker/GetMigrationStatus",
4803        service: "DataBroker",
4804        service_full: "udb.services.v1.DataBroker",
4805        method: "GetMigrationStatus",
4806        alias: "get_migration_status",
4807        operation_kind: "read_only",
4808        read_only: true,
4809        replay_safe: false,
4810        client_streaming: false,
4811        server_streaming: false,
4812        http_method: "",
4813        http_path: "",
4814    },
4815    RpcSpec {
4816        path: "/udb.services.v1.DataBroker/GetObject",
4817        service: "DataBroker",
4818        service_full: "udb.services.v1.DataBroker",
4819        method: "GetObject",
4820        alias: "get_object",
4821        operation_kind: "read_only",
4822        read_only: true,
4823        replay_safe: false,
4824        client_streaming: false,
4825        server_streaming: true,
4826        http_method: "",
4827        http_path: "",
4828    },
4829    RpcSpec {
4830        path: "/udb.services.v1.DataBroker/GetSaga",
4831        service: "DataBroker",
4832        service_full: "udb.services.v1.DataBroker",
4833        method: "GetSaga",
4834        alias: "get_saga",
4835        operation_kind: "read_only",
4836        read_only: true,
4837        replay_safe: false,
4838        client_streaming: false,
4839        server_streaming: false,
4840        http_method: "",
4841        http_path: "",
4842    },
4843    RpcSpec {
4844        path: "/udb.services.v1.DataBroker/GraphMutate",
4845        service: "DataBroker",
4846        service_full: "udb.services.v1.DataBroker",
4847        method: "GraphMutate",
4848        alias: "graph_mutate",
4849        operation_kind: "mutation",
4850        read_only: false,
4851        replay_safe: false,
4852        client_streaming: false,
4853        server_streaming: false,
4854        http_method: "",
4855        http_path: "",
4856    },
4857    RpcSpec {
4858        path: "/udb.services.v1.DataBroker/GraphQuery",
4859        service: "DataBroker",
4860        service_full: "udb.services.v1.DataBroker",
4861        method: "GraphQuery",
4862        alias: "graph_query",
4863        operation_kind: "read_only",
4864        read_only: true,
4865        replay_safe: false,
4866        client_streaming: false,
4867        server_streaming: false,
4868        http_method: "",
4869        http_path: "",
4870    },
4871    RpcSpec {
4872        path: "/udb.services.v1.DataBroker/InitiateMultipartUpload",
4873        service: "DataBroker",
4874        service_full: "udb.services.v1.DataBroker",
4875        method: "InitiateMultipartUpload",
4876        alias: "initiate_multipart_upload",
4877        operation_kind: "mutation",
4878        read_only: false,
4879        replay_safe: false,
4880        client_streaming: false,
4881        server_streaming: false,
4882        http_method: "",
4883        http_path: "",
4884    },
4885    RpcSpec {
4886        path: "/udb.services.v1.DataBroker/LintPolicies",
4887        service: "DataBroker",
4888        service_full: "udb.services.v1.DataBroker",
4889        method: "LintPolicies",
4890        alias: "lint_policies",
4891        operation_kind: "read_only",
4892        read_only: true,
4893        replay_safe: false,
4894        client_streaming: false,
4895        server_streaming: false,
4896        http_method: "",
4897        http_path: "",
4898    },
4899    RpcSpec {
4900        path: "/udb.services.v1.DataBroker/ListAdminAuditLogs",
4901        service: "DataBroker",
4902        service_full: "udb.services.v1.DataBroker",
4903        method: "ListAdminAuditLogs",
4904        alias: "list_admin_audit_logs",
4905        operation_kind: "read_only",
4906        read_only: true,
4907        replay_safe: false,
4908        client_streaming: false,
4909        server_streaming: false,
4910        http_method: "",
4911        http_path: "",
4912    },
4913    RpcSpec {
4914        path: "/udb.services.v1.DataBroker/ListDlqEvents",
4915        service: "DataBroker",
4916        service_full: "udb.services.v1.DataBroker",
4917        method: "ListDlqEvents",
4918        alias: "list_dlq_events",
4919        operation_kind: "read_only",
4920        read_only: true,
4921        replay_safe: false,
4922        client_streaming: false,
4923        server_streaming: false,
4924        http_method: "",
4925        http_path: "",
4926    },
4927    RpcSpec {
4928        path: "/udb.services.v1.DataBroker/ListMessageSchemas",
4929        service: "DataBroker",
4930        service_full: "udb.services.v1.DataBroker",
4931        method: "ListMessageSchemas",
4932        alias: "list_message_schemas",
4933        operation_kind: "read_only",
4934        read_only: true,
4935        replay_safe: false,
4936        client_streaming: false,
4937        server_streaming: false,
4938        http_method: "",
4939        http_path: "",
4940    },
4941    RpcSpec {
4942        path: "/udb.services.v1.DataBroker/ListMigrationRuns",
4943        service: "DataBroker",
4944        service_full: "udb.services.v1.DataBroker",
4945        method: "ListMigrationRuns",
4946        alias: "list_migration_runs",
4947        operation_kind: "read_only",
4948        read_only: true,
4949        replay_safe: false,
4950        client_streaming: false,
4951        server_streaming: false,
4952        http_method: "",
4953        http_path: "",
4954    },
4955    RpcSpec {
4956        path: "/udb.services.v1.DataBroker/ListPolicies",
4957        service: "DataBroker",
4958        service_full: "udb.services.v1.DataBroker",
4959        method: "ListPolicies",
4960        alias: "list_policies",
4961        operation_kind: "read_only",
4962        read_only: true,
4963        replay_safe: false,
4964        client_streaming: false,
4965        server_streaming: false,
4966        http_method: "",
4967        http_path: "",
4968    },
4969    RpcSpec {
4970        path: "/udb.services.v1.DataBroker/ListProjects",
4971        service: "DataBroker",
4972        service_full: "udb.services.v1.DataBroker",
4973        method: "ListProjects",
4974        alias: "list_projects",
4975        operation_kind: "read_only",
4976        read_only: true,
4977        replay_safe: false,
4978        client_streaming: false,
4979        server_streaming: false,
4980        http_method: "",
4981        http_path: "",
4982    },
4983    RpcSpec {
4984        path: "/udb.services.v1.DataBroker/ListResources",
4985        service: "DataBroker",
4986        service_full: "udb.services.v1.DataBroker",
4987        method: "ListResources",
4988        alias: "list_resources",
4989        operation_kind: "read_only",
4990        read_only: true,
4991        replay_safe: false,
4992        client_streaming: false,
4993        server_streaming: false,
4994        http_method: "",
4995        http_path: "",
4996    },
4997    RpcSpec {
4998        path: "/udb.services.v1.DataBroker/ListSagas",
4999        service: "DataBroker",
5000        service_full: "udb.services.v1.DataBroker",
5001        method: "ListSagas",
5002        alias: "list_sagas",
5003        operation_kind: "read_only",
5004        read_only: true,
5005        replay_safe: false,
5006        client_streaming: false,
5007        server_streaming: false,
5008        http_method: "",
5009        http_path: "",
5010    },
5011    RpcSpec {
5012        path: "/udb.services.v1.DataBroker/LookupMessageSchema",
5013        service: "DataBroker",
5014        service_full: "udb.services.v1.DataBroker",
5015        method: "LookupMessageSchema",
5016        alias: "lookup_message_schema",
5017        operation_kind: "read_only",
5018        read_only: true,
5019        replay_safe: false,
5020        client_streaming: false,
5021        server_streaming: false,
5022        http_method: "",
5023        http_path: "",
5024    },
5025    RpcSpec {
5026        path: "/udb.services.v1.DataBroker/MarkSagaReviewed",
5027        service: "DataBroker",
5028        service_full: "udb.services.v1.DataBroker",
5029        method: "MarkSagaReviewed",
5030        alias: "mark_saga_reviewed",
5031        operation_kind: "mutation",
5032        read_only: false,
5033        replay_safe: false,
5034        client_streaming: false,
5035        server_streaming: false,
5036        http_method: "",
5037        http_path: "",
5038    },
5039    RpcSpec {
5040        path: "/udb.services.v1.DataBroker/PauseCdc",
5041        service: "DataBroker",
5042        service_full: "udb.services.v1.DataBroker",
5043        method: "PauseCdc",
5044        alias: "pause_cdc",
5045        operation_kind: "mutation",
5046        read_only: false,
5047        replay_safe: false,
5048        client_streaming: false,
5049        server_streaming: false,
5050        http_method: "",
5051        http_path: "",
5052    },
5053    RpcSpec {
5054        path: "/udb.services.v1.DataBroker/PlanMigration",
5055        service: "DataBroker",
5056        service_full: "udb.services.v1.DataBroker",
5057        method: "PlanMigration",
5058        alias: "plan_migration",
5059        operation_kind: "mutation",
5060        read_only: false,
5061        replay_safe: false,
5062        client_streaming: false,
5063        server_streaming: false,
5064        http_method: "",
5065        http_path: "",
5066    },
5067    RpcSpec {
5068        path: "/udb.services.v1.DataBroker/PreviewCdcRedaction",
5069        service: "DataBroker",
5070        service_full: "udb.services.v1.DataBroker",
5071        method: "PreviewCdcRedaction",
5072        alias: "preview_cdc_redaction",
5073        operation_kind: "read_only",
5074        read_only: true,
5075        replay_safe: false,
5076        client_streaming: false,
5077        server_streaming: false,
5078        http_method: "",
5079        http_path: "",
5080    },
5081    RpcSpec {
5082        path: "/udb.services.v1.DataBroker/PublishCDC",
5083        service: "DataBroker",
5084        service_full: "udb.services.v1.DataBroker",
5085        method: "PublishCDC",
5086        alias: "publish_cdc",
5087        operation_kind: "mutation",
5088        read_only: false,
5089        replay_safe: false,
5090        client_streaming: false,
5091        server_streaming: true,
5092        http_method: "",
5093        http_path: "",
5094    },
5095    RpcSpec {
5096        path: "/udb.services.v1.DataBroker/PutObject",
5097        service: "DataBroker",
5098        service_full: "udb.services.v1.DataBroker",
5099        method: "PutObject",
5100        alias: "put_object",
5101        operation_kind: "mutation",
5102        read_only: false,
5103        replay_safe: false,
5104        client_streaming: true,
5105        server_streaming: false,
5106        http_method: "",
5107        http_path: "",
5108    },
5109    RpcSpec {
5110        path: "/udb.services.v1.DataBroker/PutPolicy",
5111        service: "DataBroker",
5112        service_full: "udb.services.v1.DataBroker",
5113        method: "PutPolicy",
5114        alias: "put_policy",
5115        operation_kind: "destructive",
5116        read_only: false,
5117        replay_safe: false,
5118        client_streaming: false,
5119        server_streaming: false,
5120        http_method: "",
5121        http_path: "",
5122    },
5123    RpcSpec {
5124        path: "/udb.services.v1.DataBroker/QuarantineDlqEvent",
5125        service: "DataBroker",
5126        service_full: "udb.services.v1.DataBroker",
5127        method: "QuarantineDlqEvent",
5128        alias: "quarantine_dlq_event",
5129        operation_kind: "mutation",
5130        read_only: false,
5131        replay_safe: false,
5132        client_streaming: false,
5133        server_streaming: false,
5134        http_method: "",
5135        http_path: "",
5136    },
5137    RpcSpec {
5138        path: "/udb.services.v1.DataBroker/ReloadPolicies",
5139        service: "DataBroker",
5140        service_full: "udb.services.v1.DataBroker",
5141        method: "ReloadPolicies",
5142        alias: "reload_policies",
5143        operation_kind: "destructive",
5144        read_only: false,
5145        replay_safe: false,
5146        client_streaming: false,
5147        server_streaming: false,
5148        http_method: "",
5149        http_path: "",
5150    },
5151    RpcSpec {
5152        path: "/udb.services.v1.DataBroker/ReplayDlqEvent",
5153        service: "DataBroker",
5154        service_full: "udb.services.v1.DataBroker",
5155        method: "ReplayDlqEvent",
5156        alias: "replay_dlq_event",
5157        operation_kind: "mutation",
5158        read_only: false,
5159        replay_safe: false,
5160        client_streaming: false,
5161        server_streaming: false,
5162        http_method: "",
5163        http_path: "",
5164    },
5165    RpcSpec {
5166        path: "/udb.services.v1.DataBroker/ResumeCdc",
5167        service: "DataBroker",
5168        service_full: "udb.services.v1.DataBroker",
5169        method: "ResumeCdc",
5170        alias: "resume_cdc",
5171        operation_kind: "mutation",
5172        read_only: false,
5173        replay_safe: false,
5174        client_streaming: false,
5175        server_streaming: false,
5176        http_method: "",
5177        http_path: "",
5178    },
5179    RpcSpec {
5180        path: "/udb.services.v1.DataBroker/RetrySagaCompensation",
5181        service: "DataBroker",
5182        service_full: "udb.services.v1.DataBroker",
5183        method: "RetrySagaCompensation",
5184        alias: "retry_saga_compensation",
5185        operation_kind: "mutation",
5186        read_only: false,
5187        replay_safe: false,
5188        client_streaming: false,
5189        server_streaming: false,
5190        http_method: "",
5191        http_path: "",
5192    },
5193    RpcSpec {
5194        path: "/udb.services.v1.DataBroker/RollbackCatalog",
5195        service: "DataBroker",
5196        service_full: "udb.services.v1.DataBroker",
5197        method: "RollbackCatalog",
5198        alias: "rollback_catalog",
5199        operation_kind: "destructive",
5200        read_only: false,
5201        replay_safe: false,
5202        client_streaming: false,
5203        server_streaming: false,
5204        http_method: "",
5205        http_path: "",
5206    },
5207    RpcSpec {
5208        path: "/udb.services.v1.DataBroker/ScanProjectionDrift",
5209        service: "DataBroker",
5210        service_full: "udb.services.v1.DataBroker",
5211        method: "ScanProjectionDrift",
5212        alias: "scan_projection_drift",
5213        operation_kind: "read_only",
5214        read_only: true,
5215        replay_safe: false,
5216        client_streaming: false,
5217        server_streaming: false,
5218        http_method: "",
5219        http_path: "",
5220    },
5221    RpcSpec {
5222        path: "/udb.services.v1.DataBroker/Select",
5223        service: "DataBroker",
5224        service_full: "udb.services.v1.DataBroker",
5225        method: "Select",
5226        alias: "select",
5227        operation_kind: "read_only",
5228        read_only: true,
5229        replay_safe: false,
5230        client_streaming: false,
5231        server_streaming: false,
5232        http_method: "",
5233        http_path: "",
5234    },
5235    RpcSpec {
5236        path: "/udb.services.v1.DataBroker/SelectV2",
5237        service: "DataBroker",
5238        service_full: "udb.services.v1.DataBroker",
5239        method: "SelectV2",
5240        alias: "select_v_2",
5241        operation_kind: "read_only",
5242        read_only: true,
5243        replay_safe: false,
5244        client_streaming: false,
5245        server_streaming: true,
5246        http_method: "",
5247        http_path: "",
5248    },
5249    RpcSpec {
5250        path: "/udb.services.v1.DataBroker/StageCatalog",
5251        service: "DataBroker",
5252        service_full: "udb.services.v1.DataBroker",
5253        method: "StageCatalog",
5254        alias: "stage_catalog",
5255        operation_kind: "destructive",
5256        read_only: false,
5257        replay_safe: false,
5258        client_streaming: false,
5259        server_streaming: false,
5260        http_method: "",
5261        http_path: "",
5262    },
5263    RpcSpec {
5264        path: "/udb.services.v1.DataBroker/StepDownCdcLeader",
5265        service: "DataBroker",
5266        service_full: "udb.services.v1.DataBroker",
5267        method: "StepDownCdcLeader",
5268        alias: "step_down_cdc_leader",
5269        operation_kind: "mutation",
5270        read_only: false,
5271        replay_safe: false,
5272        client_streaming: false,
5273        server_streaming: false,
5274        http_method: "",
5275        http_path: "",
5276    },
5277    RpcSpec {
5278        path: "/udb.services.v1.DataBroker/TimeSeriesQuery",
5279        service: "DataBroker",
5280        service_full: "udb.services.v1.DataBroker",
5281        method: "TimeSeriesQuery",
5282        alias: "time_series_query",
5283        operation_kind: "read_only",
5284        read_only: true,
5285        replay_safe: false,
5286        client_streaming: false,
5287        server_streaming: false,
5288        http_method: "",
5289        http_path: "",
5290    },
5291    RpcSpec {
5292        path: "/udb.services.v1.DataBroker/TimeSeriesWrite",
5293        service: "DataBroker",
5294        service_full: "udb.services.v1.DataBroker",
5295        method: "TimeSeriesWrite",
5296        alias: "time_series_write",
5297        operation_kind: "mutation",
5298        read_only: false,
5299        replay_safe: false,
5300        client_streaming: false,
5301        server_streaming: false,
5302        http_method: "",
5303        http_path: "",
5304    },
5305    RpcSpec {
5306        path: "/udb.services.v1.DataBroker/Update",
5307        service: "DataBroker",
5308        service_full: "udb.services.v1.DataBroker",
5309        method: "Update",
5310        alias: "update",
5311        operation_kind: "mutation",
5312        read_only: false,
5313        replay_safe: true,
5314        client_streaming: false,
5315        server_streaming: false,
5316        http_method: "",
5317        http_path: "",
5318    },
5319    RpcSpec {
5320        path: "/udb.services.v1.DataBroker/Upsert",
5321        service: "DataBroker",
5322        service_full: "udb.services.v1.DataBroker",
5323        method: "Upsert",
5324        alias: "upsert",
5325        operation_kind: "mutation",
5326        read_only: false,
5327        replay_safe: true,
5328        client_streaming: false,
5329        server_streaming: false,
5330        http_method: "",
5331        http_path: "",
5332    },
5333    RpcSpec {
5334        path: "/udb.services.v1.DataBroker/ValidateCatalog",
5335        service: "DataBroker",
5336        service_full: "udb.services.v1.DataBroker",
5337        method: "ValidateCatalog",
5338        alias: "validate_catalog",
5339        operation_kind: "destructive",
5340        read_only: false,
5341        replay_safe: false,
5342        client_streaming: false,
5343        server_streaming: false,
5344        http_method: "",
5345        http_path: "",
5346    },
5347    RpcSpec {
5348        path: "/udb.services.v1.DataBroker/VectorBatchUpsert",
5349        service: "DataBroker",
5350        service_full: "udb.services.v1.DataBroker",
5351        method: "VectorBatchUpsert",
5352        alias: "vector_batch_upsert",
5353        operation_kind: "mutation",
5354        read_only: false,
5355        replay_safe: false,
5356        client_streaming: true,
5357        server_streaming: true,
5358        http_method: "",
5359        http_path: "",
5360    },
5361    RpcSpec {
5362        path: "/udb.services.v1.DataBroker/VectorHybridSearch",
5363        service: "DataBroker",
5364        service_full: "udb.services.v1.DataBroker",
5365        method: "VectorHybridSearch",
5366        alias: "vector_hybrid_search",
5367        operation_kind: "read_only",
5368        read_only: true,
5369        replay_safe: false,
5370        client_streaming: false,
5371        server_streaming: false,
5372        http_method: "",
5373        http_path: "",
5374    },
5375    RpcSpec {
5376        path: "/udb.services.v1.DataBroker/VectorSearch",
5377        service: "DataBroker",
5378        service_full: "udb.services.v1.DataBroker",
5379        method: "VectorSearch",
5380        alias: "vector_search",
5381        operation_kind: "read_only",
5382        read_only: true,
5383        replay_safe: false,
5384        client_streaming: false,
5385        server_streaming: false,
5386        http_method: "",
5387        http_path: "",
5388    },
5389    RpcSpec {
5390        path: "/udb.services.v1.DataBroker/VectorUpsert",
5391        service: "DataBroker",
5392        service_full: "udb.services.v1.DataBroker",
5393        method: "VectorUpsert",
5394        alias: "vector_upsert",
5395        operation_kind: "mutation",
5396        read_only: false,
5397        replay_safe: false,
5398        client_streaming: false,
5399        server_streaming: false,
5400        http_method: "",
5401        http_path: "",
5402    },
5403    RpcSpec {
5404        path: "/udb.services.v1.DataBroker/VerifyAdminAuditLog",
5405        service: "DataBroker",
5406        service_full: "udb.services.v1.DataBroker",
5407        method: "VerifyAdminAuditLog",
5408        alias: "verify_admin_audit_log",
5409        operation_kind: "read_only",
5410        read_only: true,
5411        replay_safe: false,
5412        client_streaming: false,
5413        server_streaming: false,
5414        http_method: "",
5415        http_path: "",
5416    },
5417];
5418
5419/// Look up an RPC by its full gRPC method path.
5420///
5421/// Linear scan: the table is small, lookups happen once per call at most, and a
5422/// map would cost a lazy static plus an allocation to save nanoseconds nobody is
5423/// waiting on.
5424pub fn spec_for_path(path: &str) -> Option<&'static RpcSpec> {
5425    RPCS.iter().find(|spec| spec.path == path)
5426}
5427
5428/// Whether repeating this RPC is safe — read-only OR contract-declared replayable.
5429///
5430/// This is the one to call before a retry; see [`RpcSpec::retry_safe`] for why
5431/// `replay_safe` alone is the wrong question.
5432///
5433/// Unknown paths return `false`: an RPC this build has never heard of is the
5434/// last thing that should be retried blindly.
5435pub fn is_retry_safe(path: &str) -> bool {
5436    spec_for_path(path).is_some_and(RpcSpec::retry_safe)
5437}
5438
5439/// Whether the contract explicitly declares this MUTATION replayable.
5440///
5441/// Narrow on purpose: this is the `idempotency_contract` flag, not the general
5442/// "may I retry" answer. Use [`is_retry_safe`] for that.
5443pub fn is_replay_safe(path: &str) -> bool {
5444    spec_for_path(path).is_some_and(|spec| spec.replay_safe)
5445}
5446
5447/// Whether the contract declares this RPC free of mutations.
5448///
5449/// Unknown paths return `false`, for the same reason as [`is_replay_safe`].
5450pub fn is_read_only(path: &str) -> bool {
5451    spec_for_path(path).is_some_and(|spec| spec.read_only)
5452}
5453
5454#[cfg(test)]
5455mod tests {
5456    use super::*;
5457
5458    #[test]
5459    fn registry_is_populated() {
5460        assert!(!RPCS.is_empty(), "descriptor produced no RPCs");
5461    }
5462
5463    #[test]
5464    fn paths_are_unique_and_well_formed() {
5465        let mut seen = std::collections::HashSet::new();
5466        for spec in RPCS {
5467            assert!(
5468                spec.path.starts_with('/') && spec.path.contains('/'),
5469                "malformed gRPC path: {}",
5470                spec.path
5471            );
5472            assert!(seen.insert(spec.path), "duplicate RPC path: {}", spec.path);
5473        }
5474    }
5475
5476    #[test]
5477    fn every_rpc_declares_an_operation_kind() {
5478        for spec in RPCS {
5479            assert!(
5480                !spec.operation_kind.is_empty(),
5481                "{} has no operation_kind; the proto annotation is missing",
5482                spec.path
5483            );
5484        }
5485    }
5486
5487    #[test]
5488    fn read_only_and_replay_safe_are_independent() {
5489        // Documenting the shape of the contract so the earlier misreading cannot
5490        // return: `replay_safe` is an OPTIONAL idempotency contract that defaults
5491        // to false, so most read-only RPCs do not set it. That is "not declared",
5492        // not "unsafe".
5493        let read_only_without_contract = RPCS
5494            .iter()
5495            .filter(|s| s.read_only && !s.replay_safe)
5496            .count();
5497        assert!(
5498            read_only_without_contract > 0,
5499            "expected read-only RPCs with no idempotency contract; if this is now \
5500             zero, retry_safe() can be simplified"
5501        );
5502        for spec in RPCS {
5503            if spec.read_only {
5504                assert!(
5505                    spec.retry_safe(),
5506                    "{} is read-only so it must be retry-safe",
5507                    spec.path
5508                );
5509            }
5510        }
5511    }
5512
5513    #[test]
5514    fn retry_safe_covers_reads_and_declared_replayable_mutations() {
5515        for spec in RPCS {
5516            assert_eq!(
5517                spec.retry_safe(),
5518                spec.read_only || spec.replay_safe,
5519                "{} retry_safe disagrees with its inputs",
5520                spec.path
5521            );
5522        }
5523        // A retry policy keyed on `replay_safe` alone would refuse every read.
5524        let by_replay_safe = RPCS.iter().filter(|s| s.replay_safe).count();
5525        let by_retry_safe = RPCS.iter().filter(|s| s.retry_safe()).count();
5526        assert!(
5527            by_retry_safe > by_replay_safe,
5528            "retry_safe must admit reads that declare no idempotency contract"
5529        );
5530    }
5531
5532    #[test]
5533    fn unknown_paths_are_not_assumed_safe() {
5534        assert!(!is_retry_safe("/not.a.real.Service/Method"));
5535        assert!(!is_replay_safe("/not.a.real.Service/Method"));
5536        assert!(!is_read_only("/not.a.real.Service/Method"));
5537        assert!(spec_for_path("/not.a.real.Service/Method").is_none());
5538    }
5539
5540    #[test]
5541    fn lookup_round_trips() {
5542        let first = RPCS.first().expect("non-empty");
5543        assert_eq!(spec_for_path(first.path), Some(first));
5544    }
5545}