@temporalio/core-bridge 1.10.3 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/Cargo.lock +563 -676
  2. package/Cargo.toml +3 -3
  3. package/lib/index.d.ts +16 -5
  4. package/lib/index.js.map +1 -1
  5. package/lib/worker-tuner.d.ts +57 -0
  6. package/lib/worker-tuner.js +3 -0
  7. package/lib/worker-tuner.js.map +1 -0
  8. package/package.json +3 -3
  9. package/releases/aarch64-apple-darwin/index.node +0 -0
  10. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  11. package/releases/x86_64-apple-darwin/index.node +0 -0
  12. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  13. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  14. package/sdk-core/.github/workflows/heavy.yml +6 -11
  15. package/sdk-core/.github/workflows/per-pr.yml +23 -41
  16. package/sdk-core/Cargo.toml +5 -5
  17. package/sdk-core/README.md +2 -0
  18. package/sdk-core/client/Cargo.toml +4 -2
  19. package/sdk-core/client/src/lib.rs +60 -17
  20. package/sdk-core/client/src/metrics.rs +1 -1
  21. package/sdk-core/client/src/proxy.rs +17 -12
  22. package/sdk-core/client/src/raw.rs +218 -69
  23. package/sdk-core/client/src/retry.rs +19 -9
  24. package/sdk-core/core/Cargo.toml +12 -12
  25. package/sdk-core/core/src/abstractions.rs +3 -3
  26. package/sdk-core/core/src/core_tests/activity_tasks.rs +2 -1
  27. package/sdk-core/core/src/core_tests/determinism.rs +1 -1
  28. package/sdk-core/core/src/core_tests/local_activities.rs +73 -10
  29. package/sdk-core/core/src/core_tests/queries.rs +2 -1
  30. package/sdk-core/core/src/core_tests/updates.rs +162 -4
  31. package/sdk-core/core/src/core_tests/workers.rs +38 -2
  32. package/sdk-core/core/src/core_tests/workflow_tasks.rs +158 -27
  33. package/sdk-core/core/src/internal_flags.rs +17 -7
  34. package/sdk-core/core/src/lib.rs +9 -3
  35. package/sdk-core/core/src/pollers/poll_buffer.rs +1 -10
  36. package/sdk-core/core/src/protosext/mod.rs +0 -1
  37. package/sdk-core/core/src/protosext/protocol_messages.rs +105 -16
  38. package/sdk-core/core/src/retry_logic.rs +22 -2
  39. package/sdk-core/core/src/telemetry/otel.rs +44 -12
  40. package/sdk-core/core/src/test_help/mod.rs +65 -12
  41. package/sdk-core/core/src/worker/activities/local_activities.rs +1 -4
  42. package/sdk-core/core/src/worker/activities.rs +3 -4
  43. package/sdk-core/core/src/worker/client/mocks.rs +7 -6
  44. package/sdk-core/core/src/worker/client.rs +11 -2
  45. package/sdk-core/core/src/worker/mod.rs +49 -24
  46. package/sdk-core/core/src/worker/tuner/resource_based.rs +48 -48
  47. package/sdk-core/core/src/worker/tuner.rs +124 -4
  48. package/sdk-core/core/src/worker/workflow/driven_workflow.rs +1 -1
  49. package/sdk-core/core/src/worker/workflow/history_update.rs +11 -2
  50. package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +18 -3
  51. package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +1 -0
  52. package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -0
  53. package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +1 -0
  54. package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +1 -0
  55. package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +1 -0
  56. package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +1 -0
  57. package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +4 -4
  58. package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +1 -0
  59. package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +1 -0
  60. package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +1 -0
  61. package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +3 -1
  62. package/sdk-core/core/src/worker/workflow/machines/update_state_machine.rs +38 -28
  63. package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +4 -2
  64. package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +95 -71
  65. package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +1 -1
  66. package/sdk-core/core/src/worker/workflow/managed_run.rs +214 -14
  67. package/sdk-core/core/src/worker/workflow/mod.rs +49 -36
  68. package/sdk-core/core/src/worker/workflow/workflow_stream.rs +1 -2
  69. package/sdk-core/core-api/src/errors.rs +13 -7
  70. package/sdk-core/core-api/src/lib.rs +9 -1
  71. package/sdk-core/sdk/Cargo.toml +1 -1
  72. package/sdk-core/sdk/src/activity_context.rs +3 -4
  73. package/sdk-core/sdk/src/lib.rs +96 -49
  74. package/sdk-core/sdk/src/workflow_context/options.rs +8 -4
  75. package/sdk-core/sdk/src/workflow_context.rs +53 -49
  76. package/sdk-core/sdk/src/workflow_future.rs +10 -4
  77. package/sdk-core/sdk-core-protos/Cargo.toml +4 -3
  78. package/sdk-core/sdk-core-protos/build.rs +2 -0
  79. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/.github/workflows/build.yaml +18 -0
  80. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/LICENSE +21 -0
  81. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/Makefile +59 -0
  82. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/README.md +25 -0
  83. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +1 -0
  84. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.gen.yaml +14 -0
  85. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.lock +8 -0
  86. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/buf.yaml +9 -0
  87. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +520 -0
  88. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +263 -0
  89. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +173 -0
  90. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +164 -0
  91. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +36 -0
  92. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +22 -0
  93. package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/trigger-api-go-update.yml +50 -8
  94. package/sdk-core/sdk-core-protos/protos/api_upstream/.gitmodules +3 -0
  95. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv2.json +132 -54
  96. package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv3.yaml +177 -81
  97. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/command/v1/message.proto +13 -0
  98. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +2 -0
  99. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +8 -3
  100. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/history/v1/message.proto +10 -0
  101. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/nexus/v1/message.proto +3 -3
  102. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +6 -6
  103. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/enhanced_stack_trace.proto +96 -0
  104. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/user_metadata.proto +49 -0
  105. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto +6 -7
  106. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +55 -24
  107. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflow/v1/message.proto +7 -0
  108. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +21 -4
  109. package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +64 -45
  110. package/sdk-core/sdk-core-protos/src/history_builder.rs +8 -1
  111. package/sdk-core/sdk-core-protos/src/lib.rs +40 -10
  112. package/sdk-core/test-utils/src/canned_histories.rs +1 -1
  113. package/sdk-core/tests/fuzzy_workflow.rs +4 -2
  114. package/sdk-core/tests/heavy_tests.rs +3 -3
  115. package/sdk-core/tests/integ_tests/activity_functions.rs +2 -2
  116. package/sdk-core/tests/integ_tests/client_tests.rs +234 -6
  117. package/sdk-core/tests/integ_tests/update_tests.rs +180 -47
  118. package/sdk-core/tests/integ_tests/worker_tests.rs +32 -0
  119. package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +47 -3
  120. package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +10 -10
  121. package/sdk-core/tests/main.rs +1 -0
  122. package/src/conversions.rs +84 -11
  123. package/src/runtime.rs +5 -17
  124. package/src/worker.rs +27 -6
  125. package/ts/index.ts +24 -5
  126. package/ts/worker-tuner.ts +71 -0
