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, Copy, PartialEq, ::prost::Message)]
144pub struct IncidentEventUnassign {}
145#[derive(serde::Serialize, serde::Deserialize)]
146#[serde(rename_all = "snake_case")]
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct UpsertIncidentStatePayload {
149    #[prost(message, optional, tag = "1")]
150    pub cx_event_key: ::core::option::Option<::prost::alloc::string::String>,
151}
152#[derive(serde::Serialize, serde::Deserialize)]
153#[serde(rename_all = "snake_case")]
154#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
155#[repr(i32)]
156pub enum UpsertIncidentStateType {
157    Unspecified = 0,
158    Triggered = 1,
159    Resolved = 2,
160}
161impl UpsertIncidentStateType {
162    /// String value of the enum field names used in the ProtoBuf definition.
163    ///
164    /// The values are not transformed in any way and thus are considered stable
165    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
166    pub fn as_str_name(&self) -> &'static str {
167        match self {
168            Self::Unspecified => "UPSERT_INCIDENT_STATE_TYPE_UNSPECIFIED",
169            Self::Triggered => "UPSERT_INCIDENT_STATE_TYPE_TRIGGERED",
170            Self::Resolved => "UPSERT_INCIDENT_STATE_TYPE_RESOLVED",
171        }
172    }
173    /// Creates an enum from field names used in the ProtoBuf definition.
174    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
175        match value {
176            "UPSERT_INCIDENT_STATE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
177            "UPSERT_INCIDENT_STATE_TYPE_TRIGGERED" => Some(Self::Triggered),
178            "UPSERT_INCIDENT_STATE_TYPE_RESOLVED" => Some(Self::Resolved),
179            _ => None,
180        }
181    }
182}
183#[derive(serde::Serialize, serde::Deserialize)]
184#[serde(rename_all = "snake_case")]
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct IncidentEventUpsertState {
187    #[prost(enumeration = "UpsertIncidentStateType", tag = "1")]
188    pub state_type: i32,
189    #[prost(message, optional, tag = "2")]
190    pub payload: ::core::option::Option<UpsertIncidentStatePayload>,
191    #[prost(message, optional, tag = "3")]
192    pub is_muted: ::core::option::Option<bool>,
193}
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    /// Incident id
364    #[prost(message, optional, tag = "1")]
365    pub id: ::core::option::Option<::prost::alloc::string::String>,
366    /// Incident name
367    #[prost(message, optional, tag = "2")]
368    pub name: ::core::option::Option<::prost::alloc::string::String>,
369    /// The incident's current internal state, usually derived from the operational events of the incident
370    #[prost(enumeration = "IncidentState", tag = "3")]
371    pub state: i32,
372    /// The incident's current status. Can be derived from the incident state 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 - dynamic labels that give contextual information about the incident (for example, the alert_name label can appear in an incident created by an event originating 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 -  dynamic labels that extend the incident name for identification 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 payload key of the last event that caused the incident's to state change
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 time duration between created at and closed time of the incident
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 state count
495    #[prost(message, repeated, tag = "2")]
496    pub agg_state_count: ::prost::alloc::vec::Vec<IncidentStateCount>,
497    /// The aggregation's status count
498    #[prost(message, repeated, tag = "3")]
499    pub agg_status_count: ::prost::alloc::vec::Vec<IncidentStatusCount>,
500    /// The aggregation's severity count
501    #[prost(message, repeated, tag = "4")]
502    pub agg_severity_count: ::prost::alloc::vec::Vec<IncidentSeverityCount>,
503    /// The aggregation's assignments count
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 incident count
513    #[prost(message, optional, tag = "8")]
514    pub all_values_count: ::core::option::Option<u32>,
515    /// The aggregation's list of incidents 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 meta labels count
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, PartialEq, ::prost::Message)]
637pub struct IncidentEventExtended {
638    #[prost(message, optional, tag = "1")]
639    pub cx_event_key: ::core::option::Option<::prost::alloc::string::String>,
640    #[prost(message, optional, tag = "2")]
641    pub incident_event: ::core::option::Option<IncidentEvent>,
642    #[prost(message, optional, tag = "4")]
643    pub cx_event_timestamp: ::core::option::Option<::prost_wkt_types::Timestamp>,
644    #[prost(message, optional, tag = "5")]
645    pub incident_event_extended_metadata: ::core::option::Option<
646        IncidentEventExtendedMetadata,
647    >,
648}
649#[derive(serde::Serialize, serde::Deserialize)]
650#[serde(rename_all = "snake_case")]
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct IncidentEventExtendedMetadata {
653    #[prost(enumeration = "IncidentSeverity", tag = "1")]
654    pub incident_severity: i32,
655    #[prost(message, optional, tag = "2")]
656    pub alert_id: ::core::option::Option<::prost::alloc::string::String>,
657    #[prost(enumeration = "IncidentState", tag = "3")]
658    pub incident_state: i32,
659    #[prost(message, optional, tag = "4")]
660    pub alert_name: ::core::option::Option<::prost::alloc::string::String>,
661    #[prost(enumeration = "IncidentEventAlertType", tag = "5")]
662    pub alert_type: i32,
663    #[prost(message, optional, tag = "6")]
664    pub is_muted: ::core::option::Option<bool>,
665    #[prost(enumeration = "IncidentStatus", tag = "7")]
666    pub incident_status: i32,
667    #[prost(message, repeated, tag = "8")]
668    pub alert_group_by_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
669    #[prost(message, repeated, tag = "9")]
670    pub alert_labels: ::prost::alloc::vec::Vec<MetaLabel>,
671    #[prost(map = "string, string", tag = "10")]
672    pub incident_permutation: ::std::collections::HashMap<
673        ::prost::alloc::string::String,
674        ::prost::alloc::string::String,
675    >,
676}
677#[derive(serde::Serialize, serde::Deserialize)]
678#[serde(rename_all = "snake_case")]
679#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
680#[repr(i32)]
681pub enum IncidentEventAlertType {
682    StandardOrUnspecified = 0,
683    Metric = 1,
684    NewValue = 2,
685    Ratio = 3,
686    TimeRelative = 4,
687    UniqueCount = 5,
688    Tracing = 6,
689    Flow = 7,
690    Slo = 8,
691}
692impl IncidentEventAlertType {
693    /// String value of the enum field names used in the ProtoBuf definition.
694    ///
695    /// The values are not transformed in any way and thus are considered stable
696    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
697    pub fn as_str_name(&self) -> &'static str {
698        match self {
699            Self::StandardOrUnspecified => {
700                "INCIDENT_EVENT_ALERT_TYPE_STANDARD_OR_UNSPECIFIED"
701            }
702            Self::Metric => "INCIDENT_EVENT_ALERT_TYPE_METRIC",
703            Self::NewValue => "INCIDENT_EVENT_ALERT_TYPE_NEW_VALUE",
704            Self::Ratio => "INCIDENT_EVENT_ALERT_TYPE_RATIO",
705            Self::TimeRelative => "INCIDENT_EVENT_ALERT_TYPE_TIME_RELATIVE",
706            Self::UniqueCount => "INCIDENT_EVENT_ALERT_TYPE_UNIQUE_COUNT",
707            Self::Tracing => "INCIDENT_EVENT_ALERT_TYPE_TRACING",
708            Self::Flow => "INCIDENT_EVENT_ALERT_TYPE_FLOW",
709            Self::Slo => "INCIDENT_EVENT_ALERT_TYPE_SLO",
710        }
711    }
712    /// Creates an enum from field names used in the ProtoBuf definition.
713    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
714        match value {
715            "INCIDENT_EVENT_ALERT_TYPE_STANDARD_OR_UNSPECIFIED" => {
716                Some(Self::StandardOrUnspecified)
717            }
718            "INCIDENT_EVENT_ALERT_TYPE_METRIC" => Some(Self::Metric),
719            "INCIDENT_EVENT_ALERT_TYPE_NEW_VALUE" => Some(Self::NewValue),
720            "INCIDENT_EVENT_ALERT_TYPE_RATIO" => Some(Self::Ratio),
721            "INCIDENT_EVENT_ALERT_TYPE_TIME_RELATIVE" => Some(Self::TimeRelative),
722            "INCIDENT_EVENT_ALERT_TYPE_UNIQUE_COUNT" => Some(Self::UniqueCount),
723            "INCIDENT_EVENT_ALERT_TYPE_TRACING" => Some(Self::Tracing),
724            "INCIDENT_EVENT_ALERT_TYPE_FLOW" => Some(Self::Flow),
725            "INCIDENT_EVENT_ALERT_TYPE_SLO" => Some(Self::Slo),
726            _ => None,
727        }
728    }
729}
730#[derive(serde::Serialize, serde::Deserialize)]
731#[serde(rename_all = "snake_case")]
732#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
733#[repr(i32)]
734pub enum FilterOperator {
735    OrOrUnspecified = 0,
736    And = 1,
737}
738impl FilterOperator {
739    /// String value of the enum field names used in the ProtoBuf definition.
740    ///
741    /// The values are not transformed in any way and thus are considered stable
742    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
743    pub fn as_str_name(&self) -> &'static str {
744        match self {
745            Self::OrOrUnspecified => "FILTER_OPERATOR_OR_OR_UNSPECIFIED",
746            Self::And => "FILTER_OPERATOR_AND",
747        }
748    }
749    /// Creates an enum from field names used in the ProtoBuf definition.
750    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
751        match value {
752            "FILTER_OPERATOR_OR_OR_UNSPECIFIED" => Some(Self::OrOrUnspecified),
753            "FILTER_OPERATOR_AND" => Some(Self::And),
754            _ => None,
755        }
756    }
757}
758#[derive(serde::Serialize, serde::Deserialize)]
759#[serde(rename_all = "snake_case")]
760#[derive(Clone, PartialEq, ::prost::Message)]
761pub struct OrderBy {
762    #[prost(enumeration = "OrderByDirection", tag = "2")]
763    pub direction: i32,
764    #[prost(oneof = "order_by::Field", tags = "10, 11")]
765    pub field: ::core::option::Option<order_by::Field>,
766}
767/// Nested message and enum types in `OrderBy`.
768pub mod order_by {
769    #[derive(serde::Serialize, serde::Deserialize)]
770    #[serde(rename_all = "snake_case")]
771    #[derive(Clone, PartialEq, ::prost::Oneof)]
772    pub enum Field {
773        #[prost(enumeration = "super::IncidentFields", tag = "10")]
774        IncidentField(i32),
775        #[prost(message, tag = "11")]
776        ContextualLabel(::prost::alloc::string::String),
777    }
778}
779#[derive(serde::Serialize, serde::Deserialize)]
780#[serde(rename_all = "snake_case")]
781#[derive(Clone, PartialEq, ::prost::Message)]
782pub struct GroupBy {
783    #[prost(enumeration = "OrderByDirection", tag = "1")]
784    pub order_by_direction: i32,
785    #[prost(oneof = "group_by::Field", tags = "10, 11")]
786    pub field: ::core::option::Option<group_by::Field>,
787}
788/// Nested message and enum types in `GroupBy`.
789pub mod group_by {
790    #[derive(serde::Serialize, serde::Deserialize)]
791    #[serde(rename_all = "snake_case")]
792    #[derive(Clone, PartialEq, ::prost::Oneof)]
793    pub enum Field {
794        #[prost(enumeration = "super::IncidentFields", tag = "10")]
795        IncidentField(i32),
796        #[prost(message, tag = "11")]
797        ContextualLabel(::prost::alloc::string::String),
798    }
799}
800#[derive(serde::Serialize, serde::Deserialize)]
801#[serde(rename_all = "snake_case")]
802#[derive(Clone, PartialEq, ::prost::Message)]
803pub struct IncidentSearchQuery {
804    #[prost(message, optional, tag = "1")]
805    pub query: ::core::option::Option<::prost::alloc::string::String>,
806    #[prost(oneof = "incident_search_query::Field", tags = "10, 11")]
807    pub field: ::core::option::Option<incident_search_query::Field>,
808}
809/// Nested message and enum types in `IncidentSearchQuery`.
810pub mod incident_search_query {
811    #[derive(serde::Serialize, serde::Deserialize)]
812    #[serde(rename_all = "snake_case")]
813    #[derive(Clone, PartialEq, ::prost::Oneof)]
814    pub enum Field {
815        #[prost(enumeration = "super::IncidentFields", tag = "10")]
816        IncidentField(i32),
817        #[prost(message, tag = "11")]
818        ContextualLabel(::prost::alloc::string::String),
819    }
820}
821#[derive(serde::Serialize, serde::Deserialize)]
822#[serde(rename_all = "snake_case")]
823#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
824#[repr(i32)]
825pub enum OrderByFields {
826    Unspecified = 0,
827    Id = 1,
828    Severity = 2,
829    Name = 3,
830    CreatedTime = 4,
831    ClosedTime = 5,
832}
833impl OrderByFields {
834    /// String value of the enum field names used in the ProtoBuf definition.
835    ///
836    /// The values are not transformed in any way and thus are considered stable
837    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
838    pub fn as_str_name(&self) -> &'static str {
839        match self {
840            Self::Unspecified => "ORDER_BY_FIELDS_UNSPECIFIED",
841            Self::Id => "ORDER_BY_FIELDS_ID",
842            Self::Severity => "ORDER_BY_FIELDS_SEVERITY",
843            Self::Name => "ORDER_BY_FIELDS_NAME",
844            Self::CreatedTime => "ORDER_BY_FIELDS_CREATED_TIME",
845            Self::ClosedTime => "ORDER_BY_FIELDS_CLOSED_TIME",
846        }
847    }
848    /// Creates an enum from field names used in the ProtoBuf definition.
849    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
850        match value {
851            "ORDER_BY_FIELDS_UNSPECIFIED" => Some(Self::Unspecified),
852            "ORDER_BY_FIELDS_ID" => Some(Self::Id),
853            "ORDER_BY_FIELDS_SEVERITY" => Some(Self::Severity),
854            "ORDER_BY_FIELDS_NAME" => Some(Self::Name),
855            "ORDER_BY_FIELDS_CREATED_TIME" => Some(Self::CreatedTime),
856            "ORDER_BY_FIELDS_CLOSED_TIME" => Some(Self::ClosedTime),
857            _ => None,
858        }
859    }
860}
861#[derive(serde::Serialize, serde::Deserialize)]
862#[serde(rename_all = "snake_case")]
863#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
864#[repr(i32)]
865pub enum OrderByDirection {
866    Unspecified = 0,
867    Asc = 1,
868    Desc = 2,
869}
870impl OrderByDirection {
871    /// String value of the enum field names used in the ProtoBuf definition.
872    ///
873    /// The values are not transformed in any way and thus are considered stable
874    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
875    pub fn as_str_name(&self) -> &'static str {
876        match self {
877            Self::Unspecified => "ORDER_BY_DIRECTION_UNSPECIFIED",
878            Self::Asc => "ORDER_BY_DIRECTION_ASC",
879            Self::Desc => "ORDER_BY_DIRECTION_DESC",
880        }
881    }
882    /// Creates an enum from field names used in the ProtoBuf definition.
883    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
884        match value {
885            "ORDER_BY_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
886            "ORDER_BY_DIRECTION_ASC" => Some(Self::Asc),
887            "ORDER_BY_DIRECTION_DESC" => Some(Self::Desc),
888            _ => None,
889        }
890    }
891}
892#[derive(serde::Serialize, serde::Deserialize)]
893#[serde(rename_all = "snake_case")]
894#[derive(Clone, PartialEq, ::prost::Message)]
895pub struct IncidentQueryFilter {
896    #[prost(message, repeated, tag = "1")]
897    pub assignee: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
898    #[prost(enumeration = "IncidentStatus", repeated, packed = "false", tag = "2")]
899    pub status: ::prost::alloc::vec::Vec<i32>,
900    #[prost(enumeration = "IncidentState", repeated, packed = "false", tag = "3")]
901    pub state: ::prost::alloc::vec::Vec<i32>,
902    #[prost(enumeration = "IncidentSeverity", repeated, packed = "false", tag = "4")]
903    pub severity: ::prost::alloc::vec::Vec<i32>,
904    #[prost(map = "string, message", tag = "5")]
905    pub contextual_labels: ::std::collections::HashMap<
906        ::prost::alloc::string::String,
907        ContextualLabelValues,
908    >,
909    #[deprecated]
910    #[prost(message, optional, tag = "6")]
911    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
912    #[deprecated]
913    #[prost(message, optional, tag = "7")]
914    pub end_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
915    #[prost(message, optional, tag = "8")]
916    pub search_query: ::core::option::Option<IncidentSearchQuery>,
917    #[prost(message, repeated, tag = "9")]
918    pub application_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
919    #[prost(message, repeated, tag = "10")]
920    pub subsystem_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
921    #[prost(message, optional, tag = "11")]
922    pub is_muted: ::core::option::Option<bool>,
923    #[prost(message, optional, tag = "12")]
924    pub created_at_range: ::core::option::Option<TimeRange>,
925    #[prost(message, optional, tag = "13")]
926    pub incident_duration_range: ::core::option::Option<TimeRange>,
927    #[prost(message, repeated, tag = "14")]
928    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
929    #[prost(enumeration = "FilterOperator", tag = "15")]
930    pub meta_labels_op: i32,
931}
932#[derive(serde::Serialize, serde::Deserialize)]
933#[serde(rename_all = "snake_case")]
934#[derive(Clone, Copy, PartialEq, ::prost::Message)]
935pub struct TimeRange {
936    #[prost(message, optional, tag = "1")]
937    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
938    #[prost(message, optional, tag = "2")]
939    pub end_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
940}
941#[derive(serde::Serialize, serde::Deserialize)]
942#[serde(rename_all = "snake_case")]
943#[derive(Clone, PartialEq, ::prost::Message)]
944pub struct ContextualLabelValues {
945    #[prost(message, repeated, tag = "1")]
946    pub contextual_label_values: ::prost::alloc::vec::Vec<
947        ::prost::alloc::string::String,
948    >,
949}
950#[derive(serde::Serialize, serde::Deserialize)]
951#[serde(rename_all = "snake_case")]
952#[derive(Clone, PartialEq, ::prost::Message)]
953pub struct IncidentEventQueryFilter {
954    #[prost(enumeration = "IncidentStatus", repeated, packed = "false", tag = "1")]
955    pub status: ::prost::alloc::vec::Vec<i32>,
956    #[prost(enumeration = "IncidentSeverity", repeated, packed = "false", tag = "2")]
957    pub severity: ::prost::alloc::vec::Vec<i32>,
958    #[prost(map = "string, message", tag = "3")]
959    pub contextual_labels: ::std::collections::HashMap<
960        ::prost::alloc::string::String,
961        ContextualLabelValues,
962    >,
963    #[prost(message, optional, tag = "4")]
964    pub name: ::core::option::Option<::prost::alloc::string::String>,
965    #[prost(message, optional, tag = "5")]
966    pub is_muted: ::core::option::Option<bool>,
967    #[prost(message, optional, tag = "6")]
968    pub timestamp: ::core::option::Option<TimeRange>,
969    #[prost(message, optional, tag = "7")]
970    pub labels: ::core::option::Option<LabelsFilter>,
971}
972#[derive(serde::Serialize, serde::Deserialize)]
973#[serde(rename_all = "snake_case")]
974#[derive(Clone, PartialEq, ::prost::Message)]
975pub struct LabelsFilter {
976    #[prost(message, repeated, tag = "1")]
977    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
978    #[prost(enumeration = "FilterOperator", tag = "2")]
979    pub operator: i32,
980}
981#[derive(serde::Serialize, serde::Deserialize)]
982#[serde(rename_all = "snake_case")]
983#[derive(Clone, PartialEq, ::prost::Message)]
984pub struct AssigneeWithCount {
985    #[prost(message, optional, tag = "1")]
986    pub assignee: ::core::option::Option<::prost::alloc::string::String>,
987    #[prost(message, optional, tag = "2")]
988    pub count: ::core::option::Option<i32>,
989}
990#[derive(serde::Serialize, serde::Deserialize)]
991#[serde(rename_all = "snake_case")]
992#[derive(Clone, Copy, PartialEq, ::prost::Message)]
993pub struct IncidentStatusWithCount {
994    #[prost(enumeration = "IncidentStatus", tag = "1")]
995    pub status: i32,
996    #[prost(message, optional, tag = "2")]
997    pub count: ::core::option::Option<i32>,
998}
999#[derive(serde::Serialize, serde::Deserialize)]
1000#[serde(rename_all = "snake_case")]
1001#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1002pub struct IncidentStateWithCount {
1003    #[prost(enumeration = "IncidentState", tag = "1")]
1004    pub state: i32,
1005    #[prost(message, optional, tag = "2")]
1006    pub count: ::core::option::Option<i32>,
1007}
1008#[derive(serde::Serialize, serde::Deserialize)]
1009#[serde(rename_all = "snake_case")]
1010#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1011pub struct IncidentSeverityWithCount {
1012    #[prost(enumeration = "IncidentSeverity", tag = "1")]
1013    pub severity: i32,
1014    #[prost(message, optional, tag = "2")]
1015    pub count: ::core::option::Option<i32>,
1016}
1017#[derive(serde::Serialize, serde::Deserialize)]
1018#[serde(rename_all = "snake_case")]
1019#[derive(Clone, PartialEq, ::prost::Message)]
1020pub struct IncidentMetaLabelsWithCount {
1021    #[prost(message, optional, tag = "1")]
1022    pub meta_label: ::core::option::Option<MetaLabel>,
1023    #[prost(message, optional, tag = "2")]
1024    pub count: ::core::option::Option<i32>,
1025}
1026#[derive(serde::Serialize, serde::Deserialize)]
1027#[serde(rename_all = "snake_case")]
1028#[derive(Clone, PartialEq, ::prost::Message)]
1029pub struct IncidentQueryFiltersValues {
1030    #[prost(message, repeated, tag = "1")]
1031    pub assignee_with_count: ::prost::alloc::vec::Vec<AssigneeWithCount>,
1032    #[prost(message, repeated, tag = "2")]
1033    pub status_with_count: ::prost::alloc::vec::Vec<IncidentStatusWithCount>,
1034    #[prost(message, repeated, tag = "3")]
1035    pub state_with_count: ::prost::alloc::vec::Vec<IncidentStateWithCount>,
1036    #[prost(message, repeated, tag = "4")]
1037    pub severity_with_count: ::prost::alloc::vec::Vec<IncidentSeverityWithCount>,
1038    #[prost(map = "string, message", tag = "5")]
1039    pub contextual_labels: ::std::collections::HashMap<
1040        ::prost::alloc::string::String,
1041        ContextualLabelValuesWithCount,
1042    >,
1043    #[prost(message, repeated, tag = "6")]
1044    pub meta_labels_with_count: ::prost::alloc::vec::Vec<IncidentMetaLabelsWithCount>,
1045    #[prost(enumeration = "FilterOperator", tag = "7")]
1046    pub meta_labels_op: i32,
1047}
1048#[derive(serde::Serialize, serde::Deserialize)]
1049#[serde(rename_all = "snake_case")]
1050#[derive(Clone, PartialEq, ::prost::Message)]
1051pub struct ContextualLabelValuesWithCount {
1052    #[prost(message, repeated, tag = "1")]
1053    pub values_with_count: ::prost::alloc::vec::Vec<ContextualLabelValueWithCount>,
1054}
1055#[derive(serde::Serialize, serde::Deserialize)]
1056#[serde(rename_all = "snake_case")]
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct ContextualLabelValueWithCount {
1059    #[prost(message, optional, tag = "1")]
1060    pub contextual_label_value: ::core::option::Option<::prost::alloc::string::String>,
1061    #[prost(message, optional, tag = "2")]
1062    pub count: ::core::option::Option<i32>,
1063}
1064#[derive(serde::Serialize, serde::Deserialize)]
1065#[serde(rename_all = "snake_case")]
1066#[derive(Clone, PartialEq, ::prost::Message)]
1067pub struct GetIncidentRequest {
1068    #[prost(message, optional, tag = "1")]
1069    pub id: ::core::option::Option<::prost::alloc::string::String>,
1070}
1071#[derive(serde::Serialize, serde::Deserialize)]
1072#[serde(rename_all = "snake_case")]
1073#[derive(Clone, PartialEq, ::prost::Message)]
1074pub struct GetIncidentResponse {
1075    #[prost(message, optional, tag = "1")]
1076    pub incident: ::core::option::Option<Incident>,
1077}
1078#[derive(serde::Serialize, serde::Deserialize)]
1079#[serde(rename_all = "snake_case")]
1080#[derive(Clone, PartialEq, ::prost::Message)]
1081pub struct ListIncidentsResponse {
1082    #[prost(message, repeated, tag = "1")]
1083    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1084    #[prost(message, optional, tag = "4")]
1085    pub pagination: ::core::option::Option<PaginationResponse>,
1086}
1087#[derive(serde::Serialize, serde::Deserialize)]
1088#[serde(rename_all = "snake_case")]
1089#[derive(Clone, PartialEq, ::prost::Message)]
1090pub struct ListIncidentsRequest {
1091    #[prost(message, optional, tag = "4")]
1092    pub filter: ::core::option::Option<IncidentQueryFilter>,
1093    #[prost(message, optional, tag = "5")]
1094    pub pagination: ::core::option::Option<PaginationRequest>,
1095    #[prost(message, repeated, tag = "6")]
1096    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
1097}
1098#[derive(serde::Serialize, serde::Deserialize)]
1099#[serde(rename_all = "snake_case")]
1100#[derive(Clone, PartialEq, ::prost::Message)]
1101pub struct BatchGetIncidentRequest {
1102    #[prost(message, repeated, tag = "1")]
1103    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1104}
1105#[derive(serde::Serialize, serde::Deserialize)]
1106#[serde(rename_all = "snake_case")]
1107#[derive(Clone, PartialEq, ::prost::Message)]
1108pub struct BatchGetIncidentResponse {
1109    #[prost(map = "string, message", tag = "1")]
1110    pub incidents: ::std::collections::HashMap<::prost::alloc::string::String, Incident>,
1111    #[prost(message, repeated, tag = "2")]
1112    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1113}
1114#[derive(serde::Serialize, serde::Deserialize)]
1115#[serde(rename_all = "snake_case")]
1116#[derive(Clone, PartialEq, ::prost::Message)]
1117pub struct DeleteIncidentRequest {
1118    #[prost(message, optional, tag = "1")]
1119    pub id: ::core::option::Option<::prost::alloc::string::String>,
1120}
1121#[derive(serde::Serialize, serde::Deserialize)]
1122#[serde(rename_all = "snake_case")]
1123#[derive(Clone, PartialEq, ::prost::Message)]
1124pub struct PaginationRequest {
1125    #[prost(message, optional, tag = "1")]
1126    pub page_size: ::core::option::Option<u32>,
1127    #[prost(message, optional, tag = "2")]
1128    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1129}
1130#[derive(serde::Serialize, serde::Deserialize)]
1131#[serde(rename_all = "snake_case")]
1132#[derive(Clone, PartialEq, ::prost::Message)]
1133pub struct PaginationResponse {
1134    #[prost(message, optional, tag = "1")]
1135    pub total_size: ::core::option::Option<u32>,
1136    #[prost(message, optional, tag = "2")]
1137    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1138}
1139#[derive(serde::Serialize, serde::Deserialize)]
1140#[serde(rename_all = "snake_case")]
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct ListIncidentAggregationsRequest {
1143    #[prost(message, optional, tag = "1")]
1144    pub filter: ::core::option::Option<IncidentQueryFilter>,
1145    #[prost(message, repeated, tag = "2")]
1146    pub group_bys: ::prost::alloc::vec::Vec<GroupBy>,
1147    #[prost(message, optional, tag = "3")]
1148    pub pagination: ::core::option::Option<PaginationRequest>,
1149}
1150#[derive(serde::Serialize, serde::Deserialize)]
1151#[serde(rename_all = "snake_case")]
1152#[derive(Clone, PartialEq, ::prost::Message)]
1153pub struct ListIncidentAggregationsResponse {
1154    #[prost(message, repeated, tag = "1")]
1155    pub incident_aggs: ::prost::alloc::vec::Vec<IncidentAggregation>,
1156    #[prost(message, optional, tag = "2")]
1157    pub pagination: ::core::option::Option<PaginationResponse>,
1158}
1159#[derive(serde::Serialize, serde::Deserialize)]
1160#[serde(rename_all = "snake_case")]
1161#[derive(Clone, PartialEq, ::prost::Message)]
1162pub struct GetFilterValuesRequest {
1163    #[prost(message, optional, tag = "1")]
1164    pub filter: ::core::option::Option<IncidentQueryFilter>,
1165}
1166#[derive(serde::Serialize, serde::Deserialize)]
1167#[serde(rename_all = "snake_case")]
1168#[derive(Clone, PartialEq, ::prost::Message)]
1169pub struct GetFilterValuesResponse {
1170    #[prost(message, optional, tag = "1")]
1171    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1172}
1173#[derive(serde::Serialize, serde::Deserialize)]
1174#[serde(rename_all = "snake_case")]
1175#[derive(Clone, PartialEq, ::prost::Message)]
1176pub struct GetIncidentEventsRequest {
1177    #[prost(message, optional, tag = "1")]
1178    pub incident_id: ::core::option::Option<::prost::alloc::string::String>,
1179}
1180#[derive(serde::Serialize, serde::Deserialize)]
1181#[serde(rename_all = "snake_case")]
1182#[derive(Clone, PartialEq, ::prost::Message)]
1183pub struct GetIncidentEventsResponse {
1184    #[prost(message, repeated, tag = "1")]
1185    pub incident_events: ::prost::alloc::vec::Vec<IncidentEvent>,
1186}
1187#[derive(serde::Serialize, serde::Deserialize)]
1188#[serde(rename_all = "snake_case")]
1189#[derive(Clone, PartialEq, ::prost::Message)]
1190pub struct AssignIncidentsRequest {
1191    #[prost(message, repeated, tag = "5")]
1192    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1193    #[prost(message, optional, tag = "2")]
1194    pub assigned_to: ::core::option::Option<UserDetails>,
1195}
1196#[derive(serde::Serialize, serde::Deserialize)]
1197#[serde(rename_all = "snake_case")]
1198#[derive(Clone, PartialEq, ::prost::Message)]
1199pub struct UnassignIncidentsRequest {
1200    #[prost(message, repeated, tag = "1")]
1201    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1202}
1203#[derive(serde::Serialize, serde::Deserialize)]
1204#[serde(rename_all = "snake_case")]
1205#[derive(Clone, PartialEq, ::prost::Message)]
1206pub struct UnassignIncidentsResponse {
1207    #[prost(message, repeated, tag = "1")]
1208    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1209}
1210#[derive(serde::Serialize, serde::Deserialize)]
1211#[serde(rename_all = "snake_case")]
1212#[derive(Clone, PartialEq, ::prost::Message)]
1213pub struct AssignIncidentsResponse {
1214    #[prost(message, repeated, tag = "2")]
1215    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1216}
1217#[derive(serde::Serialize, serde::Deserialize)]
1218#[serde(rename_all = "snake_case")]
1219#[derive(Clone, PartialEq, ::prost::Message)]
1220pub struct AcknowledgeIncidentsRequest {
1221    #[prost(message, repeated, tag = "2")]
1222    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1223}
1224#[derive(serde::Serialize, serde::Deserialize)]
1225#[serde(rename_all = "snake_case")]
1226#[derive(Clone, PartialEq, ::prost::Message)]
1227pub struct AcknowledgeIncidentsResponse {
1228    #[prost(message, repeated, tag = "2")]
1229    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1230}
1231#[derive(serde::Serialize, serde::Deserialize)]
1232#[serde(rename_all = "snake_case")]
1233#[derive(Clone, PartialEq, ::prost::Message)]
1234pub struct CloseIncidentsRequest {
1235    #[prost(message, repeated, tag = "2")]
1236    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1237}
1238#[derive(serde::Serialize, serde::Deserialize)]
1239#[serde(rename_all = "snake_case")]
1240#[derive(Clone, PartialEq, ::prost::Message)]
1241pub struct CloseIncidentsResponse {
1242    #[prost(message, repeated, tag = "2")]
1243    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1244}
1245#[derive(serde::Serialize, serde::Deserialize)]
1246#[serde(rename_all = "snake_case")]
1247#[derive(Clone, PartialEq, ::prost::Message)]
1248pub struct ResolveIncidentsRequest {
1249    #[prost(message, repeated, tag = "1")]
1250    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1251}
1252#[derive(serde::Serialize, serde::Deserialize)]
1253#[serde(rename_all = "snake_case")]
1254#[derive(Clone, PartialEq, ::prost::Message)]
1255pub struct ResolveIncidentsResponse {
1256    #[prost(message, repeated, tag = "1")]
1257    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1258}
1259#[derive(serde::Serialize, serde::Deserialize)]
1260#[serde(rename_all = "snake_case")]
1261#[derive(Clone, PartialEq, ::prost::Message)]
1262pub struct GetIncidentUsingCorrelationKeyRequest {
1263    #[prost(message, optional, tag = "1")]
1264    pub correlation_key: ::core::option::Option<::prost::alloc::string::String>,
1265    #[prost(message, optional, tag = "2")]
1266    pub incident_point_in_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
1267}
1268#[derive(serde::Serialize, serde::Deserialize)]
1269#[serde(rename_all = "snake_case")]
1270#[derive(Clone, PartialEq, ::prost::Message)]
1271pub struct GetIncidentUsingCorrelationKeyResponse {
1272    #[prost(message, optional, tag = "1")]
1273    pub incident: ::core::option::Option<Incident>,
1274}
1275#[derive(serde::Serialize, serde::Deserialize)]
1276#[serde(rename_all = "snake_case")]
1277#[derive(Clone, PartialEq, ::prost::Message)]
1278pub struct ListIncidentEventsRequest {
1279    #[prost(message, optional, tag = "1")]
1280    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1281    #[prost(message, optional, tag = "2")]
1282    pub pagination: ::core::option::Option<PaginationRequest>,
1283    #[prost(message, optional, tag = "3")]
1284    pub order_by: ::core::option::Option<ListIncidentEventRequestOrderBy>,
1285}
1286#[derive(serde::Serialize, serde::Deserialize)]
1287#[serde(rename_all = "snake_case")]
1288#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1289pub struct ListIncidentEventRequestOrderBy {
1290    #[prost(enumeration = "IncidentEventOrderByFieldType", tag = "1")]
1291    pub field: i32,
1292    #[prost(enumeration = "OrderByDirection", tag = "2")]
1293    pub direction: i32,
1294}
1295#[derive(serde::Serialize, serde::Deserialize)]
1296#[serde(rename_all = "snake_case")]
1297#[derive(Clone, PartialEq, ::prost::Message)]
1298pub struct ListIncidentEventsResponse {
1299    #[prost(message, repeated, tag = "1")]
1300    pub items: ::prost::alloc::vec::Vec<IncidentEventExtended>,
1301    #[prost(message, optional, tag = "2")]
1302    pub pagination: ::core::option::Option<PaginationResponse>,
1303}
1304#[derive(serde::Serialize, serde::Deserialize)]
1305#[serde(rename_all = "snake_case")]
1306#[derive(Clone, PartialEq, ::prost::Message)]
1307pub struct ListIncidentEventsTotalCountRequest {
1308    #[prost(message, optional, tag = "1")]
1309    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1310}
1311#[derive(serde::Serialize, serde::Deserialize)]
1312#[serde(rename_all = "snake_case")]
1313#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1314pub struct ListIncidentEventsTotalCountResponse {
1315    #[prost(message, optional, tag = "1")]
1316    pub count: ::core::option::Option<u64>,
1317    #[prost(message, optional, tag = "2")]
1318    pub reached_limit: ::core::option::Option<bool>,
1319}
1320#[derive(serde::Serialize, serde::Deserialize)]
1321#[serde(rename_all = "snake_case")]
1322#[derive(Clone, PartialEq, ::prost::Message)]
1323pub struct ListIncidentEventsFilterValuesRequest {
1324    #[prost(message, optional, tag = "1")]
1325    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1326}
1327#[derive(serde::Serialize, serde::Deserialize)]
1328#[serde(rename_all = "snake_case")]
1329#[derive(Clone, PartialEq, ::prost::Message)]
1330pub struct ListIncidentEventsFilterValuesResponse {
1331    #[prost(message, optional, tag = "1")]
1332    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1333}
1334#[derive(serde::Serialize, serde::Deserialize)]
1335#[serde(rename_all = "snake_case")]
1336#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1337#[repr(i32)]
1338pub enum IncidentEventOrderByFieldType {
1339    TimestampOrUnspecified = 0,
1340}
1341impl IncidentEventOrderByFieldType {
1342    /// String value of the enum field names used in the ProtoBuf definition.
1343    ///
1344    /// The values are not transformed in any way and thus are considered stable
1345    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1346    pub fn as_str_name(&self) -> &'static str {
1347        match self {
1348            Self::TimestampOrUnspecified => {
1349                "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED"
1350            }
1351        }
1352    }
1353    /// Creates an enum from field names used in the ProtoBuf definition.
1354    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1355        match value {
1356            "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED" => {
1357                Some(Self::TimestampOrUnspecified)
1358            }
1359            _ => None,
1360        }
1361    }
1362}
1363/// Generated client implementations.
1364pub mod incidents_service_client {
1365    #![allow(
1366        unused_variables,
1367        dead_code,
1368        missing_docs,
1369        clippy::wildcard_imports,
1370        clippy::let_unit_value,
1371    )]
1372    use tonic::codegen::*;
1373    use tonic::codegen::http::Uri;
1374    #[derive(Debug, Clone)]
1375    pub struct IncidentsServiceClient<T> {
1376        inner: tonic::client::Grpc<T>,
1377    }
1378    impl IncidentsServiceClient<tonic::transport::Channel> {
1379        /// Attempt to create a new client by connecting to a given endpoint.
1380        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1381        where
1382            D: TryInto<tonic::transport::Endpoint>,
1383            D::Error: Into<StdError>,
1384        {
1385            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1386            Ok(Self::new(conn))
1387        }
1388    }
1389    impl<T> IncidentsServiceClient<T>
1390    where
1391        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1392        T::Error: Into<StdError>,
1393        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1394        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1395    {
1396        pub fn new(inner: T) -> Self {
1397            let inner = tonic::client::Grpc::new(inner);
1398            Self { inner }
1399        }
1400        pub fn with_origin(inner: T, origin: Uri) -> Self {
1401            let inner = tonic::client::Grpc::with_origin(inner, origin);
1402            Self { inner }
1403        }
1404        pub fn with_interceptor<F>(
1405            inner: T,
1406            interceptor: F,
1407        ) -> IncidentsServiceClient<InterceptedService<T, F>>
1408        where
1409            F: tonic::service::Interceptor,
1410            T::ResponseBody: Default,
1411            T: tonic::codegen::Service<
1412                http::Request<tonic::body::BoxBody>,
1413                Response = http::Response<
1414                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1415                >,
1416            >,
1417            <T as tonic::codegen::Service<
1418                http::Request<tonic::body::BoxBody>,
1419            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1420        {
1421            IncidentsServiceClient::new(InterceptedService::new(inner, interceptor))
1422        }
1423        /// Compress requests with the given encoding.
1424        ///
1425        /// This requires the server to support it otherwise it might respond with an
1426        /// error.
1427        #[must_use]
1428        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1429            self.inner = self.inner.send_compressed(encoding);
1430            self
1431        }
1432        /// Enable decompressing responses.
1433        #[must_use]
1434        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1435            self.inner = self.inner.accept_compressed(encoding);
1436            self
1437        }
1438        /// Limits the maximum size of a decoded message.
1439        ///
1440        /// Default: `4MB`
1441        #[must_use]
1442        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1443            self.inner = self.inner.max_decoding_message_size(limit);
1444            self
1445        }
1446        /// Limits the maximum size of an encoded message.
1447        ///
1448        /// Default: `usize::MAX`
1449        #[must_use]
1450        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1451            self.inner = self.inner.max_encoding_message_size(limit);
1452            self
1453        }
1454        pub async fn get_incident(
1455            &mut self,
1456            request: impl tonic::IntoRequest<super::GetIncidentRequest>,
1457        ) -> std::result::Result<
1458            tonic::Response<super::GetIncidentResponse>,
1459            tonic::Status,
1460        > {
1461            self.inner
1462                .ready()
1463                .await
1464                .map_err(|e| {
1465                    tonic::Status::unknown(
1466                        format!("Service was not ready: {}", e.into()),
1467                    )
1468                })?;
1469            let codec = tonic::codec::ProstCodec::default();
1470            let path = http::uri::PathAndQuery::from_static(
1471                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncident",
1472            );
1473            let mut req = request.into_request();
1474            req.extensions_mut()
1475                .insert(
1476                    GrpcMethod::new(
1477                        "com.coralogixapis.incidents.v1.IncidentsService",
1478                        "GetIncident",
1479                    ),
1480                );
1481            self.inner.unary(req, path, codec).await
1482        }
1483        pub async fn batch_get_incident(
1484            &mut self,
1485            request: impl tonic::IntoRequest<super::BatchGetIncidentRequest>,
1486        ) -> std::result::Result<
1487            tonic::Response<super::BatchGetIncidentResponse>,
1488            tonic::Status,
1489        > {
1490            self.inner
1491                .ready()
1492                .await
1493                .map_err(|e| {
1494                    tonic::Status::unknown(
1495                        format!("Service was not ready: {}", e.into()),
1496                    )
1497                })?;
1498            let codec = tonic::codec::ProstCodec::default();
1499            let path = http::uri::PathAndQuery::from_static(
1500                "/com.coralogixapis.incidents.v1.IncidentsService/BatchGetIncident",
1501            );
1502            let mut req = request.into_request();
1503            req.extensions_mut()
1504                .insert(
1505                    GrpcMethod::new(
1506                        "com.coralogixapis.incidents.v1.IncidentsService",
1507                        "BatchGetIncident",
1508                    ),
1509                );
1510            self.inner.unary(req, path, codec).await
1511        }
1512        pub async fn list_incidents(
1513            &mut self,
1514            request: impl tonic::IntoRequest<super::ListIncidentsRequest>,
1515        ) -> std::result::Result<
1516            tonic::Response<super::ListIncidentsResponse>,
1517            tonic::Status,
1518        > {
1519            self.inner
1520                .ready()
1521                .await
1522                .map_err(|e| {
1523                    tonic::Status::unknown(
1524                        format!("Service was not ready: {}", e.into()),
1525                    )
1526                })?;
1527            let codec = tonic::codec::ProstCodec::default();
1528            let path = http::uri::PathAndQuery::from_static(
1529                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidents",
1530            );
1531            let mut req = request.into_request();
1532            req.extensions_mut()
1533                .insert(
1534                    GrpcMethod::new(
1535                        "com.coralogixapis.incidents.v1.IncidentsService",
1536                        "ListIncidents",
1537                    ),
1538                );
1539            self.inner.unary(req, path, codec).await
1540        }
1541        pub async fn list_incident_aggregations(
1542            &mut self,
1543            request: impl tonic::IntoRequest<super::ListIncidentAggregationsRequest>,
1544        ) -> std::result::Result<
1545            tonic::Response<super::ListIncidentAggregationsResponse>,
1546            tonic::Status,
1547        > {
1548            self.inner
1549                .ready()
1550                .await
1551                .map_err(|e| {
1552                    tonic::Status::unknown(
1553                        format!("Service was not ready: {}", e.into()),
1554                    )
1555                })?;
1556            let codec = tonic::codec::ProstCodec::default();
1557            let path = http::uri::PathAndQuery::from_static(
1558                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentAggregations",
1559            );
1560            let mut req = request.into_request();
1561            req.extensions_mut()
1562                .insert(
1563                    GrpcMethod::new(
1564                        "com.coralogixapis.incidents.v1.IncidentsService",
1565                        "ListIncidentAggregations",
1566                    ),
1567                );
1568            self.inner.unary(req, path, codec).await
1569        }
1570        pub async fn get_filter_values(
1571            &mut self,
1572            request: impl tonic::IntoRequest<super::GetFilterValuesRequest>,
1573        ) -> std::result::Result<
1574            tonic::Response<super::GetFilterValuesResponse>,
1575            tonic::Status,
1576        > {
1577            self.inner
1578                .ready()
1579                .await
1580                .map_err(|e| {
1581                    tonic::Status::unknown(
1582                        format!("Service was not ready: {}", e.into()),
1583                    )
1584                })?;
1585            let codec = tonic::codec::ProstCodec::default();
1586            let path = http::uri::PathAndQuery::from_static(
1587                "/com.coralogixapis.incidents.v1.IncidentsService/GetFilterValues",
1588            );
1589            let mut req = request.into_request();
1590            req.extensions_mut()
1591                .insert(
1592                    GrpcMethod::new(
1593                        "com.coralogixapis.incidents.v1.IncidentsService",
1594                        "GetFilterValues",
1595                    ),
1596                );
1597            self.inner.unary(req, path, codec).await
1598        }
1599        pub async fn assign_incidents(
1600            &mut self,
1601            request: impl tonic::IntoRequest<super::AssignIncidentsRequest>,
1602        ) -> std::result::Result<
1603            tonic::Response<super::AssignIncidentsResponse>,
1604            tonic::Status,
1605        > {
1606            self.inner
1607                .ready()
1608                .await
1609                .map_err(|e| {
1610                    tonic::Status::unknown(
1611                        format!("Service was not ready: {}", e.into()),
1612                    )
1613                })?;
1614            let codec = tonic::codec::ProstCodec::default();
1615            let path = http::uri::PathAndQuery::from_static(
1616                "/com.coralogixapis.incidents.v1.IncidentsService/AssignIncidents",
1617            );
1618            let mut req = request.into_request();
1619            req.extensions_mut()
1620                .insert(
1621                    GrpcMethod::new(
1622                        "com.coralogixapis.incidents.v1.IncidentsService",
1623                        "AssignIncidents",
1624                    ),
1625                );
1626            self.inner.unary(req, path, codec).await
1627        }
1628        pub async fn unassign_incidents(
1629            &mut self,
1630            request: impl tonic::IntoRequest<super::UnassignIncidentsRequest>,
1631        ) -> std::result::Result<
1632            tonic::Response<super::UnassignIncidentsResponse>,
1633            tonic::Status,
1634        > {
1635            self.inner
1636                .ready()
1637                .await
1638                .map_err(|e| {
1639                    tonic::Status::unknown(
1640                        format!("Service was not ready: {}", e.into()),
1641                    )
1642                })?;
1643            let codec = tonic::codec::ProstCodec::default();
1644            let path = http::uri::PathAndQuery::from_static(
1645                "/com.coralogixapis.incidents.v1.IncidentsService/UnassignIncidents",
1646            );
1647            let mut req = request.into_request();
1648            req.extensions_mut()
1649                .insert(
1650                    GrpcMethod::new(
1651                        "com.coralogixapis.incidents.v1.IncidentsService",
1652                        "UnassignIncidents",
1653                    ),
1654                );
1655            self.inner.unary(req, path, codec).await
1656        }
1657        pub async fn acknowledge_incidents(
1658            &mut self,
1659            request: impl tonic::IntoRequest<super::AcknowledgeIncidentsRequest>,
1660        ) -> std::result::Result<
1661            tonic::Response<super::AcknowledgeIncidentsResponse>,
1662            tonic::Status,
1663        > {
1664            self.inner
1665                .ready()
1666                .await
1667                .map_err(|e| {
1668                    tonic::Status::unknown(
1669                        format!("Service was not ready: {}", e.into()),
1670                    )
1671                })?;
1672            let codec = tonic::codec::ProstCodec::default();
1673            let path = http::uri::PathAndQuery::from_static(
1674                "/com.coralogixapis.incidents.v1.IncidentsService/AcknowledgeIncidents",
1675            );
1676            let mut req = request.into_request();
1677            req.extensions_mut()
1678                .insert(
1679                    GrpcMethod::new(
1680                        "com.coralogixapis.incidents.v1.IncidentsService",
1681                        "AcknowledgeIncidents",
1682                    ),
1683                );
1684            self.inner.unary(req, path, codec).await
1685        }
1686        pub async fn close_incidents(
1687            &mut self,
1688            request: impl tonic::IntoRequest<super::CloseIncidentsRequest>,
1689        ) -> std::result::Result<
1690            tonic::Response<super::CloseIncidentsResponse>,
1691            tonic::Status,
1692        > {
1693            self.inner
1694                .ready()
1695                .await
1696                .map_err(|e| {
1697                    tonic::Status::unknown(
1698                        format!("Service was not ready: {}", e.into()),
1699                    )
1700                })?;
1701            let codec = tonic::codec::ProstCodec::default();
1702            let path = http::uri::PathAndQuery::from_static(
1703                "/com.coralogixapis.incidents.v1.IncidentsService/CloseIncidents",
1704            );
1705            let mut req = request.into_request();
1706            req.extensions_mut()
1707                .insert(
1708                    GrpcMethod::new(
1709                        "com.coralogixapis.incidents.v1.IncidentsService",
1710                        "CloseIncidents",
1711                    ),
1712                );
1713            self.inner.unary(req, path, codec).await
1714        }
1715        pub async fn get_incident_events(
1716            &mut self,
1717            request: impl tonic::IntoRequest<super::GetIncidentEventsRequest>,
1718        ) -> std::result::Result<
1719            tonic::Response<super::GetIncidentEventsResponse>,
1720            tonic::Status,
1721        > {
1722            self.inner
1723                .ready()
1724                .await
1725                .map_err(|e| {
1726                    tonic::Status::unknown(
1727                        format!("Service was not ready: {}", e.into()),
1728                    )
1729                })?;
1730            let codec = tonic::codec::ProstCodec::default();
1731            let path = http::uri::PathAndQuery::from_static(
1732                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentEvents",
1733            );
1734            let mut req = request.into_request();
1735            req.extensions_mut()
1736                .insert(
1737                    GrpcMethod::new(
1738                        "com.coralogixapis.incidents.v1.IncidentsService",
1739                        "GetIncidentEvents",
1740                    ),
1741                );
1742            self.inner.unary(req, path, codec).await
1743        }
1744        pub async fn resolve_incidents(
1745            &mut self,
1746            request: impl tonic::IntoRequest<super::ResolveIncidentsRequest>,
1747        ) -> std::result::Result<
1748            tonic::Response<super::ResolveIncidentsResponse>,
1749            tonic::Status,
1750        > {
1751            self.inner
1752                .ready()
1753                .await
1754                .map_err(|e| {
1755                    tonic::Status::unknown(
1756                        format!("Service was not ready: {}", e.into()),
1757                    )
1758                })?;
1759            let codec = tonic::codec::ProstCodec::default();
1760            let path = http::uri::PathAndQuery::from_static(
1761                "/com.coralogixapis.incidents.v1.IncidentsService/ResolveIncidents",
1762            );
1763            let mut req = request.into_request();
1764            req.extensions_mut()
1765                .insert(
1766                    GrpcMethod::new(
1767                        "com.coralogixapis.incidents.v1.IncidentsService",
1768                        "ResolveIncidents",
1769                    ),
1770                );
1771            self.inner.unary(req, path, codec).await
1772        }
1773        ///
1774        /// This shouldn't be exposed in the docs, it has no external usecase
1775        pub async fn get_incident_using_correlation_key(
1776            &mut self,
1777            request: impl tonic::IntoRequest<
1778                super::GetIncidentUsingCorrelationKeyRequest,
1779            >,
1780        ) -> std::result::Result<
1781            tonic::Response<super::GetIncidentUsingCorrelationKeyResponse>,
1782            tonic::Status,
1783        > {
1784            self.inner
1785                .ready()
1786                .await
1787                .map_err(|e| {
1788                    tonic::Status::unknown(
1789                        format!("Service was not ready: {}", e.into()),
1790                    )
1791                })?;
1792            let codec = tonic::codec::ProstCodec::default();
1793            let path = http::uri::PathAndQuery::from_static(
1794                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentUsingCorrelationKey",
1795            );
1796            let mut req = request.into_request();
1797            req.extensions_mut()
1798                .insert(
1799                    GrpcMethod::new(
1800                        "com.coralogixapis.incidents.v1.IncidentsService",
1801                        "GetIncidentUsingCorrelationKey",
1802                    ),
1803                );
1804            self.inner.unary(req, path, codec).await
1805        }
1806        pub async fn list_incident_events(
1807            &mut self,
1808            request: impl tonic::IntoRequest<super::ListIncidentEventsRequest>,
1809        ) -> std::result::Result<
1810            tonic::Response<super::ListIncidentEventsResponse>,
1811            tonic::Status,
1812        > {
1813            self.inner
1814                .ready()
1815                .await
1816                .map_err(|e| {
1817                    tonic::Status::unknown(
1818                        format!("Service was not ready: {}", e.into()),
1819                    )
1820                })?;
1821            let codec = tonic::codec::ProstCodec::default();
1822            let path = http::uri::PathAndQuery::from_static(
1823                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEvents",
1824            );
1825            let mut req = request.into_request();
1826            req.extensions_mut()
1827                .insert(
1828                    GrpcMethod::new(
1829                        "com.coralogixapis.incidents.v1.IncidentsService",
1830                        "ListIncidentEvents",
1831                    ),
1832                );
1833            self.inner.unary(req, path, codec).await
1834        }
1835        pub async fn list_incident_events_total_count(
1836            &mut self,
1837            request: impl tonic::IntoRequest<super::ListIncidentEventsTotalCountRequest>,
1838        ) -> std::result::Result<
1839            tonic::Response<super::ListIncidentEventsTotalCountResponse>,
1840            tonic::Status,
1841        > {
1842            self.inner
1843                .ready()
1844                .await
1845                .map_err(|e| {
1846                    tonic::Status::unknown(
1847                        format!("Service was not ready: {}", e.into()),
1848                    )
1849                })?;
1850            let codec = tonic::codec::ProstCodec::default();
1851            let path = http::uri::PathAndQuery::from_static(
1852                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsTotalCount",
1853            );
1854            let mut req = request.into_request();
1855            req.extensions_mut()
1856                .insert(
1857                    GrpcMethod::new(
1858                        "com.coralogixapis.incidents.v1.IncidentsService",
1859                        "ListIncidentEventsTotalCount",
1860                    ),
1861                );
1862            self.inner.unary(req, path, codec).await
1863        }
1864        pub async fn list_incident_events_filter_values(
1865            &mut self,
1866            request: impl tonic::IntoRequest<
1867                super::ListIncidentEventsFilterValuesRequest,
1868            >,
1869        ) -> std::result::Result<
1870            tonic::Response<super::ListIncidentEventsFilterValuesResponse>,
1871            tonic::Status,
1872        > {
1873            self.inner
1874                .ready()
1875                .await
1876                .map_err(|e| {
1877                    tonic::Status::unknown(
1878                        format!("Service was not ready: {}", e.into()),
1879                    )
1880                })?;
1881            let codec = tonic::codec::ProstCodec::default();
1882            let path = http::uri::PathAndQuery::from_static(
1883                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsFilterValues",
1884            );
1885            let mut req = request.into_request();
1886            req.extensions_mut()
1887                .insert(
1888                    GrpcMethod::new(
1889                        "com.coralogixapis.incidents.v1.IncidentsService",
1890                        "ListIncidentEventsFilterValues",
1891                    ),
1892                );
1893            self.inner.unary(req, path, codec).await
1894        }
1895    }
1896}