1#[derive(serde::Serialize, serde::Deserialize)]
6#[serde(rename_all = "snake_case")]
7#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct InRuleGroup {
9    #[prost(string, tag = "1")]
11    pub name: ::prost::alloc::string::String,
12    #[prost(uint32, optional, tag = "2")]
16    pub interval: ::core::option::Option<u32>,
17    #[prost(uint64, optional, tag = "3")]
21    pub limit: ::core::option::Option<u64>,
22    #[prost(message, repeated, tag = "4")]
24    pub rules: ::prost::alloc::vec::Vec<InRule>,
25    #[prost(uint32, optional, tag = "5")]
26    pub version: ::core::option::Option<u32>,
27    #[prost(string, optional, tag = "6")]
28    pub id: ::core::option::Option<::prost::alloc::string::String>,
29}
30#[derive(serde::Serialize, serde::Deserialize)]
31#[serde(rename_all = "snake_case")]
32#[derive(Clone, PartialEq, ::prost::Message)]
33pub struct InRule {
34    #[prost(string, tag = "1")]
36    pub record: ::prost::alloc::string::String,
37    #[prost(string, tag = "2")]
42    pub expr: ::prost::alloc::string::String,
43    #[prost(map = "string, string", tag = "3")]
45    pub labels: ::std::collections::HashMap<
46        ::prost::alloc::string::String,
47        ::prost::alloc::string::String,
48    >,
49}
50#[derive(serde::Serialize, serde::Deserialize)]
51#[serde(rename_all = "snake_case")]
52#[derive(Clone, PartialEq, ::prost::Message)]
53pub struct OutRuleGroup {
54    #[prost(string, tag = "1")]
55    pub name: ::prost::alloc::string::String,
56    #[prost(uint32, optional, tag = "2")]
57    pub interval: ::core::option::Option<u32>,
58    #[prost(uint64, optional, tag = "3")]
59    pub limit: ::core::option::Option<u64>,
60    #[prost(message, repeated, tag = "4")]
61    pub rules: ::prost::alloc::vec::Vec<OutRule>,
62    #[prost(uint64, optional, tag = "5")]
63    pub last_eval_at: ::core::option::Option<u64>,
64    #[prost(uint32, tag = "6")]
65    pub version: u32,
66    #[prost(string, tag = "7")]
67    pub id: ::prost::alloc::string::String,
68}
69#[derive(serde::Serialize, serde::Deserialize)]
70#[serde(rename_all = "snake_case")]
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct OutRule {
73    #[prost(string, tag = "1")]
74    pub record: ::prost::alloc::string::String,
75    #[prost(string, tag = "2")]
76    pub expr: ::prost::alloc::string::String,
77    #[prost(map = "string, string", tag = "3")]
78    pub labels: ::std::collections::HashMap<
79        ::prost::alloc::string::String,
80        ::prost::alloc::string::String,
81    >,
82    #[prost(uint64, optional, tag = "4")]
83    pub last_eval_duration_ms: ::core::option::Option<u64>,
84}
85#[derive(serde::Serialize, serde::Deserialize)]
87#[serde(rename_all = "snake_case")]
88#[derive(Clone, PartialEq, ::prost::Message)]
89pub struct DeleteRuleGroup {
90    #[prost(string, tag = "1")]
92    pub name: ::prost::alloc::string::String,
93}
94#[derive(serde::Serialize, serde::Deserialize)]
96#[serde(rename_all = "snake_case")]
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct RuleGroupListing {
99    #[prost(message, repeated, tag = "1")]
100    pub rule_groups: ::prost::alloc::vec::Vec<OutRuleGroup>,
101}
102#[derive(serde::Serialize, serde::Deserialize)]
104#[serde(rename_all = "snake_case")]
105#[derive(Clone, PartialEq, ::prost::Message)]
106pub struct FetchRuleGroup {
107    #[prost(string, tag = "1")]
108    pub name: ::prost::alloc::string::String,
109}
110#[derive(serde::Serialize, serde::Deserialize)]
112#[serde(rename_all = "snake_case")]
113#[derive(Clone, PartialEq, ::prost::Message)]
114pub struct FetchRuleGroupResult {
115    #[prost(message, optional, tag = "1")]
117    pub rule_group: ::core::option::Option<OutRuleGroup>,
118}
119#[derive(serde::Serialize, serde::Deserialize)]
120#[serde(rename_all = "snake_case")]
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct CreateRuleGroupSet {
123    #[prost(message, repeated, tag = "1")]
124    pub groups: ::prost::alloc::vec::Vec<InRuleGroup>,
125    #[prost(string, optional, tag = "2")]
126    pub name: ::core::option::Option<::prost::alloc::string::String>,
127}
128#[derive(serde::Serialize, serde::Deserialize)]
129#[serde(rename_all = "snake_case")]
130#[derive(Clone, PartialEq, ::prost::Message)]
131pub struct CreateRuleGroupSetResult {
132    #[prost(string, tag = "1")]
133    pub id: ::prost::alloc::string::String,
134}
135#[derive(serde::Serialize, serde::Deserialize)]
136#[serde(rename_all = "snake_case")]
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct UpdateRuleGroupSet {
139    #[prost(string, tag = "1")]
140    pub id: ::prost::alloc::string::String,
141    #[prost(message, repeated, tag = "2")]
142    pub groups: ::prost::alloc::vec::Vec<InRuleGroup>,
143    #[prost(string, optional, tag = "3")]
144    pub name: ::core::option::Option<::prost::alloc::string::String>,
145}
146#[derive(serde::Serialize, serde::Deserialize)]
147#[serde(rename_all = "snake_case")]
148#[derive(Clone, PartialEq, ::prost::Message)]
149pub struct RuleGroupSetListing {
150    #[prost(message, repeated, tag = "1")]
151    pub sets: ::prost::alloc::vec::Vec<OutRuleGroupSet>,
152}
153#[derive(serde::Serialize, serde::Deserialize)]
154#[serde(rename_all = "snake_case")]
155#[derive(Clone, PartialEq, ::prost::Message)]
156pub struct FetchRuleGroupSet {
157    #[prost(string, tag = "1")]
158    pub id: ::prost::alloc::string::String,
159}
160#[derive(serde::Serialize, serde::Deserialize)]
161#[serde(rename_all = "snake_case")]
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct DeleteRuleGroupSet {
164    #[prost(string, tag = "1")]
165    pub id: ::prost::alloc::string::String,
166}
167#[derive(serde::Serialize, serde::Deserialize)]
168#[serde(rename_all = "snake_case")]
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct OutRuleGroupSet {
171    #[prost(string, tag = "1")]
172    pub id: ::prost::alloc::string::String,
173    #[prost(message, repeated, tag = "2")]
174    pub groups: ::prost::alloc::vec::Vec<OutRuleGroup>,
175    #[prost(string, tag = "3")]
176    pub name: ::prost::alloc::string::String,
177}
178pub mod rule_groups_client {
180    #![allow(
181        unused_variables,
182        dead_code,
183        missing_docs,
184        clippy::wildcard_imports,
185        clippy::let_unit_value,
186    )]
187    use tonic::codegen::*;
188    use tonic::codegen::http::Uri;
189    #[derive(Debug, Clone)]
192    pub struct RuleGroupsClient<T> {
193        inner: tonic::client::Grpc<T>,
194    }
195    impl RuleGroupsClient<tonic::transport::Channel> {
196        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
198        where
199            D: TryInto<tonic::transport::Endpoint>,
200            D::Error: Into<StdError>,
201        {
202            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
203            Ok(Self::new(conn))
204        }
205    }
206    impl<T> RuleGroupsClient<T>
207    where
208        T: tonic::client::GrpcService<tonic::body::BoxBody>,
209        T::Error: Into<StdError>,
210        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
211        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
212    {
213        pub fn new(inner: T) -> Self {
214            let inner = tonic::client::Grpc::new(inner);
215            Self { inner }
216        }
217        pub fn with_origin(inner: T, origin: Uri) -> Self {
218            let inner = tonic::client::Grpc::with_origin(inner, origin);
219            Self { inner }
220        }
221        pub fn with_interceptor<F>(
222            inner: T,
223            interceptor: F,
224        ) -> RuleGroupsClient<InterceptedService<T, F>>
225        where
226            F: tonic::service::Interceptor,
227            T::ResponseBody: Default,
228            T: tonic::codegen::Service<
229                http::Request<tonic::body::BoxBody>,
230                Response = http::Response<
231                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
232                >,
233            >,
234            <T as tonic::codegen::Service<
235                http::Request<tonic::body::BoxBody>,
236            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
237        {
238            RuleGroupsClient::new(InterceptedService::new(inner, interceptor))
239        }
240        #[must_use]
245        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
246            self.inner = self.inner.send_compressed(encoding);
247            self
248        }
249        #[must_use]
251        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
252            self.inner = self.inner.accept_compressed(encoding);
253            self
254        }
255        #[must_use]
259        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
260            self.inner = self.inner.max_decoding_message_size(limit);
261            self
262        }
263        #[must_use]
267        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
268            self.inner = self.inner.max_encoding_message_size(limit);
269            self
270        }
271        pub async fn save(
273            &mut self,
274            request: impl tonic::IntoRequest<super::InRuleGroup>,
275        ) -> std::result::Result<tonic::Response<()>, tonic::Status> {
276            self.inner
277                .ready()
278                .await
279                .map_err(|e| {
280                    tonic::Status::unknown(
281                        format!("Service was not ready: {}", e.into()),
282                    )
283                })?;
284            let codec = tonic::codec::ProstCodec::default();
285            let path = http::uri::PathAndQuery::from_static(
286                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroups/Save",
287            );
288            let mut req = request.into_request();
289            req.extensions_mut()
290                .insert(
291                    GrpcMethod::new(
292                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroups",
293                        "Save",
294                    ),
295                );
296            self.inner.unary(req, path, codec).await
297        }
298        pub async fn delete(
300            &mut self,
301            request: impl tonic::IntoRequest<super::DeleteRuleGroup>,
302        ) -> std::result::Result<tonic::Response<()>, tonic::Status> {
303            self.inner
304                .ready()
305                .await
306                .map_err(|e| {
307                    tonic::Status::unknown(
308                        format!("Service was not ready: {}", e.into()),
309                    )
310                })?;
311            let codec = tonic::codec::ProstCodec::default();
312            let path = http::uri::PathAndQuery::from_static(
313                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroups/Delete",
314            );
315            let mut req = request.into_request();
316            req.extensions_mut()
317                .insert(
318                    GrpcMethod::new(
319                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroups",
320                        "Delete",
321                    ),
322                );
323            self.inner.unary(req, path, codec).await
324        }
325        pub async fn list(
327            &mut self,
328            request: impl tonic::IntoRequest<()>,
329        ) -> std::result::Result<
330            tonic::Response<super::RuleGroupListing>,
331            tonic::Status,
332        > {
333            self.inner
334                .ready()
335                .await
336                .map_err(|e| {
337                    tonic::Status::unknown(
338                        format!("Service was not ready: {}", e.into()),
339                    )
340                })?;
341            let codec = tonic::codec::ProstCodec::default();
342            let path = http::uri::PathAndQuery::from_static(
343                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroups/List",
344            );
345            let mut req = request.into_request();
346            req.extensions_mut()
347                .insert(
348                    GrpcMethod::new(
349                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroups",
350                        "List",
351                    ),
352                );
353            self.inner.unary(req, path, codec).await
354        }
355        pub async fn fetch(
357            &mut self,
358            request: impl tonic::IntoRequest<super::FetchRuleGroup>,
359        ) -> std::result::Result<
360            tonic::Response<super::FetchRuleGroupResult>,
361            tonic::Status,
362        > {
363            self.inner
364                .ready()
365                .await
366                .map_err(|e| {
367                    tonic::Status::unknown(
368                        format!("Service was not ready: {}", e.into()),
369                    )
370                })?;
371            let codec = tonic::codec::ProstCodec::default();
372            let path = http::uri::PathAndQuery::from_static(
373                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroups/Fetch",
374            );
375            let mut req = request.into_request();
376            req.extensions_mut()
377                .insert(
378                    GrpcMethod::new(
379                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroups",
380                        "Fetch",
381                    ),
382                );
383            self.inner.unary(req, path, codec).await
384        }
385    }
386}
387pub mod rule_group_sets_client {
389    #![allow(
390        unused_variables,
391        dead_code,
392        missing_docs,
393        clippy::wildcard_imports,
394        clippy::let_unit_value,
395    )]
396    use tonic::codegen::*;
397    use tonic::codegen::http::Uri;
398    #[derive(Debug, Clone)]
399    pub struct RuleGroupSetsClient<T> {
400        inner: tonic::client::Grpc<T>,
401    }
402    impl RuleGroupSetsClient<tonic::transport::Channel> {
403        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
405        where
406            D: TryInto<tonic::transport::Endpoint>,
407            D::Error: Into<StdError>,
408        {
409            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
410            Ok(Self::new(conn))
411        }
412    }
413    impl<T> RuleGroupSetsClient<T>
414    where
415        T: tonic::client::GrpcService<tonic::body::BoxBody>,
416        T::Error: Into<StdError>,
417        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
418        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
419    {
420        pub fn new(inner: T) -> Self {
421            let inner = tonic::client::Grpc::new(inner);
422            Self { inner }
423        }
424        pub fn with_origin(inner: T, origin: Uri) -> Self {
425            let inner = tonic::client::Grpc::with_origin(inner, origin);
426            Self { inner }
427        }
428        pub fn with_interceptor<F>(
429            inner: T,
430            interceptor: F,
431        ) -> RuleGroupSetsClient<InterceptedService<T, F>>
432        where
433            F: tonic::service::Interceptor,
434            T::ResponseBody: Default,
435            T: tonic::codegen::Service<
436                http::Request<tonic::body::BoxBody>,
437                Response = http::Response<
438                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
439                >,
440            >,
441            <T as tonic::codegen::Service<
442                http::Request<tonic::body::BoxBody>,
443            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
444        {
445            RuleGroupSetsClient::new(InterceptedService::new(inner, interceptor))
446        }
447        #[must_use]
452        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
453            self.inner = self.inner.send_compressed(encoding);
454            self
455        }
456        #[must_use]
458        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
459            self.inner = self.inner.accept_compressed(encoding);
460            self
461        }
462        #[must_use]
466        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
467            self.inner = self.inner.max_decoding_message_size(limit);
468            self
469        }
470        #[must_use]
474        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
475            self.inner = self.inner.max_encoding_message_size(limit);
476            self
477        }
478        pub async fn create(
479            &mut self,
480            request: impl tonic::IntoRequest<super::CreateRuleGroupSet>,
481        ) -> std::result::Result<
482            tonic::Response<super::CreateRuleGroupSetResult>,
483            tonic::Status,
484        > {
485            self.inner
486                .ready()
487                .await
488                .map_err(|e| {
489                    tonic::Status::unknown(
490                        format!("Service was not ready: {}", e.into()),
491                    )
492                })?;
493            let codec = tonic::codec::ProstCodec::default();
494            let path = http::uri::PathAndQuery::from_static(
495                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets/Create",
496            );
497            let mut req = request.into_request();
498            req.extensions_mut()
499                .insert(
500                    GrpcMethod::new(
501                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets",
502                        "Create",
503                    ),
504                );
505            self.inner.unary(req, path, codec).await
506        }
507        pub async fn update(
508            &mut self,
509            request: impl tonic::IntoRequest<super::UpdateRuleGroupSet>,
510        ) -> std::result::Result<tonic::Response<()>, tonic::Status> {
511            self.inner
512                .ready()
513                .await
514                .map_err(|e| {
515                    tonic::Status::unknown(
516                        format!("Service was not ready: {}", e.into()),
517                    )
518                })?;
519            let codec = tonic::codec::ProstCodec::default();
520            let path = http::uri::PathAndQuery::from_static(
521                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets/Update",
522            );
523            let mut req = request.into_request();
524            req.extensions_mut()
525                .insert(
526                    GrpcMethod::new(
527                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets",
528                        "Update",
529                    ),
530                );
531            self.inner.unary(req, path, codec).await
532        }
533        pub async fn list(
534            &mut self,
535            request: impl tonic::IntoRequest<()>,
536        ) -> std::result::Result<
537            tonic::Response<super::RuleGroupSetListing>,
538            tonic::Status,
539        > {
540            self.inner
541                .ready()
542                .await
543                .map_err(|e| {
544                    tonic::Status::unknown(
545                        format!("Service was not ready: {}", e.into()),
546                    )
547                })?;
548            let codec = tonic::codec::ProstCodec::default();
549            let path = http::uri::PathAndQuery::from_static(
550                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets/List",
551            );
552            let mut req = request.into_request();
553            req.extensions_mut()
554                .insert(
555                    GrpcMethod::new(
556                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets",
557                        "List",
558                    ),
559                );
560            self.inner.unary(req, path, codec).await
561        }
562        pub async fn fetch(
563            &mut self,
564            request: impl tonic::IntoRequest<super::FetchRuleGroupSet>,
565        ) -> std::result::Result<
566            tonic::Response<super::OutRuleGroupSet>,
567            tonic::Status,
568        > {
569            self.inner
570                .ready()
571                .await
572                .map_err(|e| {
573                    tonic::Status::unknown(
574                        format!("Service was not ready: {}", e.into()),
575                    )
576                })?;
577            let codec = tonic::codec::ProstCodec::default();
578            let path = http::uri::PathAndQuery::from_static(
579                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets/Fetch",
580            );
581            let mut req = request.into_request();
582            req.extensions_mut()
583                .insert(
584                    GrpcMethod::new(
585                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets",
586                        "Fetch",
587                    ),
588                );
589            self.inner.unary(req, path, codec).await
590        }
591        pub async fn delete(
592            &mut self,
593            request: impl tonic::IntoRequest<super::DeleteRuleGroupSet>,
594        ) -> std::result::Result<tonic::Response<()>, tonic::Status> {
595            self.inner
596                .ready()
597                .await
598                .map_err(|e| {
599                    tonic::Status::unknown(
600                        format!("Service was not ready: {}", e.into()),
601                    )
602                })?;
603            let codec = tonic::codec::ProstCodec::default();
604            let path = http::uri::PathAndQuery::from_static(
605                "/com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets/Delete",
606            );
607            let mut req = request.into_request();
608            req.extensions_mut()
609                .insert(
610                    GrpcMethod::new(
611                        "com.coralogixapis.metrics_rule_manager.v1.RuleGroupSets",
612                        "Delete",
613                    ),
614                );
615            self.inner.unary(req, path, codec).await
616        }
617    }
618}