@@ -6,8 +6,8 @@ use crate::{
6
6
  metrics::{namespace_kv, task_queue_kv},
7
7
  raw::sealed::RawClientLike,
8
8
  worker_registry::{Slot, SlotManager},
9
- Client, ConfiguredClient, InterceptedMetricsSvc, RetryClient, TemporalServiceClient,
10
- LONG_POLL_TIMEOUT,
9
+ Client, ConfiguredClient, InterceptedMetricsSvc, RequestExt, RetryClient,
10
+ TemporalServiceClient, LONG_POLL_TIMEOUT, TEMPORAL_NAMESPACE_HEADER_KEY,
11
11
  };
12
12
  use futures::{future::BoxFuture, FutureExt, TryFutureExt};
13
13
  use std::sync::Arc;
@@ -15,6 +15,7 @@ use temporal_sdk_core_api::telemetry::metrics::MetricKeyValue;
15
15
  use temporal_sdk_core_protos::{
16
16
  grpc::health::v1::{health_client::HealthClient, *},
17
17
  temporal::api::{
18
+ cloud::cloudservice::{v1 as cloudreq, v1::cloud_service_client::CloudServiceClient},
18
19
  operatorservice::v1::{operator_service_client::OperatorServiceClient, *},
19
20
  taskqueue::v1::TaskQueue,
20
21
  testservice::v1::{test_service_client::TestServiceClient, *},
@@ -22,7 +23,10 @@ use temporal_sdk_core_protos::{
22
23
  },
23
24
  };
24
25
  use tonic::{
25
- body::BoxBody, client::GrpcService, metadata::KeyAndValueRef, Request, Response, Status,
26
+ body::BoxBody,
27
+ client::GrpcService,
28
+ metadata::{AsciiMetadataValue, KeyAndValueRef},
29
+ Request, Response, Status,
26
30
  };
27
31
 
28
32
  pub(super) mod sealed {
@@ -45,6 +49,12 @@ pub(super) mod sealed {
45
49
  /// Return a mutable ref to the operator service client instance
46
50
  fn operator_client_mut(&mut self) -> &mut OperatorServiceClient<Self::SvcType>;
47
51
 
52
+ /// Return a ref to the cloud service client instance
53
+ fn cloud_client(&self) -> &CloudServiceClient<Self::SvcType>;
54
+
55
+ /// Return a mutable ref to the cloud service client instance
56
+ fn cloud_client_mut(&mut self) -> &mut CloudServiceClient<Self::SvcType>;
57
+
48
58
  /// Return a ref to the test service client instance
49
59
  fn test_client(&self) -> &TestServiceClient<Self::SvcType>;
50
60
 
@@ -100,6 +110,14 @@ where
100
110
  self.get_client_mut().operator_client_mut()
101
111
  }
102
112
 
113
+ fn cloud_client(&self) -> &CloudServiceClient<Self::SvcType> {
114
+ self.get_client().cloud_client()
115
+ }
116
+
117
+ fn cloud_client_mut(&mut self) -> &mut CloudServiceClient<Self::SvcType> {
118
+ self.get_client_mut().cloud_client_mut()
119
+ }
120
+
103
121
  fn test_client(&self) -> &TestServiceClient<Self::SvcType> {
104
122
  self.get_client().test_client()
105
123
  }
@@ -167,6 +185,14 @@ where
167
185
  self.operator_svc_mut()
168
186
  }
169
187
 
188
+ fn cloud_client(&self) -> &CloudServiceClient<Self::SvcType> {
189
+ self.cloud_svc()
190
+ }
191
+
192
+ fn cloud_client_mut(&mut self) -> &mut CloudServiceClient<Self::SvcType> {
193
+ self.cloud_svc_mut()
194
+ }
195
+
170
196
  fn test_client(&self) -> &TestServiceClient<Self::SvcType> {
171
197
  self.test_svc()
172
198
  }
@@ -214,6 +240,14 @@ where
214
240
  self.client.operator_client_mut()
215
241
  }
216
242
 
