cx_api/generated/
com.coralogixapis.incidents.v1.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize, serde::Deserialize)]
3#[serde(rename_all = "snake_case")]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Assignment {
6    #[prost(message, optional, tag = "1")]
7    pub assigned_to: ::core::option::Option<UserDetails>,
8    #[prost(message, optional, tag = "2")]
9    pub assigned_by: ::core::option::Option<UserDetails>,
10}
11#[derive(serde::Serialize, serde::Deserialize)]
12#[serde(rename_all = "snake_case")]
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct UserDetails {
15    #[prost(message, optional, tag = "1")]
16    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
17}
18#[derive(serde::Serialize, serde::Deserialize)]
19#[serde(rename_all = "snake_case")]
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct IncidentEventAcknowledge {
22    #[prost(message, optional, tag = "1")]
23    pub acknowledged_by: ::core::option::Option<UserDetails>,
24}
25#[derive(serde::Serialize, serde::Deserialize)]
26#[serde(rename_all = "snake_case")]
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct IncidentEventAssign {
29    #[prost(message, optional, tag = "1")]
30    pub assignment: ::core::option::Option<Assignment>,
31}
32#[derive(serde::Serialize, serde::Deserialize)]
33#[serde(rename_all = "snake_case")]
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct IncidentEventClose {
36    #[prost(message, optional, tag = "1")]
37    pub closed_by: ::core::option::Option<UserDetails>,
38}
39#[derive(serde::Serialize, serde::Deserialize)]
40#[serde(rename_all = "snake_case")]
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct IncidentEventOriginatorAdministrative {
43    #[prost(message, optional, tag = "1")]
44    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
45}
46#[derive(serde::Serialize, serde::Deserialize)]
47#[serde(rename_all = "snake_case")]
48#[derive(Clone, PartialEq, ::prost::Message)]
49pub struct IncidentEventOriginatorOperational {
50    #[prost(message, optional, tag = "1")]
51    pub system_name: ::core::option::Option<::prost::alloc::string::String>,
52}
53#[derive(serde::Serialize, serde::Deserialize)]
54#[serde(rename_all = "snake_case")]
55#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
56#[repr(i32)]
57pub enum OriginatorType {
58    Unspecified = 0,
59    Operational = 1,
60    Administrative = 2,
61}
62impl OriginatorType {
63    /// String value of the enum field names used in the ProtoBuf definition.
64    ///
65    /// The values are not transformed in any way and thus are considered stable
66    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
67    pub fn as_str_name(&self) -> &'static str {
68        match self {
69            Self::Unspecified => "ORIGINATOR_TYPE_UNSPECIFIED",
70            Self::Operational => "ORIGINATOR_TYPE_OPERATIONAL",
71            Self::Administrative => "ORIGINATOR_TYPE_ADMINISTRATIVE",
72        }
73    }
74    /// Creates an enum from field names used in the ProtoBuf definition.
75    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
76        match value {
77            "ORIGINATOR_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
78            "ORIGINATOR_TYPE_OPERATIONAL" => Some(Self::Operational),
79            "ORIGINATOR_TYPE_ADMINISTRATIVE" => Some(Self::Administrative),
80            _ => None,
81        }
82    }
83}
84#[derive(serde::Serialize, serde::Deserialize)]
85#[serde(rename_all = "snake_case")]
86#[derive(Clone, PartialEq, ::prost::Message)]
87pub struct IncidentEventSnoozeIndicator {
88    #[prost(message, optional, tag = "1")]
89    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
90    #[prost(message, optional, tag = "2")]
91    pub duration_minutes: ::core::option::Option<i32>,
92    #[prost(message, optional, tag = "3")]
93    pub user_id: ::core::option::Option<::prost::alloc::string::String>,
94}
95#[derive(serde::Serialize, serde::Deserialize)]
96#[serde(rename_all = "snake_case")]
97#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
98#[repr(i32)]
99pub enum IncidentEventType {
100    Unspecified = 0,
101    UpsertState = 2,
102    Open = 4,
103    Close = 5,
104    SnoozeIndicator = 6,
105    Assign = 7,
106    Unassign = 9,
107    Acknowledge = 8,
108}
109impl IncidentEventType {
110    /// String value of the enum field names used in the ProtoBuf definition.
111    ///
112    /// The values are not transformed in any way and thus are considered stable
113    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
114    pub fn as_str_name(&self) -> &'static str {
115        match self {
116            Self::Unspecified => "INCIDENT_EVENT_TYPE_UNSPECIFIED",
117            Self::UpsertState => "INCIDENT_EVENT_TYPE_UPSERT_STATE",
118            Self::Open => "INCIDENT_EVENT_TYPE_OPEN",
119            Self::Close => "INCIDENT_EVENT_TYPE_CLOSE",
120            Self::SnoozeIndicator => "INCIDENT_EVENT_TYPE_SNOOZE_INDICATOR",
121            Self::Assign => "INCIDENT_EVENT_TYPE_ASSIGN",
122            Self::Unassign => "INCIDENT_EVENT_TYPE_UNASSIGN",
123            Self::Acknowledge => "INCIDENT_EVENT_TYPE_ACKNOWLEDGE",
124        }
125    }
126    /// Creates an enum from field names used in the ProtoBuf definition.
127    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
128        match value {
129            "INCIDENT_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
130            "INCIDENT_EVENT_TYPE_UPSERT_STATE" => Some(Self::UpsertState),
131            "INCIDENT_EVENT_TYPE_OPEN" => Some(Self::Open),
132            "INCIDENT_EVENT_TYPE_CLOSE" => Some(Self::Close),
133            "INCIDENT_EVENT_TYPE_SNOOZE_INDICATOR" => Some(Self::SnoozeIndicator),
134            "INCIDENT_EVENT_TYPE_ASSIGN" => Some(Self::Assign),
135            "INCIDENT_EVENT_TYPE_UNASSIGN" => Some(Self::Unassign),
136            "INCIDENT_EVENT_TYPE_ACKNOWLEDGE" => Some(Self::Acknowledge),
137            _ => None,
138        }
139    }
140}
141#[derive(serde::Serialize, serde::Deserialize)]
142#[serde(rename_all = "snake_case")]
143#[derive(Clone, PartialEq, ::prost::Message)]
144pub struct UpsertIncidentStatePayload {
145    #[prost(message, optional, tag = "1")]
146    pub cx_event_key: ::core::option::Option<::prost::alloc::string::String>,
147}
148#[derive(serde::Serialize, serde::Deserialize)]
149#[serde(rename_all = "snake_case")]
150#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
151#[repr(i32)]
152pub enum UpsertIncidentStateType {
153    Unspecified = 0,
154    Triggered = 1,
155    Resolved = 2,
156}
157impl UpsertIncidentStateType {
158    /// String value of the enum field names used in the ProtoBuf definition.
159    ///
160    /// The values are not transformed in any way and thus are considered stable
161    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
162    pub fn as_str_name(&self) -> &'static str {
163        match self {
164            Self::Unspecified => "UPSERT_INCIDENT_STATE_TYPE_UNSPECIFIED",
165            Self::Triggered => "UPSERT_INCIDENT_STATE_TYPE_TRIGGERED",
166            Self::Resolved => "UPSERT_INCIDENT_STATE_TYPE_RESOLVED",
167        }
168    }
169    /// Creates an enum from field names used in the ProtoBuf definition.
170    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
171        match value {
172            "UPSERT_INCIDENT_STATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
173            "UPSERT_INCIDENT_STATE_TYPE_TRIGGERED" => Some(Self::Triggered),
174            "UPSERT_INCIDENT_STATE_TYPE_RESOLVED" => Some(Self::Resolved),
175            _ => None,
176        }
177    }
178}
179#[derive(serde::Serialize, serde::Deserialize)]
180#[serde(rename_all = "snake_case")]
181#[derive(Clone, PartialEq, ::prost::Message)]
182pub struct IncidentEventUpsertState {
183    #[prost(enumeration = "UpsertIncidentStateType", tag = "1")]
184    pub state_type: i32,
185    #[prost(message, optional, tag = "2")]
186    pub payload: ::core::option::Option<UpsertIncidentStatePayload>,
187    #[prost(message, optional, tag = "3")]
188    pub is_muted: ::core::option::Option<bool>,
189}
190#[derive(serde::Serialize, serde::Deserialize)]
191#[serde(rename_all = "snake_case")]
192#[derive(Clone, Copy, PartialEq, ::prost::Message)]
193pub struct IncidentEventUnassign {}
194#[derive(serde::Serialize, serde::Deserialize)]
195#[serde(rename_all = "snake_case")]
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct IncidentEvent {
198    #[prost(message, optional, tag = "1")]
199    pub id: ::core::option::Option<::prost::alloc::string::String>,
200    #[prost(enumeration = "IncidentEventType", tag = "2")]
201    pub incident_event_type: i32,
202    #[prost(enumeration = "OriginatorType", tag = "3")]
203    pub originator_type: i32,
204    #[prost(
205        oneof = "incident_event::IncidentEventPayload",
206        tags = "200, 201, 205, 202, 203, 204"
207    )]
208    pub incident_event_payload: ::core::option::Option<
209        incident_event::IncidentEventPayload,
210    >,
211    #[prost(oneof = "incident_event::Originator", tags = "100, 101")]
212    pub originator: ::core::option::Option<incident_event::Originator>,
213}
214/// Nested message and enum types in `IncidentEvent`.
215pub mod incident_event {
216    #[derive(serde::Serialize, serde::Deserialize)]
217    #[serde(rename_all = "snake_case")]
218    #[derive(Clone, PartialEq, ::prost::Oneof)]
219    pub enum IncidentEventPayload {
220        #[prost(message, tag = "200")]
221        SnoozeIndicator(super::IncidentEventSnoozeIndicator),
222        #[prost(message, tag = "201")]
223        Assignment(super::IncidentEventAssign),
224        #[prost(message, tag = "205")]
225        Unassign(super::IncidentEventUnassign),
226        #[prost(message, tag = "202")]
227        UpsertState(super::IncidentEventUpsertState),
228        #[prost(message, tag = "203")]
229        Acknowledge(super::IncidentEventAcknowledge),
230        #[prost(message, tag = "204")]
231        Close(super::IncidentEventClose),
232    }
233    #[derive(serde::Serialize, serde::Deserialize)]
234    #[serde(rename_all = "snake_case")]
235    #[derive(Clone, PartialEq, ::prost::Oneof)]
236    pub enum Originator {
237        #[prost(message, tag = "100")]
238        AdministrativeEvent(super::IncidentEventOriginatorAdministrative),
239        #[prost(message, tag = "101")]
240        OperationalEvent(super::IncidentEventOriginatorOperational),
241    }
242}
243#[derive(serde::Serialize, serde::Deserialize)]
244#[serde(rename_all = "snake_case")]
245#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
246#[repr(i32)]
247pub enum IncidentSeverity {
248    Unspecified = 0,
249    Info = 1,
250    Warning = 2,
251    Error = 3,
252    Critical = 4,
253    Low = 5,
254}
255impl IncidentSeverity {
256    /// String value of the enum field names used in the ProtoBuf definition.
257    ///
258    /// The values are not transformed in any way and thus are considered stable
259    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
260    pub fn as_str_name(&self) -> &'static str {
261        match self {
262            Self::Unspecified => "INCIDENT_SEVERITY_UNSPECIFIED",
263            Self::Info => "INCIDENT_SEVERITY_INFO",
264            Self::Warning => "INCIDENT_SEVERITY_WARNING",
265            Self::Error => "INCIDENT_SEVERITY_ERROR",
266            Self::Critical => "INCIDENT_SEVERITY_CRITICAL",
267            Self::Low => "INCIDENT_SEVERITY_LOW",
268        }
269    }
270    /// Creates an enum from field names used in the ProtoBuf definition.
271    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
272        match value {
273            "INCIDENT_SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
274            "INCIDENT_SEVERITY_INFO" => Some(Self::Info),
275            "INCIDENT_SEVERITY_WARNING" => Some(Self::Warning),
276            "INCIDENT_SEVERITY_ERROR" => Some(Self::Error),
277            "INCIDENT_SEVERITY_CRITICAL" => Some(Self::Critical),
278            "INCIDENT_SEVERITY_LOW" => Some(Self::Low),
279            _ => None,
280        }
281    }
282}
283#[derive(serde::Serialize, serde::Deserialize)]
284#[serde(rename_all = "snake_case")]
285#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
286#[repr(i32)]
287pub enum IncidentState {
288    Unspecified = 0,
289    Triggered = 1,
290    Resolved = 2,
291}
292impl IncidentState {
293    /// String value of the enum field names used in the ProtoBuf definition.
294    ///
295    /// The values are not transformed in any way and thus are considered stable
296    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
297    pub fn as_str_name(&self) -> &'static str {
298        match self {
299            Self::Unspecified => "INCIDENT_STATE_UNSPECIFIED",
300            Self::Triggered => "INCIDENT_STATE_TRIGGERED",
301            Self::Resolved => "INCIDENT_STATE_RESOLVED",
302        }
303    }
304    /// Creates an enum from field names used in the ProtoBuf definition.
305    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
306        match value {
307            "INCIDENT_STATE_UNSPECIFIED" => Some(Self::Unspecified),
308            "INCIDENT_STATE_TRIGGERED" => Some(Self::Triggered),
309            "INCIDENT_STATE_RESOLVED" => Some(Self::Resolved),
310            _ => None,
311        }
312    }
313}
314#[derive(serde::Serialize, serde::Deserialize)]
315#[serde(rename_all = "snake_case")]
316#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
317#[repr(i32)]
318pub enum IncidentStatus {
319    Unspecified = 0,
320    Triggered = 1,
321    Acknowledged = 2,
322    Resolved = 3,
323}
324impl IncidentStatus {
325    /// String value of the enum field names used in the ProtoBuf definition.
326    ///
327    /// The values are not transformed in any way and thus are considered stable
328    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
329    pub fn as_str_name(&self) -> &'static str {
330        match self {
331            Self::Unspecified => "INCIDENT_STATUS_UNSPECIFIED",
332            Self::Triggered => "INCIDENT_STATUS_TRIGGERED",
333            Self::Acknowledged => "INCIDENT_STATUS_ACKNOWLEDGED",
334            Self::Resolved => "INCIDENT_STATUS_RESOLVED",
335        }
336    }
337    /// Creates an enum from field names used in the ProtoBuf definition.
338    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
339        match value {
340            "INCIDENT_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
341            "INCIDENT_STATUS_TRIGGERED" => Some(Self::Triggered),
342            "INCIDENT_STATUS_ACKNOWLEDGED" => Some(Self::Acknowledged),
343            "INCIDENT_STATUS_RESOLVED" => Some(Self::Resolved),
344            _ => None,
345        }
346    }
347}
348#[derive(serde::Serialize, serde::Deserialize)]
349#[serde(rename_all = "snake_case")]
350#[derive(Clone, PartialEq, ::prost::Message)]
351pub struct MetaLabel {
352    #[prost(message, optional, tag = "1")]
353    pub key: ::core::option::Option<::prost::alloc::string::String>,
354    #[prost(message, optional, tag = "2")]
355    pub value: ::core::option::Option<::prost::alloc::string::String>,
356}
357/// *
358/// Represents an Incident.
359#[derive(serde::Serialize, serde::Deserialize)]
360#[serde(rename_all = "snake_case")]
361#[derive(Clone, PartialEq, ::prost::Message)]
362pub struct Incident {
363    /// The Incident's id
364    #[prost(message, optional, tag = "1")]
365    pub id: ::core::option::Option<::prost::alloc::string::String>,
366    /// The Incident's name
367    #[prost(message, optional, tag = "2")]
368    pub name: ::core::option::Option<::prost::alloc::string::String>,
369    /// The Incident's current state, the internal state of the incident, usually is derived from the operational events of the incident
370    #[prost(enumeration = "IncidentState", tag = "3")]
371    pub state: i32,
372    /// The Incident's current status, the status of the incident can be derived from state of the incident and/or administrative user operation (i.e acknowledging the incident)
373    #[prost(enumeration = "IncidentStatus", tag = "4")]
374    pub status: i32,
375    /// The Incident's current assignments
376    #[prost(message, repeated, tag = "5")]
377    pub assignments: ::prost::alloc::vec::Vec<Assignment>,
378    /// The Incident's current description
379    #[prost(message, optional, tag = "6")]
380    pub description: ::core::option::Option<::prost::alloc::string::String>,
381    /// The Incident's current severity
382    #[prost(enumeration = "IncidentSeverity", tag = "7")]
383    pub severity: i32,
384    /// The Incident's current contextual labels, contextual labels are dynamic labels that gives contextual information about the incident ( for example: alert_name label can appear in an incident created by an event originated from the alerting system )
385    #[prost(map = "string, string", tag = "13")]
386    pub contextual_labels: ::std::collections::HashMap<
387        ::prost::alloc::string::String,
388        ::prost::alloc::string::String,
389    >,
390    /// The Incident's current display labels, display labels are dynamic labels that gives more of an extension to the name of the incident, for identification and naming purposes
391    #[prost(map = "string, string", tag = "14")]
392    pub display_labels: ::std::collections::HashMap<
393        ::prost::alloc::string::String,
394        ::prost::alloc::string::String,
395    >,
396    /// The Incident's current events
397    #[prost(message, repeated, tag = "10")]
398    pub events: ::prost::alloc::vec::Vec<IncidentEvent>,
399    #[prost(message, optional, tag = "11")]
400    pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
401    #[prost(message, optional, tag = "12")]
402    pub closed_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
403    #[prost(message, optional, tag = "15")]
404    pub last_state_update_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
405    /// The Incident's last event payload key that caused the incident to change state
406    #[prost(message, optional, tag = "16")]
407    pub last_state_update_key: ::core::option::Option<::prost::alloc::string::String>,
408    /// Is the incident muted/suppressed
409    #[prost(message, optional, tag = "17")]
410    pub is_muted: ::core::option::Option<bool>,
411    /// The Incident's current meta labels
412    #[prost(message, repeated, tag = "18")]
413    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
414    /// The Incident duration between created at and close time
415    #[prost(message, optional, tag = "19")]
416    pub duration: ::core::option::Option<::prost_wkt_types::Duration>,
417}
418#[derive(serde::Serialize, serde::Deserialize)]
419#[serde(rename_all = "snake_case")]
420#[derive(Clone, PartialEq, ::prost::Message)]
421pub struct IncidentFieldOneOf {
422    #[prost(
423        oneof = "incident_field_one_of::Field",
424        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11"
425    )]
426    pub field: ::core::option::Option<incident_field_one_of::Field>,
427}
428/// Nested message and enum types in `IncidentFieldOneOf`.
429pub mod incident_field_one_of {
430    #[derive(serde::Serialize, serde::Deserialize)]
431    #[serde(rename_all = "snake_case")]
432    #[derive(Clone, PartialEq, ::prost::Oneof)]
433    pub enum Field {
434        #[prost(message, tag = "1")]
435        Id(::prost::alloc::string::String),
436        #[prost(enumeration = "super::IncidentSeverity", tag = "2")]
437        Severity(i32),
438        #[prost(message, tag = "3")]
439        Name(::prost::alloc::string::String),
440        #[prost(message, tag = "4")]
441        CreatedAt(::prost_wkt_types::Timestamp),
442        #[prost(message, tag = "5")]
443        ClosedAt(::prost_wkt_types::Timestamp),
444        #[prost(enumeration = "super::IncidentState", tag = "6")]
445        State(i32),
446        #[prost(enumeration = "super::IncidentStatus", tag = "7")]
447        Status(i32),
448        #[prost(message, tag = "8")]
449        LastStateUpdateTime(::prost_wkt_types::Timestamp),
450        #[prost(message, tag = "9")]
451        ApplicationName(::prost::alloc::string::String),
452        #[prost(message, tag = "10")]
453        SubsystemName(::prost::alloc::string::String),
454        #[prost(message, tag = "11")]
455        Duration(::prost_wkt_types::Duration),
456    }
457}
458#[derive(serde::Serialize, serde::Deserialize)]
459#[serde(rename_all = "snake_case")]
460#[derive(Clone, PartialEq, ::prost::Message)]
461pub struct ContextualLabels {
462    #[prost(message, optional, tag = "1")]
463    pub field_name: ::core::option::Option<::prost::alloc::string::String>,
464    #[prost(message, optional, tag = "2")]
465    pub field_value: ::core::option::Option<::prost::alloc::string::String>,
466}
467#[derive(serde::Serialize, serde::Deserialize)]
468#[serde(rename_all = "snake_case")]
469#[derive(Clone, PartialEq, ::prost::Message)]
470pub struct GroupByValues {
471    #[prost(oneof = "group_by_values::Values", tags = "1, 2")]
472    pub values: ::core::option::Option<group_by_values::Values>,
473}
474/// Nested message and enum types in `GroupByValues`.
475pub mod group_by_values {
476    #[derive(serde::Serialize, serde::Deserialize)]
477    #[serde(rename_all = "snake_case")]
478    #[derive(Clone, PartialEq, ::prost::Oneof)]
479    pub enum Values {
480        #[prost(message, tag = "1")]
481        IncidentField(super::IncidentFieldOneOf),
482        #[prost(message, tag = "2")]
483        ContextualLabels(super::ContextualLabels),
484    }
485}
486/// Represents and Incident Aggregation (group by)
487#[derive(serde::Serialize, serde::Deserialize)]
488#[serde(rename_all = "snake_case")]
489#[derive(Clone, PartialEq, ::prost::Message)]
490pub struct IncidentAggregation {
491    /// The Aggregation's group by fields and values
492    #[prost(message, repeated, tag = "1")]
493    pub group_bys_value: ::prost::alloc::vec::Vec<GroupByValues>,
494    /// The Aggregation's count of states
495    #[prost(message, repeated, tag = "2")]
496    pub agg_state_count: ::prost::alloc::vec::Vec<IncidentStateCount>,
497    /// The Aggregation's count of statuses
498    #[prost(message, repeated, tag = "3")]
499    pub agg_status_count: ::prost::alloc::vec::Vec<IncidentStatusCount>,
500    /// The Aggregation's count of severities
501    #[prost(message, repeated, tag = "4")]
502    pub agg_severity_count: ::prost::alloc::vec::Vec<IncidentSeverityCount>,
503    /// The Aggregation's count of assignments
504    #[prost(message, repeated, tag = "5")]
505    pub agg_assignments_count: ::prost::alloc::vec::Vec<IncidentAssignmentCount>,
506    /// The Aggregation's first incident created time
507    #[prost(message, optional, tag = "6")]
508    pub first_created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
509    /// The Aggregation's last incident closed time
510    #[prost(message, optional, tag = "7")]
511    pub last_closed_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
512    /// The Aggregation's count of incidents
513    #[prost(message, optional, tag = "8")]
514    pub all_values_count: ::core::option::Option<u32>,
515    /// The Aggregation's list of incident's id
516    #[prost(message, repeated, tag = "9")]
517    pub list_incidents_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
518    /// The Aggregation's last state update time
519    #[prost(message, optional, tag = "10")]
520    pub last_state_update_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
521    /// The Aggregation's of meta labels
522    #[prost(message, repeated, tag = "11")]
523    pub agg_meta_labels_count: ::prost::alloc::vec::Vec<IncidentMetaLabelsCount>,
524}
525#[derive(serde::Serialize, serde::Deserialize)]
526#[serde(rename_all = "snake_case")]
527#[derive(Clone, PartialEq, ::prost::Message)]
528pub struct IncidentMetaLabelsCount {
529    #[prost(message, optional, tag = "1")]
530    pub meta_label: ::core::option::Option<MetaLabel>,
531    #[prost(message, optional, tag = "2")]
532    pub count: ::core::option::Option<u32>,
533}
534#[derive(serde::Serialize, serde::Deserialize)]
535#[serde(rename_all = "snake_case")]
536#[derive(Clone, PartialEq, ::prost::Message)]
537pub struct IncidentAssignmentCount {
538    #[prost(message, optional, tag = "1")]
539    pub assigned_to: ::core::option::Option<UserDetails>,
540    #[prost(message, optional, tag = "2")]
541    pub count: ::core::option::Option<u32>,
542}
543#[derive(serde::Serialize, serde::Deserialize)]
544#[serde(rename_all = "snake_case")]
545#[derive(Clone, Copy, PartialEq, ::prost::Message)]
546pub struct IncidentSeverityCount {
547    #[prost(enumeration = "IncidentSeverity", tag = "1")]
548    pub severity: i32,
549    #[prost(message, optional, tag = "2")]
550    pub count: ::core::option::Option<u32>,
551}
552#[derive(serde::Serialize, serde::Deserialize)]
553#[serde(rename_all = "snake_case")]
554#[derive(Clone, Copy, PartialEq, ::prost::Message)]
555pub struct IncidentStatusCount {
556    #[prost(enumeration = "IncidentStatus", tag = "1")]
557    pub status: i32,
558    #[prost(message, optional, tag = "2")]
559    pub count: ::core::option::Option<u32>,
560}
561#[derive(serde::Serialize, serde::Deserialize)]
562#[serde(rename_all = "snake_case")]
563#[derive(Clone, Copy, PartialEq, ::prost::Message)]
564pub struct IncidentStateCount {
565    #[prost(enumeration = "IncidentState", tag = "1")]
566    pub state: i32,
567    #[prost(message, optional, tag = "2")]
568    pub count: ::core::option::Option<u32>,
569}
570#[derive(serde::Serialize, serde::Deserialize)]
571#[serde(rename_all = "snake_case")]
572#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
573#[repr(i32)]
574pub enum IncidentFields {
575    IncidentsFieldsUnspecified = 0,
576    IncidentsFieldsId = 1,
577    IncidentsFieldsSeverity = 2,
578    IncidentsFieldsName = 3,
579    IncidentsFieldsCreatedTime = 4,
580    IncidentsFieldsClosedTime = 5,
581    IncidentsFieldsState = 6,
582    IncidentsFieldsStatus = 7,
583    IncidentsFieldsLastStateUpdateTime = 8,
584    IncidentsFieldsApplicationName = 9,
585    IncidentsFieldsSubsystemName = 10,
586    IncidentsFieldsDuration = 11,
587}
588impl IncidentFields {
589    /// String value of the enum field names used in the ProtoBuf definition.
590    ///
591    /// The values are not transformed in any way and thus are considered stable
592    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
593    pub fn as_str_name(&self) -> &'static str {
594        match self {
595            Self::IncidentsFieldsUnspecified => "INCIDENTS_FIELDS_UNSPECIFIED",
596            Self::IncidentsFieldsId => "INCIDENTS_FIELDS_ID",
597            Self::IncidentsFieldsSeverity => "INCIDENTS_FIELDS_SEVERITY",
598            Self::IncidentsFieldsName => "INCIDENTS_FIELDS_NAME",
599            Self::IncidentsFieldsCreatedTime => "INCIDENTS_FIELDS_CREATED_TIME",
600            Self::IncidentsFieldsClosedTime => "INCIDENTS_FIELDS_CLOSED_TIME",
601            Self::IncidentsFieldsState => "INCIDENTS_FIELDS_STATE",
602            Self::IncidentsFieldsStatus => "INCIDENTS_FIELDS_STATUS",
603            Self::IncidentsFieldsLastStateUpdateTime => {
604                "INCIDENTS_FIELDS_LAST_STATE_UPDATE_TIME"
605            }
606            Self::IncidentsFieldsApplicationName => "INCIDENTS_FIELDS_APPLICATION_NAME",
607            Self::IncidentsFieldsSubsystemName => "INCIDENTS_FIELDS_SUBSYSTEM_NAME",
608            Self::IncidentsFieldsDuration => "INCIDENTS_FIELDS_DURATION",
609        }
610    }
611    /// Creates an enum from field names used in the ProtoBuf definition.
612    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
613        match value {
614            "INCIDENTS_FIELDS_UNSPECIFIED" => Some(Self::IncidentsFieldsUnspecified),
615            "INCIDENTS_FIELDS_ID" => Some(Self::IncidentsFieldsId),
616            "INCIDENTS_FIELDS_SEVERITY" => Some(Self::IncidentsFieldsSeverity),
617            "INCIDENTS_FIELDS_NAME" => Some(Self::IncidentsFieldsName),
618            "INCIDENTS_FIELDS_CREATED_TIME" => Some(Self::IncidentsFieldsCreatedTime),
619            "INCIDENTS_FIELDS_CLOSED_TIME" => Some(Self::IncidentsFieldsClosedTime),
620            "INCIDENTS_FIELDS_STATE" => Some(Self::IncidentsFieldsState),
621            "INCIDENTS_FIELDS_STATUS" => Some(Self::IncidentsFieldsStatus),
622            "INCIDENTS_FIELDS_LAST_STATE_UPDATE_TIME" => {
623                Some(Self::IncidentsFieldsLastStateUpdateTime)
624            }
625            "INCIDENTS_FIELDS_APPLICATION_NAME" => {
626                Some(Self::IncidentsFieldsApplicationName)
627            }
628            "INCIDENTS_FIELDS_SUBSYSTEM_NAME" => Some(Self::IncidentsFieldsSubsystemName),
629            "INCIDENTS_FIELDS_DURATION" => Some(Self::IncidentsFieldsDuration),
630            _ => None,
631        }
632    }
633}
634#[derive(serde::Serialize, serde::Deserialize)]
635#[serde(rename_all = "snake_case")]
636#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
637#[repr(i32)]
638pub enum FilterOperator {
639    OrOrUnspecified = 0,
640    And = 1,
641}
642impl FilterOperator {
643    /// String value of the enum field names used in the ProtoBuf definition.
644    ///
645    /// The values are not transformed in any way and thus are considered stable
646    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
647    pub fn as_str_name(&self) -> &'static str {
648        match self {
649            Self::OrOrUnspecified => "FILTER_OPERATOR_OR_OR_UNSPECIFIED",
650            Self::And => "FILTER_OPERATOR_AND",
651        }
652    }
653    /// Creates an enum from field names used in the ProtoBuf definition.
654    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
655        match value {
656            "FILTER_OPERATOR_OR_OR_UNSPECIFIED" => Some(Self::OrOrUnspecified),
657            "FILTER_OPERATOR_AND" => Some(Self::And),
658            _ => None,
659        }
660    }
661}
662#[derive(serde::Serialize, serde::Deserialize)]
663#[serde(rename_all = "snake_case")]
664#[derive(Clone, PartialEq, ::prost::Message)]
665pub struct OrderBy {
666    #[prost(enumeration = "OrderByDirection", tag = "2")]
667    pub direction: i32,
668    #[prost(oneof = "order_by::Field", tags = "10, 11")]
669    pub field: ::core::option::Option<order_by::Field>,
670}
671/// Nested message and enum types in `OrderBy`.
672pub mod order_by {
673    #[derive(serde::Serialize, serde::Deserialize)]
674    #[serde(rename_all = "snake_case")]
675    #[derive(Clone, PartialEq, ::prost::Oneof)]
676    pub enum Field {
677        #[prost(enumeration = "super::IncidentFields", tag = "10")]
678        IncidentField(i32),
679        #[prost(message, tag = "11")]
680        ContextualLabel(::prost::alloc::string::String),
681    }
682}
683#[derive(serde::Serialize, serde::Deserialize)]
684#[serde(rename_all = "snake_case")]
685#[derive(Clone, PartialEq, ::prost::Message)]
686pub struct GroupBy {
687    #[prost(enumeration = "OrderByDirection", tag = "1")]
688    pub order_by_direction: i32,
689    #[prost(oneof = "group_by::Field", tags = "10, 11")]
690    pub field: ::core::option::Option<group_by::Field>,
691}
692/// Nested message and enum types in `GroupBy`.
693pub mod group_by {
694    #[derive(serde::Serialize, serde::Deserialize)]
695    #[serde(rename_all = "snake_case")]
696    #[derive(Clone, PartialEq, ::prost::Oneof)]
697    pub enum Field {
698        #[prost(enumeration = "super::IncidentFields", tag = "10")]
699        IncidentField(i32),
700        #[prost(message, tag = "11")]
701        ContextualLabel(::prost::alloc::string::String),
702    }
703}
704#[derive(serde::Serialize, serde::Deserialize)]
705#[serde(rename_all = "snake_case")]
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct IncidentSearchQuery {
708    #[prost(message, optional, tag = "1")]
709    pub query: ::core::option::Option<::prost::alloc::string::String>,
710    #[prost(oneof = "incident_search_query::Field", tags = "10, 11")]
711    pub field: ::core::option::Option<incident_search_query::Field>,
712}
713/// Nested message and enum types in `IncidentSearchQuery`.
714pub mod incident_search_query {
715    #[derive(serde::Serialize, serde::Deserialize)]
716    #[serde(rename_all = "snake_case")]
717    #[derive(Clone, PartialEq, ::prost::Oneof)]
718    pub enum Field {
719        #[prost(enumeration = "super::IncidentFields", tag = "10")]
720        IncidentField(i32),
721        #[prost(message, tag = "11")]
722        ContextualLabel(::prost::alloc::string::String),
723    }
724}
725#[derive(serde::Serialize, serde::Deserialize)]
726#[serde(rename_all = "snake_case")]
727#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
728#[repr(i32)]
729pub enum OrderByFields {
730    Unspecified = 0,
731    Id = 1,
732    Severity = 2,
733    Name = 3,
734    CreatedTime = 4,
735    ClosedTime = 5,
736}
737impl OrderByFields {
738    /// String value of the enum field names used in the ProtoBuf definition.
739    ///
740    /// The values are not transformed in any way and thus are considered stable
741    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
742    pub fn as_str_name(&self) -> &'static str {
743        match self {
744            Self::Unspecified => "ORDER_BY_FIELDS_UNSPECIFIED",
745            Self::Id => "ORDER_BY_FIELDS_ID",
746            Self::Severity => "ORDER_BY_FIELDS_SEVERITY",
747            Self::Name => "ORDER_BY_FIELDS_NAME",
748            Self::CreatedTime => "ORDER_BY_FIELDS_CREATED_TIME",
749            Self::ClosedTime => "ORDER_BY_FIELDS_CLOSED_TIME",
750        }
751    }
752    /// Creates an enum from field names used in the ProtoBuf definition.
753    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
754        match value {
755            "ORDER_BY_FIELDS_UNSPECIFIED" => Some(Self::Unspecified),
756            "ORDER_BY_FIELDS_ID" => Some(Self::Id),
757            "ORDER_BY_FIELDS_SEVERITY" => Some(Self::Severity),
758            "ORDER_BY_FIELDS_NAME" => Some(Self::Name),
759            "ORDER_BY_FIELDS_CREATED_TIME" => Some(Self::CreatedTime),
760            "ORDER_BY_FIELDS_CLOSED_TIME" => Some(Self::ClosedTime),
761            _ => None,
762        }
763    }
764}
765#[derive(serde::Serialize, serde::Deserialize)]
766#[serde(rename_all = "snake_case")]
767#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
768#[repr(i32)]
769pub enum OrderByDirection {
770    Unspecified = 0,
771    Asc = 1,
772    Desc = 2,
773}
774impl OrderByDirection {
775    /// String value of the enum field names used in the ProtoBuf definition.
776    ///
777    /// The values are not transformed in any way and thus are considered stable
778    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
779    pub fn as_str_name(&self) -> &'static str {
780        match self {
781            Self::Unspecified => "ORDER_BY_DIRECTION_UNSPECIFIED",
782            Self::Asc => "ORDER_BY_DIRECTION_ASC",
783            Self::Desc => "ORDER_BY_DIRECTION_DESC",
784        }
785    }
786    /// Creates an enum from field names used in the ProtoBuf definition.
787    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
788        match value {
789            "ORDER_BY_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
790            "ORDER_BY_DIRECTION_ASC" => Some(Self::Asc),
791            "ORDER_BY_DIRECTION_DESC" => Some(Self::Desc),
792            _ => None,
793        }
794    }
795}
796#[derive(serde::Serialize, serde::Deserialize)]
797#[serde(rename_all = "snake_case")]
798#[derive(Clone, PartialEq, ::prost::Message)]
799pub struct IncidentQueryFilter {
800    #[prost(message, repeated, tag = "1")]
801    pub assignee: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
802    #[prost(enumeration = "IncidentStatus", repeated, tag = "2")]
803    pub status: ::prost::alloc::vec::Vec<i32>,
804    #[prost(enumeration = "IncidentState", repeated, tag = "3")]
805    pub state: ::prost::alloc::vec::Vec<i32>,
806    #[prost(enumeration = "IncidentSeverity", repeated, tag = "4")]
807    pub severity: ::prost::alloc::vec::Vec<i32>,
808    #[prost(map = "string, message", tag = "5")]
809    pub contextual_labels: ::std::collections::HashMap<
810        ::prost::alloc::string::String,
811        ContextualLabelValues,
812    >,
813    /// filters all incidents that were open in the given timeframe start time (deprecated, use incident_open_range instead)
814    #[deprecated]
815    #[prost(message, optional, tag = "6")]
816    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
817    /// filters all incidents that were open in the given timeframe end time (deprecated, use incident_open_range instead)
818    #[deprecated]
819    #[prost(message, optional, tag = "7")]
820    pub end_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
821    #[prost(message, optional, tag = "8")]
822    pub search_query: ::core::option::Option<IncidentSearchQuery>,
823    #[prost(message, repeated, tag = "9")]
824    pub application_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
825    #[prost(message, repeated, tag = "10")]
826    pub subsystem_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
827    #[prost(message, optional, tag = "11")]
828    pub is_muted: ::core::option::Option<bool>,
829    /// filters all incidents created at the given time range
830    #[prost(message, optional, tag = "12")]
831    pub created_at_range: ::core::option::Option<TimeRange>,
832    /// filters all incidents open (alive) at the given time range
833    #[prost(message, optional, tag = "13")]
834    pub incident_duration_range: ::core::option::Option<TimeRange>,
835    /// filters all incidents with the given meta labels
836    #[prost(message, repeated, tag = "14")]
837    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
838    /// filter operations for meta labels filter
839    #[prost(enumeration = "FilterOperator", tag = "15")]
840    pub meta_labels_op: i32,
841}
842#[derive(serde::Serialize, serde::Deserialize)]
843#[serde(rename_all = "snake_case")]
844#[derive(Clone, Copy, PartialEq, ::prost::Message)]
845pub struct TimeRange {
846    #[prost(message, optional, tag = "1")]
847    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
848    #[prost(message, optional, tag = "2")]
849    pub end_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
850}
851#[derive(serde::Serialize, serde::Deserialize)]
852#[serde(rename_all = "snake_case")]
853#[derive(Clone, PartialEq, ::prost::Message)]
854pub struct ContextualLabelValues {
855    #[prost(message, repeated, tag = "1")]
856    pub contextual_label_values: ::prost::alloc::vec::Vec<
857        ::prost::alloc::string::String,
858    >,
859}
860#[derive(serde::Serialize, serde::Deserialize)]
861#[serde(rename_all = "snake_case")]
862#[derive(Clone, PartialEq, ::prost::Message)]
863pub struct IncidentEventQueryFilter {
864    #[prost(enumeration = "IncidentStatus", repeated, tag = "1")]
865    pub status: ::prost::alloc::vec::Vec<i32>,
866    #[prost(enumeration = "IncidentSeverity", repeated, tag = "2")]
867    pub severity: ::prost::alloc::vec::Vec<i32>,
868    #[prost(map = "string, message", tag = "3")]
869    pub contextual_labels: ::std::collections::HashMap<
870        ::prost::alloc::string::String,
871        ContextualLabelValues,
872    >,
873    #[prost(message, optional, tag = "4")]
874    pub name: ::core::option::Option<::prost::alloc::string::String>,
875    #[prost(message, optional, tag = "5")]
876    pub is_muted: ::core::option::Option<bool>,
877    #[prost(message, optional, tag = "6")]
878    pub timestamp: ::core::option::Option<TimeRange>,
879    #[prost(message, optional, tag = "7")]
880    pub labels: ::core::option::Option<LabelsFilter>,
881}
882#[derive(serde::Serialize, serde::Deserialize)]
883#[serde(rename_all = "snake_case")]
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct LabelsFilter {
886    #[prost(message, repeated, tag = "1")]
887    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
888    #[prost(enumeration = "FilterOperator", tag = "2")]
889    pub operator: i32,
890}
891#[derive(serde::Serialize, serde::Deserialize)]
892#[serde(rename_all = "snake_case")]
893#[derive(Clone, PartialEq, ::prost::Message)]
894pub struct AssigneeWithCount {
895    #[prost(message, optional, tag = "1")]
896    pub assignee: ::core::option::Option<::prost::alloc::string::String>,
897    #[prost(message, optional, tag = "2")]
898    pub count: ::core::option::Option<i32>,
899}
900#[derive(serde::Serialize, serde::Deserialize)]
901#[serde(rename_all = "snake_case")]
902#[derive(Clone, Copy, PartialEq, ::prost::Message)]
903pub struct IncidentStatusWithCount {
904    #[prost(enumeration = "IncidentStatus", tag = "1")]
905    pub status: i32,
906    #[prost(message, optional, tag = "2")]
907    pub count: ::core::option::Option<i32>,
908}
909#[derive(serde::Serialize, serde::Deserialize)]
910#[serde(rename_all = "snake_case")]
911#[derive(Clone, Copy, PartialEq, ::prost::Message)]
912pub struct IncidentStateWithCount {
913    #[prost(enumeration = "IncidentState", tag = "1")]
914    pub state: i32,
915    #[prost(message, optional, tag = "2")]
916    pub count: ::core::option::Option<i32>,
917}
918#[derive(serde::Serialize, serde::Deserialize)]
919#[serde(rename_all = "snake_case")]
920#[derive(Clone, Copy, PartialEq, ::prost::Message)]
921pub struct IncidentSeverityWithCount {
922    #[prost(enumeration = "IncidentSeverity", tag = "1")]
923    pub severity: i32,
924    #[prost(message, optional, tag = "2")]
925    pub count: ::core::option::Option<i32>,
926}
927#[derive(serde::Serialize, serde::Deserialize)]
928#[serde(rename_all = "snake_case")]
929#[derive(Clone, PartialEq, ::prost::Message)]
930pub struct IncidentMetaLabelsWithCount {
931    #[prost(message, optional, tag = "1")]
932    pub meta_label: ::core::option::Option<MetaLabel>,
933    #[prost(message, optional, tag = "2")]
934    pub count: ::core::option::Option<i32>,
935}
936#[derive(serde::Serialize, serde::Deserialize)]
937#[serde(rename_all = "snake_case")]
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct IncidentQueryFiltersValues {
940    #[prost(message, repeated, tag = "1")]
941    pub assignee_with_count: ::prost::alloc::vec::Vec<AssigneeWithCount>,
942    #[prost(message, repeated, tag = "2")]
943    pub status_with_count: ::prost::alloc::vec::Vec<IncidentStatusWithCount>,
944    #[prost(message, repeated, tag = "3")]
945    pub state_with_count: ::prost::alloc::vec::Vec<IncidentStateWithCount>,
946    #[prost(message, repeated, tag = "4")]
947    pub severity_with_count: ::prost::alloc::vec::Vec<IncidentSeverityWithCount>,
948    #[prost(map = "string, message", tag = "5")]
949    pub contextual_labels: ::std::collections::HashMap<
950        ::prost::alloc::string::String,
951        ContextualLabelValuesWithCount,
952    >,
953    #[prost(message, repeated, tag = "6")]
954    pub meta_labels_with_count: ::prost::alloc::vec::Vec<IncidentMetaLabelsWithCount>,
955    #[prost(enumeration = "FilterOperator", tag = "7")]
956    pub meta_labels_op: i32,
957}
958#[derive(serde::Serialize, serde::Deserialize)]
959#[serde(rename_all = "snake_case")]
960#[derive(Clone, PartialEq, ::prost::Message)]
961pub struct ContextualLabelValuesWithCount {
962    #[prost(message, repeated, tag = "1")]
963    pub values_with_count: ::prost::alloc::vec::Vec<ContextualLabelValueWithCount>,
964}
965#[derive(serde::Serialize, serde::Deserialize)]
966#[serde(rename_all = "snake_case")]
967#[derive(Clone, PartialEq, ::prost::Message)]
968pub struct ContextualLabelValueWithCount {
969    #[prost(message, optional, tag = "1")]
970    pub contextual_label_value: ::core::option::Option<::prost::alloc::string::String>,
971    #[prost(message, optional, tag = "2")]
972    pub count: ::core::option::Option<i32>,
973}
974#[derive(serde::Serialize, serde::Deserialize)]
975#[serde(rename_all = "snake_case")]
976#[derive(Clone, PartialEq, ::prost::Message)]
977pub struct IncidentEventExtended {
978    #[prost(message, optional, tag = "1")]
979    pub cx_event_key: ::core::option::Option<::prost::alloc::string::String>,
980    #[prost(message, optional, tag = "2")]
981    pub incident_event: ::core::option::Option<IncidentEvent>,
982    #[prost(message, optional, tag = "4")]
983    pub cx_event_timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
984    #[prost(message, optional, tag = "5")]
985    pub incident_event_extended_metadata: ::core::option::Option<
986        IncidentEventExtendedMetadata,
987    >,
988}
989#[derive(serde::Serialize, serde::Deserialize)]
990#[serde(rename_all = "snake_case")]
991#[derive(Clone, PartialEq, ::prost::Message)]
992pub struct IncidentEventExtendedMetadata {
993    #[prost(enumeration = "IncidentSeverity", tag = "1")]
994    pub incident_severity: i32,
995    #[prost(message, optional, tag = "2")]
996    pub alert_id: ::core::option::Option<::prost::alloc::string::String>,
997    #[prost(enumeration = "IncidentState", tag = "3")]
998    pub incident_state: i32,
999    #[prost(message, optional, tag = "4")]
1000    pub alert_name: ::core::option::Option<::prost::alloc::string::String>,
1001    #[prost(enumeration = "IncidentEventAlertType", tag = "5")]
1002    pub alert_type: i32,
1003    #[prost(message, optional, tag = "6")]
1004    pub is_muted: ::core::option::Option<bool>,
1005    #[prost(enumeration = "IncidentStatus", tag = "7")]
1006    pub incident_status: i32,
1007    #[prost(message, repeated, tag = "8")]
1008    pub alert_group_by_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1009    #[prost(message, repeated, tag = "9")]
1010    pub alert_labels: ::prost::alloc::vec::Vec<MetaLabel>,
1011    #[prost(map = "string, string", tag = "10")]
1012    pub incident_permutation: ::std::collections::HashMap<
1013        ::prost::alloc::string::String,
1014        ::prost::alloc::string::String,
1015    >,
1016}
1017#[derive(serde::Serialize, serde::Deserialize)]
1018#[serde(rename_all = "snake_case")]
1019#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1020#[repr(i32)]
1021pub enum IncidentEventAlertType {
1022    StandardOrUnspecified = 0,
1023    Metric = 1,
1024    NewValue = 2,
1025    Ratio = 3,
1026    TimeRelative = 4,
1027    UniqueCount = 5,
1028    Tracing = 6,
1029    Flow = 7,
1030}
1031impl IncidentEventAlertType {
1032    /// String value of the enum field names used in the ProtoBuf definition.
1033    ///
1034    /// The values are not transformed in any way and thus are considered stable
1035    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1036    pub fn as_str_name(&self) -> &'static str {
1037        match self {
1038            Self::StandardOrUnspecified => {
1039                "INCIDENT_EVENT_ALERT_TYPE_STANDARD_OR_UNSPECIFIED"
1040            }
1041            Self::Metric => "INCIDENT_EVENT_ALERT_TYPE_METRIC",
1042            Self::NewValue => "INCIDENT_EVENT_ALERT_TYPE_NEW_VALUE",
1043            Self::Ratio => "INCIDENT_EVENT_ALERT_TYPE_RATIO",
1044            Self::TimeRelative => "INCIDENT_EVENT_ALERT_TYPE_TIME_RELATIVE",
1045            Self::UniqueCount => "INCIDENT_EVENT_ALERT_TYPE_UNIQUE_COUNT",
1046            Self::Tracing => "INCIDENT_EVENT_ALERT_TYPE_TRACING",
1047            Self::Flow => "INCIDENT_EVENT_ALERT_TYPE_FLOW",
1048        }
1049    }
1050    /// Creates an enum from field names used in the ProtoBuf definition.
1051    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1052        match value {
1053            "INCIDENT_EVENT_ALERT_TYPE_STANDARD_OR_UNSPECIFIED" => {
1054                Some(Self::StandardOrUnspecified)
1055            }
1056            "INCIDENT_EVENT_ALERT_TYPE_METRIC" => Some(Self::Metric),
1057            "INCIDENT_EVENT_ALERT_TYPE_NEW_VALUE" => Some(Self::NewValue),
1058            "INCIDENT_EVENT_ALERT_TYPE_RATIO" => Some(Self::Ratio),
1059            "INCIDENT_EVENT_ALERT_TYPE_TIME_RELATIVE" => Some(Self::TimeRelative),
1060            "INCIDENT_EVENT_ALERT_TYPE_UNIQUE_COUNT" => Some(Self::UniqueCount),
1061            "INCIDENT_EVENT_ALERT_TYPE_TRACING" => Some(Self::Tracing),
1062            "INCIDENT_EVENT_ALERT_TYPE_FLOW" => Some(Self::Flow),
1063            _ => None,
1064        }
1065    }
1066}
1067#[derive(serde::Serialize, serde::Deserialize)]
1068#[serde(rename_all = "snake_case")]
1069#[derive(Clone, PartialEq, ::prost::Message)]
1070pub struct GetIncidentRequest {
1071    #[prost(message, optional, tag = "1")]
1072    pub id: ::core::option::Option<::prost::alloc::string::String>,
1073}
1074#[derive(serde::Serialize, serde::Deserialize)]
1075#[serde(rename_all = "snake_case")]
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct GetIncidentResponse {
1078    #[prost(message, optional, tag = "1")]
1079    pub incident: ::core::option::Option<Incident>,
1080}
1081#[derive(serde::Serialize, serde::Deserialize)]
1082#[serde(rename_all = "snake_case")]
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct ListIncidentsResponse {
1085    #[prost(message, repeated, tag = "1")]
1086    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1087    #[prost(message, optional, tag = "4")]
1088    pub pagination: ::core::option::Option<PaginationResponse>,
1089}
1090#[derive(serde::Serialize, serde::Deserialize)]
1091#[serde(rename_all = "snake_case")]
1092#[derive(Clone, PartialEq, ::prost::Message)]
1093pub struct ListIncidentsRequest {
1094    #[prost(message, optional, tag = "4")]
1095    pub filter: ::core::option::Option<IncidentQueryFilter>,
1096    #[prost(message, optional, tag = "5")]
1097    pub pagination: ::core::option::Option<PaginationRequest>,
1098    #[prost(message, repeated, tag = "6")]
1099    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
1100}
1101#[derive(serde::Serialize, serde::Deserialize)]
1102#[serde(rename_all = "snake_case")]
1103#[derive(Clone, PartialEq, ::prost::Message)]
1104pub struct BatchGetIncidentRequest {
1105    #[prost(message, repeated, tag = "1")]
1106    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1107}
1108#[derive(serde::Serialize, serde::Deserialize)]
1109#[serde(rename_all = "snake_case")]
1110#[derive(Clone, PartialEq, ::prost::Message)]
1111pub struct BatchGetIncidentResponse {
1112    #[prost(map = "string, message", tag = "1")]
1113    pub incidents: ::std::collections::HashMap<::prost::alloc::string::String, Incident>,
1114    #[prost(message, repeated, tag = "2")]
1115    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1116}
1117#[derive(serde::Serialize, serde::Deserialize)]
1118#[serde(rename_all = "snake_case")]
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct DeleteIncidentRequest {
1121    #[prost(message, optional, tag = "1")]
1122    pub id: ::core::option::Option<::prost::alloc::string::String>,
1123}
1124#[derive(serde::Serialize, serde::Deserialize)]
1125#[serde(rename_all = "snake_case")]
1126#[derive(Clone, PartialEq, ::prost::Message)]
1127pub struct PaginationRequest {
1128    #[prost(message, optional, tag = "1")]
1129    pub page_size: ::core::option::Option<u32>,
1130    #[prost(message, optional, tag = "2")]
1131    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1132}
1133#[derive(serde::Serialize, serde::Deserialize)]
1134#[serde(rename_all = "snake_case")]
1135#[derive(Clone, PartialEq, ::prost::Message)]
1136pub struct PaginationResponse {
1137    #[prost(message, optional, tag = "1")]
1138    pub total_size: ::core::option::Option<u32>,
1139    #[prost(message, optional, tag = "2")]
1140    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1141}
1142#[derive(serde::Serialize, serde::Deserialize)]
1143#[serde(rename_all = "snake_case")]
1144#[derive(Clone, PartialEq, ::prost::Message)]
1145pub struct ListIncidentAggregationsRequest {
1146    #[prost(message, optional, tag = "1")]
1147    pub filter: ::core::option::Option<IncidentQueryFilter>,
1148    #[prost(message, repeated, tag = "2")]
1149    pub group_bys: ::prost::alloc::vec::Vec<GroupBy>,
1150    #[prost(message, optional, tag = "3")]
1151    pub pagination: ::core::option::Option<PaginationRequest>,
1152}
1153#[derive(serde::Serialize, serde::Deserialize)]
1154#[serde(rename_all = "snake_case")]
1155#[derive(Clone, PartialEq, ::prost::Message)]
1156pub struct ListIncidentAggregationsResponse {
1157    #[prost(message, repeated, tag = "1")]
1158    pub incident_aggs: ::prost::alloc::vec::Vec<IncidentAggregation>,
1159    #[prost(message, optional, tag = "2")]
1160    pub pagination: ::core::option::Option<PaginationResponse>,
1161}
1162#[derive(serde::Serialize, serde::Deserialize)]
1163#[serde(rename_all = "snake_case")]
1164#[derive(Clone, PartialEq, ::prost::Message)]
1165pub struct GetFilterValuesRequest {
1166    #[prost(message, optional, tag = "1")]
1167    pub filter: ::core::option::Option<IncidentQueryFilter>,
1168}
1169#[derive(serde::Serialize, serde::Deserialize)]
1170#[serde(rename_all = "snake_case")]
1171#[derive(Clone, PartialEq, ::prost::Message)]
1172pub struct GetFilterValuesResponse {
1173    #[prost(message, optional, tag = "1")]
1174    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1175}
1176#[derive(serde::Serialize, serde::Deserialize)]
1177#[serde(rename_all = "snake_case")]
1178#[derive(Clone, PartialEq, ::prost::Message)]
1179pub struct GetIncidentEventsRequest {
1180    #[prost(message, optional, tag = "1")]
1181    pub incident_id: ::core::option::Option<::prost::alloc::string::String>,
1182}
1183#[derive(serde::Serialize, serde::Deserialize)]
1184#[serde(rename_all = "snake_case")]
1185#[derive(Clone, PartialEq, ::prost::Message)]
1186pub struct GetIncidentEventsResponse {
1187    #[prost(message, repeated, tag = "1")]
1188    pub incident_events: ::prost::alloc::vec::Vec<IncidentEvent>,
1189}
1190#[derive(serde::Serialize, serde::Deserialize)]
1191#[serde(rename_all = "snake_case")]
1192#[derive(Clone, PartialEq, ::prost::Message)]
1193pub struct AssignIncidentsRequest {
1194    #[prost(message, repeated, tag = "5")]
1195    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1196    #[prost(message, optional, tag = "2")]
1197    pub assigned_to: ::core::option::Option<UserDetails>,
1198}
1199#[derive(serde::Serialize, serde::Deserialize)]
1200#[serde(rename_all = "snake_case")]
1201#[derive(Clone, PartialEq, ::prost::Message)]
1202pub struct UnassignIncidentsRequest {
1203    #[prost(message, repeated, tag = "1")]
1204    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1205}
1206#[derive(serde::Serialize, serde::Deserialize)]
1207#[serde(rename_all = "snake_case")]
1208#[derive(Clone, PartialEq, ::prost::Message)]
1209pub struct UnassignIncidentsResponse {
1210    #[prost(message, repeated, tag = "1")]
1211    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1212}
1213#[derive(serde::Serialize, serde::Deserialize)]
1214#[serde(rename_all = "snake_case")]
1215#[derive(Clone, PartialEq, ::prost::Message)]
1216pub struct AssignIncidentsResponse {
1217    #[prost(message, repeated, tag = "2")]
1218    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1219}
1220#[derive(serde::Serialize, serde::Deserialize)]
1221#[serde(rename_all = "snake_case")]
1222#[derive(Clone, PartialEq, ::prost::Message)]
1223pub struct AcknowledgeIncidentsRequest {
1224    #[prost(message, repeated, tag = "2")]
1225    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1226}
1227#[derive(serde::Serialize, serde::Deserialize)]
1228#[serde(rename_all = "snake_case")]
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct AcknowledgeIncidentsResponse {
1231    #[prost(message, repeated, tag = "2")]
1232    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1233}
1234#[derive(serde::Serialize, serde::Deserialize)]
1235#[serde(rename_all = "snake_case")]
1236#[derive(Clone, PartialEq, ::prost::Message)]
1237pub struct CloseIncidentsRequest {
1238    #[prost(message, repeated, tag = "2")]
1239    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1240}
1241#[derive(serde::Serialize, serde::Deserialize)]
1242#[serde(rename_all = "snake_case")]
1243#[derive(Clone, PartialEq, ::prost::Message)]
1244pub struct CloseIncidentsResponse {
1245    #[prost(message, repeated, tag = "2")]
1246    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1247}
1248#[derive(serde::Serialize, serde::Deserialize)]
1249#[serde(rename_all = "snake_case")]
1250#[derive(Clone, PartialEq, ::prost::Message)]
1251pub struct ResolveIncidentsRequest {
1252    #[prost(message, repeated, tag = "1")]
1253    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1254}
1255#[derive(serde::Serialize, serde::Deserialize)]
1256#[serde(rename_all = "snake_case")]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct ResolveIncidentsResponse {
1259    #[prost(message, repeated, tag = "1")]
1260    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1261}
1262#[derive(serde::Serialize, serde::Deserialize)]
1263#[serde(rename_all = "snake_case")]
1264#[derive(Clone, PartialEq, ::prost::Message)]
1265pub struct GetIncidentUsingCorrelationKeyRequest {
1266    #[prost(message, optional, tag = "1")]
1267    pub correlation_key: ::core::option::Option<::prost::alloc::string::String>,
1268    #[prost(message, optional, tag = "2")]
1269    pub incident_point_in_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
1270}
1271#[derive(serde::Serialize, serde::Deserialize)]
1272#[serde(rename_all = "snake_case")]
1273#[derive(Clone, PartialEq, ::prost::Message)]
1274pub struct GetIncidentUsingCorrelationKeyResponse {
1275    #[prost(message, optional, tag = "1")]
1276    pub incident: ::core::option::Option<Incident>,
1277}
1278#[derive(serde::Serialize, serde::Deserialize)]
1279#[serde(rename_all = "snake_case")]
1280#[derive(Clone, PartialEq, ::prost::Message)]
1281pub struct ListIncidentEventsRequest {
1282    #[prost(message, optional, tag = "1")]
1283    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1284    #[prost(message, optional, tag = "2")]
1285    pub pagination: ::core::option::Option<PaginationRequest>,
1286    #[prost(message, optional, tag = "3")]
1287    pub order_by: ::core::option::Option<ListIncidentEventRequestOrderBy>,
1288}
1289#[derive(serde::Serialize, serde::Deserialize)]
1290#[serde(rename_all = "snake_case")]
1291#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1292pub struct ListIncidentEventRequestOrderBy {
1293    #[prost(enumeration = "IncidentEventOrderByFieldType", tag = "1")]
1294    pub field: i32,
1295    #[prost(enumeration = "OrderByDirection", tag = "2")]
1296    pub direction: i32,
1297}
1298#[derive(serde::Serialize, serde::Deserialize)]
1299#[serde(rename_all = "snake_case")]
1300#[derive(Clone, PartialEq, ::prost::Message)]
1301pub struct ListIncidentEventsResponse {
1302    #[prost(message, repeated, tag = "1")]
1303    pub items: ::prost::alloc::vec::Vec<IncidentEventExtended>,
1304    #[prost(message, optional, tag = "2")]
1305    pub pagination: ::core::option::Option<PaginationResponse>,
1306}
1307#[derive(serde::Serialize, serde::Deserialize)]
1308#[serde(rename_all = "snake_case")]
1309#[derive(Clone, PartialEq, ::prost::Message)]
1310pub struct ListIncidentEventsTotalCountRequest {
1311    #[prost(message, optional, tag = "1")]
1312    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1313}
1314#[derive(serde::Serialize, serde::Deserialize)]
1315#[serde(rename_all = "snake_case")]
1316#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1317pub struct ListIncidentEventsTotalCountResponse {
1318    #[prost(message, optional, tag = "1")]
1319    pub count: ::core::option::Option<u64>,
1320    #[prost(message, optional, tag = "2")]
1321    pub reached_limit: ::core::option::Option<bool>,
1322}
1323#[derive(serde::Serialize, serde::Deserialize)]
1324#[serde(rename_all = "snake_case")]
1325#[derive(Clone, PartialEq, ::prost::Message)]
1326pub struct ListIncidentEventsFilterValuesRequest {
1327    #[prost(message, optional, tag = "1")]
1328    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1329}
1330#[derive(serde::Serialize, serde::Deserialize)]
1331#[serde(rename_all = "snake_case")]
1332#[derive(Clone, PartialEq, ::prost::Message)]
1333pub struct ListIncidentEventsFilterValuesResponse {
1334    #[prost(message, optional, tag = "1")]
1335    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1336}
1337#[derive(serde::Serialize, serde::Deserialize)]
1338#[serde(rename_all = "snake_case")]
1339#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1340#[repr(i32)]
1341pub enum IncidentEventOrderByFieldType {
1342    TimestampOrUnspecified = 0,
1343}
1344impl IncidentEventOrderByFieldType {
1345    /// String value of the enum field names used in the ProtoBuf definition.
1346    ///
1347    /// The values are not transformed in any way and thus are considered stable
1348    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1349    pub fn as_str_name(&self) -> &'static str {
1350        match self {
1351            Self::TimestampOrUnspecified => {
1352                "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED"
1353            }
1354        }
1355    }
1356    /// Creates an enum from field names used in the ProtoBuf definition.
1357    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1358        match value {
1359            "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED" => {
1360                Some(Self::TimestampOrUnspecified)
1361            }
1362            _ => None,
1363        }
1364    }
1365}
1366/// Generated client implementations.
1367pub mod incidents_service_client {
1368    #![allow(
1369        unused_variables,
1370        dead_code,
1371        missing_docs,
1372        clippy::wildcard_imports,
1373        clippy::let_unit_value,
1374    )]
1375    use tonic::codegen::*;
1376    use tonic::codegen::http::Uri;
1377    #[derive(Debug, Clone)]
1378    pub struct IncidentsServiceClient<T> {
1379        inner: tonic::client::Grpc<T>,
1380    }
1381    impl IncidentsServiceClient<tonic::transport::Channel> {
1382        /// Attempt to create a new client by connecting to a given endpoint.
1383        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1384        where
1385            D: TryInto<tonic::transport::Endpoint>,
1386            D::Error: Into<StdError>,
1387        {
1388            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1389            Ok(Self::new(conn))
1390        }
1391    }
1392    impl<T> IncidentsServiceClient<T>
1393    where
1394        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1395        T::Error: Into<StdError>,
1396        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1397        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1398    {
1399        pub fn new(inner: T) -> Self {
1400            let inner = tonic::client::Grpc::new(inner);
1401            Self { inner }
1402        }
1403        pub fn with_origin(inner: T, origin: Uri) -> Self {
1404            let inner = tonic::client::Grpc::with_origin(inner, origin);
1405            Self { inner }
1406        }
1407        pub fn with_interceptor<F>(
1408            inner: T,
1409            interceptor: F,
1410        ) -> IncidentsServiceClient<InterceptedService<T, F>>
1411        where
1412            F: tonic::service::Interceptor,
1413            T::ResponseBody: Default,
1414            T: tonic::codegen::Service<
1415                http::Request<tonic::body::BoxBody>,
1416                Response = http::Response<
1417                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1418                >,
1419            >,
1420            <T as tonic::codegen::Service<
1421                http::Request<tonic::body::BoxBody>,
1422            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1423        {
1424            IncidentsServiceClient::new(InterceptedService::new(inner, interceptor))
1425        }
1426        /// Compress requests with the given encoding.
1427        ///
1428        /// This requires the server to support it otherwise it might respond with an
1429        /// error.
1430        #[must_use]
1431        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1432            self.inner = self.inner.send_compressed(encoding);
1433            self
1434        }
1435        /// Enable decompressing responses.
1436        #[must_use]
1437        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1438            self.inner = self.inner.accept_compressed(encoding);
1439            self
1440        }
1441        /// Limits the maximum size of a decoded message.
1442        ///
1443        /// Default: `4MB`
1444        #[must_use]
1445        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1446            self.inner = self.inner.max_decoding_message_size(limit);
1447            self
1448        }
1449        /// Limits the maximum size of an encoded message.
1450        ///
1451        /// Default: `usize::MAX`
1452        #[must_use]
1453        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1454            self.inner = self.inner.max_encoding_message_size(limit);
1455            self
1456        }
1457        pub async fn get_incident(
1458            &mut self,
1459            request: impl tonic::IntoRequest<super::GetIncidentRequest>,
1460        ) -> std::result::Result<
1461            tonic::Response<super::GetIncidentResponse>,
1462            tonic::Status,
1463        > {
1464            self.inner
1465                .ready()
1466                .await
1467                .map_err(|e| {
1468                    tonic::Status::unknown(
1469                        format!("Service was not ready: {}", e.into()),
1470                    )
1471                })?;
1472            let codec = tonic::codec::ProstCodec::default();
1473            let path = http::uri::PathAndQuery::from_static(
1474                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncident",
1475            );
1476            let mut req = request.into_request();
1477            req.extensions_mut()
1478                .insert(
1479                    GrpcMethod::new(
1480                        "com.coralogixapis.incidents.v1.IncidentsService",
1481                        "GetIncident",
1482                    ),
1483                );
1484            self.inner.unary(req, path, codec).await
1485        }
1486        pub async fn batch_get_incident(
1487            &mut self,
1488            request: impl tonic::IntoRequest<super::BatchGetIncidentRequest>,
1489        ) -> std::result::Result<
1490            tonic::Response<super::BatchGetIncidentResponse>,
1491            tonic::Status,
1492        > {
1493            self.inner
1494                .ready()
1495                .await
1496                .map_err(|e| {
1497                    tonic::Status::unknown(
1498                        format!("Service was not ready: {}", e.into()),
1499                    )
1500                })?;
1501            let codec = tonic::codec::ProstCodec::default();
1502            let path = http::uri::PathAndQuery::from_static(
1503                "/com.coralogixapis.incidents.v1.IncidentsService/BatchGetIncident",
1504            );
1505            let mut req = request.into_request();
1506            req.extensions_mut()
1507                .insert(
1508                    GrpcMethod::new(
1509                        "com.coralogixapis.incidents.v1.IncidentsService",
1510                        "BatchGetIncident",
1511                    ),
1512                );
1513            self.inner.unary(req, path, codec).await
1514        }
1515        pub async fn list_incidents(
1516            &mut self,
1517            request: impl tonic::IntoRequest<super::ListIncidentsRequest>,
1518        ) -> std::result::Result<
1519            tonic::Response<super::ListIncidentsResponse>,
1520            tonic::Status,
1521        > {
1522            self.inner
1523                .ready()
1524                .await
1525                .map_err(|e| {
1526                    tonic::Status::unknown(
1527                        format!("Service was not ready: {}", e.into()),
1528                    )
1529                })?;
1530            let codec = tonic::codec::ProstCodec::default();
1531            let path = http::uri::PathAndQuery::from_static(
1532                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidents",
1533            );
1534            let mut req = request.into_request();
1535            req.extensions_mut()
1536                .insert(
1537                    GrpcMethod::new(
1538                        "com.coralogixapis.incidents.v1.IncidentsService",
1539                        "ListIncidents",
1540                    ),
1541                );
1542            self.inner.unary(req, path, codec).await
1543        }
1544        pub async fn list_incident_aggregations(
1545            &mut self,
1546            request: impl tonic::IntoRequest<super::ListIncidentAggregationsRequest>,
1547        ) -> std::result::Result<
1548            tonic::Response<super::ListIncidentAggregationsResponse>,
1549            tonic::Status,
1550        > {
1551            self.inner
1552                .ready()
1553                .await
1554                .map_err(|e| {
1555                    tonic::Status::unknown(
1556                        format!("Service was not ready: {}", e.into()),
1557                    )
1558                })?;
1559            let codec = tonic::codec::ProstCodec::default();
1560            let path = http::uri::PathAndQuery::from_static(
1561                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentAggregations",
1562            );
1563            let mut req = request.into_request();
1564            req.extensions_mut()
1565                .insert(
1566                    GrpcMethod::new(
1567                        "com.coralogixapis.incidents.v1.IncidentsService",
1568                        "ListIncidentAggregations",
1569                    ),
1570                );
1571            self.inner.unary(req, path, codec).await
1572        }
1573        pub async fn get_filter_values(
1574            &mut self,
1575            request: impl tonic::IntoRequest<super::GetFilterValuesRequest>,
1576        ) -> std::result::Result<
1577            tonic::Response<super::GetFilterValuesResponse>,
1578            tonic::Status,
1579        > {
1580            self.inner
1581                .ready()
1582                .await
1583                .map_err(|e| {
1584                    tonic::Status::unknown(
1585                        format!("Service was not ready: {}", e.into()),
1586                    )
1587                })?;
1588            let codec = tonic::codec::ProstCodec::default();
1589            let path = http::uri::PathAndQuery::from_static(
1590                "/com.coralogixapis.incidents.v1.IncidentsService/GetFilterValues",
1591            );
1592            let mut req = request.into_request();
1593            req.extensions_mut()
1594                .insert(
1595                    GrpcMethod::new(
1596                        "com.coralogixapis.incidents.v1.IncidentsService",
1597                        "GetFilterValues",
1598                    ),
1599                );
1600            self.inner.unary(req, path, codec).await
1601        }
1602        pub async fn assign_incidents(
1603            &mut self,
1604            request: impl tonic::IntoRequest<super::AssignIncidentsRequest>,
1605        ) -> std::result::Result<
1606            tonic::Response<super::AssignIncidentsResponse>,
1607            tonic::Status,
1608        > {
1609            self.inner
1610                .ready()
1611                .await
1612                .map_err(|e| {
1613                    tonic::Status::unknown(
1614                        format!("Service was not ready: {}", e.into()),
1615                    )
1616                })?;
1617            let codec = tonic::codec::ProstCodec::default();
1618            let path = http::uri::PathAndQuery::from_static(
1619                "/com.coralogixapis.incidents.v1.IncidentsService/AssignIncidents",
1620            );
1621            let mut req = request.into_request();
1622            req.extensions_mut()
1623                .insert(
1624                    GrpcMethod::new(
1625                        "com.coralogixapis.incidents.v1.IncidentsService",
1626                        "AssignIncidents",
1627                    ),
1628                );
1629            self.inner.unary(req, path, codec).await
1630        }
1631        pub async fn unassign_incidents(
1632            &mut self,
1633            request: impl tonic::IntoRequest<super::UnassignIncidentsRequest>,
1634        ) -> std::result::Result<
1635            tonic::Response<super::UnassignIncidentsResponse>,
1636            tonic::Status,
1637        > {
1638            self.inner
1639                .ready()
1640                .await
1641                .map_err(|e| {
1642                    tonic::Status::unknown(
1643                        format!("Service was not ready: {}", e.into()),
1644                    )
1645                })?;
1646            let codec = tonic::codec::ProstCodec::default();
1647            let path = http::uri::PathAndQuery::from_static(
1648                "/com.coralogixapis.incidents.v1.IncidentsService/UnassignIncidents",
1649            );
1650            let mut req = request.into_request();
1651            req.extensions_mut()
1652                .insert(
1653                    GrpcMethod::new(
1654                        "com.coralogixapis.incidents.v1.IncidentsService",
1655                        "UnassignIncidents",
1656                    ),
1657                );
1658            self.inner.unary(req, path, codec).await
1659        }
1660        pub async fn acknowledge_incidents(
1661            &mut self,
1662            request: impl tonic::IntoRequest<super::AcknowledgeIncidentsRequest>,
1663        ) -> std::result::Result<
1664            tonic::Response<super::AcknowledgeIncidentsResponse>,
1665            tonic::Status,
1666        > {
1667            self.inner
1668                .ready()
1669                .await
1670                .map_err(|e| {
1671                    tonic::Status::unknown(
1672                        format!("Service was not ready: {}", e.into()),
1673                    )
1674                })?;
1675            let codec = tonic::codec::ProstCodec::default();
1676            let path = http::uri::PathAndQuery::from_static(
1677                "/com.coralogixapis.incidents.v1.IncidentsService/AcknowledgeIncidents",
1678            );
1679            let mut req = request.into_request();
1680            req.extensions_mut()
1681                .insert(
1682                    GrpcMethod::new(
1683                        "com.coralogixapis.incidents.v1.IncidentsService",
1684                        "AcknowledgeIncidents",
1685                    ),
1686                );
1687            self.inner.unary(req, path, codec).await
1688        }
1689        pub async fn close_incidents(
1690            &mut self,
1691            request: impl tonic::IntoRequest<super::CloseIncidentsRequest>,
1692        ) -> std::result::Result<
1693            tonic::Response<super::CloseIncidentsResponse>,
1694            tonic::Status,
1695        > {
1696            self.inner
1697                .ready()
1698                .await
1699                .map_err(|e| {
1700                    tonic::Status::unknown(
1701                        format!("Service was not ready: {}", e.into()),
1702                    )
1703                })?;
1704            let codec = tonic::codec::ProstCodec::default();
1705            let path = http::uri::PathAndQuery::from_static(
1706                "/com.coralogixapis.incidents.v1.IncidentsService/CloseIncidents",
1707            );
1708            let mut req = request.into_request();
1709            req.extensions_mut()
1710                .insert(
1711                    GrpcMethod::new(
1712                        "com.coralogixapis.incidents.v1.IncidentsService",
1713                        "CloseIncidents",
1714                    ),
1715                );
1716            self.inner.unary(req, path, codec).await
1717        }
1718        pub async fn get_incident_events(
1719            &mut self,
1720            request: impl tonic::IntoRequest<super::GetIncidentEventsRequest>,
1721        ) -> std::result::Result<
1722            tonic::Response<super::GetIncidentEventsResponse>,
1723            tonic::Status,
1724        > {
1725            self.inner
1726                .ready()
1727                .await
1728                .map_err(|e| {
1729                    tonic::Status::unknown(
1730                        format!("Service was not ready: {}", e.into()),
1731                    )
1732                })?;
1733            let codec = tonic::codec::ProstCodec::default();
1734            let path = http::uri::PathAndQuery::from_static(
1735                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentEvents",
1736            );
1737            let mut req = request.into_request();
1738            req.extensions_mut()
1739                .insert(
1740                    GrpcMethod::new(
1741                        "com.coralogixapis.incidents.v1.IncidentsService",
1742                        "GetIncidentEvents",
1743                    ),
1744                );
1745            self.inner.unary(req, path, codec).await
1746        }
1747        pub async fn resolve_incidents(
1748            &mut self,
1749            request: impl tonic::IntoRequest<super::ResolveIncidentsRequest>,
1750        ) -> std::result::Result<
1751            tonic::Response<super::ResolveIncidentsResponse>,
1752            tonic::Status,
1753        > {
1754            self.inner
1755                .ready()
1756                .await
1757                .map_err(|e| {
1758                    tonic::Status::unknown(
1759                        format!("Service was not ready: {}", e.into()),
1760                    )
1761                })?;
1762            let codec = tonic::codec::ProstCodec::default();
1763            let path = http::uri::PathAndQuery::from_static(
1764                "/com.coralogixapis.incidents.v1.IncidentsService/ResolveIncidents",
1765            );
1766            let mut req = request.into_request();
1767            req.extensions_mut()
1768                .insert(
1769                    GrpcMethod::new(
1770                        "com.coralogixapis.incidents.v1.IncidentsService",
1771                        "ResolveIncidents",
1772                    ),
1773                );
1774            self.inner.unary(req, path, codec).await
1775        }
1776        ///
1777        /// This shouldn't be exposed in the docs, it has no external usecase
1778        pub async fn get_incident_using_correlation_key(
1779            &mut self,
1780            request: impl tonic::IntoRequest<
1781                super::GetIncidentUsingCorrelationKeyRequest,
1782            >,
1783        ) -> std::result::Result<
1784            tonic::Response<super::GetIncidentUsingCorrelationKeyResponse>,
1785            tonic::Status,
1786        > {
1787            self.inner
1788                .ready()
1789                .await
1790                .map_err(|e| {
1791                    tonic::Status::unknown(
1792                        format!("Service was not ready: {}", e.into()),
1793                    )
1794                })?;
1795            let codec = tonic::codec::ProstCodec::default();
1796            let path = http::uri::PathAndQuery::from_static(
1797                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentUsingCorrelationKey",
1798            );
1799            let mut req = request.into_request();
1800            req.extensions_mut()
1801                .insert(
1802                    GrpcMethod::new(
1803                        "com.coralogixapis.incidents.v1.IncidentsService",
1804                        "GetIncidentUsingCorrelationKey",
1805                    ),
1806                );
1807            self.inner.unary(req, path, codec).await
1808        }
1809        pub async fn list_incident_events(
1810            &mut self,
1811            request: impl tonic::IntoRequest<super::ListIncidentEventsRequest>,
1812        ) -> std::result::Result<
1813            tonic::Response<super::ListIncidentEventsResponse>,
1814            tonic::Status,
1815        > {
1816            self.inner
1817                .ready()
1818                .await
1819                .map_err(|e| {
1820                    tonic::Status::unknown(
1821                        format!("Service was not ready: {}", e.into()),
1822                    )
1823                })?;
1824            let codec = tonic::codec::ProstCodec::default();
1825            let path = http::uri::PathAndQuery::from_static(
1826                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEvents",
1827            );
1828            let mut req = request.into_request();
1829            req.extensions_mut()
1830                .insert(
1831                    GrpcMethod::new(
1832                        "com.coralogixapis.incidents.v1.IncidentsService",
1833                        "ListIncidentEvents",
1834                    ),
1835                );
1836            self.inner.unary(req, path, codec).await
1837        }
1838        pub async fn list_incident_events_total_count(
1839            &mut self,
1840            request: impl tonic::IntoRequest<super::ListIncidentEventsTotalCountRequest>,
1841        ) -> std::result::Result<
1842            tonic::Response<super::ListIncidentEventsTotalCountResponse>,
1843            tonic::Status,
1844        > {
1845            self.inner
1846                .ready()
1847                .await
1848                .map_err(|e| {
1849                    tonic::Status::unknown(
1850                        format!("Service was not ready: {}", e.into()),
1851                    )
1852                })?;
1853            let codec = tonic::codec::ProstCodec::default();
1854            let path = http::uri::PathAndQuery::from_static(
1855                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsTotalCount",
1856            );
1857            let mut req = request.into_request();
1858            req.extensions_mut()
1859                .insert(
1860                    GrpcMethod::new(
1861                        "com.coralogixapis.incidents.v1.IncidentsService",
1862                        "ListIncidentEventsTotalCount",
1863                    ),
1864                );
1865            self.inner.unary(req, path, codec).await
1866        }
1867        pub async fn list_incident_events_filter_values(
1868            &mut self,
1869            request: impl tonic::IntoRequest<
1870                super::ListIncidentEventsFilterValuesRequest,
1871            >,
1872        ) -> std::result::Result<
1873            tonic::Response<super::ListIncidentEventsFilterValuesResponse>,
1874            tonic::Status,
1875        > {
1876            self.inner
1877                .ready()
1878                .await
1879                .map_err(|e| {
1880                    tonic::Status::unknown(
1881                        format!("Service was not ready: {}", e.into()),
1882                    )
1883                })?;
1884            let codec = tonic::codec::ProstCodec::default();
1885            let path = http::uri::PathAndQuery::from_static(
1886                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsFilterValues",
1887            );
1888            let mut req = request.into_request();
1889            req.extensions_mut()
1890                .insert(
1891                    GrpcMethod::new(
1892                        "com.coralogixapis.incidents.v1.IncidentsService",
1893                        "ListIncidentEventsFilterValues",
1894                    ),
1895                );
1896            self.inner.unary(req, path, codec).await
1897        }
1898    }
1899}