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