243
+ fn cloud_client(&self) -> &CloudServiceClient<Self::SvcType> {
244
+ self.client.cloud_client()
245
+ }
246
+
247
+ fn cloud_client_mut(&mut self) -> &mut CloudServiceClient<Self::SvcType> {
248
+ self.client.cloud_client_mut()
249
+ }
250
+
217
251
  fn test_client(&self) -> &TestServiceClient<Self::SvcType> {
218
252
  self.client.test_client()
219
253
  }
@@ -254,6 +288,14 @@ impl RawClientLike for Client {
254
288
  self.inner.operator_client_mut()
255
289
  }
256
290
 
291
+ fn cloud_client(&self) -> &CloudServiceClient<Self::SvcType> {
292
+ self.inner.cloud_client()
293
+ }
294
+
295
+ fn cloud_client_mut(&mut self) -> &mut CloudServiceClient<Self::SvcType> {
296
+ self.inner.cloud_client_mut()
297
+ }
298
+
257
299
  fn test_client(&self) -> &TestServiceClient<Self::SvcType> {
258
300
  self.inner.test_client()
259
301
  }
@@ -294,7 +336,7 @@ fn req_cloner<T: Clone>(cloneme: &Request<T>) -> Request<T> {
294
336
  new_req
295
337
  }
296
338
 
297
- #[derive(Debug)]
339
+ #[derive(Clone, Debug)]
298
340
  pub(super) struct AttachMetricLabels {
299
341
  pub(super) labels: Vec<MetricKeyValue>,
300
342
  }
@@ -339,6 +381,16 @@ where
339
381
  <T::ResponseBody as tonic::codegen::Body>::Error: Into<tonic::codegen::StdError> + Send,
340
382
  {
341
383
  }
384
+ impl<RC, T> CloudService for RC
385
+ where
386
+ RC: RawClientLike<SvcType = T>,
387
+ T: GrpcService<BoxBody> + Send + Clone + 'static,
388
+ T::ResponseBody: tonic::codegen::Body<Data = tonic::codegen::Bytes> + Send + 'static,
389
+ T::Error: Into<tonic::codegen::StdError>,
390
+ T::Future: Send,
391
+ <T::ResponseBody as tonic::codegen::Body>::Error: Into<tonic::codegen::StdError> + Send,
392
+ {
393
+ }
342
394
  impl<RC, T> TestService for RC
343
395
  where
344
396
  RC: RawClientLike<SvcType = T>,
@@ -424,6 +476,22 @@ macro_rules! proxier {
424
476
  };
425
477
  }
426
478
 
479
+ macro_rules! namespaced_request {
480
+ ($req:ident) => {{
481
+ let ns_str = $req.get_ref().namespace.clone();
482
+ // Attach namespace header
483
+ $req.metadata_mut().insert(
484
+ TEMPORAL_NAMESPACE_HEADER_KEY,
485
+ ns_str.parse().unwrap_or_else(|e| {
486
+ warn!("Unable to parse namespace for header: {e:?}");
487
+ AsciiMetadataValue::from_static("")
488
+ }),
489
+ );
490
+ // Init metric labels
491
+ AttachMetricLabels::namespace(ns_str)
492
+ }};
493
+ }
494
+
427
495
  // Nice little trick to avoid the callsite asking to type the closure parameter
