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 GetIncidentUsingCorrelationKeyRequest {
1301    #[prost(message, optional, tag = "1")]
1302    pub correlation_key: ::core::option::Option<::prost::alloc::string::String>,
1303    #[prost(message, optional, tag = "2")]
1304    pub incident_point_in_time: ::core::option::Option<::prost_wkt_types::Timestamp>,
1305}
1306#[derive(serde::Serialize, serde::Deserialize)]
1307#[serde(rename_all = "snake_case")]
1308#[derive(Clone, PartialEq, ::prost::Message)]
1309pub struct GetIncidentUsingCorrelationKeyResponse {
1310    #[prost(message, optional, tag = "1")]
1311    pub incident: ::core::option::Option<Incident>,
1312}
1313#[derive(serde::Serialize, serde::Deserialize)]
1314#[serde(rename_all = "snake_case")]
1315#[derive(Clone, PartialEq, ::prost::Message)]
1316pub struct ListIncidentEventsRequest {
1317    #[prost(message, optional, tag = "1")]
1318    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1319    #[prost(message, optional, tag = "2")]
1320    pub pagination: ::core::option::Option<PaginationRequest>,
1321    #[prost(message, optional, tag = "3")]
1322    pub order_by: ::core::option::Option<ListIncidentEventRequestOrderBy>,
1323}
1324#[derive(serde::Serialize, serde::Deserialize)]
1325#[serde(rename_all = "snake_case")]
1326#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1327pub struct ListIncidentEventRequestOrderBy {
1328    #[prost(enumeration = "IncidentEventOrderByFieldType", tag = "1")]
1329    pub field: i32,
1330    #[prost(enumeration = "OrderByDirection", tag = "2")]
1331    pub direction: i32,
1332}
1333#[derive(serde::Serialize, serde::Deserialize)]
1334#[serde(rename_all = "snake_case")]
1335#[derive(Clone, PartialEq, ::prost::Message)]
1336pub struct ListIncidentEventsResponse {
1337    #[prost(message, repeated, tag = "1")]
1338    pub items: ::prost::alloc::vec::Vec<IncidentEventExtended>,
1339    #[prost(message, optional, tag = "2")]
1340    pub pagination: ::core::option::Option<PaginationResponse>,
1341}
1342#[derive(serde::Serialize, serde::Deserialize)]
1343#[serde(rename_all = "snake_case")]
1344#[derive(Clone, PartialEq, ::prost::Message)]
1345pub struct ListIncidentEventsTotalCountRequest {
1346    #[prost(message, optional, tag = "1")]
1347    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1348}
1349#[derive(serde::Serialize, serde::Deserialize)]
1350#[serde(rename_all = "snake_case")]
1351#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1352pub struct ListIncidentEventsTotalCountResponse {
1353    #[prost(message, optional, tag = "1")]
1354    pub count: ::core::option::Option<u64>,
1355    #[prost(message, optional, tag = "2")]
1356    pub reached_limit: ::core::option::Option<bool>,
1357}
1358#[derive(serde::Serialize, serde::Deserialize)]
1359#[serde(rename_all = "snake_case")]
1360#[derive(Clone, PartialEq, ::prost::Message)]
1361pub struct ListIncidentEventsFilterValuesRequest {
1362    #[prost(message, optional, tag = "1")]
1363    pub filter: ::core::option::Option<IncidentEventQueryFilter>,
1364}
1365#[derive(serde::Serialize, serde::Deserialize)]
1366#[serde(rename_all = "snake_case")]
1367#[derive(Clone, PartialEq, ::prost::Message)]
1368pub struct ListIncidentEventsFilterValuesResponse {
1369    #[prost(message, optional, tag = "1")]
1370    pub filters_values: ::core::option::Option<IncidentQueryFiltersValues>,
1371}
1372#[derive(serde::Serialize, serde::Deserialize)]
1373#[serde(rename_all = "snake_case")]
1374#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1375#[repr(i32)]
1376pub enum IncidentEventOrderByFieldType {
1377    TimestampOrUnspecified = 0,
1378}
1379impl IncidentEventOrderByFieldType {
1380    /// String value of the enum field names used in the ProtoBuf definition.
1381    ///
1382    /// The values are not transformed in any way and thus are considered stable
1383    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1384    pub fn as_str_name(&self) -> &'static str {
1385        match self {
1386            Self::TimestampOrUnspecified => {
1387                "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED"
1388            }
1389        }
1390    }
1391    /// Creates an enum from field names used in the ProtoBuf definition.
1392    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1393        match value {
1394            "INCIDENT_EVENT_ORDER_BY_FIELD_TYPE_TIMESTAMP_OR_UNSPECIFIED" => {
1395                Some(Self::TimestampOrUnspecified)
1396            }
1397            _ => None,
1398        }
1399    }
1400}
1401/// Generated client implementations.
1402pub mod incidents_service_client {
1403    #![allow(
1404        unused_variables,
1405        dead_code,
1406        missing_docs,
1407        clippy::wildcard_imports,
1408        clippy::let_unit_value,
1409    )]
1410    use tonic::codegen::*;
1411    use tonic::codegen::http::Uri;
1412    #[derive(Debug, Clone)]
1413    pub struct IncidentsServiceClient<T> {
1414        inner: tonic::client::Grpc<T>,
1415    }
1416    impl IncidentsServiceClient<tonic::transport::Channel> {
1417        /// Attempt to create a new client by connecting to a given endpoint.
1418        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1419        where
1420            D: TryInto<tonic::transport::Endpoint>,
1421            D::Error: Into<StdError>,
1422        {
1423            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1424            Ok(Self::new(conn))
1425        }
1426    }
1427    impl<T> IncidentsServiceClient<T>
1428    where
1429        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1430        T::Error: Into<StdError>,
1431        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1432        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1433    {
1434        pub fn new(inner: T) -> Self {
1435            let inner = tonic::client::Grpc::new(inner);
1436            Self { inner }
1437        }
1438        pub fn with_origin(inner: T, origin: Uri) -> Self {
1439            let inner = tonic::client::Grpc::with_origin(inner, origin);
1440            Self { inner }
1441        }
1442        pub fn with_interceptor<F>(
1443            inner: T,
1444            interceptor: F,
1445        ) -> IncidentsServiceClient<InterceptedService<T, F>>
1446        where
1447            F: tonic::service::Interceptor,
1448            T::ResponseBody: Default,
1449            T: tonic::codegen::Service<
1450                http::Request<tonic::body::BoxBody>,
1451                Response = http::Response<
1452                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1453                >,
1454            >,
1455            <T as tonic::codegen::Service<
1456                http::Request<tonic::body::BoxBody>,
1457            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1458        {
1459            IncidentsServiceClient::new(InterceptedService::new(inner, interceptor))
1460        }
1461        /// Compress requests with the given encoding.
1462        ///
1463        /// This requires the server to support it otherwise it might respond with an
1464        /// error.
1465        #[must_use]
1466        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1467            self.inner = self.inner.send_compressed(encoding);
1468            self
1469        }
1470        /// Enable decompressing responses.
1471        #[must_use]
1472        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1473            self.inner = self.inner.accept_compressed(encoding);
1474            self
1475        }
1476        /// Limits the maximum size of a decoded message.
1477        ///
1478        /// Default: `4MB`
1479        #[must_use]
1480        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1481            self.inner = self.inner.max_decoding_message_size(limit);
1482            self
1483        }
1484        /// Limits the maximum size of an encoded message.
1485        ///
1486        /// Default: `usize::MAX`
1487        #[must_use]
1488        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1489            self.inner = self.inner.max_encoding_message_size(limit);
1490            self
1491        }
1492        pub async fn get_incident(
1493            &mut self,
1494            request: impl tonic::IntoRequest<super::GetIncidentRequest>,
1495        ) -> std::result::Result<
1496            tonic::Response<super::GetIncidentResponse>,
1497            tonic::Status,
1498        > {
1499            self.inner
1500                .ready()
1501                .await
1502                .map_err(|e| {
1503                    tonic::Status::unknown(
1504                        format!("Service was not ready: {}", e.into()),
1505                    )
1506                })?;
1507            let codec = tonic::codec::ProstCodec::default();
1508            let path = http::uri::PathAndQuery::from_static(
1509                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncident",
1510            );
1511            let mut req = request.into_request();
1512            req.extensions_mut()
1513                .insert(
1514                    GrpcMethod::new(
1515                        "com.coralogixapis.incidents.v1.IncidentsService",
1516                        "GetIncident",
1517                    ),
1518                );
1519            self.inner.unary(req, path, codec).await
1520        }
1521        pub async fn batch_get_incident(
1522            &mut self,
1523            request: impl tonic::IntoRequest<super::BatchGetIncidentRequest>,
1524        ) -> std::result::Result<
1525            tonic::Response<super::BatchGetIncidentResponse>,
1526            tonic::Status,
1527        > {
1528            self.inner
1529                .ready()
1530                .await
1531                .map_err(|e| {
1532                    tonic::Status::unknown(
1533                        format!("Service was not ready: {}", e.into()),
1534                    )
1535                })?;
1536            let codec = tonic::codec::ProstCodec::default();
1537            let path = http::uri::PathAndQuery::from_static(
1538                "/com.coralogixapis.incidents.v1.IncidentsService/BatchGetIncident",
1539            );
1540            let mut req = request.into_request();
1541            req.extensions_mut()
1542                .insert(
1543                    GrpcMethod::new(
1544                        "com.coralogixapis.incidents.v1.IncidentsService",
1545                        "BatchGetIncident",
1546                    ),
1547                );
1548            self.inner.unary(req, path, codec).await
1549        }
1550        pub async fn list_incidents(
1551            &mut self,
1552            request: impl tonic::IntoRequest<super::ListIncidentsRequest>,
1553        ) -> std::result::Result<
1554            tonic::Response<super::ListIncidentsResponse>,
1555            tonic::Status,
1556        > {
1557            self.inner
1558                .ready()
1559                .await
1560                .map_err(|e| {
1561                    tonic::Status::unknown(
1562                        format!("Service was not ready: {}", e.into()),
1563                    )
1564                })?;
1565            let codec = tonic::codec::ProstCodec::default();
1566            let path = http::uri::PathAndQuery::from_static(
1567                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidents",
1568            );
1569            let mut req = request.into_request();
1570            req.extensions_mut()
1571                .insert(
1572                    GrpcMethod::new(
1573                        "com.coralogixapis.incidents.v1.IncidentsService",
1574                        "ListIncidents",
1575                    ),
1576                );
1577            self.inner.unary(req, path, codec).await
1578        }
1579        pub async fn list_incident_aggregations(
1580            &mut self,
1581            request: impl tonic::IntoRequest<super::ListIncidentAggregationsRequest>,
1582        ) -> std::result::Result<
1583            tonic::Response<super::ListIncidentAggregationsResponse>,
1584            tonic::Status,
1585        > {
1586            self.inner
1587                .ready()
1588                .await
1589                .map_err(|e| {
1590                    tonic::Status::unknown(
1591                        format!("Service was not ready: {}", e.into()),
1592                    )
1593                })?;
1594            let codec = tonic::codec::ProstCodec::default();
1595            let path = http::uri::PathAndQuery::from_static(
1596                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentAggregations",
1597            );
1598            let mut req = request.into_request();
1599            req.extensions_mut()
1600                .insert(
1601                    GrpcMethod::new(
1602                        "com.coralogixapis.incidents.v1.IncidentsService",
1603                        "ListIncidentAggregations",
1604                    ),
1605                );
1606            self.inner.unary(req, path, codec).await
1607        }
1608        pub async fn get_filter_values(
1609            &mut self,
1610            request: impl tonic::IntoRequest<super::GetFilterValuesRequest>,
1611        ) -> std::result::Result<
1612            tonic::Response<super::GetFilterValuesResponse>,
1613            tonic::Status,
1614        > {
1615            self.inner
1616                .ready()
1617                .await
1618                .map_err(|e| {
1619                    tonic::Status::unknown(
1620                        format!("Service was not ready: {}", e.into()),
1621                    )
1622                })?;
1623            let codec = tonic::codec::ProstCodec::default();
1624            let path = http::uri::PathAndQuery::from_static(
1625                "/com.coralogixapis.incidents.v1.IncidentsService/GetFilterValues",
1626            );
1627            let mut req = request.into_request();
1628            req.extensions_mut()
1629                .insert(
1630                    GrpcMethod::new(
1631                        "com.coralogixapis.incidents.v1.IncidentsService",
1632                        "GetFilterValues",
1633                    ),
1634                );
1635            self.inner.unary(req, path, codec).await
1636        }
1637        pub async fn assign_incidents(
1638            &mut self,
1639            request: impl tonic::IntoRequest<super::AssignIncidentsRequest>,
1640        ) -> std::result::Result<
1641            tonic::Response<super::AssignIncidentsResponse>,
1642            tonic::Status,
1643        > {
1644            self.inner
1645                .ready()
1646                .await
1647                .map_err(|e| {
1648                    tonic::Status::unknown(
1649                        format!("Service was not ready: {}", e.into()),
1650                    )
1651                })?;
1652            let codec = tonic::codec::ProstCodec::default();
1653            let path = http::uri::PathAndQuery::from_static(
1654                "/com.coralogixapis.incidents.v1.IncidentsService/AssignIncidents",
1655            );
1656            let mut req = request.into_request();
1657            req.extensions_mut()
1658                .insert(
1659                    GrpcMethod::new(
1660                        "com.coralogixapis.incidents.v1.IncidentsService",
1661                        "AssignIncidents",
1662                    ),
1663                );
1664            self.inner.unary(req, path, codec).await
1665        }
1666        pub async fn unassign_incidents(
1667            &mut self,
1668            request: impl tonic::IntoRequest<super::UnassignIncidentsRequest>,
1669        ) -> std::result::Result<
1670            tonic::Response<super::UnassignIncidentsResponse>,
1671            tonic::Status,
1672        > {
1673            self.inner
1674                .ready()
1675                .await
1676                .map_err(|e| {
1677                    tonic::Status::unknown(
1678                        format!("Service was not ready: {}", e.into()),
1679                    )
1680                })?;
1681            let codec = tonic::codec::ProstCodec::default();
1682            let path = http::uri::PathAndQuery::from_static(
1683                "/com.coralogixapis.incidents.v1.IncidentsService/UnassignIncidents",
1684            );
1685            let mut req = request.into_request();
1686            req.extensions_mut()
1687                .insert(
1688                    GrpcMethod::new(
1689                        "com.coralogixapis.incidents.v1.IncidentsService",
1690                        "UnassignIncidents",
1691                    ),
1692                );
1693            self.inner.unary(req, path, codec).await
1694        }
1695        pub async fn acknowledge_incidents(
1696            &mut self,
1697            request: impl tonic::IntoRequest<super::AcknowledgeIncidentsRequest>,
1698        ) -> std::result::Result<
1699            tonic::Response<super::AcknowledgeIncidentsResponse>,
1700            tonic::Status,
1701        > {
1702            self.inner
1703                .ready()
1704                .await
1705                .map_err(|e| {
1706                    tonic::Status::unknown(
1707                        format!("Service was not ready: {}", e.into()),
1708                    )
1709                })?;
1710            let codec = tonic::codec::ProstCodec::default();
1711            let path = http::uri::PathAndQuery::from_static(
1712                "/com.coralogixapis.incidents.v1.IncidentsService/AcknowledgeIncidents",
1713            );
1714            let mut req = request.into_request();
1715            req.extensions_mut()
1716                .insert(
1717                    GrpcMethod::new(
1718                        "com.coralogixapis.incidents.v1.IncidentsService",
1719                        "AcknowledgeIncidents",
1720                    ),
1721                );
1722            self.inner.unary(req, path, codec).await
1723        }
1724        pub async fn close_incidents(
1725            &mut self,
1726            request: impl tonic::IntoRequest<super::CloseIncidentsRequest>,
1727        ) -> std::result::Result<
1728            tonic::Response<super::CloseIncidentsResponse>,
1729            tonic::Status,
1730        > {
1731            self.inner
1732                .ready()
1733                .await
1734                .map_err(|e| {
1735                    tonic::Status::unknown(
1736                        format!("Service was not ready: {}", e.into()),
1737                    )
1738                })?;
1739            let codec = tonic::codec::ProstCodec::default();
1740            let path = http::uri::PathAndQuery::from_static(
1741                "/com.coralogixapis.incidents.v1.IncidentsService/CloseIncidents",
1742            );
1743            let mut req = request.into_request();
1744            req.extensions_mut()
1745                .insert(
1746                    GrpcMethod::new(
1747                        "com.coralogixapis.incidents.v1.IncidentsService",
1748                        "CloseIncidents",
1749                    ),
1750                );
1751            self.inner.unary(req, path, codec).await
1752        }
1753        pub async fn get_incident_events(
1754            &mut self,
1755            request: impl tonic::IntoRequest<super::GetIncidentEventsRequest>,
1756        ) -> std::result::Result<
1757            tonic::Response<super::GetIncidentEventsResponse>,
1758            tonic::Status,
1759        > {
1760            self.inner
1761                .ready()
1762                .await
1763                .map_err(|e| {
1764                    tonic::Status::unknown(
1765                        format!("Service was not ready: {}", e.into()),
1766                    )
1767                })?;
1768            let codec = tonic::codec::ProstCodec::default();
1769            let path = http::uri::PathAndQuery::from_static(
1770                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentEvents",
1771            );
1772            let mut req = request.into_request();
1773            req.extensions_mut()
1774                .insert(
1775                    GrpcMethod::new(
1776                        "com.coralogixapis.incidents.v1.IncidentsService",
1777                        "GetIncidentEvents",
1778                    ),
1779                );
1780            self.inner.unary(req, path, codec).await
1781        }
1782        pub async fn resolve_incidents(
1783            &mut self,
1784            request: impl tonic::IntoRequest<super::ResolveIncidentsRequest>,
1785        ) -> std::result::Result<
1786            tonic::Response<super::ResolveIncidentsResponse>,
1787            tonic::Status,
1788        > {
1789            self.inner
1790                .ready()
1791                .await
1792                .map_err(|e| {
1793                    tonic::Status::unknown(
1794                        format!("Service was not ready: {}", e.into()),
1795                    )
1796                })?;
1797            let codec = tonic::codec::ProstCodec::default();
1798            let path = http::uri::PathAndQuery::from_static(
1799                "/com.coralogixapis.incidents.v1.IncidentsService/ResolveIncidents",
1800            );
1801            let mut req = request.into_request();
1802            req.extensions_mut()
1803                .insert(
1804                    GrpcMethod::new(
1805                        "com.coralogixapis.incidents.v1.IncidentsService",
1806                        "ResolveIncidents",
1807                    ),
1808                );
1809            self.inner.unary(req, path, codec).await
1810        }
1811        ///
1812        /// This shouldn't be exposed in the docs, it has no external usecase
1813        pub async fn get_incident_using_correlation_key(
1814            &mut self,
1815            request: impl tonic::IntoRequest<
1816                super::GetIncidentUsingCorrelationKeyRequest,
1817            >,
1818        ) -> std::result::Result<
1819            tonic::Response<super::GetIncidentUsingCorrelationKeyResponse>,
1820            tonic::Status,
1821        > {
1822            self.inner
1823                .ready()
1824                .await
1825                .map_err(|e| {
1826                    tonic::Status::unknown(
1827                        format!("Service was not ready: {}", e.into()),
1828                    )
1829                })?;
1830            let codec = tonic::codec::ProstCodec::default();
1831            let path = http::uri::PathAndQuery::from_static(
1832                "/com.coralogixapis.incidents.v1.IncidentsService/GetIncidentUsingCorrelationKey",
1833            );
1834            let mut req = request.into_request();
1835            req.extensions_mut()
1836                .insert(
1837                    GrpcMethod::new(
1838                        "com.coralogixapis.incidents.v1.IncidentsService",
1839                        "GetIncidentUsingCorrelationKey",
1840                    ),
1841                );
1842            self.inner.unary(req, path, codec).await
1843        }
1844        pub async fn list_incident_events(
1845            &mut self,
1846            request: impl tonic::IntoRequest<super::ListIncidentEventsRequest>,
1847        ) -> std::result::Result<
1848            tonic::Response<super::ListIncidentEventsResponse>,
1849            tonic::Status,
1850        > {
1851            self.inner
1852                .ready()
1853                .await
1854                .map_err(|e| {
1855                    tonic::Status::unknown(
1856                        format!("Service was not ready: {}", e.into()),
1857                    )
1858                })?;
1859            let codec = tonic::codec::ProstCodec::default();
1860            let path = http::uri::PathAndQuery::from_static(
1861                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEvents",
1862            );
1863            let mut req = request.into_request();
1864            req.extensions_mut()
1865                .insert(
1866                    GrpcMethod::new(
1867                        "com.coralogixapis.incidents.v1.IncidentsService",
1868                        "ListIncidentEvents",
1869                    ),
1870                );
1871            self.inner.unary(req, path, codec).await
1872        }
1873        pub async fn list_incident_events_total_count(
1874            &mut self,
1875            request: impl tonic::IntoRequest<super::ListIncidentEventsTotalCountRequest>,
1876        ) -> std::result::Result<
1877            tonic::Response<super::ListIncidentEventsTotalCountResponse>,
1878            tonic::Status,
1879        > {
1880            self.inner
1881                .ready()
1882                .await
1883                .map_err(|e| {
1884                    tonic::Status::unknown(
1885                        format!("Service was not ready: {}", e.into()),
1886                    )
1887                })?;
1888            let codec = tonic::codec::ProstCodec::default();
1889            let path = http::uri::PathAndQuery::from_static(
1890                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsTotalCount",
1891            );
1892            let mut req = request.into_request();
1893            req.extensions_mut()
1894                .insert(
1895                    GrpcMethod::new(
1896                        "com.coralogixapis.incidents.v1.IncidentsService",
1897                        "ListIncidentEventsTotalCount",
1898                    ),
1899                );
1900            self.inner.unary(req, path, codec).await
1901        }
1902        pub async fn list_incident_events_filter_values(
1903            &mut self,
1904            request: impl tonic::IntoRequest<
1905                super::ListIncidentEventsFilterValuesRequest,
1906            >,
1907        ) -> std::result::Result<
1908            tonic::Response<super::ListIncidentEventsFilterValuesResponse>,
1909            tonic::Status,
1910        > {
1911            self.inner
1912                .ready()
1913                .await
1914                .map_err(|e| {
1915                    tonic::Status::unknown(
1916                        format!("Service was not ready: {}", e.into()),
1917                    )
1918                })?;
1919            let codec = tonic::codec::ProstCodec::default();
1920            let path = http::uri::PathAndQuery::from_static(
1921                "/com.coralogixapis.incidents.v1.IncidentsService/ListIncidentEventsFilterValues",
1922            );
1923            let mut req = request.into_request();
1924            req.extensions_mut()
1925                .insert(
1926                    GrpcMethod::new(
1927                        "com.coralogixapis.incidents.v1.IncidentsService",
1928                        "ListIncidentEventsFilterValues",
1929                    ),
1930                );
1931            self.inner.unary(req, path, codec).await
1932        }
1933    }
1934}