1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct AggregateTimeSeriesRule {
4 #[prost(string, tag = "1")]
5 pub aggregation: ::prost::alloc::string::String,
6 #[prost(message, optional, tag = "2")]
7 pub bucket_duration: ::core::option::Option<::prost_types::Duration>,
8 #[prost(string, repeated, tag = "3")]
10 pub dependent_features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
11 #[prost(message, optional, tag = "4")]
12 pub retention: ::core::option::Option<::prost_types::Duration>,
13 #[prost(string, tag = "5")]
14 pub datetime_feature: ::prost::alloc::string::String,
15}
16#[derive(Clone, PartialEq, ::prost::Message)]
17pub struct AggregateTimeSeries {
18 #[prost(string, tag = "1")]
19 pub namespace: ::prost::alloc::string::String,
20 #[prost(string, tag = "2")]
21 pub aggregate_on: ::prost::alloc::string::String,
22 #[prost(string, repeated, tag = "3")]
23 pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
24 #[prost(message, repeated, tag = "5")]
25 pub rules: ::prost::alloc::vec::Vec<AggregateTimeSeriesRule>,
26 #[prost(string, tag = "6")]
27 pub filters_description: ::prost::alloc::string::String,
28 #[prost(string, tag = "7")]
29 pub bucket_feature: ::prost::alloc::string::String,
30}
31#[derive(Clone, Copy, PartialEq, ::prost::Message)]
32pub struct AggregateBackfillCostEstimate {
33 #[prost(int64, tag = "1")]
34 pub max_buckets: i64,
35 #[prost(int64, tag = "2")]
36 pub expected_buckets: i64,
37 #[prost(int64, tag = "3")]
38 pub expected_bytes: i64,
39 #[prost(double, tag = "4")]
40 pub expected_storage_cost: f64,
41 #[prost(message, optional, tag = "5")]
42 pub expected_runtime: ::core::option::Option<::prost_types::Duration>,
43}
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct AggregateBackfillUserParams {
46 #[prost(string, repeated, tag = "1")]
47 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
48 #[prost(string, optional, tag = "2")]
49 pub resolver: ::core::option::Option<::prost::alloc::string::String>,
50 #[deprecated]
51 #[prost(string, optional, tag = "3")]
52 pub timestamp_column_name: ::core::option::Option<::prost::alloc::string::String>,
53 #[prost(message, optional, tag = "4")]
54 pub lower_bound: ::core::option::Option<::prost_types::Timestamp>,
55 #[prost(message, optional, tag = "5")]
56 pub upper_bound: ::core::option::Option<::prost_types::Timestamp>,
57 #[prost(bool, tag = "6")]
58 pub exact: bool,
59}
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct AggregateBackfill {
62 #[prost(message, repeated, tag = "1")]
63 pub series: ::prost::alloc::vec::Vec<AggregateTimeSeries>,
64 #[prost(string, tag = "2")]
65 pub resolver: ::prost::alloc::string::String,
66 #[prost(string, tag = "3")]
67 pub datetime_feature: ::prost::alloc::string::String,
68 #[prost(message, optional, tag = "4")]
69 pub bucket_duration: ::core::option::Option<::prost_types::Duration>,
70 #[prost(string, tag = "5")]
71 pub filters_description: ::prost::alloc::string::String,
72 #[prost(string, repeated, tag = "6")]
73 pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
74 #[prost(message, optional, tag = "7")]
75 pub max_retention: ::core::option::Option<::prost_types::Duration>,
76 #[prost(message, optional, tag = "8")]
77 pub lower_bound: ::core::option::Option<::prost_types::Timestamp>,
78 #[prost(message, optional, tag = "9")]
79 pub upper_bound: ::core::option::Option<::prost_types::Timestamp>,
80}
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct AggregateBackfillWithCostEstimate {
83 #[prost(message, optional, tag = "1")]
84 pub backfill: ::core::option::Option<AggregateBackfill>,
85 #[prost(message, optional, tag = "2")]
86 pub estimate: ::core::option::Option<AggregateBackfillCostEstimate>,
87}
88#[derive(Clone, PartialEq, ::prost::Message)]
89pub struct AggregateBackfillJob {
90 #[prost(string, tag = "1")]
91 pub id: ::prost::alloc::string::String,
92 #[prost(string, tag = "2")]
93 pub environment_id: ::prost::alloc::string::String,
94 #[prost(string, optional, tag = "3")]
95 pub resolver: ::core::option::Option<::prost::alloc::string::String>,
96 #[prost(string, repeated, tag = "4")]
97 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
98 #[prost(string, optional, tag = "5")]
99 pub agent_id: ::core::option::Option<::prost::alloc::string::String>,
100 #[prost(string, optional, tag = "6")]
101 pub deployment_id: ::core::option::Option<::prost::alloc::string::String>,
102 #[prost(message, optional, tag = "7")]
103 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
104 #[prost(message, optional, tag = "8")]
105 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
106 #[prost(string, repeated, tag = "9")]
107 pub resolvers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
108 #[prost(string, optional, tag = "10")]
109 pub cron_aggregate_backfill_id: ::core::option::Option<
110 ::prost::alloc::string::String,
111 >,
112 #[prost(string, optional, tag = "11")]
113 pub plan_hash: ::core::option::Option<::prost::alloc::string::String>,
114 #[prost(enumeration = "AggregateBackfillStatus", tag = "12")]
115 pub status: i32,
116}
117#[derive(Clone, PartialEq, ::prost::Message)]
118pub struct CronAggregateBackfill {
119 #[prost(string, tag = "1")]
120 pub id: ::prost::alloc::string::String,
121 #[prost(string, tag = "2")]
122 pub environment_id: ::prost::alloc::string::String,
123 #[prost(string, tag = "3")]
124 pub deployment_id: ::prost::alloc::string::String,
125 #[prost(string, tag = "4")]
126 pub schedule: ::prost::alloc::string::String,
127 #[prost(string, tag = "5")]
128 pub plan_hash: ::prost::alloc::string::String,
129 #[prost(string, repeated, tag = "8")]
130 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
131 #[prost(string, repeated, tag = "9")]
132 pub resolvers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
133 #[prost(message, optional, tag = "6")]
134 pub created_at: ::core::option::Option<::prost_types::Timestamp>,
135 #[prost(message, optional, tag = "7")]
136 pub updated_at: ::core::option::Option<::prost_types::Timestamp>,
137}
138#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
139#[repr(i32)]
140pub enum AggregateBackfillStatus {
141 Unspecified = 0,
142 Initializing = 1,
143 InitFailed = 2,
144 Skipped = 3,
145 Queued = 4,
147 Working = 5,
148 Completed = 6,
149 Failed = 7,
150 Canceled = 8,
151}
152impl AggregateBackfillStatus {
153 pub fn as_str_name(&self) -> &'static str {
158 match self {
159 Self::Unspecified => "AGGREGATE_BACKFILL_STATUS_UNSPECIFIED",
160 Self::Initializing => "AGGREGATE_BACKFILL_STATUS_INITIALIZING",
161 Self::InitFailed => "AGGREGATE_BACKFILL_STATUS_INIT_FAILED",
162 Self::Skipped => "AGGREGATE_BACKFILL_STATUS_SKIPPED",
163 Self::Queued => "AGGREGATE_BACKFILL_STATUS_QUEUED",
164 Self::Working => "AGGREGATE_BACKFILL_STATUS_WORKING",
165 Self::Completed => "AGGREGATE_BACKFILL_STATUS_COMPLETED",
166 Self::Failed => "AGGREGATE_BACKFILL_STATUS_FAILED",
167 Self::Canceled => "AGGREGATE_BACKFILL_STATUS_CANCELED",
168 }
169 }
170 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
172 match value {
173 "AGGREGATE_BACKFILL_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
174 "AGGREGATE_BACKFILL_STATUS_INITIALIZING" => Some(Self::Initializing),
175 "AGGREGATE_BACKFILL_STATUS_INIT_FAILED" => Some(Self::InitFailed),
176 "AGGREGATE_BACKFILL_STATUS_SKIPPED" => Some(Self::Skipped),
177 "AGGREGATE_BACKFILL_STATUS_QUEUED" => Some(Self::Queued),
178 "AGGREGATE_BACKFILL_STATUS_WORKING" => Some(Self::Working),
179 "AGGREGATE_BACKFILL_STATUS_COMPLETED" => Some(Self::Completed),
180 "AGGREGATE_BACKFILL_STATUS_FAILED" => Some(Self::Failed),
181 "AGGREGATE_BACKFILL_STATUS_CANCELED" => Some(Self::Canceled),
182 _ => None,
183 }
184 }
185}
186#[derive(Clone, PartialEq, ::prost::Message)]
187pub struct PlanAggregateBackfillRequest {
188 #[prost(message, optional, tag = "1")]
189 pub params: ::core::option::Option<AggregateBackfillUserParams>,
190}
191#[derive(Clone, PartialEq, ::prost::Message)]
192pub struct PlanAggregateBackfillResponse {
193 #[prost(message, optional, tag = "2")]
194 pub estimate: ::core::option::Option<AggregateBackfillCostEstimate>,
195 #[prost(string, repeated, tag = "4")]
196 pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
197 #[prost(message, repeated, tag = "6")]
198 pub backfills: ::prost::alloc::vec::Vec<AggregateBackfillWithCostEstimate>,
199 #[prost(string, tag = "7")]
200 pub aggregate_backfill_id: ::prost::alloc::string::String,
201}
202#[derive(Clone, PartialEq, ::prost::Message)]
203pub struct GetAggregatesRequest {
204 #[prost(string, repeated, tag = "1")]
205 pub for_features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
206}
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct GetAggregatesResponse {
209 #[prost(message, repeated, tag = "1")]
210 pub series: ::prost::alloc::vec::Vec<AggregateTimeSeries>,
211 #[prost(string, repeated, tag = "2")]
212 pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
213}
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct GetAggregateBackfillJobsRequest {
216 #[prost(int32, tag = "1")]
217 pub limit: i32,
218 #[prost(string, tag = "2")]
219 pub cursor: ::prost::alloc::string::String,
220 #[prost(string, optional, tag = "3")]
221 pub plan_hash: ::core::option::Option<::prost::alloc::string::String>,
222}
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct GetAggregateBackfillJobsResponse {
225 #[prost(message, repeated, tag = "1")]
226 pub jobs: ::prost::alloc::vec::Vec<AggregateBackfillJob>,
227 #[prost(string, tag = "2")]
228 pub cursor: ::prost::alloc::string::String,
229}
230#[derive(Clone, PartialEq, ::prost::Message)]
231pub struct GetAggregateBackfillJobRequest {
232 #[prost(string, tag = "1")]
233 pub aggregate_backfill_id: ::prost::alloc::string::String,
234}
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct GetAggregateBackfillJobResponse {
237 #[prost(message, optional, tag = "1")]
238 pub job: ::core::option::Option<AggregateBackfillJob>,
239}
240#[derive(Clone, PartialEq, ::prost::Message)]
241pub struct GetCronAggregateBackfillRequest {
242 #[deprecated]
243 #[prost(string, tag = "1")]
244 pub cron_aggregate_backfill_id: ::prost::alloc::string::String,
245 #[prost(string, tag = "2")]
246 pub plan_hash: ::prost::alloc::string::String,
247}
248#[derive(Clone, PartialEq, ::prost::Message)]
249pub struct GetCronAggregateBackfillResponse {
250 #[prost(message, optional, tag = "1")]
251 pub cron_aggregate_backfill: ::core::option::Option<CronAggregateBackfill>,
252}
253#[derive(Clone, Copy, PartialEq, ::prost::Message)]
254pub struct GetActiveCronAggregateBackfillsRequest {}
255#[derive(Clone, PartialEq, ::prost::Message)]
256pub struct CronAggregateBackfillWithLatestRun {
257 #[prost(message, optional, tag = "1")]
258 pub cron_aggregate_backfill: ::core::option::Option<CronAggregateBackfill>,
259 #[prost(message, optional, tag = "2")]
260 pub latest_job: ::core::option::Option<AggregateBackfillJob>,
261}
262#[derive(Clone, PartialEq, ::prost::Message)]
263pub struct GetActiveCronAggregateBackfillsResponse {
264 #[prost(message, repeated, tag = "1")]
265 pub cron_aggregate_backfills: ::prost::alloc::vec::Vec<
266 CronAggregateBackfillWithLatestRun,
267 >,
268}
269#[derive(Clone, PartialEq, ::prost::Message)]
270pub struct CreateAggregateBackfillJobRequest {
271 #[prost(string, repeated, tag = "1")]
272 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
273 #[prost(message, optional, tag = "2")]
274 pub lower_bound: ::core::option::Option<::prost_types::Timestamp>,
275 #[prost(message, optional, tag = "3")]
276 pub upper_bound: ::core::option::Option<::prost_types::Timestamp>,
277 #[prost(string, optional, tag = "4")]
278 pub resolver: ::core::option::Option<::prost::alloc::string::String>,
279 #[prost(string, optional, tag = "5")]
280 pub bucket_feature: ::core::option::Option<::prost::alloc::string::String>,
281 #[prost(bool, tag = "6")]
282 pub enable_profiling: bool,
283 #[prost(string, optional, tag = "7")]
284 pub aggregate_backfill_id: ::core::option::Option<::prost::alloc::string::String>,
285 #[prost(string, optional, tag = "8")]
286 pub resource_group: ::core::option::Option<::prost::alloc::string::String>,
287}
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct CreateAggregateBackfillJobResponse {
290 #[prost(string, tag = "1")]
291 pub job_id: ::prost::alloc::string::String,
292 #[prost(string, repeated, tag = "2")]
293 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
294 #[prost(message, repeated, tag = "3")]
295 pub errors: ::prost::alloc::vec::Vec<super::super::common::v1::ChalkError>,
296}
297pub mod aggregate_service_client {
299 #![allow(
300 unused_variables,
301 dead_code,
302 missing_docs,
303 clippy::wildcard_imports,
304 clippy::let_unit_value,
305 )]
306 use tonic::codegen::*;
307 use tonic::codegen::http::Uri;
308 #[derive(Debug, Clone)]
309 pub struct AggregateServiceClient<T> {
310 inner: tonic::client::Grpc<T>,
311 }
312 impl AggregateServiceClient<tonic::transport::Channel> {
313 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
315 where
316 D: TryInto<tonic::transport::Endpoint>,
317 D::Error: Into<StdError>,
318 {
319 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
320 Ok(Self::new(conn))
321 }
322 }
323 impl<T> AggregateServiceClient<T>
324 where
325 T: tonic::client::GrpcService<tonic::body::BoxBody>,
326 T::Error: Into<StdError>,
327 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
328 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
329 {
330 pub fn new(inner: T) -> Self {
331 let inner = tonic::client::Grpc::new(inner);
332 Self { inner }
333 }
334 pub fn with_origin(inner: T, origin: Uri) -> Self {
335 let inner = tonic::client::Grpc::with_origin(inner, origin);
336 Self { inner }
337 }
338 pub fn with_interceptor<F>(
339 inner: T,
340 interceptor: F,
341 ) -> AggregateServiceClient<InterceptedService<T, F>>
342 where
343 F: tonic::service::Interceptor,
344 T::ResponseBody: Default,
345 T: tonic::codegen::Service<
346 http::Request<tonic::body::BoxBody>,
347 Response = http::Response<
348 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
349 >,
350 >,
351 <T as tonic::codegen::Service<
352 http::Request<tonic::body::BoxBody>,
353 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
354 {
355 AggregateServiceClient::new(InterceptedService::new(inner, interceptor))
356 }
357 #[must_use]
362 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
363 self.inner = self.inner.send_compressed(encoding);
364 self
365 }
366 #[must_use]
368 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
369 self.inner = self.inner.accept_compressed(encoding);
370 self
371 }
372 #[must_use]
376 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
377 self.inner = self.inner.max_decoding_message_size(limit);
378 self
379 }
380 #[must_use]
384 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
385 self.inner = self.inner.max_encoding_message_size(limit);
386 self
387 }
388 pub async fn plan_aggregate_backfill(
396 &mut self,
397 request: impl tonic::IntoRequest<super::PlanAggregateBackfillRequest>,
398 ) -> std::result::Result<
399 tonic::Response<super::PlanAggregateBackfillResponse>,
400 tonic::Status,
401 > {
402 self.inner
403 .ready()
404 .await
405 .map_err(|e| {
406 tonic::Status::unknown(
407 format!("Service was not ready: {}", e.into()),
408 )
409 })?;
410 let codec = tonic::codec::ProstCodec::default();
411 let path = http::uri::PathAndQuery::from_static(
412 "/chalk.aggregate.v1.AggregateService/PlanAggregateBackfill",
413 );
414 let mut req = request.into_request();
415 req.extensions_mut()
416 .insert(
417 GrpcMethod::new(
418 "chalk.aggregate.v1.AggregateService",
419 "PlanAggregateBackfill",
420 ),
421 );
422 self.inner.unary(req, path, codec).await
423 }
424 pub async fn get_aggregates(
429 &mut self,
430 request: impl tonic::IntoRequest<super::GetAggregatesRequest>,
431 ) -> std::result::Result<
432 tonic::Response<super::GetAggregatesResponse>,
433 tonic::Status,
434 > {
435 self.inner
436 .ready()
437 .await
438 .map_err(|e| {
439 tonic::Status::unknown(
440 format!("Service was not ready: {}", e.into()),
441 )
442 })?;
443 let codec = tonic::codec::ProstCodec::default();
444 let path = http::uri::PathAndQuery::from_static(
445 "/chalk.aggregate.v1.AggregateService/GetAggregates",
446 );
447 let mut req = request.into_request();
448 req.extensions_mut()
449 .insert(
450 GrpcMethod::new(
451 "chalk.aggregate.v1.AggregateService",
452 "GetAggregates",
453 ),
454 );
455 self.inner.unary(req, path, codec).await
456 }
457 pub async fn get_aggregate_backfill_jobs(
458 &mut self,
459 request: impl tonic::IntoRequest<super::GetAggregateBackfillJobsRequest>,
460 ) -> std::result::Result<
461 tonic::Response<super::GetAggregateBackfillJobsResponse>,
462 tonic::Status,
463 > {
464 self.inner
465 .ready()
466 .await
467 .map_err(|e| {
468 tonic::Status::unknown(
469 format!("Service was not ready: {}", e.into()),
470 )
471 })?;
472 let codec = tonic::codec::ProstCodec::default();
473 let path = http::uri::PathAndQuery::from_static(
474 "/chalk.aggregate.v1.AggregateService/GetAggregateBackfillJobs",
475 );
476 let mut req = request.into_request();
477 req.extensions_mut()
478 .insert(
479 GrpcMethod::new(
480 "chalk.aggregate.v1.AggregateService",
481 "GetAggregateBackfillJobs",
482 ),
483 );
484 self.inner.unary(req, path, codec).await
485 }
486 pub async fn get_aggregate_backfill_job(
487 &mut self,
488 request: impl tonic::IntoRequest<super::GetAggregateBackfillJobRequest>,
489 ) -> std::result::Result<
490 tonic::Response<super::GetAggregateBackfillJobResponse>,
491 tonic::Status,
492 > {
493 self.inner
494 .ready()
495 .await
496 .map_err(|e| {
497 tonic::Status::unknown(
498 format!("Service was not ready: {}", e.into()),
499 )
500 })?;
501 let codec = tonic::codec::ProstCodec::default();
502 let path = http::uri::PathAndQuery::from_static(
503 "/chalk.aggregate.v1.AggregateService/GetAggregateBackfillJob",
504 );
505 let mut req = request.into_request();
506 req.extensions_mut()
507 .insert(
508 GrpcMethod::new(
509 "chalk.aggregate.v1.AggregateService",
510 "GetAggregateBackfillJob",
511 ),
512 );
513 self.inner.unary(req, path, codec).await
514 }
515 pub async fn get_cron_aggregate_backfill(
516 &mut self,
517 request: impl tonic::IntoRequest<super::GetCronAggregateBackfillRequest>,
518 ) -> std::result::Result<
519 tonic::Response<super::GetCronAggregateBackfillResponse>,
520 tonic::Status,
521 > {
522 self.inner
523 .ready()
524 .await
525 .map_err(|e| {
526 tonic::Status::unknown(
527 format!("Service was not ready: {}", e.into()),
528 )
529 })?;
530 let codec = tonic::codec::ProstCodec::default();
531 let path = http::uri::PathAndQuery::from_static(
532 "/chalk.aggregate.v1.AggregateService/GetCronAggregateBackfill",
533 );
534 let mut req = request.into_request();
535 req.extensions_mut()
536 .insert(
537 GrpcMethod::new(
538 "chalk.aggregate.v1.AggregateService",
539 "GetCronAggregateBackfill",
540 ),
541 );
542 self.inner.unary(req, path, codec).await
543 }
544 pub async fn get_active_cron_aggregate_backfills(
545 &mut self,
546 request: impl tonic::IntoRequest<
547 super::GetActiveCronAggregateBackfillsRequest,
548 >,
549 ) -> std::result::Result<
550 tonic::Response<super::GetActiveCronAggregateBackfillsResponse>,
551 tonic::Status,
552 > {
553 self.inner
554 .ready()
555 .await
556 .map_err(|e| {
557 tonic::Status::unknown(
558 format!("Service was not ready: {}", e.into()),
559 )
560 })?;
561 let codec = tonic::codec::ProstCodec::default();
562 let path = http::uri::PathAndQuery::from_static(
563 "/chalk.aggregate.v1.AggregateService/GetActiveCronAggregateBackfills",
564 );
565 let mut req = request.into_request();
566 req.extensions_mut()
567 .insert(
568 GrpcMethod::new(
569 "chalk.aggregate.v1.AggregateService",
570 "GetActiveCronAggregateBackfills",
571 ),
572 );
573 self.inner.unary(req, path, codec).await
574 }
575 pub async fn create_aggregate_backfill_job(
576 &mut self,
577 request: impl tonic::IntoRequest<super::CreateAggregateBackfillJobRequest>,
578 ) -> std::result::Result<
579 tonic::Response<super::CreateAggregateBackfillJobResponse>,
580 tonic::Status,
581 > {
582 self.inner
583 .ready()
584 .await
585 .map_err(|e| {
586 tonic::Status::unknown(
587 format!("Service was not ready: {}", e.into()),
588 )
589 })?;
590 let codec = tonic::codec::ProstCodec::default();
591 let path = http::uri::PathAndQuery::from_static(
592 "/chalk.aggregate.v1.AggregateService/CreateAggregateBackfillJob",
593 );
594 let mut req = request.into_request();
595 req.extensions_mut()
596 .insert(
597 GrpcMethod::new(
598 "chalk.aggregate.v1.AggregateService",
599 "CreateAggregateBackfillJob",
600 ),
601 );
602 self.inner.unary(req, path, codec).await
603 }
604 }
605}