428
496
  fn type_closure_arg<T, R>(arg: T, f: impl FnOnce(T) -> R) -> R {
429
497
  f(arg)
@@ -440,7 +508,7 @@ proxier! {
440
508
  RegisterNamespaceRequest,
441
509
  RegisterNamespaceResponse,
442
510
  |r| {
443
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
511
+ let labels = namespaced_request!(r);
444
512
  r.extensions_mut().insert(labels);
445
513
  }
446
514
  );
@@ -449,7 +517,7 @@ proxier! {
449
517
  DescribeNamespaceRequest,
450
518
  DescribeNamespaceResponse,
451
519
  |r| {
452
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
520
+ let labels = namespaced_request!(r);
453
521
  r.extensions_mut().insert(labels);
454
522
  }
455
523
  );
@@ -463,7 +531,7 @@ proxier! {
463
531
  UpdateNamespaceRequest,
464
532
  UpdateNamespaceResponse,
465
533
  |r| {
466
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
534
+ let labels = namespaced_request!(r);
467
535
  r.extensions_mut().insert(labels);
468
536
  }
469
537
  );
@@ -472,7 +540,7 @@ proxier! {
472
540
  DeprecateNamespaceRequest,
473
541
  DeprecateNamespaceResponse,
474
542
  |r| {
475
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
543
+ let labels = namespaced_request!(r);
476
544
  r.extensions_mut().insert(labels);
477
545
  }
478
546
  );
@@ -482,7 +550,7 @@ proxier! {
482
550
  StartWorkflowExecutionResponse,
483
551
  |r, workers| {
484
552
  let mut slot: Option<Box<dyn Slot + Send>> = None;
485
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
553
+ let mut labels = namespaced_request!(r);
486
554
  labels.task_q(r.get_ref().task_queue.clone());
487
555
  r.extensions_mut().insert(labels);
488
556
  let req_mut = r.get_mut();
@@ -516,8 +584,11 @@ proxier! {
516
584
  GetWorkflowExecutionHistoryRequest,
517
585
  GetWorkflowExecutionHistoryResponse,
518
586
  |r| {
519
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
587
+ let labels = namespaced_request!(r);
520
588
  r.extensions_mut().insert(labels);
589
+ if r.get_ref().wait_new_event {
590
+ r.set_default_timeout(LONG_POLL_TIMEOUT);
591
+ }
521
592
  }
522
593
  );
523
594
  (
@@ -525,7 +596,7 @@ proxier! {
525
596
  GetWorkflowExecutionHistoryReverseRequest,
526
597
  GetWorkflowExecutionHistoryReverseResponse,
527
598
  |r| {
528
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
599
+ let labels = namespaced_request!(r);
529
600
  r.extensions_mut().insert(labels);
530
601
  }
531
602
  );
@@ -534,10 +605,10 @@ proxier! {
534
605
  PollWorkflowTaskQueueRequest,
535
606
  PollWorkflowTaskQueueResponse,
536
607
  |r| {
537
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
608
+ let mut labels = namespaced_request!(r);
538
609
  labels.task_q(r.get_ref().task_queue.clone());
539
610
  r.extensions_mut().insert(labels);
540
- r.set_timeout(LONG_POLL_TIMEOUT);
611
+ r.set_default_timeout(LONG_POLL_TIMEOUT);
541
612
  }
542
613
  );
543
614
  (
@@ -545,7 +616,7 @@ proxier! {
545
616
  RespondWorkflowTaskCompletedRequest,
546
617
  RespondWorkflowTaskCompletedResponse,
547
618
  |r| {
548
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
619
+ let labels = namespaced_request!(r);
549
620
  r.extensions_mut().insert(labels);
550
621
  }
551
622
  );
@@ -554,7 +625,7 @@ proxier! {
554
625
  RespondWorkflowTaskFailedRequest,
555
626
  RespondWorkflowTaskFailedResponse,
556
627
  |r| {
557
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
628
+ let labels = namespaced_request!(r);
558
629
  r.extensions_mut().insert(labels);
559
630
  }
560
631
  );
@@ -563,10 +634,10 @@ proxier! {
563
634
  PollActivityTaskQueueRequest,
564
635
  PollActivityTaskQueueResponse,
565
636
  |r| {
566
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
637
+ let mut labels = namespaced_request!(r);
567
638
  labels.task_q(r.get_ref().task_queue.clone());
568
639
  r.extensions_mut().insert(labels);
569
- r.set_timeout(LONG_POLL_TIMEOUT);
640
+ r.set_default_timeout(LONG_POLL_TIMEOUT);
570
641
  }
571
642
  );
572
643
  (
@@ -574,7 +645,7 @@ proxier! {
574
645
  RecordActivityTaskHeartbeatRequest,
575
646
  RecordActivityTaskHeartbeatResponse,
576
647
  |r| {
577
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
648
+ let labels = namespaced_request!(r);
578
649
  r.extensions_mut().insert(labels);
579
650
  }
580
651
  );
@@ -583,7 +654,7 @@ proxier! {
583
654
  RecordActivityTaskHeartbeatByIdRequest,
584
655
  RecordActivityTaskHeartbeatByIdResponse,
585
656
  |r| {
586
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
657
+ let labels = namespaced_request!(r);
587
658
  r.extensions_mut().insert(labels);
588
659
  }
589
660
  );
@@ -592,7 +663,7 @@ proxier! {
592
663
  RespondActivityTaskCompletedRequest,
593
664
  RespondActivityTaskCompletedResponse,
594
665
  |r| {
595
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
666
+ let labels = namespaced_request!(r);
596
667
  r.extensions_mut().insert(labels);
597
668
  }
598
669
  );
@@ -601,7 +672,7 @@ proxier! {
601
672
  RespondActivityTaskCompletedByIdRequest,
602
673
  RespondActivityTaskCompletedByIdResponse,
603
674
  |r| {
604
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
675
+ let labels = namespaced_request!(r);
605
676
  r.extensions_mut().insert(labels);
606
677
  }
607
678
  );
@@ -611,7 +682,7 @@ proxier! {
611
682
  RespondActivityTaskFailedRequest,
612
683
  RespondActivityTaskFailedResponse,
613
684
  |r| {
614
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
685
+ let labels = namespaced_request!(r);
615
686
  r.extensions_mut().insert(labels);
616
687
  }
617
688
  );
@@ -620,7 +691,7 @@ proxier! {
620
691
  RespondActivityTaskFailedByIdRequest,
621
692
  RespondActivityTaskFailedByIdResponse,
622
693
  |r| {
623
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
694
+ let labels = namespaced_request!(r);
624
695
  r.extensions_mut().insert(labels);
625
696
  }
626
697
  );
@@ -629,7 +700,7 @@ proxier! {
629
700
  RespondActivityTaskCanceledRequest,
630
701
  RespondActivityTaskCanceledResponse,
631
702
  |r| {
632
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
703
+ let labels = namespaced_request!(r);
633
704
  r.extensions_mut().insert(labels);
634
705
  }
635
706
  );
@@ -638,7 +709,7 @@ proxier! {
638
709
  RespondActivityTaskCanceledByIdRequest,
639
710
  RespondActivityTaskCanceledByIdResponse,
640
711
  |r| {
641
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
712
+ let labels = namespaced_request!(r);
642
713
  r.extensions_mut().insert(labels);
643
714
  }
644
715
  );
@@ -647,7 +718,7 @@ proxier! {
647
718
  RequestCancelWorkflowExecutionRequest,
648
719
  RequestCancelWorkflowExecutionResponse,
649
720
  |r| {
650
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
721
+ let labels = namespaced_request!(r);
651
722
  r.extensions_mut().insert(labels);
652
723
  }
653
724
  );
@@ -656,7 +727,7 @@ proxier! {
656
727
  SignalWorkflowExecutionRequest,
657
728
  SignalWorkflowExecutionResponse,
658
729
  |r| {
659
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
730
+ let labels = namespaced_request!(r);
660
731
  r.extensions_mut().insert(labels);
661
732
  }
662
733
  );
@@ -665,7 +736,7 @@ proxier! {
665
736
  SignalWithStartWorkflowExecutionRequest,
666
737
  SignalWithStartWorkflowExecutionResponse,
667
738
  |r| {
668
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
739
+ let mut labels = namespaced_request!(r);
669
740
  labels.task_q(r.get_ref().task_queue.clone());
670
741
  r.extensions_mut().insert(labels);
671
742
  }
@@ -675,7 +746,7 @@ proxier! {
675
746
  ResetWorkflowExecutionRequest,
676
747
  ResetWorkflowExecutionResponse,
677
748
  |r| {
678
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
749
+ let labels = namespaced_request!(r);
679
750
  r.extensions_mut().insert(labels);
680
751
  }
681
752
  );
@@ -684,7 +755,7 @@ proxier! {
684
755
  TerminateWorkflowExecutionRequest,
685
756
  TerminateWorkflowExecutionResponse,
686
757
  |r| {
687
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
758
+ let labels = namespaced_request!(r);
688
759
  r.extensions_mut().insert(labels);
689
760
  }
690
761
  );
@@ -693,7 +764,7 @@ proxier! {
693
764
  DeleteWorkflowExecutionRequest,
694
765
  DeleteWorkflowExecutionResponse,
695
766
  |r| {
696
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
767
+ let labels = namespaced_request!(r);
697
768
  r.extensions_mut().insert(labels);
698
769
  }
699
770
  );
@@ -702,7 +773,7 @@ proxier! {
702
773
  ListOpenWorkflowExecutionsRequest,
703
774
  ListOpenWorkflowExecutionsResponse,
704
775
  |r| {
705
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
776
+ let labels = namespaced_request!(r);
706
777
  r.extensions_mut().insert(labels);
707
778
  }
708
779
  );
@@ -711,7 +782,7 @@ proxier! {
711
782
  ListClosedWorkflowExecutionsRequest,
712
783
  ListClosedWorkflowExecutionsResponse,
713
784
  |r| {
714
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
785
+ let labels = namespaced_request!(r);
715
786
  r.extensions_mut().insert(labels);
716
787
  }
717
788
  );
@@ -720,7 +791,7 @@ proxier! {
720
791
  ListWorkflowExecutionsRequest,
721
792
  ListWorkflowExecutionsResponse,
722
793
  |r| {
723
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
794
+ let labels = namespaced_request!(r);
724
795
  r.extensions_mut().insert(labels);
725
796
  }
726
797
  );
@@ -729,7 +800,7 @@ proxier! {
729
800
  ListArchivedWorkflowExecutionsRequest,
730
801
  ListArchivedWorkflowExecutionsResponse,
731
802
  |r| {
732
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
803
+ let labels = namespaced_request!(r);
733
804
  r.extensions_mut().insert(labels);
734
805
  }
735
806
  );
@@ -738,7 +809,7 @@ proxier! {
738
809
  ScanWorkflowExecutionsRequest,
739
810
  ScanWorkflowExecutionsResponse,
740
811
  |r| {
741
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
812
+ let labels = namespaced_request!(r);
742
813
  r.extensions_mut().insert(labels);
743
814
  }
744
815
  );
@@ -747,7 +818,7 @@ proxier! {
747
818
  CountWorkflowExecutionsRequest,
748
819
  CountWorkflowExecutionsResponse,
749
820
  |r| {
750
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
821
+ let labels = namespaced_request!(r);
751
822
  r.extensions_mut().insert(labels);
752
823
  }
753
824
  );
@@ -761,7 +832,7 @@ proxier! {
761
832
  RespondQueryTaskCompletedRequest,
762
833
  RespondQueryTaskCompletedResponse,
763
834
  |r| {
764
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
835
+ let labels = namespaced_request!(r);
765
836
  r.extensions_mut().insert(labels);
766
837
  }
767
838
  );
@@ -770,7 +841,7 @@ proxier! {
770
841
  ResetStickyTaskQueueRequest,
771
842
  ResetStickyTaskQueueResponse,
772
843
  |r| {
773
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
844
+ let labels = namespaced_request!(r);
774
845
  r.extensions_mut().insert(labels);
775
846
  }
776
847
  );
@@ -779,7 +850,7 @@ proxier! {
779
850
  QueryWorkflowRequest,
780
851
  QueryWorkflowResponse,
781
852
  |r| {
782
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
853
+ let labels = namespaced_request!(r);
783
854
  r.extensions_mut().insert(labels);
784
855
  }
785
856
  );
@@ -788,7 +859,7 @@ proxier! {
788
859
  DescribeWorkflowExecutionRequest,
789
860
  DescribeWorkflowExecutionResponse,
790
861
  |r| {
791
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
862
+ let labels = namespaced_request!(r);
792
863
  r.extensions_mut().insert(labels);
793
864
  }
794
865
  );
@@ -797,7 +868,7 @@ proxier! {
797
868
  DescribeTaskQueueRequest,
798
869
  DescribeTaskQueueResponse,
799
870
  |r| {
800
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
871
+ let mut labels = namespaced_request!(r);
801
872
  labels.task_q(r.get_ref().task_queue.clone());
802
873
  r.extensions_mut().insert(labels);
803
874
  }
@@ -817,7 +888,7 @@ proxier! {
817
888
  ListTaskQueuePartitionsRequest,
818
889
  ListTaskQueuePartitionsResponse,
819
890
  |r| {
820
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
891
+ let mut labels = namespaced_request!(r);
821
892
  labels.task_q(r.get_ref().task_queue.clone());
822
893
  r.extensions_mut().insert(labels);
823
894
  }
@@ -827,7 +898,7 @@ proxier! {
827
898
  CreateScheduleRequest,
828
899
  CreateScheduleResponse,
829
900
  |r| {
830
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
901
+ let labels = namespaced_request!(r);
831
902
  r.extensions_mut().insert(labels);
832
903
  }
833
904
  );
@@ -836,7 +907,7 @@ proxier! {
836
907
  DescribeScheduleRequest,
837
908
  DescribeScheduleResponse,
838
909
  |r| {
839
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
910
+ let labels = namespaced_request!(r);
840
911
  r.extensions_mut().insert(labels);
841
912
  }
842
913
  );
@@ -845,7 +916,7 @@ proxier! {
845
916
  UpdateScheduleRequest,
846
917
  UpdateScheduleResponse,
847
918
  |r| {
848
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
919
+ let labels = namespaced_request!(r);
849
920
  r.extensions_mut().insert(labels);
850
921
  }
851
922
  );
@@ -854,7 +925,7 @@ proxier! {
854
925
  PatchScheduleRequest,
855
926
  PatchScheduleResponse,
856
927
  |r| {
857
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
928
+ let labels = namespaced_request!(r);
858
929
  r.extensions_mut().insert(labels);
859
930
  }
860
931
  );
@@ -863,7 +934,7 @@ proxier! {
863
934
  ListScheduleMatchingTimesRequest,
864
935
  ListScheduleMatchingTimesResponse,
865
936
  |r| {
866
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
937
+ let labels = namespaced_request!(r);
867
938
  r.extensions_mut().insert(labels);
868
939
  }
869
940
  );
@@ -872,7 +943,7 @@ proxier! {
872
943
  DeleteScheduleRequest,
873
944
  DeleteScheduleResponse,
874
945
  |r| {
875
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
946
+ let labels = namespaced_request!(r);
876
947
  r.extensions_mut().insert(labels);
877
948
  }
878
949
  );
@@ -881,7 +952,7 @@ proxier! {
881
952
  ListSchedulesRequest,
882
953
  ListSchedulesResponse,
883
954
  |r| {
884
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
955
+ let labels = namespaced_request!(r);
885
956
  r.extensions_mut().insert(labels);
886
957
  }
887
958
  );
@@ -890,7 +961,7 @@ proxier! {
890
961
  UpdateWorkerBuildIdCompatibilityRequest,
891
962
  UpdateWorkerBuildIdCompatibilityResponse,
892
963
  |r| {
893
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
964
+ let mut labels = namespaced_request!(r);
894
965
  labels.task_q_str(r.get_ref().task_queue.clone());
895
966
  r.extensions_mut().insert(labels);
896
967
  }
@@ -900,7 +971,7 @@ proxier! {
900
971
  GetWorkerBuildIdCompatibilityRequest,
901
972
  GetWorkerBuildIdCompatibilityResponse,
902
973
  |r| {
903
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
974
+ let mut labels = namespaced_request!(r);
904
975
  labels.task_q_str(r.get_ref().task_queue.clone());
905
976
  r.extensions_mut().insert(labels);
906
977
  }
@@ -910,7 +981,7 @@ proxier! {
910
981
  GetWorkerTaskReachabilityRequest,
911
982
  GetWorkerTaskReachabilityResponse,
912
983
  |r| {
913
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
984
+ let mut labels = namespaced_request!(r);
914
985
  r.extensions_mut().insert(labels);
915
986
  }
916
987
  );
@@ -919,8 +990,9 @@ proxier! {
919
990
  UpdateWorkflowExecutionRequest,
920
991
  UpdateWorkflowExecutionResponse,
921
992
  |r| {
922
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
993
+ let labels = namespaced_request!(r);
923
994
  r.extensions_mut().insert(labels);
995
+ r.set_default_timeout(LONG_POLL_TIMEOUT);
924
996
  }
925
997
  );
926
998
  (
@@ -928,8 +1000,9 @@ proxier! {
928
1000
  PollWorkflowExecutionUpdateRequest,
929
1001
  PollWorkflowExecutionUpdateResponse,
930
1002
  |r| {
931
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1003
+ let labels = namespaced_request!(r);
932
1004
  r.extensions_mut().insert(labels);
1005
+ r.set_default_timeout(LONG_POLL_TIMEOUT);
933
1006
  }
934
1007
  );
935
1008
  (
@@ -937,7 +1010,7 @@ proxier! {
937
1010
  StartBatchOperationRequest,
938
1011
  StartBatchOperationResponse,
939
1012
  |r| {
940
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1013
+ let labels = namespaced_request!(r);
941
1014
  r.extensions_mut().insert(labels);
942
1015
  }
943
1016
  );
@@ -946,7 +1019,7 @@ proxier! {
946
1019
  StopBatchOperationRequest,
947
1020
  StopBatchOperationResponse,
948
1021
  |r| {
949
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1022
+ let labels = namespaced_request!(r);
950
1023
  r.extensions_mut().insert(labels);
951
1024
  }
952
1025
  );
@@ -955,7 +1028,7 @@ proxier! {
955
1028
  DescribeBatchOperationRequest,
956
1029
  DescribeBatchOperationResponse,
957
1030
  |r| {
958
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1031
+ let labels = namespaced_request!(r);
959
1032
  r.extensions_mut().insert(labels);
960
1033
  }
961
1034
  );
@@ -964,7 +1037,7 @@ proxier! {
964
1037
  ListBatchOperationsRequest,
965
1038
  ListBatchOperationsResponse,
966
1039
  |r| {
967
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1040
+ let labels = namespaced_request!(r);
968
1041
  r.extensions_mut().insert(labels);
969
1042
  }
970
1043
  );
@@ -973,7 +1046,7 @@ proxier! {
973
1046
  ExecuteMultiOperationRequest,
974
1047
  ExecuteMultiOperationResponse,
975
1048
  |r| {
976
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1049
+ let labels = namespaced_request!(r);
977
1050
  r.extensions_mut().insert(labels);
978
1051
  }
979
1052
  );
@@ -982,7 +1055,7 @@ proxier! {
982
1055
  GetWorkerVersioningRulesRequest,
983
1056
  GetWorkerVersioningRulesResponse,
984
1057
  |r| {
985
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1058
+ let mut labels = namespaced_request!(r);
986
1059
  labels.task_q_str(&r.get_ref().task_queue);
987
1060
  r.extensions_mut().insert(labels);
988
1061
  }
@@ -992,7 +1065,7 @@ proxier! {
992
1065
  UpdateWorkerVersioningRulesRequest,
993
1066
  UpdateWorkerVersioningRulesResponse,
994
1067
  |r| {
995
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1068
+ let mut labels = namespaced_request!(r);
996
1069
  labels.task_q_str(&r.get_ref().task_queue);
997
1070
  r.extensions_mut().insert(labels);
998
1071
  }
@@ -1002,7 +1075,7 @@ proxier! {
1002
1075
  PollNexusTaskQueueRequest,
1003
1076
  PollNexusTaskQueueResponse,
1004
1077
  |r| {
1005
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1078
+ let mut labels = namespaced_request!(r);
1006
1079
  labels.task_q(r.get_ref().task_queue.clone());
1007
1080
  r.extensions_mut().insert(labels);
1008
1081
  }
@@ -1012,7 +1085,7 @@ proxier! {
1012
1085
  RespondNexusTaskCompletedRequest,
1013
1086
  RespondNexusTaskCompletedResponse,
1014
1087
  |r| {
1015
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1088
+ let labels = namespaced_request!(r);
1016
1089
  r.extensions_mut().insert(labels);
1017
1090
  }
1018
1091
  );
@@ -1021,7 +1094,7 @@ proxier! {
1021
1094
  RespondNexusTaskFailedRequest,
1022
1095
  RespondNexusTaskFailedResponse,
1023
1096
  |r| {
1024
- let mut labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1097
+ let labels = namespaced_request!(r);
1025
1098
  r.extensions_mut().insert(labels);
1026
1099
  }
1027
1100
  );
@@ -1034,7 +1107,7 @@ proxier! {
1034
1107
  (list_search_attributes, ListSearchAttributesRequest, ListSearchAttributesResponse);
1035
1108
  (delete_namespace, DeleteNamespaceRequest, DeleteNamespaceResponse,
1036
1109
  |r| {
1037
- let labels = AttachMetricLabels::namespace(r.get_ref().namespace.clone());
1110
+ let labels = namespaced_request!(r);
1038
1111
  r.extensions_mut().insert(labels);
1039
1112
  }
1040
1113
  );
@@ -1048,6 +1121,58 @@ proxier! {
1048
1121
  (list_nexus_endpoints, ListNexusEndpointsRequest, ListNexusEndpointsResponse);
1049
1122
  }
1050
1123
 
1124
+ proxier! {
1125
+ CloudService; ALL_IMPLEMENTED_CLOUD_SERVICE_RPCS; CloudServiceClient; cloud_client_mut;
1126
+ (get_users, cloudreq::GetUsersRequest, cloudreq::GetUsersResponse);
1127
+ (get_user, cloudreq::GetUserRequest, cloudreq::GetUserResponse);
1128
+ (create_user, cloudreq::CreateUserRequest, cloudreq::CreateUserResponse);
1129
+ (update_user, cloudreq::UpdateUserRequest, cloudreq::UpdateUserResponse);
1130
+ (delete_user, cloudreq::DeleteUserRequest, cloudreq::DeleteUserResponse);
1131
+ (set_user_namespace_access, cloudreq::SetUserNamespaceAccessRequest, cloudreq::SetUserNamespaceAccessResponse);
1132
+ (get_async_operation, cloudreq::GetAsyncOperationRequest, cloudreq::GetAsyncOperationResponse);
1133
+ (create_namespace, cloudreq::CreateNamespaceRequest, cloudreq::CreateNamespaceResponse);
1134
+ (get_namespaces, cloudreq::GetNamespacesRequest, cloudreq::GetNamespacesResponse);
1135
+ (get_namespace, cloudreq::GetNamespaceRequest, cloudreq::GetNamespaceResponse,
1136
+ |r| {
1137
+ let labels = namespaced_request!(r);
1138
+ r.extensions_mut().insert(labels);
1139
+ }
1140
+ );
1141
+ (update_namespace, cloudreq::UpdateNamespaceRequest, cloudreq::UpdateNamespaceResponse,
1142
+ |r| {
1143
+ let labels = namespaced_request!(r);
1144
+ r.extensions_mut().insert(labels);
1145
+ }
1146
+ );
1147
+ (rename_custom_search_attribute, cloudreq::RenameCustomSearchAttributeRequest, cloudreq::RenameCustomSearchAttributeResponse);
1148
+ (delete_namespace, cloudreq::DeleteNamespaceRequest, cloudreq::DeleteNamespaceResponse,
1149
+ |r| {
1150
+ let labels = namespaced_request!(r);
1151
+ r.extensions_mut().insert(labels);
1152
+ }
1153
+ );
1154
+ (failover_namespace_region, cloudreq::FailoverNamespaceRegionRequest, cloudreq::FailoverNamespaceRegionResponse);
1155
+ (add_namespace_region, cloudreq::AddNamespaceRegionRequest, cloudreq::AddNamespaceRegionResponse);
1156
+ (get_regions, cloudreq::GetRegionsRequest, cloudreq::GetRegionsResponse);
1157
+ (get_region, cloudreq::GetRegionRequest, cloudreq::GetRegionResponse);
1158
+ (get_api_keys, cloudreq::GetApiKeysRequest, cloudreq::GetApiKeysResponse);
1159
+ (get_api_key, cloudreq::GetApiKeyRequest, cloudreq::GetApiKeyResponse);
1160
+ (create_api_key, cloudreq::CreateApiKeyRequest, cloudreq::CreateApiKeyResponse);
1161
+ (update_api_key, cloudreq::UpdateApiKeyRequest, cloudreq::UpdateApiKeyResponse);
1162
+ (delete_api_key, cloudreq::DeleteApiKeyRequest, cloudreq::DeleteApiKeyResponse);
1163
+ (get_user_groups, cloudreq::GetUserGroupsRequest, cloudreq::GetUserGroupsResponse);
1164
+ (get_user_group, cloudreq::GetUserGroupRequest, cloudreq::GetUserGroupResponse);
1165
+ (create_user_group, cloudreq::CreateUserGroupRequest, cloudreq::CreateUserGroupResponse);
1166
+ (update_user_group, cloudreq::UpdateUserGroupRequest, cloudreq::UpdateUserGroupResponse);
1167
+ (delete_user_group, cloudreq::DeleteUserGroupRequest, cloudreq::DeleteUserGroupResponse);
1168
+ (set_user_group_namespace_access, cloudreq::SetUserGroupNamespaceAccessRequest, cloudreq::SetUserGroupNamespaceAccessResponse);
1169
+ (create_service_account, cloudreq::CreateServiceAccountRequest, cloudreq::CreateServiceAccountResponse);
1170
+ (get_service_account, cloudreq::GetServiceAccountRequest, cloudreq::GetServiceAccountResponse);
1171
+ (get_service_accounts, cloudreq::GetServiceAccountsRequest, cloudreq::GetServiceAccountsResponse);
1172
+ (update_service_account, cloudreq::UpdateServiceAccountRequest, cloudreq::UpdateServiceAccountResponse);
1173
+ (delete_service_account, cloudreq::DeleteServiceAccountRequest, cloudreq::DeleteServiceAccountResponse);
1174
+ }
1175
+
1051
1176
  proxier! {
1052
1177
  TestService; ALL_IMPLEMENTED_TEST_SERVICE_RPCS; TestServiceClient; test_client_mut;
1053
1178
  (lock_time_skipping, LockTimeSkippingRequest, LockTimeSkippingResponse);
@@ -1091,19 +1216,36 @@ mod tests {
1091
1216
  .unwrap();
1092
1217
 
1093
1218
  // Operator svc method
1094
- let del_ns_req = DeleteNamespaceRequest::default();
1219
+ let op_del_ns_req = DeleteNamespaceRequest::default();
1095
1220
  let fact = |c: &mut RetryClient<_>, req| {
1096
1221
  let mut c = c.operator_client_mut().clone();
1097
1222
  async move { c.delete_namespace(req).await }.boxed()
1098
1223
  };
1099
1224
  retry_client
1100
- .call("whatever", fact, Request::new(del_ns_req.clone()))
1225
+ .call("whatever", fact, Request::new(op_del_ns_req.clone()))
1226
+ .await
1227
+ .unwrap();
1228
+
1229
+ // Cloud svc method
1230
+ let cloud_del_ns_req = cloudreq::DeleteNamespaceRequest::default();
1231
+ let fact = |c: &mut RetryClient<_>, req| {
1232
+ let mut c = c.cloud_client_mut().clone();
1233
+ async move { c.delete_namespace(req).await }.boxed()
1234
+ };
1235
+ retry_client
1236
+ .call("whatever", fact, Request::new(cloud_del_ns_req.clone()))
1101
1237
  .await
1102
1238
  .unwrap();
1103
1239
 
1104
1240
  // Verify calling through traits works
1105
1241
  retry_client.list_namespaces(list_ns_req).await.unwrap();
1106
- retry_client.delete_namespace(del_ns_req).await.unwrap();
1242
+ // Have to disambiguate operator and cloud service
1243
+ OperatorService::delete_namespace(&mut retry_client, op_del_ns_req)
1244
+ .await
1245
+ .unwrap();
1246
+ CloudService::delete_namespace(&mut retry_client, cloud_del_ns_req)
1247
+ .await
1248
+ .unwrap();
1107
1249
  retry_client.get_current_time(()).await.unwrap();
1108
1250
  retry_client
1109
1251
  .check(HealthCheckRequest::default())
@@ -1143,6 +1285,13 @@ mod tests {
1143
1285
  verify_methods(proto_def, ALL_IMPLEMENTED_OPERATOR_SERVICE_RPCS);
1144
1286
  }
1145
1287
 
1288
+ #[test]
1289
+ fn verify_all_cloud_service_methods_implemented() {
1290
+ let proto_def =
1291
+ include_str!("../../sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto");
1292
+ verify_methods(proto_def, ALL_IMPLEMENTED_CLOUD_SERVICE_RPCS);
1293
+ }
1294
+
1146
1295
  #[test]
1147
1296
  fn verify_all_test_service_methods_implemented() {
1148
1297
  let proto_def =