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    #[prost(map = "string, message", tag = "16")]
932    pub display_labels: ::std::collections::HashMap<
933        ::prost::alloc::string::String,
934        DisplayLabelValues,
935    >,
936}
937#[derive(serde::Serialize, serde::Deserialize)]
938#[serde(rename_all = "snake_case")]
939#[derive(Clone, Copy, PartialEq, ::prost::Message)]
940pub struct TimeRange {
941    #[prost(message, optional, tag = "1")]
942    pub start_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
943    #[prost(message, optional, tag = "2")]
944    pub end_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
945}
946#[derive(serde::Serialize, serde::Deserialize)]
947#[serde(rename_all = "snake_case")]
948#[derive(Clone, PartialEq, ::prost::Message)]
949pub struct ContextualLabelValues {
950    #[prost(message, repeated, tag = "1")]
951    pub contextual_label_values: ::prost::alloc::vec::Vec<
952        ::prost::alloc::string::String,
953    >,
954}
955#[derive(serde::Serialize, serde::Deserialize)]
956#[serde(rename_all = "snake_case")]
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct DisplayLabelValues {
959    #[prost(message, repeated, tag = "1")]
960    pub display_label_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
961}
962#[derive(serde::Serialize, serde::Deserialize)]
963#[serde(rename_all = "snake_case")]
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct IncidentEventQueryFilter {
966    #[prost(enumeration = "IncidentStatus", repeated, packed = "false", tag = "1")]
967    pub status: ::prost::alloc::vec::Vec<i32>,
968    #[prost(enumeration = "IncidentSeverity", repeated, packed = "false", tag = "2")]
969    pub severity: ::prost::alloc::vec::Vec<i32>,
970    #[prost(map = "string, message", tag = "3")]
971    pub contextual_labels: ::std::collections::HashMap<
972        ::prost::alloc::string::String,
973        ContextualLabelValues,
974    >,
975    #[prost(message, optional, tag = "4")]
976    pub name: ::core::option::Option<::prost::alloc::string::String>,
977    #[prost(message, optional, tag = "5")]
978    pub is_muted: ::core::option::Option<bool>,
979    #[prost(message, optional, tag = "6")]
980    pub timestamp: ::core::option::Option<TimeRange>,
981    #[prost(message, optional, tag = "7")]
982    pub labels: ::core::option::Option<LabelsFilter>,
983    #[prost(map = "string, message", tag = "8")]
984    pub display_labels: ::std::collections::HashMap<
985        ::prost::alloc::string::String,
986        DisplayLabelValues,
987    >,
988}
989#[derive(serde::Serialize, serde::Deserialize)]
990#[serde(rename_all = "snake_case")]
991#[derive(Clone, PartialEq, ::prost::Message)]
992pub struct LabelsFilter {
993    #[prost(message, repeated, tag = "1")]
994    pub meta_labels: ::prost::alloc::vec::Vec<MetaLabel>,
995    #[prost(enumeration = "FilterOperator", tag = "2")]
996    pub operator: i32,
997}
998#[derive(serde::Serialize, serde::Deserialize)]
999#[serde(rename_all = "snake_case")]
1000#[derive(Clone, PartialEq, ::prost::Message)]
1001pub struct AssigneeWithCount {
1002    #[prost(message, optional, tag = "1")]
1003    pub assignee: ::core::option::Option<::prost::alloc::string::String>,
1004    #[prost(message, optional, tag = "2")]
1005    pub count: ::core::option::Option<i32>,
1006}
1007#[derive(serde::Serialize, serde::Deserialize)]
1008#[serde(rename_all = "snake_case")]
1009#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1010pub struct IncidentStatusWithCount {
1011    #[prost(enumeration = "IncidentStatus", tag = "1")]
1012    pub status: i32,
1013    #[prost(message, optional, tag = "2")]
1014    pub count: ::core::option::Option<i32>,
1015}
1016#[derive(serde::Serialize, serde::Deserialize)]
1017#[serde(rename_all = "snake_case")]
1018#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1019pub struct IncidentStateWithCount {
1020    #[prost(enumeration = "IncidentState", tag = "1")]
1021    pub state: i32,
1022    #[prost(message, optional, tag = "2")]
1023    pub count: ::core::option::Option<i32>,
1024}
1025#[derive(serde::Serialize, serde::Deserialize)]
1026#[serde(rename_all = "snake_case")]
1027#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1028pub struct IncidentSeverityWithCount {
1029    #[prost(enumeration = "IncidentSeverity", tag = "1")]
1030    pub severity: i32,
1031    #[prost(message, optional, tag = "2")]
1032    pub count: ::core::option::Option<i32>,
1033}
1034#[derive(serde::Serialize, serde::Deserialize)]
1035#[serde(rename_all = "snake_case")]
1036#[derive(Clone, PartialEq, ::prost::Message)]
1037pub struct IncidentMetaLabelsWithCount {
1038    #[prost(message, optional, tag = "1")]
1039    pub meta_label: ::core::option::Option<MetaLabel>,
1040    #[prost(message, optional, tag = "2")]
1041    pub count: ::core::option::Option<i32>,
1042}
1043#[derive(serde::Serialize, serde::Deserialize)]
1044#[serde(rename_all = "snake_case")]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct IncidentQueryFiltersValues {
1047    #[prost(message, repeated, tag = "1")]
1048    pub assignee_with_count: ::prost::alloc::vec::Vec<AssigneeWithCount>,
1049    #[prost(message, repeated, tag = "2")]
1050    pub status_with_count: ::prost::alloc::vec::Vec<IncidentStatusWithCount>,
1051    #[prost(message, repeated, tag = "3")]
1052    pub state_with_count: ::prost::alloc::vec::Vec<IncidentStateWithCount>,
1053    #[prost(message, repeated, tag = "4")]
1054    pub severity_with_count: ::prost::alloc::vec::Vec<IncidentSeverityWithCount>,
1055    #[prost(map = "string, message", tag = "5")]
1056    pub contextual_labels: ::std::collections::HashMap<
1057        ::prost::alloc::string::String,
1058        ContextualLabelValuesWithCount,
1059    >,
1060    #[prost(message, repeated, tag = "6")]
1061    pub meta_labels_with_count: ::prost::alloc::vec::Vec<IncidentMetaLabelsWithCount>,
1062    #[prost(enumeration = "FilterOperator", tag = "7")]
1063    pub meta_labels_op: i32,
1064    #[prost(map = "string, message", tag = "8")]
1065    pub display_labels: ::std::collections::HashMap<
1066        ::prost::alloc::string::String,
1067        DisplayLabelValuesWithCount,
1068    >,
1069}
1070#[derive(serde::Serialize, serde::Deserialize)]
1071#[serde(rename_all = "snake_case")]
1072#[derive(Clone, PartialEq, ::prost::Message)]
1073pub struct ContextualLabelValuesWithCount {
1074    #[prost(message, repeated, tag = "1")]
1075    pub values_with_count: ::prost::alloc::vec::Vec<ContextualLabelValueWithCount>,
1076}
1077#[derive(serde::Serialize, serde::Deserialize)]
1078#[serde(rename_all = "snake_case")]
1079#[derive(Clone, PartialEq, ::prost::Message)]
1080pub struct ContextualLabelValueWithCount {
1081    #[prost(message, optional, tag = "1")]
1082    pub contextual_label_value: ::core::option::Option<::prost::alloc::string::String>,
1083    #[prost(message, optional, tag = "2")]
1084    pub count: ::core::option::Option<i32>,
1085}
1086#[derive(serde::Serialize, serde::Deserialize)]
1087#[serde(rename_all = "snake_case")]
1088#[derive(Clone, PartialEq, ::prost::Message)]
1089pub struct DisplayLabelValuesWithCount {
1090    #[prost(message, repeated, tag = "1")]
1091    pub values_with_count: ::prost::alloc::vec::Vec<DisplayLabelValueWithCount>,
1092}
1093#[derive(serde::Serialize, serde::Deserialize)]
1094#[serde(rename_all = "snake_case")]
1095#[derive(Clone, PartialEq, ::prost::Message)]
1096pub struct DisplayLabelValueWithCount {
1097    #[prost(message, optional, tag = "1")]
1098    pub display_label_value: ::core::option::Option<::prost::alloc::string::String>,
1099    #[prost(message, optional, tag = "2")]
1100    pub count: ::core::option::Option<i32>,
1101}
1102#[derive(serde::Serialize, serde::Deserialize)]
1103#[serde(rename_all = "snake_case")]
1104#[derive(Clone, PartialEq, ::prost::Message)]
1105pub struct GetIncidentRequest {
1106    #[prost(message, optional, tag = "1")]
1107    pub id: ::core::option::Option<::prost::alloc::string::String>,
1108}
1109#[derive(serde::Serialize, serde::Deserialize)]
1110#[serde(rename_all = "snake_case")]
1111#[derive(Clone, PartialEq, ::prost::Message)]
1112pub struct GetIncidentResponse {
1113    #[prost(message, optional, tag = "1")]
1114    pub incident: ::core::option::Option<Incident>,
1115}
1116#[derive(serde::Serialize, serde::Deserialize)]
1117#[serde(rename_all = "snake_case")]
1118#[derive(Clone, PartialEq, ::prost::Message)]
1119pub struct ListIncidentsResponse {
1120    #[prost(message, repeated, tag = "1")]
1121    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1122    #[prost(message, optional, tag = "4")]
1123    pub pagination: ::core::option::Option<PaginationResponse>,
1124}
1125#[derive(serde::Serialize, serde::Deserialize)]
1126#[serde(rename_all = "snake_case")]
1127#[derive(Clone, PartialEq, ::prost::Message)]
1128pub struct ListIncidentsRequest {
1129    #[prost(message, optional, tag = "4")]
1130    pub filter: ::core::option::Option<IncidentQueryFilter>,
1131    #[prost(message, optional, tag = "5")]
1132    pub pagination: ::core::option::Option<PaginationRequest>,
1133    #[prost(message, repeated, tag = "6")]
1134    pub order_bys: ::prost::alloc::vec::Vec<OrderBy>,
1135}
1136#[derive(serde::Serialize, serde::Deserialize)]
1137#[serde(rename_all = "snake_case")]
1138#[derive(Clone, PartialEq, ::prost::Message)]
1139pub struct BatchGetIncidentRequest {
1140    #[prost(message, repeated, tag = "1")]
1141    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1142}
1143#[derive(serde::Serialize, serde::Deserialize)]
1144#[serde(rename_all = "snake_case")]
1145#[derive(Clone, PartialEq, ::prost::Message)]
1146pub struct BatchGetIncidentResponse {
1147    #[prost(map = "string, message", tag = "1")]
1148    pub incidents: ::std::collections::HashMap<::prost::alloc::string::String, Incident>,
1149    #[prost(message, repeated, tag = "2")]
1150    pub not_found_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1151}
1152#[derive(serde::Serialize, serde::Deserialize)]
1153#[serde(rename_all = "snake_case")]
1154#[derive(Clone, PartialEq, ::prost::Message)]
1155pub struct DeleteIncidentRequest {
1156    #[prost(message, optional, tag = "1")]
1157    pub id: ::core::option::Option<::prost::alloc::string::String>,
1158}
1159#[derive(serde::Serialize, serde::Deserialize)]
1160#[serde(rename_all = "snake_case")]
1161#[derive(Clone, PartialEq, ::prost::Message)]
1162pub struct PaginationRequest {
1163    #[prost(message, optional, tag = "1")]
1164    pub page_size: ::core::option::Option<u32>,
1165    #[prost(message, optional, tag = "2")]
1166    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
1167}
1168#[derive(serde::Serialize, serde::Deserialize)]
1169#[serde(rename_all = "snake_case")]
1170#[derive(Clone, PartialEq, ::prost::Message)]
1171pub struct PaginationResponse {
1172    #[prost(message, optional, tag = "1")]
1173    pub total_size: ::core::option::Option<u32>,
1174    #[prost(message, optional, tag = "2")]
1175    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
1176}
1177#[derive(serde::Serialize, serde::Deserialize)]
1178#[serde(rename_all = "snake_case")]
1179#[derive(Clone, PartialEq, ::prost::Message)]
1180pub struct ListIncidentAggregationsRequest {
1181    #[prost(message, optional, tag = "1")]
1182    pub filter: ::core::option::Option<IncidentQueryFilter>,
1183    #[prost(message, repeated, tag = "2")]
1184    pub group_bys: ::prost::alloc::vec::Vec<GroupBy>,
1185    #[prost(message, optional, tag = "3")]
1186    pub pagination: ::core::option::Option<PaginationRequest>,
1187}
1188#[derive(serde::Serialize, serde::Deserialize)]
1189#[serde(rename_all = "snake_case")]
1190#[derive(Clone, PartialEq, ::prost::Message)]
1191pub struct ListIncidentAggregationsResponse {
1192    #[prost(message, repeated, tag = "1")]
1193    pub incident_aggs: ::prost::alloc::vec::Vec<IncidentAggregation>,
1194    #[prost(message, optional, tag = "2")]
1195    pub pagination: ::core::option::Option<PaginationResponse>,
1196}
1197#[derive(serde::Serialize, serde::Deserialize)]
1198#[serde(rename_all = "snake_case")]
1199#[derive(Clone, PartialEq, ::prost::Message)]
1200pub struct GetFilterValuesRequest {
1201    #[prost(message, optional, tag = "1")]
1202    pub filter: ::core::option::Option<IncidentQueryFilter>,
1203}
1204#[derive(serde::Serialize, serde::Deserialize)]
1205#[serde(rename_all = "snake_case")]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct GetFilterValuesResponse {
1208    #[prost(message, optional, tag = "1")]
1209    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1210}
1211#[derive(serde::Serialize, serde::Deserialize)]
1212#[serde(rename_all = "snake_case")]
1213#[derive(Clone, PartialEq, ::prost::Message)]
1214pub struct GetIncidentEventsRequest {
1215    #[prost(message, optional, tag = "1")]
1216    pub incident_id: ::core::option::Option<::prost::alloc::string::String>,
1217}
1218#[derive(serde::Serialize, serde::Deserialize)]
1219#[serde(rename_all = "snake_case")]
1220#[derive(Clone, PartialEq, ::prost::Message)]
1221pub struct GetIncidentEventsResponse {
1222    #[prost(message, repeated, tag = "1")]
1223    pub incident_events: ::prost::alloc::vec::Vec<IncidentEvent>,
1224}
1225#[derive(serde::Serialize, serde::Deserialize)]
1226#[serde(rename_all = "snake_case")]
1227#[derive(Clone, PartialEq, ::prost::Message)]
1228pub struct AssignIncidentsRequest {
1229    #[prost(message, repeated, tag = "5")]
1230    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1231    #[prost(message, optional, tag = "2")]
1232    pub assigned_to: ::core::option::Option<UserDetails>,
1233}
1234#[derive(serde::Serialize, serde::Deserialize)]
1235#[serde(rename_all = "snake_case")]
1236#[derive(Clone, PartialEq, ::prost::Message)]
1237pub struct UnassignIncidentsRequest {
1238    #[prost(message, repeated, tag = "1")]
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 UnassignIncidentsResponse {
1245    #[prost(message, repeated, tag = "1")]
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 AssignIncidentsResponse {
1252    #[prost(message, repeated, tag = "2")]
1253    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1254}
1255#[derive(serde::Serialize, serde::Deserialize)]
1256#[serde(rename_all = "snake_case")]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct AcknowledgeIncidentsRequest {
1259    #[prost(message, repeated, tag = "2")]
1260    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1261}
1262#[derive(serde::Serialize, serde::Deserialize)]
1263#[serde(rename_all = "snake_case")]
1264#[derive(Clone, PartialEq, ::prost::Message)]
1265pub struct AcknowledgeIncidentsResponse {
1266    #[prost(message, repeated, tag = "2")]
1267    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1268}
1269#[derive(serde::Serialize, serde::Deserialize)]
1270#[serde(rename_all = "snake_case")]
1271#[derive(Clone, PartialEq, ::prost::Message)]
1272pub struct CloseIncidentsRequest {
1273    #[prost(message, repeated, tag = "2")]
1274    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1275}
1276#[derive(serde::Serialize, serde::Deserialize)]
1277#[serde(rename_all = "snake_case")]
1278#[derive(Clone, PartialEq, ::prost::Message)]
1279pub struct CloseIncidentsResponse {
1280    #[prost(message, repeated, tag = "2")]
1281    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1282}
1283#[derive(serde::Serialize, serde::Deserialize)]
1284#[serde(rename_all = "snake_case")]
1285#[derive(Clone, PartialEq, ::prost::Message)]
1286pub struct ResolveIncidentsRequest {
1287    #[prost(message, repeated, tag = "1")]
1288    pub incident_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1289}
1290#[derive(serde::Serialize, serde::Deserialize)]
1291#[serde(rename_all = "snake_case")]
1292#[derive(Clone, PartialEq, ::prost::Message)]
1293pub struct ResolveIncidentsResponse {
1294    #[prost(message, repeated, tag = "1")]
1295    pub incidents: ::prost::alloc::vec::Vec<Incident>,
1296}
1297#[derive(serde::Serialize, serde::Deserialize)]
1298#[serde(rename_all = "snake_case")]
1299#[derive(Clone, PartialEq, ::prost::Message)]
1300pub struct GetIncidentByEventIdRequest {
1301    #[prost(message, optional, tag = "2")]
1302    pub event_id: ::core::option::Option<::prost::alloc::string::String>,
1303}
1304#[derive(serde::Serialize, serde::Deserialize)]
1305#[serde(rename_all = "snake_case")]
1306#[derive(Clone, PartialEq, ::prost::Message)]
1307pub struct GetIncidentByEventIdResponse {
1308    #[prost(message, optional, tag = "1")]
1309    pub incident: ::core::option::Option<Incident>,
1310}
1311#[derive(serde::Serialize, serde::Deserialize)]
1312#[serde(rename_all = "snake_case")]
1313#[derive(Clone, PartialEq, ::prost::Message)]
1314pub struct AcknowledgeIncidentByEventIdRequest {
1315    #[prost(message, optional, tag = "2")]
1316    pub event_id: ::core::option::Option<::prost::alloc::string::String>,
1317}
1318#[derive(serde::Serialize, serde::Deserialize)]
1319#[serde(rename_all = "snake_case")]
1320#[derive(Clone, PartialEq, ::prost::Message)]
1321pub struct AcknowledgeIncidentByEventIdResponse {
1322    #[prost(message, optional, tag = "2")]
1323    pub incident: ::core::option::Option<Incident>,
1324}
1325#[derive(serde::Serialize, serde::Deserialize)]
1326#[serde(rename_all = "snake_case")]
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct ResolveIncidentByEventIdRequest {
1329    #[prost(message, optional, tag = "2")]
1330    pub event_id: ::core::option::Option<::prost::alloc::string::String>,
1331}
1332#[derive(serde::Serialize, serde::Deserialize)]
1333#[serde(rename_all = "snake_case")]
1334#[derive(Clone, PartialEq, ::prost::Message)]
1335pub struct ResolveIncidentByEventIdResponse {
1336    #[prost(message, optional, tag = "2")]
1337    pub incident: ::core::option::Option<Incident>,
1338}
1339#[derive(serde::Serialize, serde::Deserialize)]
1340#[serde(rename_all = "snake_case")]
1341#[derive(Clone, PartialEq, ::prost::Message)]
1342pub struct GetIncidentUsingCorrelationKeyRequest {
1343    #[prost(message, optional, tag = "1")]
1344    pub correlation_key: ::core::option::Option<::prost::alloc::string::String>,
1345    #[prost(message, optional, tag = "2")]
1346    pub incident_point_in_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
1347}
1348#[derive(serde::Serialize, serde::Deserialize)]
1349#[serde(rename_all = "snake_case")]
1350#[derive(Clone, PartialEq, ::prost::Message)]
1351pub struct GetIncidentUsingCorrelationKeyResponse {
1352    #[prost(message, optional, tag = "1")]
1353    pub incident: ::core::option::Option<Incident>,
1354}
1355#[derive(serde::Serialize, serde::Deserialize)]
1356#[serde(rename_all = "snake_case")]
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct ListIncidentEventsRequest {
1359    #[prost(message, optional, tag = "1")]
1360    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1361    #[prost(message, optional, tag = "2")]
1362    pub pagination: ::core::option::Option<PaginationRequest>,
1363    #[prost(message, optional, tag = "3")]
1364    pub order_by: ::core::option::Option<ListIncidentEventRequestOrderBy>,
1365}
1366#[derive(serde::Serialize, serde::Deserialize)]
1367#[serde(rename_all = "snake_case")]
1368#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1369pub struct ListIncidentEventRequestOrderBy {
1370    #[prost(enumeration = "IncidentEventOrderByFieldType", tag = "1")]
1371    pub field: i32,
1372    #[prost(enumeration = "OrderByDirection", tag = "2")]
1373    pub direction: i32,
1374}
1375#[derive(serde::Serialize, serde::Deserialize)]
1376#[serde(rename_all = "snake_case")]
1377#[derive(Clone, PartialEq, ::prost::Message)]
1378pub struct ListIncidentEventsResponse {
1379    #[prost(message, repeated, tag = "1")]
1380    pub items: ::prost::alloc::vec::Vec<IncidentEventExtended>,
1381    #[prost(message, optional, tag = "2")]
1382    pub pagination: ::core::option::Option<PaginationResponse>,
1383}
1384#[derive(serde::Serialize, serde::Deserialize)]
1385#[serde(rename_all = "snake_case")]
1386#[derive(Clone, PartialEq, ::prost::Message)]
1387pub struct ListIncidentEventsTotalCountRequest {
1388    #[prost(message, optional, tag = "1")]
1389    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1390}
1391#[derive(serde::Serialize, serde::Deserialize)]
1392#[serde(rename_all = "snake_case")]
1393#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1394pub struct ListIncidentEventsTotalCountResponse {
1395    #[prost(message, optional, tag = "1")]
1396    pub count: ::core::option::Option<u64>,
1397    #[prost(message, optional, tag = "2")]
1398    pub reached_limit: ::core::option::Option<bool>,
1399}
1400#[derive(serde::Serialize, serde::Deserialize)]
1401#[serde(rename_all = "snake_case")]
1402#[derive(Clone, PartialEq, ::prost::Message)]
1403pub struct ListIncidentEventsFilterValuesRequest {
1404    #[prost(message, optional, tag = "1")]
1405    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1406}
1407#[derive(serde::Serialize, serde::Deserialize)]
1408#[serde(rename_all = "snake_case")]
1409#[derive(Clone, PartialEq, ::prost::Message)]
1410pub struct ListIncidentEventsFilterValuesResponse {
1411    #[prost(message, optional, tag = "1")]
1412    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1413}
1414#[derive(serde::Serialize, serde::Deserialize)]
1415#[serde(rename_all = "snake_case")]
1416#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1417#[repr(i32)]
1418pub enum IncidentEventOrderByFieldType {
1419    TimestampOrUnspecified = 0,
1420}
1421impl IncidentEventOrderByFieldType {
1422    /// String value of the enum field names used in the ProtoBuf definition.
1423    ///
1424    /// The values are not transformed in any way and thus are considered stable
1425    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1426    pub fn as_str_name(&self) -> &'static str {
1427        match self {
1428            Self::TimestampOrUnspecified => {
1429                "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED"
1430            }
1431        }
1432    }
1433    /// Creates an enum from field names used in the ProtoBuf definition.
1434    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1435        match value {
1436            "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED" => {
1437                Some(Self::TimestampOrUnspecified)
1438            }
1439            _ => None,
1440        }
1441    }
1442}
1443/// Generated client implementations.
1444pub mod incidents_service_client {
1445    #![allow(
1446        unused_variables,
1447        dead_code,
1448        missing_docs,
1449        clippy::wildcard_imports,
1450        clippy::let_unit_value,
1451    )]
1452    use tonic::codegen::*;
1453    use tonic::codegen::http::Uri;
1454    #[derive(Debug, Clone)]
1455    pub struct IncidentsServiceClient<T> {
1456        inner: tonic::client::Grpc<T>,
1457    }
1458    impl IncidentsServiceClient<tonic::transport::Channel> {
1459        /// Attempt to create a new client by connecting to a given endpoint.
1460        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1461        where
1462            D: TryInto<tonic::transport::Endpoint>,
1463            D::Error: Into<StdError>,
1464        {
1465            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1466            Ok(Self::new(conn))
1467        }
1468    }
1469    impl<T> IncidentsServiceClient<T>
1470    where
1471        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1472        T::Error: Into<StdError>,
1473        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1474        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1475    {
1476        pub fn new(inner: T) -> Self {
1477            let inner = tonic::client::Grpc::new(inner);
1478            Self { inner }
1479        }
1480        pub fn with_origin(inner: T, origin: Uri) -> Self {
1481            let inner = tonic::client::Grpc::with_origin(inner, origin);
1482            Self { inner }
1483        }
1484        pub fn with_interceptor<F>(
1485            inner: T,
1486            interceptor: F,
1487        ) -> IncidentsServiceClient<InterceptedService<T, F>>
1488        where
1489            F: tonic::service::Interceptor,
1490            T::ResponseBody: Default,
1491            T: tonic::codegen::Service<
1492                http::Request<tonic::body::BoxBody>,
1493                Response = http::Response<
1494                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1495                >,
1496            >,
1497            <T as tonic::codegen::Service<
1498                http::Request<tonic::body::BoxBody>,
1499            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1500        {
1501            IncidentsServiceClient::new(InterceptedService::new(inner, interceptor))
1502        }
1503        /// Compress requests with the given encoding.
1504        ///
1505        /// This requires the server to support it otherwise it might respond with an
1506        /// error.
1507        #[must_use]
1508        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1509            self.inner = self.inner.send_compressed(encoding);
1510            self
1511        }
1512        /// Enable decompressing responses.
1513        #[must_use]
1514        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1515            self.inner = self.inner.accept_compressed(encoding);
1516            self
1517        }
1518        /// Limits the maximum size of a decoded message.
1519        ///
1520        /// Default: `4MB`
1521        #[must_use]
1522        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1523            self.inner = self.inner.max_decoding_message_size(limit);
1524            self
1525        }
1526        /// Limits the maximum size of an encoded message.
1527        ///
1528        /// Default: `usize::MAX`
1529        #[must_use]
1530        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1531            self.inner = self.inner.max_encoding_message_size(limit);
1532            self
1533        }
1534        pub async fn get_incident(
1535            &mut self,
1536            request: impl tonic::IntoRequest<super::GetIncidentRequest>,
1537        ) -> std::result::Result<
1538            tonic::Response<super::GetIncidentResponse>,
1539            tonic::Status,
1540        > {
1541            self.inner
1542                .ready()
1543                .await
1544                .map_err(|e| {
1545                    tonic::Status::unknown(
1546                        format!("Service was not ready: {}", e.into()),
1547                    )
1548                })?;
1549            let codec = tonic::codec::ProstCodec::default();
1550            let path = http::uri::PathAndQuery::from_static(
1551                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncident",
1552            );
1553            let mut req = request.into_request();
1554            req.extensions_mut()
1555                .insert(
1556                    GrpcMethod::new(
1557                        "com.coralogixapis.incidents.v1.IncidentsService",
1558                        "GetIncident",
1559                    ),
1560                );
1561            self.inner.unary(req, path, codec).await
1562        }
1563        pub async fn batch_get_incident(
1564            &mut self,
1565            request: impl tonic::IntoRequest<super::BatchGetIncidentRequest>,
1566        ) -> std::result::Result<
1567            tonic::Response<super::BatchGetIncidentResponse>,
1568            tonic::Status,
1569        > {
1570            self.inner
1571                .ready()
1572                .await
1573                .map_err(|e| {
1574                    tonic::Status::unknown(
1575                        format!("Service was not ready: {}", e.into()),
1576                    )
1577                })?;
1578            let codec = tonic::codec::ProstCodec::default();
1579            let path = http::uri::PathAndQuery::from_static(
1580                "/com.coralogixapis.incidents.v1.IncidentsService/BatchGetIncident",
1581            );
1582            let mut req = request.into_request();
1583            req.extensions_mut()
1584                .insert(
1585                    GrpcMethod::new(
1586                        "com.coralogixapis.incidents.v1.IncidentsService",
1587                        "BatchGetIncident",
1588                    ),
1589                );
1590            self.inner.unary(req, path, codec).await
1591        }
1592        pub async fn list_incidents(
1593            &mut self,
1594            request: impl tonic::IntoRequest<super::ListIncidentsRequest>,
1595        ) -> std::result::Result<
1596            tonic::Response<super::ListIncidentsResponse>,
1597            tonic::Status,
1598        > {
1599            self.inner
1600                .ready()
1601                .await
1602                .map_err(|e| {
1603                    tonic::Status::unknown(
1604                        format!("Service was not ready: {}", e.into()),
1605                    )
1606                })?;
1607            let codec = tonic::codec::ProstCodec::default();
1608            let path = http::uri::PathAndQuery::from_static(
1609                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidents",
1610            );
1611            let mut req = request.into_request();
1612            req.extensions_mut()
1613                .insert(
1614                    GrpcMethod::new(
1615                        "com.coralogixapis.incidents.v1.IncidentsService",
1616                        "ListIncidents",
1617                    ),
1618                );
1619            self.inner.unary(req, path, codec).await
1620        }
1621        pub async fn list_incident_aggregations(
1622            &mut self,
1623            request: impl tonic::IntoRequest<super::ListIncidentAggregationsRequest>,
1624        ) -> std::result::Result<
1625            tonic::Response<super::ListIncidentAggregationsResponse>,
1626            tonic::Status,
1627        > {
1628            self.inner
1629                .ready()
1630                .await
1631                .map_err(|e| {
1632                    tonic::Status::unknown(
1633                        format!("Service was not ready: {}", e.into()),
1634                    )
1635                })?;
1636            let codec = tonic::codec::ProstCodec::default();
1637            let path = http::uri::PathAndQuery::from_static(
1638                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentAggregations",
1639            );
1640            let mut req = request.into_request();
1641            req.extensions_mut()
1642                .insert(
1643                    GrpcMethod::new(
1644                        "com.coralogixapis.incidents.v1.IncidentsService",
1645                        "ListIncidentAggregations",
1646                    ),
1647                );
1648            self.inner.unary(req, path, codec).await
1649        }
1650        pub async fn get_filter_values(
1651            &mut self,
1652            request: impl tonic::IntoRequest<super::GetFilterValuesRequest>,
1653        ) -> std::result::Result<
1654            tonic::Response<super::GetFilterValuesResponse>,
1655            tonic::Status,
1656        > {
1657            self.inner
1658                .ready()
1659                .await
1660                .map_err(|e| {
1661                    tonic::Status::unknown(
1662                        format!("Service was not ready: {}", e.into()),
1663                    )
1664                })?;
1665            let codec = tonic::codec::ProstCodec::default();
1666            let path = http::uri::PathAndQuery::from_static(
1667                "/com.coralogixapis.incidents.v1.IncidentsService/GetFilterValues",
1668            );
1669            let mut req = request.into_request();
1670            req.extensions_mut()
1671                .insert(
1672                    GrpcMethod::new(
1673                        "com.coralogixapis.incidents.v1.IncidentsService",
1674                        "GetFilterValues",
1675                    ),
1676                );
1677            self.inner.unary(req, path, codec).await
1678        }
1679        pub async fn assign_incidents(
1680            &mut self,
1681            request: impl tonic::IntoRequest<super::AssignIncidentsRequest>,
1682        ) -> std::result::Result<
1683            tonic::Response<super::AssignIncidentsResponse>,
1684            tonic::Status,
1685        > {
1686            self.inner
1687                .ready()
1688                .await
1689                .map_err(|e| {
1690                    tonic::Status::unknown(
1691                        format!("Service was not ready: {}", e.into()),
1692                    )
1693                })?;
1694            let codec = tonic::codec::ProstCodec::default();
1695            let path = http::uri::PathAndQuery::from_static(
1696                "/com.coralogixapis.incidents.v1.IncidentsService/AssignIncidents",
1697            );
1698            let mut req = request.into_request();
1699            req.extensions_mut()
1700                .insert(
1701                    GrpcMethod::new(
1702                        "com.coralogixapis.incidents.v1.IncidentsService",
1703                        "AssignIncidents",
1704                    ),
1705                );
1706            self.inner.unary(req, path, codec).await
1707        }
1708        pub async fn unassign_incidents(
1709            &mut self,
1710            request: impl tonic::IntoRequest<super::UnassignIncidentsRequest>,
1711        ) -> std::result::Result<
1712            tonic::Response<super::UnassignIncidentsResponse>,
1713            tonic::Status,
1714        > {
1715            self.inner
1716                .ready()
1717                .await
1718                .map_err(|e| {
1719                    tonic::Status::unknown(
1720                        format!("Service was not ready: {}", e.into()),
1721                    )
1722                })?;
1723            let codec = tonic::codec::ProstCodec::default();
1724            let path = http::uri::PathAndQuery::from_static(
1725                "/com.coralogixapis.incidents.v1.IncidentsService/UnassignIncidents",
1726            );
1727            let mut req = request.into_request();
1728            req.extensions_mut()
1729                .insert(
1730                    GrpcMethod::new(
1731                        "com.coralogixapis.incidents.v1.IncidentsService",
1732                        "UnassignIncidents",
1733                    ),
1734                );
1735            self.inner.unary(req, path, codec).await
1736        }
1737        pub async fn acknowledge_incidents(
1738            &mut self,
1739            request: impl tonic::IntoRequest<super::AcknowledgeIncidentsRequest>,
1740        ) -> std::result::Result<
1741            tonic::Response<super::AcknowledgeIncidentsResponse>,
1742            tonic::Status,
1743        > {
1744            self.inner
1745                .ready()
1746                .await
1747                .map_err(|e| {
1748                    tonic::Status::unknown(
1749                        format!("Service was not ready: {}", e.into()),
1750                    )
1751                })?;
1752            let codec = tonic::codec::ProstCodec::default();
1753            let path = http::uri::PathAndQuery::from_static(
1754                "/com.coralogixapis.incidents.v1.IncidentsService/AcknowledgeIncidents",
1755            );
1756            let mut req = request.into_request();
1757            req.extensions_mut()
1758                .insert(
1759                    GrpcMethod::new(
1760                        "com.coralogixapis.incidents.v1.IncidentsService",
1761                        "AcknowledgeIncidents",
1762                    ),
1763                );
1764            self.inner.unary(req, path, codec).await
1765        }
1766        pub async fn close_incidents(
1767            &mut self,
1768            request: impl tonic::IntoRequest<super::CloseIncidentsRequest>,
1769        ) -> std::result::Result<
1770            tonic::Response<super::CloseIncidentsResponse>,
1771            tonic::Status,
1772        > {
1773            self.inner
1774                .ready()
1775                .await
1776                .map_err(|e| {
1777                    tonic::Status::unknown(
1778                        format!("Service was not ready: {}", e.into()),
1779                    )
1780                })?;
1781            let codec = tonic::codec::ProstCodec::default();
1782            let path = http::uri::PathAndQuery::from_static(
1783                "/com.coralogixapis.incidents.v1.IncidentsService/CloseIncidents",
1784            );
1785            let mut req = request.into_request();
1786            req.extensions_mut()
1787                .insert(
1788                    GrpcMethod::new(
1789                        "com.coralogixapis.incidents.v1.IncidentsService",
1790                        "CloseIncidents",
1791                    ),
1792                );
1793            self.inner.unary(req, path, codec).await
1794        }
1795        pub async fn get_incident_events(
1796            &mut self,
1797            request: impl tonic::IntoRequest<super::GetIncidentEventsRequest>,
1798        ) -> std::result::Result<
1799            tonic::Response<super::GetIncidentEventsResponse>,
1800            tonic::Status,
1801        > {
1802            self.inner
1803                .ready()
1804                .await
1805                .map_err(|e| {
1806                    tonic::Status::unknown(
1807                        format!("Service was not ready: {}", e.into()),
1808                    )
1809                })?;
1810            let codec = tonic::codec::ProstCodec::default();
1811            let path = http::uri::PathAndQuery::from_static(
1812                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentEvents",
1813            );
1814            let mut req = request.into_request();
1815            req.extensions_mut()
1816                .insert(
1817                    GrpcMethod::new(
1818                        "com.coralogixapis.incidents.v1.IncidentsService",
1819                        "GetIncidentEvents",
1820                    ),
1821                );
1822            self.inner.unary(req, path, codec).await
1823        }
1824        pub async fn resolve_incidents(
1825            &mut self,
1826            request: impl tonic::IntoRequest<super::ResolveIncidentsRequest>,
1827        ) -> std::result::Result<
1828            tonic::Response<super::ResolveIncidentsResponse>,
1829            tonic::Status,
1830        > {
1831            self.inner
1832                .ready()
1833                .await
1834                .map_err(|e| {
1835                    tonic::Status::unknown(
1836                        format!("Service was not ready: {}", e.into()),
1837                    )
1838                })?;
1839            let codec = tonic::codec::ProstCodec::default();
1840            let path = http::uri::PathAndQuery::from_static(
1841                "/com.coralogixapis.incidents.v1.IncidentsService/ResolveIncidents",
1842            );
1843            let mut req = request.into_request();
1844            req.extensions_mut()
1845                .insert(
1846                    GrpcMethod::new(
1847                        "com.coralogixapis.incidents.v1.IncidentsService",
1848                        "ResolveIncidents",
1849                    ),
1850                );
1851            self.inner.unary(req, path, codec).await
1852        }
1853        pub async fn get_incident_by_event_id(
1854            &mut self,
1855            request: impl tonic::IntoRequest<super::GetIncidentByEventIdRequest>,
1856        ) -> std::result::Result<
1857            tonic::Response<super::GetIncidentByEventIdResponse>,
1858            tonic::Status,
1859        > {
1860            self.inner
1861                .ready()
1862                .await
1863                .map_err(|e| {
1864                    tonic::Status::unknown(
1865                        format!("Service was not ready: {}", e.into()),
1866                    )
1867                })?;
1868            let codec = tonic::codec::ProstCodec::default();
1869            let path = http::uri::PathAndQuery::from_static(
1870                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentByEventId",
1871            );
1872            let mut req = request.into_request();
1873            req.extensions_mut()
1874                .insert(
1875                    GrpcMethod::new(
1876                        "com.coralogixapis.incidents.v1.IncidentsService",
1877                        "GetIncidentByEventId",
1878                    ),
1879                );
1880            self.inner.unary(req, path, codec).await
1881        }
1882        pub async fn acknowledge_incident_by_event_id(
1883            &mut self,
1884            request: impl tonic::IntoRequest<super::AcknowledgeIncidentByEventIdRequest>,
1885        ) -> std::result::Result<
1886            tonic::Response<super::AcknowledgeIncidentByEventIdResponse>,
1887            tonic::Status,
1888        > {
1889            self.inner
1890                .ready()
1891                .await
1892                .map_err(|e| {
1893                    tonic::Status::unknown(
1894                        format!("Service was not ready: {}", e.into()),
1895                    )
1896                })?;
1897            let codec = tonic::codec::ProstCodec::default();
1898            let path = http::uri::PathAndQuery::from_static(
1899                "/com.coralogixapis.incidents.v1.IncidentsService/AcknowledgeIncidentByEventId",
1900            );
1901            let mut req = request.into_request();
1902            req.extensions_mut()
1903                .insert(
1904                    GrpcMethod::new(
1905                        "com.coralogixapis.incidents.v1.IncidentsService",
1906                        "AcknowledgeIncidentByEventId",
1907                    ),
1908                );
1909            self.inner.unary(req, path, codec).await
1910        }
1911        pub async fn resolve_incident_by_event_id(
1912            &mut self,
1913            request: impl tonic::IntoRequest<super::ResolveIncidentByEventIdRequest>,
1914        ) -> std::result::Result<
1915            tonic::Response<super::ResolveIncidentByEventIdResponse>,
1916            tonic::Status,
1917        > {
1918            self.inner
1919                .ready()
1920                .await
1921                .map_err(|e| {
1922                    tonic::Status::unknown(
1923                        format!("Service was not ready: {}", e.into()),
1924                    )
1925                })?;
1926            let codec = tonic::codec::ProstCodec::default();
1927            let path = http::uri::PathAndQuery::from_static(
1928                "/com.coralogixapis.incidents.v1.IncidentsService/ResolveIncidentByEventId",
1929            );
1930            let mut req = request.into_request();
1931            req.extensions_mut()
1932                .insert(
1933                    GrpcMethod::new(
1934                        "com.coralogixapis.incidents.v1.IncidentsService",
1935                        "ResolveIncidentByEventId",
1936                    ),
1937                );
1938            self.inner.unary(req, path, codec).await
1939        }
1940        ///
1941        /// This shouldn't be exposed in the docs, it has no external usecase
1942        pub async fn get_incident_using_correlation_key(
1943            &mut self,
1944            request: impl tonic::IntoRequest<
1945                super::GetIncidentUsingCorrelationKeyRequest,
1946            >,
1947        ) -> std::result::Result<
1948            tonic::Response<super::GetIncidentUsingCorrelationKeyResponse>,
1949            tonic::Status,
1950        > {
1951            self.inner
1952                .ready()
1953                .await
1954                .map_err(|e| {
1955                    tonic::Status::unknown(
1956                        format!("Service was not ready: {}", e.into()),
1957                    )
1958                })?;
1959            let codec = tonic::codec::ProstCodec::default();
1960            let path = http::uri::PathAndQuery::from_static(
1961                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentUsingCorrelationKey",
1962            );
1963            let mut req = request.into_request();
1964            req.extensions_mut()
1965                .insert(
1966                    GrpcMethod::new(
1967                        "com.coralogixapis.incidents.v1.IncidentsService",
1968                        "GetIncidentUsingCorrelationKey",
1969                    ),
1970                );
1971            self.inner.unary(req, path, codec).await
1972        }
1973        pub async fn list_incident_events(
1974            &mut self,
1975            request: impl tonic::IntoRequest<super::ListIncidentEventsRequest>,
1976        ) -> std::result::Result<
1977            tonic::Response<super::ListIncidentEventsResponse>,
1978            tonic::Status,
1979        > {
1980            self.inner
1981                .ready()
1982                .await
1983                .map_err(|e| {
1984                    tonic::Status::unknown(
1985                        format!("Service was not ready: {}", e.into()),
1986                    )
1987                })?;
1988            let codec = tonic::codec::ProstCodec::default();
1989            let path = http::uri::PathAndQuery::from_static(
1990                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEvents",
1991            );
1992            let mut req = request.into_request();
1993            req.extensions_mut()
1994                .insert(
1995                    GrpcMethod::new(
1996                        "com.coralogixapis.incidents.v1.IncidentsService",
1997                        "ListIncidentEvents",
1998                    ),
1999                );
2000            self.inner.unary(req, path, codec).await
2001        }
2002        pub async fn list_incident_events_total_count(
2003            &mut self,
2004            request: impl tonic::IntoRequest<super::ListIncidentEventsTotalCountRequest>,
2005        ) -> std::result::Result<
2006            tonic::Response<super::ListIncidentEventsTotalCountResponse>,
2007            tonic::Status,
2008        > {
2009            self.inner
2010                .ready()
2011                .await
2012                .map_err(|e| {
2013                    tonic::Status::unknown(
2014                        format!("Service was not ready: {}", e.into()),
2015                    )
2016                })?;
2017            let codec = tonic::codec::ProstCodec::default();
2018            let path = http::uri::PathAndQuery::from_static(
2019                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsTotalCount",
2020            );
2021            let mut req = request.into_request();
2022            req.extensions_mut()
2023                .insert(
2024                    GrpcMethod::new(
2025                        "com.coralogixapis.incidents.v1.IncidentsService",
2026                        "ListIncidentEventsTotalCount",
2027                    ),
2028                );
2029            self.inner.unary(req, path, codec).await
2030        }
2031        pub async fn list_incident_events_filter_values(
2032            &mut self,
2033            request: impl tonic::IntoRequest<
2034                super::ListIncidentEventsFilterValuesRequest,
2035            >,
2036        ) -> std::result::Result<
2037            tonic::Response<super::ListIncidentEventsFilterValuesResponse>,
2038            tonic::Status,
2039        > {
2040            self.inner
2041                .ready()
2042                .await
2043                .map_err(|e| {
2044                    tonic::Status::unknown(
2045                        format!("Service was not ready: {}", e.into()),
2046                    )
2047                })?;
2048            let codec = tonic::codec::ProstCodec::default();
2049            let path = http::uri::PathAndQuery::from_static(
2050                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsFilterValues",
2051            );
2052            let mut req = request.into_request();
2053            req.extensions_mut()
2054                .insert(
2055                    GrpcMethod::new(
2056                        "com.coralogixapis.incidents.v1.IncidentsService",
2057                        "ListIncidentEventsFilterValues",
2058                    ),
2059                );
2060            self.inner.unary(req, path, codec).await
2061        }
2062    }
2063}