1#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct ArchiveRetention {
6    #[prost(message, optional, tag = "1")]
7    pub id: ::core::option::Option<::prost::alloc::string::String>,
8}
9#[derive(serde::Serialize, serde::Deserialize)]
10#[serde(rename_all = "snake_case")]
11#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
12#[repr(i32)]
13pub enum Priority {
14    TypeUnspecified = 0,
15    TypeBlock = 1,
16    TypeLow = 2,
17    TypeMedium = 3,
18    TypeHigh = 4,
19}
20impl Priority {
21    pub fn as_str_name(&self) -> &'static str {
26        match self {
27            Self::TypeUnspecified => "PRIORITY_TYPE_UNSPECIFIED",
28            Self::TypeBlock => "PRIORITY_TYPE_BLOCK",
29            Self::TypeLow => "PRIORITY_TYPE_LOW",
30            Self::TypeMedium => "PRIORITY_TYPE_MEDIUM",
31            Self::TypeHigh => "PRIORITY_TYPE_HIGH",
32        }
33    }
34    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
36        match value {
37            "PRIORITY_TYPE_UNSPECIFIED" => Some(Self::TypeUnspecified),
38            "PRIORITY_TYPE_BLOCK" => Some(Self::TypeBlock),
39            "PRIORITY_TYPE_LOW" => Some(Self::TypeLow),
40            "PRIORITY_TYPE_MEDIUM" => Some(Self::TypeMedium),
41            "PRIORITY_TYPE_HIGH" => Some(Self::TypeHigh),
42            _ => None,
43        }
44    }
45}
46#[derive(serde::Serialize, serde::Deserialize)]
47#[serde(rename_all = "snake_case")]
48#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
49#[repr(i32)]
50pub enum Severity {
51    Unspecified = 0,
52    Debug = 1,
53    Verbose = 2,
54    Info = 3,
55    Warning = 4,
56    Error = 5,
57    Critical = 6,
58}
59impl Severity {
60    pub fn as_str_name(&self) -> &'static str {
65        match self {
66            Self::Unspecified => "SEVERITY_UNSPECIFIED",
67            Self::Debug => "SEVERITY_DEBUG",
68            Self::Verbose => "SEVERITY_VERBOSE",
69            Self::Info => "SEVERITY_INFO",
70            Self::Warning => "SEVERITY_WARNING",
71            Self::Error => "SEVERITY_ERROR",
72            Self::Critical => "SEVERITY_CRITICAL",
73        }
74    }
75    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
77        match value {
78            "SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
79            "SEVERITY_DEBUG" => Some(Self::Debug),
80            "SEVERITY_VERBOSE" => Some(Self::Verbose),
81            "SEVERITY_INFO" => Some(Self::Info),
82            "SEVERITY_WARNING" => Some(Self::Warning),
83            "SEVERITY_ERROR" => Some(Self::Error),
84            "SEVERITY_CRITICAL" => Some(Self::Critical),
85            _ => None,
86        }
87    }
88}
89#[derive(serde::Serialize, serde::Deserialize)]
90#[serde(rename_all = "snake_case")]
91#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
92#[repr(i32)]
93pub enum SourceType {
94    Unspecified = 0,
95    Logs = 1,
96    Spans = 2,
97}
98impl SourceType {
99    pub fn as_str_name(&self) -> &'static str {
104        match self {
105            Self::Unspecified => "SOURCE_TYPE_UNSPECIFIED",
106            Self::Logs => "SOURCE_TYPE_LOGS",
107            Self::Spans => "SOURCE_TYPE_SPANS",
108        }
109    }
110    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
112        match value {
113            "SOURCE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
114            "SOURCE_TYPE_LOGS" => Some(Self::Logs),
115            "SOURCE_TYPE_SPANS" => Some(Self::Spans),
116            _ => None,
117        }
118    }
119}
120#[derive(serde::Serialize, serde::Deserialize)]
121#[serde(rename_all = "snake_case")]
122#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
123#[repr(i32)]
124pub enum RuleTypeId {
125    Unspecified = 0,
126    Is = 2,
127    IsNot = 3,
128    StartWith = 4,
129    Includes = 6,
130}
131impl RuleTypeId {
132    pub fn as_str_name(&self) -> &'static str {
137        match self {
138            Self::Unspecified => "RULE_TYPE_ID_UNSPECIFIED",
139            Self::Is => "RULE_TYPE_ID_IS",
140            Self::IsNot => "RULE_TYPE_ID_IS_NOT",
141            Self::StartWith => "RULE_TYPE_ID_START_WITH",
142            Self::Includes => "RULE_TYPE_ID_INCLUDES",
143        }
144    }
145    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
147        match value {
148            "RULE_TYPE_ID_UNSPECIFIED" => Some(Self::Unspecified),
149            "RULE_TYPE_ID_IS" => Some(Self::Is),
150            "RULE_TYPE_ID_IS_NOT" => Some(Self::IsNot),
151            "RULE_TYPE_ID_START_WITH" => Some(Self::StartWith),
152            "RULE_TYPE_ID_INCLUDES" => Some(Self::Includes),
153            _ => None,
154        }
155    }
156}
157#[derive(serde::Serialize, serde::Deserialize)]
158#[serde(rename_all = "snake_case")]
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct LogRules {
161    #[prost(enumeration = "Severity", repeated, tag = "1")]
162    pub severities: ::prost::alloc::vec::Vec<i32>,
163}
164#[derive(serde::Serialize, serde::Deserialize)]
165#[serde(rename_all = "snake_case")]
166#[derive(Clone, PartialEq, ::prost::Message)]
167pub struct Rule {
168    #[prost(enumeration = "RuleTypeId", tag = "1")]
169    pub rule_type_id: i32,
170    #[prost(message, optional, tag = "2")]
171    pub name: ::core::option::Option<::prost::alloc::string::String>,
172}
173#[derive(serde::Serialize, serde::Deserialize)]
174#[serde(rename_all = "snake_case")]
175#[derive(Clone, PartialEq, ::prost::Message)]
176pub struct TagRule {
177    #[prost(enumeration = "RuleTypeId", tag = "1")]
178    pub rule_type_id: i32,
179    #[prost(message, optional, tag = "2")]
180    pub tag_name: ::core::option::Option<::prost::alloc::string::String>,
181    #[prost(message, optional, tag = "3")]
182    pub tag_value: ::core::option::Option<::prost::alloc::string::String>,
183}
184#[derive(serde::Serialize, serde::Deserialize)]
185#[serde(rename_all = "snake_case")]
186#[derive(Clone, PartialEq, ::prost::Message)]
187pub struct SpanRules {
188    #[prost(message, optional, tag = "1")]
189    pub service_rule: ::core::option::Option<Rule>,
190    #[prost(message, optional, tag = "2")]
191    pub action_rule: ::core::option::Option<Rule>,
192    #[prost(message, repeated, tag = "3")]
193    pub tag_rules: ::prost::alloc::vec::Vec<TagRule>,
194}
195#[derive(serde::Serialize, serde::Deserialize)]
197#[serde(rename_all = "snake_case")]
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct AtomicOverwriteLogPoliciesRequest {
200    #[prost(message, repeated, tag = "1")]
201    pub policies: ::prost::alloc::vec::Vec<CreateLogPolicyRequest>,
202}
203#[derive(serde::Serialize, serde::Deserialize)]
205#[serde(rename_all = "snake_case")]
206#[derive(Clone, PartialEq, ::prost::Message)]
207pub struct AtomicOverwriteSpanPoliciesRequest {
208    #[prost(message, repeated, tag = "1")]
209    pub policies: ::prost::alloc::vec::Vec<CreateSpanPolicyRequest>,
210}
211#[derive(serde::Serialize, serde::Deserialize)]
212#[serde(rename_all = "snake_case")]
213#[derive(Clone, PartialEq, ::prost::Message)]
214pub struct CreateSpanPolicyRequest {
215    #[prost(message, optional, tag = "1")]
216    pub policy: ::core::option::Option<CreateGenericPolicyRequest>,
217    #[prost(message, optional, tag = "2")]
218    pub span_rules: ::core::option::Option<SpanRules>,
219}
220#[derive(serde::Serialize, serde::Deserialize)]
221#[serde(rename_all = "snake_case")]
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct CreateLogPolicyRequest {
224    #[prost(message, optional, tag = "1")]
225    pub policy: ::core::option::Option<CreateGenericPolicyRequest>,
226    #[prost(message, optional, tag = "2")]
227    pub log_rules: ::core::option::Option<LogRules>,
228}
229#[derive(serde::Serialize, serde::Deserialize)]
230#[serde(rename_all = "snake_case")]
231#[derive(Clone, PartialEq, ::prost::Message)]
232pub struct CreateGenericPolicyRequest {
233    #[prost(message, optional, tag = "1")]
234    pub name: ::core::option::Option<::prost::alloc::string::String>,
235    #[prost(message, optional, tag = "2")]
236    pub description: ::core::option::Option<::prost::alloc::string::String>,
237    #[prost(enumeration = "Priority", tag = "3")]
238    pub priority: i32,
239    #[prost(message, optional, tag = "4")]
240    pub application_rule: ::core::option::Option<Rule>,
241    #[prost(message, optional, tag = "5")]
242    pub subsystem_rule: ::core::option::Option<Rule>,
243    #[prost(message, optional, tag = "6")]
244    pub archive_retention: ::core::option::Option<ArchiveRetention>,
245}
246#[derive(serde::Serialize, serde::Deserialize)]
247#[serde(rename_all = "snake_case")]
248#[derive(Clone, PartialEq, ::prost::Message)]
249pub struct Policy {
250    #[prost(message, optional, tag = "1")]
251    pub id: ::core::option::Option<::prost::alloc::string::String>,
252    #[prost(message, optional, tag = "2")]
253    pub company_id: ::core::option::Option<i32>,
254    #[prost(message, optional, tag = "3")]
255    pub name: ::core::option::Option<::prost::alloc::string::String>,
256    #[prost(message, optional, tag = "4")]
257    pub description: ::core::option::Option<::prost::alloc::string::String>,
258    #[prost(enumeration = "Priority", tag = "5")]
259    pub priority: i32,
260    #[prost(message, optional, tag = "6")]
261    pub deleted: ::core::option::Option<bool>,
262    #[prost(message, optional, tag = "7")]
263    pub enabled: ::core::option::Option<bool>,
264    #[prost(message, optional, tag = "8")]
265    pub order: ::core::option::Option<i32>,
266    #[prost(message, optional, tag = "9")]
267    pub application_rule: ::core::option::Option<Rule>,
268    #[prost(message, optional, tag = "10")]
269    pub subsystem_rule: ::core::option::Option<Rule>,
270    #[prost(message, optional, tag = "13")]
271    pub created_at: ::core::option::Option<::prost::alloc::string::String>,
272    #[prost(message, optional, tag = "14")]
273    pub updated_at: ::core::option::Option<::prost::alloc::string::String>,
274    #[prost(message, optional, tag = "15")]
275    pub archive_retention: ::core::option::Option<ArchiveRetention>,
276    #[prost(oneof = "policy::SourceTypeRules", tags = "11, 12")]
277    pub source_type_rules: ::core::option::Option<policy::SourceTypeRules>,
278}
279pub mod policy {
281    #[derive(serde::Serialize, serde::Deserialize)]
282    #[serde(rename_all = "snake_case")]
283    #[derive(Clone, PartialEq, ::prost::Oneof)]
284    pub enum SourceTypeRules {
285        #[prost(message, tag = "11")]
286        LogRules(super::LogRules),
287        #[prost(message, tag = "12")]
288        SpanRules(super::SpanRules),
289    }
290}
291#[derive(serde::Serialize, serde::Deserialize)]
292#[serde(rename_all = "snake_case")]
293#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct CreatePolicyResponse {
295    #[prost(message, optional, tag = "1")]
296    pub policy: ::core::option::Option<Policy>,
297}
298#[derive(serde::Serialize, serde::Deserialize)]
299#[serde(rename_all = "snake_case")]
300#[derive(Clone, PartialEq, ::prost::Message)]
301pub struct AtomicOverwriteLogPoliciesResponse {
302    #[prost(message, repeated, tag = "1")]
303    pub create_responses: ::prost::alloc::vec::Vec<CreatePolicyResponse>,
304}
305#[derive(serde::Serialize, serde::Deserialize)]
306#[serde(rename_all = "snake_case")]
307#[derive(Clone, PartialEq, ::prost::Message)]
308pub struct AtomicOverwriteSpanPoliciesResponse {
309    #[prost(message, repeated, tag = "1")]
310    pub create_responses: ::prost::alloc::vec::Vec<CreatePolicyResponse>,
311}
312#[derive(serde::Serialize, serde::Deserialize)]
313#[serde(rename_all = "snake_case")]
314#[derive(Clone, Copy, PartialEq, ::prost::Message)]
315pub struct Placement {
316    #[prost(oneof = "placement::Kind", tags = "1, 2")]
317    pub kind: ::core::option::Option<placement::Kind>,
318}
319pub mod placement {
321    #[derive(serde::Serialize, serde::Deserialize)]
322    #[serde(rename_all = "snake_case")]
323    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
324    pub enum Kind {
325        #[prost(message, tag = "1")]
326        First(super::First),
327        #[prost(message, tag = "2")]
328        Last(super::Last),
329    }
330}
331#[derive(serde::Serialize, serde::Deserialize)]
332#[serde(rename_all = "snake_case")]
333#[derive(Clone, Copy, PartialEq, ::prost::Message)]
334pub struct First {}
335#[derive(serde::Serialize, serde::Deserialize)]
336#[serde(rename_all = "snake_case")]
337#[derive(Clone, Copy, PartialEq, ::prost::Message)]
338pub struct Last {}
339#[derive(serde::Serialize, serde::Deserialize)]
340#[serde(rename_all = "snake_case")]
341#[derive(Clone, PartialEq, ::prost::Message)]
342pub struct CreatePolicyRequest {
343    #[prost(message, optional, tag = "1")]
344    pub name: ::core::option::Option<::prost::alloc::string::String>,
345    #[prost(message, optional, tag = "2")]
346    pub description: ::core::option::Option<::prost::alloc::string::String>,
347    #[prost(enumeration = "Priority", tag = "3")]
348    pub priority: i32,
349    #[prost(message, optional, tag = "4")]
350    pub application_rule: ::core::option::Option<Rule>,
351    #[prost(message, optional, tag = "5")]
352    pub subsystem_rule: ::core::option::Option<Rule>,
353    #[prost(message, optional, tag = "6")]
354    pub archive_retention: ::core::option::Option<ArchiveRetention>,
355    #[prost(bool, tag = "9")]
356    pub disabled: bool,
357    #[prost(message, optional, tag = "10")]
358    pub placement: ::core::option::Option<Placement>,
359    #[prost(oneof = "create_policy_request::SourceTypeRules", tags = "7, 8")]
360    pub source_type_rules: ::core::option::Option<
361        create_policy_request::SourceTypeRules,
362    >,
363}
364pub mod create_policy_request {
366    #[derive(serde::Serialize, serde::Deserialize)]
367    #[serde(rename_all = "snake_case")]
368    #[derive(Clone, PartialEq, ::prost::Oneof)]
369    pub enum SourceTypeRules {
370        #[prost(message, tag = "7")]
371        LogRules(super::LogRules),
372        #[prost(message, tag = "8")]
373        SpanRules(super::SpanRules),
374    }
375}
376#[derive(serde::Serialize, serde::Deserialize)]
377#[serde(rename_all = "snake_case")]
378#[derive(Clone, PartialEq, ::prost::Message)]
379pub struct AtomicBatchCreatePolicyRequest {
380    #[prost(message, repeated, tag = "1")]
381    pub policy_requests: ::prost::alloc::vec::Vec<CreatePolicyRequest>,
382}
383#[derive(serde::Serialize, serde::Deserialize)]
384#[serde(rename_all = "snake_case")]
385#[derive(Clone, PartialEq, ::prost::Message)]
386pub struct AtomicBatchCreatePolicyResponse {
387    #[prost(message, repeated, tag = "1")]
388    pub create_responses: ::prost::alloc::vec::Vec<CreatePolicyResponse>,
389}
390#[derive(serde::Serialize, serde::Deserialize)]
391#[serde(rename_all = "snake_case")]
392#[derive(Clone, PartialEq, ::prost::Message)]
393pub struct LogMetaFieldsValues {
394    #[prost(message, optional, tag = "1")]
395    pub application_name_values: ::core::option::Option<::prost::alloc::string::String>,
396    #[prost(message, optional, tag = "2")]
397    pub severity_values: ::core::option::Option<::prost::alloc::string::String>,
398    #[prost(message, optional, tag = "3")]
399    pub subsystem_name_values: ::core::option::Option<::prost::alloc::string::String>,
400}
401#[derive(serde::Serialize, serde::Deserialize)]
402#[serde(rename_all = "snake_case")]
403#[derive(Clone, PartialEq, ::prost::Message)]
404pub struct BulkTestLogPoliciesRequest {
405    #[prost(message, repeated, tag = "1")]
406    pub meta_fields_values_list: ::prost::alloc::vec::Vec<LogMetaFieldsValues>,
407}
408#[derive(serde::Serialize, serde::Deserialize)]
409#[serde(rename_all = "snake_case")]
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct TestPoliciesResult {
412    #[prost(message, optional, tag = "1")]
413    pub meta_fields_values: ::core::option::Option<LogMetaFieldsValues>,
414    #[prost(message, optional, tag = "2")]
415    pub matched: ::core::option::Option<bool>,
416    #[prost(message, optional, tag = "3")]
417    pub policy: ::core::option::Option<Policy>,
418}
419#[derive(serde::Serialize, serde::Deserialize)]
420#[serde(rename_all = "snake_case")]
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct BulkTestLogPoliciesResponse {
423    #[prost(message, repeated, tag = "1")]
424    pub test_policies_bulk_result: ::prost::alloc::vec::Vec<TestPoliciesResult>,
425}
426#[derive(serde::Serialize, serde::Deserialize)]
427#[serde(rename_all = "snake_case")]
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct DeletePolicyRequest {
430    #[prost(message, optional, tag = "1")]
431    pub id: ::core::option::Option<::prost::alloc::string::String>,
432}
433#[derive(serde::Serialize, serde::Deserialize)]
434#[serde(rename_all = "snake_case")]
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct DeletePolicyResponse {
437    #[prost(message, optional, tag = "1")]
438    pub id: ::core::option::Option<::prost::alloc::string::String>,
439}
440#[derive(serde::Serialize, serde::Deserialize)]
441#[serde(rename_all = "snake_case")]
442#[derive(Clone, Copy, PartialEq, ::prost::Message)]
443pub struct GetCompanyPoliciesRequest {
444    #[prost(message, optional, tag = "1")]
445    pub enabled_only: ::core::option::Option<bool>,
446    #[prost(enumeration = "SourceType", optional, tag = "2")]
447    pub source_type: ::core::option::Option<i32>,
448}
449#[derive(serde::Serialize, serde::Deserialize)]
450#[serde(rename_all = "snake_case")]
451#[derive(Clone, PartialEq, ::prost::Message)]
452pub struct GetCompanyPoliciesResponse {
453    #[prost(message, repeated, tag = "1")]
454    pub policies: ::prost::alloc::vec::Vec<Policy>,
455}
456#[derive(serde::Serialize, serde::Deserialize)]
457#[serde(rename_all = "snake_case")]
458#[derive(Clone, PartialEq, ::prost::Message)]
459pub struct GetPolicyRequest {
460    #[prost(message, optional, tag = "1")]
461    pub id: ::core::option::Option<::prost::alloc::string::String>,
462}
463#[derive(serde::Serialize, serde::Deserialize)]
464#[serde(rename_all = "snake_case")]
465#[derive(Clone, PartialEq, ::prost::Message)]
466pub struct GetPolicyResponse {
467    #[prost(message, optional, tag = "1")]
468    pub policy: ::core::option::Option<Policy>,
469}
470#[derive(serde::Serialize, serde::Deserialize)]
471#[serde(rename_all = "snake_case")]
472#[derive(Clone, PartialEq, ::prost::Message)]
473pub struct PolicyOrder {
474    #[prost(message, optional, tag = "1")]
475    pub order: ::core::option::Option<i32>,
476    #[prost(message, optional, tag = "2")]
477    pub id: ::core::option::Option<::prost::alloc::string::String>,
478}
479#[derive(serde::Serialize, serde::Deserialize)]
480#[serde(rename_all = "snake_case")]
481#[derive(Clone, PartialEq, ::prost::Message)]
482pub struct ReorderPoliciesRequest {
483    #[prost(message, repeated, tag = "1")]
484    pub orders: ::prost::alloc::vec::Vec<PolicyOrder>,
485    #[prost(enumeration = "SourceType", tag = "2")]
486    pub source_type: i32,
487}
488#[derive(serde::Serialize, serde::Deserialize)]
489#[serde(rename_all = "snake_case")]
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct ReorderPoliciesResponse {
492    #[prost(message, repeated, tag = "1")]
493    pub orders: ::prost::alloc::vec::Vec<PolicyOrder>,
494}
495#[derive(serde::Serialize, serde::Deserialize)]
496#[serde(rename_all = "snake_case")]
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct TogglePolicyRequest {
499    #[prost(message, optional, tag = "1")]
500    pub id: ::core::option::Option<::prost::alloc::string::String>,
501    #[prost(message, optional, tag = "2")]
502    pub enabled: ::core::option::Option<bool>,
503}
504#[derive(serde::Serialize, serde::Deserialize)]
505#[serde(rename_all = "snake_case")]
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct TogglePolicyResponse {
508    #[prost(message, optional, tag = "1")]
509    pub id: ::core::option::Option<::prost::alloc::string::String>,
510    #[prost(message, optional, tag = "2")]
511    pub enabled: ::core::option::Option<bool>,
512}
513#[derive(serde::Serialize, serde::Deserialize)]
514#[serde(rename_all = "snake_case")]
515#[derive(Clone, PartialEq, ::prost::Message)]
516pub struct UpdatePolicyRequest {
517    #[prost(message, optional, tag = "1")]
518    pub id: ::core::option::Option<::prost::alloc::string::String>,
519    #[prost(message, optional, tag = "2")]
520    pub name: ::core::option::Option<::prost::alloc::string::String>,
521    #[prost(message, optional, tag = "3")]
522    pub description: ::core::option::Option<::prost::alloc::string::String>,
523    #[prost(enumeration = "Priority", tag = "4")]
524    pub priority: i32,
525    #[prost(message, optional, tag = "5")]
526    pub application_rule: ::core::option::Option<Rule>,
527    #[prost(message, optional, tag = "6")]
528    pub subsystem_rule: ::core::option::Option<Rule>,
529    #[prost(message, optional, tag = "7")]
530    pub archive_retention: ::core::option::Option<ArchiveRetention>,
531    #[prost(message, optional, tag = "10")]
532    pub enabled: ::core::option::Option<bool>,
533    #[prost(oneof = "update_policy_request::SourceTypeRules", tags = "8, 9")]
534    pub source_type_rules: ::core::option::Option<
535        update_policy_request::SourceTypeRules,
536    >,
537}
538pub mod update_policy_request {
540    #[derive(serde::Serialize, serde::Deserialize)]
541    #[serde(rename_all = "snake_case")]
542    #[derive(Clone, PartialEq, ::prost::Oneof)]
543    pub enum SourceTypeRules {
544        #[prost(message, tag = "8")]
545        LogRules(super::LogRules),
546        #[prost(message, tag = "9")]
547        SpanRules(super::SpanRules),
548    }
549}
550#[derive(serde::Serialize, serde::Deserialize)]
551#[serde(rename_all = "snake_case")]
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct UpdatePolicyResponse {
554    #[prost(message, optional, tag = "1")]
555    pub policy: ::core::option::Option<Policy>,
556}
557pub mod policies_service_client {
559    #![allow(
560        unused_variables,
561        dead_code,
562        missing_docs,
563        clippy::wildcard_imports,
564        clippy::let_unit_value,
565    )]
566    use tonic::codegen::*;
567    use tonic::codegen::http::Uri;
568    #[derive(Debug, Clone)]
569    pub struct PoliciesServiceClient<T> {
570        inner: tonic::client::Grpc<T>,
571    }
572    impl PoliciesServiceClient<tonic::transport::Channel> {
573        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
575        where
576            D: TryInto<tonic::transport::Endpoint>,
577            D::Error: Into<StdError>,
578        {
579            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
580            Ok(Self::new(conn))
581        }
582    }
583    impl<T> PoliciesServiceClient<T>
584    where
585        T: tonic::client::GrpcService<tonic::body::BoxBody>,
586        T::Error: Into<StdError>,
587        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
588        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
589    {
590        pub fn new(inner: T) -> Self {
591            let inner = tonic::client::Grpc::new(inner);
592            Self { inner }
593        }
594        pub fn with_origin(inner: T, origin: Uri) -> Self {
595            let inner = tonic::client::Grpc::with_origin(inner, origin);
596            Self { inner }
597        }
598        pub fn with_interceptor<F>(
599            inner: T,
600            interceptor: F,
601        ) -> PoliciesServiceClient<InterceptedService<T, F>>
602        where
603            F: tonic::service::Interceptor,
604            T::ResponseBody: Default,
605            T: tonic::codegen::Service<
606                http::Request<tonic::body::BoxBody>,
607                Response = http::Response<
608                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
609                >,
610            >,
611            <T as tonic::codegen::Service<
612                http::Request<tonic::body::BoxBody>,
613            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
614        {
615            PoliciesServiceClient::new(InterceptedService::new(inner, interceptor))
616        }
617        #[must_use]
622        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
623            self.inner = self.inner.send_compressed(encoding);
624            self
625        }
626        #[must_use]
628        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
629            self.inner = self.inner.accept_compressed(encoding);
630            self
631        }
632        #[must_use]
636        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
637            self.inner = self.inner.max_decoding_message_size(limit);
638            self
639        }
640        #[must_use]
644        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
645            self.inner = self.inner.max_encoding_message_size(limit);
646            self
647        }
648        pub async fn get_policy(
649            &mut self,
650            request: impl tonic::IntoRequest<super::GetPolicyRequest>,
651        ) -> std::result::Result<
652            tonic::Response<super::GetPolicyResponse>,
653            tonic::Status,
654        > {
655            self.inner
656                .ready()
657                .await
658                .map_err(|e| {
659                    tonic::Status::unknown(
660                        format!("Service was not ready: {}", e.into()),
661                    )
662                })?;
663            let codec = tonic::codec::ProstCodec::default();
664            let path = http::uri::PathAndQuery::from_static(
665                "/com.coralogix.quota.v1.PoliciesService/GetPolicy",
666            );
667            let mut req = request.into_request();
668            req.extensions_mut()
669                .insert(
670                    GrpcMethod::new(
671                        "com.coralogix.quota.v1.PoliciesService",
672                        "GetPolicy",
673                    ),
674                );
675            self.inner.unary(req, path, codec).await
676        }
677        pub async fn create_policy(
678            &mut self,
679            request: impl tonic::IntoRequest<super::CreatePolicyRequest>,
680        ) -> std::result::Result<
681            tonic::Response<super::CreatePolicyResponse>,
682            tonic::Status,
683        > {
684            self.inner
685                .ready()
686                .await
687                .map_err(|e| {
688                    tonic::Status::unknown(
689                        format!("Service was not ready: {}", e.into()),
690                    )
691                })?;
692            let codec = tonic::codec::ProstCodec::default();
693            let path = http::uri::PathAndQuery::from_static(
694                "/com.coralogix.quota.v1.PoliciesService/CreatePolicy",
695            );
696            let mut req = request.into_request();
697            req.extensions_mut()
698                .insert(
699                    GrpcMethod::new(
700                        "com.coralogix.quota.v1.PoliciesService",
701                        "CreatePolicy",
702                    ),
703                );
704            self.inner.unary(req, path, codec).await
705        }
706        pub async fn update_policy(
707            &mut self,
708            request: impl tonic::IntoRequest<super::UpdatePolicyRequest>,
709        ) -> std::result::Result<
710            tonic::Response<super::UpdatePolicyResponse>,
711            tonic::Status,
712        > {
713            self.inner
714                .ready()
715                .await
716                .map_err(|e| {
717                    tonic::Status::unknown(
718                        format!("Service was not ready: {}", e.into()),
719                    )
720                })?;
721            let codec = tonic::codec::ProstCodec::default();
722            let path = http::uri::PathAndQuery::from_static(
723                "/com.coralogix.quota.v1.PoliciesService/UpdatePolicy",
724            );
725            let mut req = request.into_request();
726            req.extensions_mut()
727                .insert(
728                    GrpcMethod::new(
729                        "com.coralogix.quota.v1.PoliciesService",
730                        "UpdatePolicy",
731                    ),
732                );
733            self.inner.unary(req, path, codec).await
734        }
735        pub async fn get_company_policies(
736            &mut self,
737            request: impl tonic::IntoRequest<super::GetCompanyPoliciesRequest>,
738        ) -> std::result::Result<
739            tonic::Response<super::GetCompanyPoliciesResponse>,
740            tonic::Status,
741        > {
742            self.inner
743                .ready()
744                .await
745                .map_err(|e| {
746                    tonic::Status::unknown(
747                        format!("Service was not ready: {}", e.into()),
748                    )
749                })?;
750            let codec = tonic::codec::ProstCodec::default();
751            let path = http::uri::PathAndQuery::from_static(
752                "/com.coralogix.quota.v1.PoliciesService/GetCompanyPolicies",
753            );
754            let mut req = request.into_request();
755            req.extensions_mut()
756                .insert(
757                    GrpcMethod::new(
758                        "com.coralogix.quota.v1.PoliciesService",
759                        "GetCompanyPolicies",
760                    ),
761                );
762            self.inner.unary(req, path, codec).await
763        }
764        pub async fn delete_policy(
765            &mut self,
766            request: impl tonic::IntoRequest<super::DeletePolicyRequest>,
767        ) -> std::result::Result<
768            tonic::Response<super::DeletePolicyResponse>,
769            tonic::Status,
770        > {
771            self.inner
772                .ready()
773                .await
774                .map_err(|e| {
775                    tonic::Status::unknown(
776                        format!("Service was not ready: {}", e.into()),
777                    )
778                })?;
779            let codec = tonic::codec::ProstCodec::default();
780            let path = http::uri::PathAndQuery::from_static(
781                "/com.coralogix.quota.v1.PoliciesService/DeletePolicy",
782            );
783            let mut req = request.into_request();
784            req.extensions_mut()
785                .insert(
786                    GrpcMethod::new(
787                        "com.coralogix.quota.v1.PoliciesService",
788                        "DeletePolicy",
789                    ),
790                );
791            self.inner.unary(req, path, codec).await
792        }
793        pub async fn reorder_policies(
794            &mut self,
795            request: impl tonic::IntoRequest<super::ReorderPoliciesRequest>,
796        ) -> std::result::Result<
797            tonic::Response<super::ReorderPoliciesResponse>,
798            tonic::Status,
799        > {
800            self.inner
801                .ready()
802                .await
803                .map_err(|e| {
804                    tonic::Status::unknown(
805                        format!("Service was not ready: {}", e.into()),
806                    )
807                })?;
808            let codec = tonic::codec::ProstCodec::default();
809            let path = http::uri::PathAndQuery::from_static(
810                "/com.coralogix.quota.v1.PoliciesService/ReorderPolicies",
811            );
812            let mut req = request.into_request();
813            req.extensions_mut()
814                .insert(
815                    GrpcMethod::new(
816                        "com.coralogix.quota.v1.PoliciesService",
817                        "ReorderPolicies",
818                    ),
819                );
820            self.inner.unary(req, path, codec).await
821        }
822        pub async fn bulk_test_log_policies(
823            &mut self,
824            request: impl tonic::IntoRequest<super::BulkTestLogPoliciesRequest>,
825        ) -> std::result::Result<
826            tonic::Response<super::BulkTestLogPoliciesResponse>,
827            tonic::Status,
828        > {
829            self.inner
830                .ready()
831                .await
832                .map_err(|e| {
833                    tonic::Status::unknown(
834                        format!("Service was not ready: {}", e.into()),
835                    )
836                })?;
837            let codec = tonic::codec::ProstCodec::default();
838            let path = http::uri::PathAndQuery::from_static(
839                "/com.coralogix.quota.v1.PoliciesService/BulkTestLogPolicies",
840            );
841            let mut req = request.into_request();
842            req.extensions_mut()
843                .insert(
844                    GrpcMethod::new(
845                        "com.coralogix.quota.v1.PoliciesService",
846                        "BulkTestLogPolicies",
847                    ),
848                );
849            self.inner.unary(req, path, codec).await
850        }
851        pub async fn toggle_policy(
852            &mut self,
853            request: impl tonic::IntoRequest<super::TogglePolicyRequest>,
854        ) -> std::result::Result<
855            tonic::Response<super::TogglePolicyResponse>,
856            tonic::Status,
857        > {
858            self.inner
859                .ready()
860                .await
861                .map_err(|e| {
862                    tonic::Status::unknown(
863                        format!("Service was not ready: {}", e.into()),
864                    )
865                })?;
866            let codec = tonic::codec::ProstCodec::default();
867            let path = http::uri::PathAndQuery::from_static(
868                "/com.coralogix.quota.v1.PoliciesService/TogglePolicy",
869            );
870            let mut req = request.into_request();
871            req.extensions_mut()
872                .insert(
873                    GrpcMethod::new(
874                        "com.coralogix.quota.v1.PoliciesService",
875                        "TogglePolicy",
876                    ),
877                );
878            self.inner.unary(req, path, codec).await
879        }
880        pub async fn atomic_batch_create_policy(
881            &mut self,
882            request: impl tonic::IntoRequest<super::AtomicBatchCreatePolicyRequest>,
883        ) -> std::result::Result<
884            tonic::Response<super::AtomicBatchCreatePolicyResponse>,
885            tonic::Status,
886        > {
887            self.inner
888                .ready()
889                .await
890                .map_err(|e| {
891                    tonic::Status::unknown(
892                        format!("Service was not ready: {}", e.into()),
893                    )
894                })?;
895            let codec = tonic::codec::ProstCodec::default();
896            let path = http::uri::PathAndQuery::from_static(
897                "/com.coralogix.quota.v1.PoliciesService/AtomicBatchCreatePolicy",
898            );
899            let mut req = request.into_request();
900            req.extensions_mut()
901                .insert(
902                    GrpcMethod::new(
903                        "com.coralogix.quota.v1.PoliciesService",
904                        "AtomicBatchCreatePolicy",
905                    ),
906                );
907            self.inner.unary(req, path, codec).await
908        }
909        pub async fn atomic_overwrite_log_policies(
910            &mut self,
911            request: impl tonic::IntoRequest<super::AtomicOverwriteLogPoliciesRequest>,
912        ) -> std::result::Result<
913            tonic::Response<super::AtomicOverwriteLogPoliciesResponse>,
914            tonic::Status,
915        > {
916            self.inner
917                .ready()
918                .await
919                .map_err(|e| {
920                    tonic::Status::unknown(
921                        format!("Service was not ready: {}", e.into()),
922                    )
923                })?;
924            let codec = tonic::codec::ProstCodec::default();
925            let path = http::uri::PathAndQuery::from_static(
926                "/com.coralogix.quota.v1.PoliciesService/AtomicOverwriteLogPolicies",
927            );
928            let mut req = request.into_request();
929            req.extensions_mut()
930                .insert(
931                    GrpcMethod::new(
932                        "com.coralogix.quota.v1.PoliciesService",
933                        "AtomicOverwriteLogPolicies",
934                    ),
935                );
936            self.inner.unary(req, path, codec).await
937        }
938        pub async fn atomic_overwrite_span_policies(
939            &mut self,
940            request: impl tonic::IntoRequest<super::AtomicOverwriteSpanPoliciesRequest>,
941        ) -> std::result::Result<
942            tonic::Response<super::AtomicOverwriteSpanPoliciesResponse>,
943            tonic::Status,
944        > {
945            self.inner
946                .ready()
947                .await
948                .map_err(|e| {
949                    tonic::Status::unknown(
950                        format!("Service was not ready: {}", e.into()),
951                    )
952                })?;
953            let codec = tonic::codec::ProstCodec::default();
954            let path = http::uri::PathAndQuery::from_static(
955                "/com.coralogix.quota.v1.PoliciesService/AtomicOverwriteSpanPolicies",
956            );
957            let mut req = request.into_request();
958            req.extensions_mut()
959                .insert(
960                    GrpcMethod::new(
961                        "com.coralogix.quota.v1.PoliciesService",
962                        "AtomicOverwriteSpanPolicies",
963                    ),
964                );
965            self.inner.unary(req, path, codec).await
966        }
967    }
968}