cx_api/generated/
com.coralogix.integrations.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 CloudFormationStack {
6    #[prost(message, optional, tag = "1")]
7    pub arn: ::core::option::Option<::prost::alloc::string::String>,
8    #[prost(message, optional, tag = "2")]
9    pub region: ::core::option::Option<::prost::alloc::string::String>,
10}
11#[derive(serde::Serialize, serde::Deserialize)]
12#[serde(rename_all = "snake_case")]
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct ArmStack {
15    #[prost(message, optional, tag = "1")]
16    pub subscription_id: ::core::option::Option<::prost::alloc::string::String>,
17    #[prost(message, optional, tag = "2")]
18    pub resource_group_name: ::core::option::Option<::prost::alloc::string::String>,
19}
20#[derive(serde::Serialize, serde::Deserialize)]
21#[serde(rename_all = "snake_case")]
22#[derive(Clone, Copy, PartialEq, ::prost::Message)]
23pub struct NoDeployment {}
24#[derive(serde::Serialize, serde::Deserialize)]
25#[serde(rename_all = "snake_case")]
26#[derive(Clone, PartialEq, ::prost::Message)]
27pub struct IntegrationStatus {
28    #[prost(enumeration = "ConnectionStatus", tag = "1")]
29    pub connection_status: i32,
30    #[prost(map = "string, string", tag = "3")]
31    pub details: ::std::collections::HashMap<
32        ::prost::alloc::string::String,
33        ::prost::alloc::string::String,
34    >,
35    #[prost(message, repeated, tag = "4")]
36    pub messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
37}
38#[derive(serde::Serialize, serde::Deserialize)]
39#[serde(rename_all = "snake_case")]
40#[derive(Clone, PartialEq, ::prost::Message)]
41pub struct IntegrationDoc {
42    #[prost(message, optional, tag = "1")]
43    pub name: ::core::option::Option<::prost::alloc::string::String>,
44    #[prost(message, optional, tag = "2")]
45    pub link: ::core::option::Option<::prost::alloc::string::String>,
46}
47#[derive(serde::Serialize, serde::Deserialize)]
48#[serde(rename_all = "snake_case")]
49#[derive(Clone, Copy, PartialEq, ::prost::Message)]
50pub struct IntegrationType {
51    #[prost(oneof = "integration_type::IntegrationType", tags = "1, 2, 3, 4, 5, 6, 7")]
52    pub integration_type: ::core::option::Option<integration_type::IntegrationType>,
53}
54/// Nested message and enum types in `IntegrationType`.
55pub mod integration_type {
56    #[derive(serde::Serialize, serde::Deserialize)]
57    #[serde(rename_all = "snake_case")]
58    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
59    pub struct Managed {
60        #[prost(enumeration = "managed::Variant", tag = "2")]
61        pub variant: i32,
62    }
63    /// Nested message and enum types in `Managed`.
64    pub mod managed {
65        #[derive(serde::Serialize, serde::Deserialize)]
66        #[serde(rename_all = "snake_case")]
67        #[derive(
68            Clone,
69            Copy,
70            Debug,
71            PartialEq,
72            Eq,
73            Hash,
74            PartialOrd,
75            Ord,
76            ::prost::Enumeration
77        )]
78        #[repr(i32)]
79        pub enum Variant {
80            Default = 0,
81            Gcp = 1,
82            Oauth = 2,
83            Custom = 3,
84        }
85        impl Variant {
86            /// String value of the enum field names used in the ProtoBuf definition.
87            ///
88            /// The values are not transformed in any way and thus are considered stable
89            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
90            pub fn as_str_name(&self) -> &'static str {
91                match self {
92                    Self::Default => "DEFAULT",
93                    Self::Gcp => "GCP",
94                    Self::Oauth => "OAUTH",
95                    Self::Custom => "CUSTOM",
96                }
97            }
98            /// Creates an enum from field names used in the ProtoBuf definition.
99            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
100                match value {
101                    "DEFAULT" => Some(Self::Default),
102                    "GCP" => Some(Self::Gcp),
103                    "OAUTH" => Some(Self::Oauth),
104                    "CUSTOM" => Some(Self::Custom),
105                    _ => None,
106                }
107            }
108        }
109    }
110    #[derive(serde::Serialize, serde::Deserialize)]
111    #[serde(rename_all = "snake_case")]
112    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
113    pub struct Untracked {}
114    #[derive(serde::Serialize, serde::Deserialize)]
115    #[serde(rename_all = "snake_case")]
116    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
117    pub struct Cloudformation {}
118    #[derive(serde::Serialize, serde::Deserialize)]
119    #[serde(rename_all = "snake_case")]
120    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
121    pub struct AzureArm {}
122    /// Handling this as a separate type because it's managed only by extensions-api.
123    /// At some point, as soon as it's moved to integrations-service,
124    /// it's expected to be merged under contextual data integrations.
125    #[derive(serde::Serialize, serde::Deserialize)]
126    #[serde(rename_all = "snake_case")]
127    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
128    pub struct PushBasedContextualData {}
129    #[derive(serde::Serialize, serde::Deserialize)]
130    #[serde(rename_all = "snake_case")]
131    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
132    pub struct ContextualData {}
133    #[derive(serde::Serialize, serde::Deserialize)]
134    #[serde(rename_all = "snake_case")]
135    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
136    pub struct GenericWebhook {}
137    #[derive(serde::Serialize, serde::Deserialize)]
138    #[serde(rename_all = "snake_case")]
139    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
140    pub enum IntegrationType {
141        #[prost(message, tag = "1")]
142        Managed(Managed),
143        #[prost(message, tag = "2")]
144        Untracked(Untracked),
145        #[prost(message, tag = "3")]
146        Cloudformation(Cloudformation),
147        #[prost(message, tag = "4")]
148        Arm(AzureArm),
149        #[prost(message, tag = "5")]
150        PushBasedContextualData(PushBasedContextualData),
151        #[prost(message, tag = "6")]
152        ContextualData(ContextualData),
153        #[prost(message, tag = "7")]
154        GenericWebhook(GenericWebhook),
155    }
156}
157#[derive(serde::Serialize, serde::Deserialize)]
158#[serde(rename_all = "snake_case")]
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct Integration {
161    /// short_name in the integrations.integration_definitions
162    #[prost(message, optional, tag = "1")]
163    pub id: ::core::option::Option<::prost::alloc::string::String>,
164    #[prost(message, optional, tag = "2")]
165    pub name: ::core::option::Option<::prost::alloc::string::String>,
166    #[prost(message, optional, tag = "3")]
167    pub description: ::core::option::Option<::prost::alloc::string::String>,
168    #[prost(message, optional, tag = "4")]
169    pub icon: ::core::option::Option<::prost::alloc::string::String>,
170    #[prost(message, optional, tag = "5")]
171    pub dark_icon: ::core::option::Option<::prost::alloc::string::String>,
172    #[prost(message, repeated, tag = "7")]
173    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
174    #[prost(message, repeated, tag = "8")]
175    pub versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
176    #[prost(message, optional, tag = "9")]
177    pub integration_type: ::core::option::Option<IntegrationType>,
178    #[prost(message, optional, tag = "10")]
179    pub feature_flag: ::core::option::Option<::prost::alloc::string::String>,
180}
181#[derive(serde::Serialize, serde::Deserialize)]
182#[serde(rename_all = "snake_case")]
183#[derive(Clone, PartialEq, ::prost::Message)]
184pub struct RevisionRef {
185    /// integration revision version
186    #[prost(string, tag = "1")]
187    pub version: ::prost::alloc::string::String,
188    #[prost(string, tag = "2")]
189    pub description_md: ::prost::alloc::string::String,
190}
191#[derive(serde::Serialize, serde::Deserialize)]
192#[serde(rename_all = "snake_case")]
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct LocalChangelog {
195    #[prost(message, repeated, tag = "1")]
196    pub changes: ::prost::alloc::vec::Vec<RevisionRef>,
197}
198#[derive(serde::Serialize, serde::Deserialize)]
199#[serde(rename_all = "snake_case")]
200#[derive(Clone, PartialEq, ::prost::Message)]
201pub struct ExternalUrl {
202    #[prost(string, tag = "1")]
203    pub url: ::prost::alloc::string::String,
204}
205#[derive(serde::Serialize, serde::Deserialize)]
206#[serde(rename_all = "snake_case")]
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct IntegrationDetails {
209    #[prost(message, optional, tag = "1")]
210    pub integration: ::core::option::Option<Integration>,
211    #[prost(message, repeated, tag = "3")]
212    pub extensions: ::prost::alloc::vec::Vec<super::super::extensions::v1::Extension>,
213    #[prost(message, repeated, tag = "4")]
214    pub docs: ::prost::alloc::vec::Vec<IntegrationDoc>,
215    #[prost(oneof = "integration_details::IntegrationTypeDetails", tags = "500")]
216    pub integration_type_details: ::core::option::Option<
217        integration_details::IntegrationTypeDetails,
218    >,
219    #[prost(oneof = "integration_details::Changelog", tags = "201, 202")]
220    pub changelog: ::core::option::Option<integration_details::Changelog>,
221}
222/// Nested message and enum types in `IntegrationDetails`.
223pub mod integration_details {
224    #[derive(serde::Serialize, serde::Deserialize)]
225    #[serde(rename_all = "snake_case")]
226    #[derive(Clone, PartialEq, ::prost::Message)]
227    pub struct DefaultIntegrationDetails {
228        #[prost(message, repeated, tag = "1")]
229        pub registered: ::prost::alloc::vec::Vec<
230            default_integration_details::RegisteredInstance,
231        >,
232    }
233    /// Nested message and enum types in `DefaultIntegrationDetails`.
234    pub mod default_integration_details {
235        #[derive(serde::Serialize, serde::Deserialize)]
236        #[serde(rename_all = "snake_case")]
237        #[derive(Clone, PartialEq, ::prost::Message)]
238        pub struct RegisteredInstance {
239            #[prost(message, optional, tag = "1")]
240            pub id: ::core::option::Option<::prost::alloc::string::String>,
241            #[prost(message, optional, tag = "2")]
242            pub definition_version: ::core::option::Option<
243                ::prost::alloc::string::String,
244            >,
245            #[prost(message, optional, tag = "3")]
246            pub last_updated: ::core::option::Option<::prost_wkt_types::Timestamp>,
247            #[prost(message, repeated, tag = "4")]
248            pub parameters: ::prost::alloc::vec::Vec<super::super::Parameter>,
249            #[prost(message, optional, tag = "7")]
250            pub integration_status: ::core::option::Option<
251                super::super::IntegrationStatus,
252            >,
253            #[prost(message, optional, tag = "8")]
254            pub is_testing: ::core::option::Option<bool>,
255            #[prost(oneof = "registered_instance::Deployment", tags = "100, 101, 102")]
256            pub deployment: ::core::option::Option<registered_instance::Deployment>,
257        }
258        /// Nested message and enum types in `RegisteredInstance`.
259        pub mod registered_instance {
260            #[derive(serde::Serialize, serde::Deserialize)]
261            #[serde(rename_all = "snake_case")]
262            #[derive(Clone, PartialEq, ::prost::Oneof)]
263            pub enum Deployment {
264                #[prost(message, tag = "100")]
265                Empty(super::super::super::NoDeployment),
266                #[prost(message, tag = "101")]
267                Cloudformation(super::super::super::CloudFormationStack),
268                #[prost(message, tag = "102")]
269                Arm(super::super::super::ArmStack),
270            }
271        }
272    }
273    #[derive(serde::Serialize, serde::Deserialize)]
274    #[serde(rename_all = "snake_case")]
275    #[derive(Clone, PartialEq, ::prost::Oneof)]
276    pub enum IntegrationTypeDetails {
277        #[prost(message, tag = "500")]
278        Default(DefaultIntegrationDetails),
279    }
280    #[derive(serde::Serialize, serde::Deserialize)]
281    #[serde(rename_all = "snake_case")]
282    #[derive(Clone, PartialEq, ::prost::Oneof)]
283    pub enum Changelog {
284        #[prost(message, tag = "201")]
285        Local(super::LocalChangelog),
286        #[prost(message, tag = "202")]
287        External(super::ExternalUrl),
288    }
289}
290#[derive(serde::Serialize, serde::Deserialize)]
291#[serde(rename_all = "snake_case")]
292#[derive(Clone, PartialEq, ::prost::Message)]
293pub struct IntegrationDefinition {
294    /// short_name in the integrations.integration_definitions
295    #[prost(message, optional, tag = "1")]
296    pub key: ::core::option::Option<::prost::alloc::string::String>,
297    #[prost(message, optional, tag = "2")]
298    pub integration_type: ::core::option::Option<IntegrationType>,
299    #[prost(message, repeated, tag = "3")]
300    pub revisions: ::prost::alloc::vec::Vec<IntegrationRevision>,
301    #[prost(message, optional, tag = "4")]
302    pub feature_flag: ::core::option::Option<::prost::alloc::string::String>,
303}
304#[derive(serde::Serialize, serde::Deserialize)]
305#[serde(rename_all = "snake_case")]
306#[derive(Clone, PartialEq, ::prost::Message)]
307pub struct IntegrationRevision {
308    /// version from the integrations.integration_definitions_revision
309    #[prost(message, optional, tag = "1")]
310    pub id: ::core::option::Option<::prost::alloc::string::String>,
311    #[prost(message, repeated, tag = "3")]
312    pub fields: ::prost::alloc::vec::Vec<integration_revision::FieldInformation>,
313    #[prost(message, repeated, tag = "4")]
314    pub groups: ::prost::alloc::vec::Vec<integration_revision::Group>,
315    #[prost(string, optional, tag = "5")]
316    pub upgrade_instructions_md: ::core::option::Option<::prost::alloc::string::String>,
317    #[prost(bool, tag = "6")]
318    pub revision_deployment_supported: bool,
319    #[prost(message, optional, tag = "7")]
320    pub feature_flag: ::core::option::Option<::prost::alloc::string::String>,
321    #[prost(
322        oneof = "integration_revision::DeploymentMethod",
323        tags = "101, 102, 103, 104, 105, 106"
324    )]
325    pub deployment_method: ::core::option::Option<
326        integration_revision::DeploymentMethod,
327    >,
328}
329/// Nested message and enum types in `IntegrationRevision`.
330pub mod integration_revision {
331    #[derive(serde::Serialize, serde::Deserialize)]
332    #[serde(rename_all = "snake_case")]
333    #[derive(Clone, PartialEq, ::prost::Message)]
334    pub struct CloudFormationTemplate {
335        #[prost(message, optional, tag = "1")]
336        pub template_url: ::core::option::Option<::prost::alloc::string::String>,
337        #[prost(map = "string, string", tag = "2")]
338        pub parameters: ::std::collections::HashMap<
339            ::prost::alloc::string::String,
340            ::prost::alloc::string::String,
341        >,
342        #[prost(map = "string, string", tag = "3")]
343        pub post_installation_steps: ::std::collections::HashMap<
344            ::prost::alloc::string::String,
345            ::prost::alloc::string::String,
346        >,
347    }
348    #[derive(serde::Serialize, serde::Deserialize)]
349    #[serde(rename_all = "snake_case")]
350    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
351    pub struct ManagedService {}
352    #[derive(serde::Serialize, serde::Deserialize)]
353    #[serde(rename_all = "snake_case")]
354    #[derive(Clone, PartialEq, ::prost::Message)]
355    pub struct HelmChart {
356        #[prost(message, optional, tag = "1")]
357        pub template: ::core::option::Option<::prost::alloc::string::String>,
358        #[prost(message, repeated, tag = "2")]
359        pub commands: ::prost::alloc::vec::Vec<CommandInformation>,
360        #[prost(message, optional, tag = "3")]
361        pub guide: ::core::option::Option<IntegrationGuide>,
362    }
363    #[derive(serde::Serialize, serde::Deserialize)]
364    #[serde(rename_all = "snake_case")]
365    #[derive(Clone, PartialEq, ::prost::Message)]
366    pub struct Terraform {
367        #[prost(message, repeated, tag = "1")]
368        pub configuration_blocks: ::prost::alloc::vec::Vec<ConfigurationBlock>,
369    }
370    #[derive(serde::Serialize, serde::Deserialize)]
371    #[serde(rename_all = "snake_case")]
372    #[derive(Clone, PartialEq, ::prost::Message)]
373    pub struct Rum {
374        #[prost(message, repeated, tag = "1")]
375        pub browser_sdk_commands: ::prost::alloc::vec::Vec<CommandInformation>,
376        #[prost(message, repeated, tag = "2")]
377        pub source_map_commands: ::prost::alloc::vec::Vec<CommandInformation>,
378    }
379    #[derive(serde::Serialize, serde::Deserialize)]
380    #[serde(rename_all = "snake_case")]
381    #[derive(Clone, PartialEq, ::prost::Message)]
382    pub struct AzureArmTemplate {
383        #[prost(message, optional, tag = "1")]
384        pub template_url: ::core::option::Option<::prost::alloc::string::String>,
385    }
386    #[derive(serde::Serialize, serde::Deserialize)]
387    #[serde(rename_all = "snake_case")]
388    #[derive(Clone, PartialEq, ::prost::Message)]
389    pub struct ListTextValue {
390        #[prost(message, repeated, tag = "2")]
391        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
392        #[prost(message, repeated, tag = "4")]
393        pub default_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
394    }
395    #[derive(serde::Serialize, serde::Deserialize)]
396    #[serde(rename_all = "snake_case")]
397    #[derive(Clone, PartialEq, ::prost::Message)]
398    pub struct SingleValue {
399        #[prost(message, optional, tag = "1")]
400        pub default_value: ::core::option::Option<::prost::alloc::string::String>,
401    }
402    #[derive(serde::Serialize, serde::Deserialize)]
403    #[serde(rename_all = "snake_case")]
404    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
405    pub struct SingleBooleanValue {
406        #[prost(message, optional, tag = "1")]
407        pub default_value: ::core::option::Option<bool>,
408    }
409    #[derive(serde::Serialize, serde::Deserialize)]
410    #[serde(rename_all = "snake_case")]
411    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
412    pub struct SingleNumericValue {
413        #[prost(message, optional, tag = "1")]
414        pub default_value: ::core::option::Option<f64>,
415    }
416    #[derive(serde::Serialize, serde::Deserialize)]
417    #[serde(rename_all = "snake_case")]
418    #[derive(Clone, PartialEq, ::prost::Message)]
419    pub struct MultipleSelectionValue {
420        #[prost(message, repeated, tag = "1")]
421        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
422    }
423    #[derive(serde::Serialize, serde::Deserialize)]
424    #[serde(rename_all = "snake_case")]
425    #[derive(Clone, PartialEq, ::prost::Message)]
426    pub struct SelectionValue {
427        #[prost(message, repeated, tag = "1")]
428        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
429        #[prost(message, optional, tag = "2")]
430        pub default_value: ::core::option::Option<::prost::alloc::string::String>,
431    }
432    #[derive(serde::Serialize, serde::Deserialize)]
433    #[serde(rename_all = "snake_case")]
434    #[derive(Clone, PartialEq, ::prost::Message)]
435    pub struct FieldCondition {
436        #[prost(enumeration = "field_condition::ConditionType", tag = "1")]
437        pub r#type: i32,
438        #[prost(message, repeated, tag = "2")]
439        pub values: ::prost::alloc::vec::Vec<field_condition::FieldValue>,
440    }
441    /// Nested message and enum types in `FieldCondition`.
442    pub mod field_condition {
443        #[derive(serde::Serialize, serde::Deserialize)]
444        #[serde(rename_all = "snake_case")]
445        #[derive(Clone, PartialEq, ::prost::Message)]
446        pub struct FieldValue {
447            #[prost(string, tag = "1")]
448            pub field_name: ::prost::alloc::string::String,
449            #[prost(string, tag = "2")]
450            pub value_pattern: ::prost::alloc::string::String,
451        }
452        #[derive(serde::Serialize, serde::Deserialize)]
453        #[serde(rename_all = "snake_case")]
454        #[derive(
455            Clone,
456            Copy,
457            Debug,
458            PartialEq,
459            Eq,
460            Hash,
461            PartialOrd,
462            Ord,
463            ::prost::Enumeration
464        )]
465        #[repr(i32)]
466        pub enum ConditionType {
467            Unknown = 0,
468            Or = 1,
469            And = 2,
470        }
471        impl ConditionType {
472            /// String value of the enum field names used in the ProtoBuf definition.
473            ///
474            /// The values are not transformed in any way and thus are considered stable
475            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
476            pub fn as_str_name(&self) -> &'static str {
477                match self {
478                    Self::Unknown => "UNKNOWN",
479                    Self::Or => "OR",
480                    Self::And => "AND",
481                }
482            }
483            /// Creates an enum from field names used in the ProtoBuf definition.
484            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
485                match value {
486                    "UNKNOWN" => Some(Self::Unknown),
487                    "OR" => Some(Self::Or),
488                    "AND" => Some(Self::And),
489                    _ => None,
490                }
491            }
492        }
493    }
494    #[derive(serde::Serialize, serde::Deserialize)]
495    #[serde(rename_all = "snake_case")]
496    #[derive(Clone, PartialEq, ::prost::Message)]
497    pub struct Group {
498        #[prost(message, optional, tag = "1")]
499        pub id: ::core::option::Option<::prost::alloc::string::String>,
500        #[prost(message, optional, tag = "2")]
501        pub name: ::core::option::Option<::prost::alloc::string::String>,
502    }
503    #[derive(serde::Serialize, serde::Deserialize)]
504    #[serde(rename_all = "snake_case")]
505    #[derive(Clone, PartialEq, ::prost::Message)]
506    pub struct FieldInformation {
507        #[prost(enumeration = "InputType", tag = "1")]
508        pub r#type: i32,
509        #[prost(message, optional, tag = "2")]
510        pub name: ::core::option::Option<::prost::alloc::string::String>,
511        #[prost(message, optional, tag = "3")]
512        pub tooltip: ::core::option::Option<::prost::alloc::string::String>,
513        #[prost(message, optional, tag = "4")]
514        pub template_param_name: ::core::option::Option<::prost::alloc::string::String>,
515        #[prost(message, optional, tag = "5")]
516        pub placeholder: ::core::option::Option<::prost::alloc::string::String>,
517        #[prost(message, optional, tag = "6")]
518        pub required: ::core::option::Option<bool>,
519        #[prost(message, optional, tag = "7")]
520        pub predefined: ::core::option::Option<bool>,
521        #[prost(message, optional, tag = "8")]
522        pub visible: ::core::option::Option<bool>,
523        #[prost(message, optional, tag = "9")]
524        pub readonly: ::core::option::Option<bool>,
525        #[prost(message, optional, tag = "10")]
526        pub applicable_if: ::core::option::Option<FieldCondition>,
527        #[prost(message, optional, tag = "11")]
528        pub group_id: ::core::option::Option<::prost::alloc::string::String>,
529        #[prost(message, optional, tag = "12")]
530        pub upgrade_notice: ::core::option::Option<::prost::alloc::string::String>,
531        #[prost(message, optional, tag = "13")]
532        pub allowed_pattern: ::core::option::Option<::prost::alloc::string::String>,
533        #[prost(message, optional, tag = "14")]
534        pub documentation_reference: ::core::option::Option<
535            ::prost::alloc::string::String,
536        >,
537        #[prost(
538            oneof = "field_information::Value",
539            tags = "101, 102, 103, 104, 105, 106"
540        )]
541        pub value: ::core::option::Option<field_information::Value>,
542    }
543    /// Nested message and enum types in `FieldInformation`.
544    pub mod field_information {
545        #[derive(serde::Serialize, serde::Deserialize)]
546        #[serde(rename_all = "snake_case")]
547        #[derive(Clone, PartialEq, ::prost::Oneof)]
548        pub enum Value {
549            #[prost(message, tag = "101")]
550            Single(super::SingleValue),
551            #[prost(message, tag = "102")]
552            MultiText(super::ListTextValue),
553            #[prost(message, tag = "103")]
554            MultipleSelection(super::MultipleSelectionValue),
555            #[prost(message, tag = "104")]
556            SingleBoolean(super::SingleBooleanValue),
557            #[prost(message, tag = "105")]
558            Selection(super::SelectionValue),
559            #[prost(message, tag = "106")]
560            SingleNumber(super::SingleNumericValue),
561        }
562    }
563    #[derive(serde::Serialize, serde::Deserialize)]
564    #[serde(rename_all = "snake_case")]
565    #[derive(Clone, PartialEq, ::prost::Message)]
566    pub struct CommandInformation {
567        #[prost(message, optional, tag = "1")]
568        pub name: ::core::option::Option<::prost::alloc::string::String>,
569        #[prost(message, optional, tag = "2")]
570        pub command: ::core::option::Option<::prost::alloc::string::String>,
571        #[prost(message, optional, tag = "3")]
572        pub description: ::core::option::Option<::prost::alloc::string::String>,
573        #[prost(message, optional, tag = "4")]
574        pub tooltip_text: ::core::option::Option<::prost::alloc::string::String>,
575        #[prost(enumeration = "command_information::Language", optional, tag = "5")]
576        pub language: ::core::option::Option<i32>,
577        #[prost(message, repeated, tag = "6")]
578        pub links: ::prost::alloc::vec::Vec<command_information::Link>,
579    }
580    /// Nested message and enum types in `CommandInformation`.
581    pub mod command_information {
582        #[derive(serde::Serialize, serde::Deserialize)]
583        #[serde(rename_all = "snake_case")]
584        #[derive(Clone, PartialEq, ::prost::Message)]
585        pub struct Link {
586            #[prost(string, tag = "1")]
587            pub key: ::prost::alloc::string::String,
588            #[prost(string, tag = "2")]
589            pub text: ::prost::alloc::string::String,
590            #[prost(string, tag = "3")]
591            pub url: ::prost::alloc::string::String,
592        }
593        #[derive(serde::Serialize, serde::Deserialize)]
594        #[serde(rename_all = "snake_case")]
595        #[derive(
596            Clone,
597            Copy,
598            Debug,
599            PartialEq,
600            Eq,
601            Hash,
602            PartialOrd,
603            Ord,
604            ::prost::Enumeration
605        )]
606        #[repr(i32)]
607        pub enum Language {
608            Unknown = 0,
609            Bash = 1,
610            Javascript = 2,
611        }
612        impl Language {
613            /// String value of the enum field names used in the ProtoBuf definition.
614            ///
615            /// The values are not transformed in any way and thus are considered stable
616            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
617            pub fn as_str_name(&self) -> &'static str {
618                match self {
619                    Self::Unknown => "UNKNOWN",
620                    Self::Bash => "BASH",
621                    Self::Javascript => "JAVASCRIPT",
622                }
623            }
624            /// Creates an enum from field names used in the ProtoBuf definition.
625            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
626                match value {
627                    "UNKNOWN" => Some(Self::Unknown),
628                    "BASH" => Some(Self::Bash),
629                    "JAVASCRIPT" => Some(Self::Javascript),
630                    _ => None,
631                }
632            }
633        }
634    }
635    #[derive(serde::Serialize, serde::Deserialize)]
636    #[serde(rename_all = "snake_case")]
637    #[derive(Clone, PartialEq, ::prost::Message)]
638    pub struct ConfigurationBlock {
639        #[prost(message, optional, tag = "1")]
640        pub name: ::core::option::Option<::prost::alloc::string::String>,
641        #[prost(message, optional, tag = "2")]
642        pub value: ::core::option::Option<::prost::alloc::string::String>,
643        #[prost(message, optional, tag = "3")]
644        pub description: ::core::option::Option<::prost::alloc::string::String>,
645    }
646    #[derive(serde::Serialize, serde::Deserialize)]
647    #[serde(rename_all = "snake_case")]
648    #[derive(Clone, PartialEq, ::prost::Message)]
649    pub struct IntegrationGuide {
650        #[prost(message, optional, tag = "1")]
651        pub introduction: ::core::option::Option<::prost::alloc::string::String>,
652        #[prost(message, optional, tag = "2")]
653        pub installation_requirements: ::core::option::Option<
654            ::prost::alloc::string::String,
655        >,
656    }
657    #[derive(serde::Serialize, serde::Deserialize)]
658    #[serde(rename_all = "snake_case")]
659    #[derive(
660        Clone,
661        Copy,
662        Debug,
663        PartialEq,
664        Eq,
665        Hash,
666        PartialOrd,
667        Ord,
668        ::prost::Enumeration
669    )]
670    #[repr(i32)]
671    pub enum InputType {
672        ApiKey = 0,
673        Text = 1,
674        ListText = 2,
675        MultipleSelection = 3,
676        Boolean = 4,
677        Select = 5,
678        Json = 6,
679        Number = 7,
680        SensitiveData = 8,
681        JsonObjectArray = 9,
682    }
683    impl InputType {
684        /// String value of the enum field names used in the ProtoBuf definition.
685        ///
686        /// The values are not transformed in any way and thus are considered stable
687        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
688        pub fn as_str_name(&self) -> &'static str {
689            match self {
690                Self::ApiKey => "API_KEY",
691                Self::Text => "TEXT",
692                Self::ListText => "LIST_TEXT",
693                Self::MultipleSelection => "MULTIPLE_SELECTION",
694                Self::Boolean => "BOOLEAN",
695                Self::Select => "SELECT",
696                Self::Json => "JSON",
697                Self::Number => "NUMBER",
698                Self::SensitiveData => "SENSITIVE_DATA",
699                Self::JsonObjectArray => "JSON_OBJECT_ARRAY",
700            }
701        }
702        /// Creates an enum from field names used in the ProtoBuf definition.
703        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
704            match value {
705                "API_KEY" => Some(Self::ApiKey),
706                "TEXT" => Some(Self::Text),
707                "LIST_TEXT" => Some(Self::ListText),
708                "MULTIPLE_SELECTION" => Some(Self::MultipleSelection),
709                "BOOLEAN" => Some(Self::Boolean),
710                "SELECT" => Some(Self::Select),
711                "JSON" => Some(Self::Json),
712                "NUMBER" => Some(Self::Number),
713                "SENSITIVE_DATA" => Some(Self::SensitiveData),
714                "JSON_OBJECT_ARRAY" => Some(Self::JsonObjectArray),
715                _ => None,
716            }
717        }
718    }
719    #[derive(serde::Serialize, serde::Deserialize)]
720    #[serde(rename_all = "snake_case")]
721    #[derive(Clone, PartialEq, ::prost::Oneof)]
722    pub enum DeploymentMethod {
723        #[prost(message, tag = "101")]
724        CloudFormation(CloudFormationTemplate),
725        #[prost(message, tag = "102")]
726        ManagedService(ManagedService),
727        #[prost(message, tag = "103")]
728        HelmChart(HelmChart),
729        #[prost(message, tag = "104")]
730        AzureArmTemplate(AzureArmTemplate),
731        #[prost(message, tag = "105")]
732        Rum(Rum),
733        #[prost(message, tag = "106")]
734        Terraform(Terraform),
735    }
736}
737#[derive(serde::Serialize, serde::Deserialize)]
738#[serde(rename_all = "snake_case")]
739#[derive(Clone, PartialEq, ::prost::Message)]
740pub struct Parameter {
741    #[prost(string, tag = "1")]
742    pub key: ::prost::alloc::string::String,
743    #[prost(oneof = "parameter::Value", tags = "101, 102, 103, 104, 105, 106")]
744    pub value: ::core::option::Option<parameter::Value>,
745}
746/// Nested message and enum types in `Parameter`.
747pub mod parameter {
748    #[derive(serde::Serialize, serde::Deserialize)]
749    #[serde(rename_all = "snake_case")]
750    #[derive(Clone, PartialEq, ::prost::Message)]
751    pub struct StringList {
752        #[prost(message, repeated, tag = "1")]
753        pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
754    }
755    #[derive(serde::Serialize, serde::Deserialize)]
756    #[serde(rename_all = "snake_case")]
757    #[derive(Clone, PartialEq, ::prost::Message)]
758    pub struct ApiKeyData {
759        #[prost(message, optional, tag = "1")]
760        pub id: ::core::option::Option<::prost::alloc::string::String>,
761        #[prost(message, optional, tag = "2")]
762        pub value: ::core::option::Option<::prost::alloc::string::String>,
763    }
764    #[derive(serde::Serialize, serde::Deserialize)]
765    #[serde(rename_all = "snake_case")]
766    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
767    pub struct SensitiveDataPlaceholder {}
768    #[derive(serde::Serialize, serde::Deserialize)]
769    #[serde(rename_all = "snake_case")]
770    #[derive(Clone, PartialEq, ::prost::Oneof)]
771    pub enum Value {
772        #[prost(message, tag = "101")]
773        StringValue(::prost::alloc::string::String),
774        #[prost(message, tag = "102")]
775        BooleanValue(bool),
776        #[prost(message, tag = "103")]
777        StringList(StringList),
778        #[prost(message, tag = "104")]
779        ApiKey(ApiKeyData),
780        #[prost(message, tag = "105")]
781        NumericValue(f64),
782        #[prost(message, tag = "106")]
783        SensitiveData(SensitiveDataPlaceholder),
784    }
785}
786#[derive(serde::Serialize, serde::Deserialize)]
787#[serde(rename_all = "snake_case")]
788#[derive(Clone, PartialEq, ::prost::Message)]
789pub struct GenericIntegrationParameters {
790    #[prost(message, repeated, tag = "1")]
791    pub parameters: ::prost::alloc::vec::Vec<Parameter>,
792}
793#[derive(serde::Serialize, serde::Deserialize)]
794#[serde(rename_all = "snake_case")]
795#[derive(Clone, PartialEq, ::prost::Message)]
796pub struct IntegrationMetadata {
797    #[prost(message, optional, tag = "4")]
798    pub integration_key: ::core::option::Option<::prost::alloc::string::String>,
799    #[prost(message, optional, tag = "6")]
800    pub version: ::core::option::Option<::prost::alloc::string::String>,
801    #[prost(oneof = "integration_metadata::SpecificData", tags = "113")]
802    pub specific_data: ::core::option::Option<integration_metadata::SpecificData>,
803}
804/// Nested message and enum types in `IntegrationMetadata`.
805pub mod integration_metadata {
806    #[derive(serde::Serialize, serde::Deserialize)]
807    #[serde(rename_all = "snake_case")]
808    #[derive(Clone, PartialEq, ::prost::Oneof)]
809    pub enum SpecificData {
810        #[prost(message, tag = "113")]
811        IntegrationParameters(super::GenericIntegrationParameters),
812    }
813}
814#[derive(serde::Serialize, serde::Deserialize)]
815#[serde(rename_all = "snake_case")]
816#[derive(Clone, PartialEq, ::prost::Message)]
817pub struct TestIntegrationResult {
818    #[prost(oneof = "test_integration_result::Result", tags = "1, 2")]
819    pub result: ::core::option::Option<test_integration_result::Result>,
820}
821/// Nested message and enum types in `TestIntegrationResult`.
822pub mod test_integration_result {
823    #[derive(serde::Serialize, serde::Deserialize)]
824    #[serde(rename_all = "snake_case")]
825    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
826    pub struct Success {}
827    #[derive(serde::Serialize, serde::Deserialize)]
828    #[serde(rename_all = "snake_case")]
829    #[derive(Clone, PartialEq, ::prost::Message)]
830    pub struct Failure {
831        #[prost(message, optional, tag = "1")]
832        pub error_message: ::core::option::Option<::prost::alloc::string::String>,
833    }
834    #[derive(serde::Serialize, serde::Deserialize)]
835    #[serde(rename_all = "snake_case")]
836    #[derive(Clone, PartialEq, ::prost::Oneof)]
837    pub enum Result {
838        #[prost(message, tag = "1")]
839        Success(Success),
840        #[prost(message, tag = "2")]
841        Failure(Failure),
842    }
843}
844#[derive(serde::Serialize, serde::Deserialize)]
845#[serde(rename_all = "snake_case")]
846#[derive(Clone, PartialEq, ::prost::Message)]
847pub struct RumVersionData {
848    #[prost(message, repeated, tag = "1")]
849    pub versions: ::prost::alloc::vec::Vec<rum_version_data::Version>,
850    #[prost(message, optional, tag = "2")]
851    pub synced_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
852}
853/// Nested message and enum types in `RumVersionData`.
854pub mod rum_version_data {
855    #[derive(serde::Serialize, serde::Deserialize)]
856    #[serde(rename_all = "snake_case")]
857    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
858    pub struct SourceMapMetadata {
859        #[prost(message, optional, tag = "1")]
860        pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
861        #[prost(message, optional, tag = "2")]
862        pub is_uploaded_successful: ::core::option::Option<bool>,
863    }
864    #[derive(serde::Serialize, serde::Deserialize)]
865    #[serde(rename_all = "snake_case")]
866    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
867    pub struct LogMetadata {
868        #[prost(message, optional, tag = "1")]
869        pub first_occurrence: ::core::option::Option<::prost_wkt_types::Timestamp>,
870        #[prost(message, optional, tag = "2")]
871        pub last_occurrence: ::core::option::Option<::prost_wkt_types::Timestamp>,
872    }
873    #[derive(serde::Serialize, serde::Deserialize)]
874    #[serde(rename_all = "snake_case")]
875    #[derive(Clone, PartialEq, ::prost::Message)]
876    pub struct Version {
877        #[prost(message, optional, tag = "1")]
878        pub version: ::core::option::Option<::prost::alloc::string::String>,
879        #[prost(message, optional, tag = "2")]
880        pub log_metadata: ::core::option::Option<LogMetadata>,
881        #[prost(message, optional, tag = "3")]
882        pub source_map_metadata: ::core::option::Option<SourceMapMetadata>,
883    }
884}
885#[derive(serde::Serialize, serde::Deserialize)]
886#[serde(rename_all = "snake_case")]
887#[derive(Clone, PartialEq, ::prost::Message)]
888pub struct DeployedIntegrationInformation {
889    #[prost(message, optional, tag = "1")]
890    pub id: ::core::option::Option<::prost::alloc::string::String>,
891    #[prost(message, optional, tag = "2")]
892    pub definition_key: ::core::option::Option<::prost::alloc::string::String>,
893    #[prost(message, optional, tag = "3")]
894    pub definition_version: ::core::option::Option<::prost::alloc::string::String>,
895    #[prost(message, repeated, tag = "4")]
896    pub parameters: ::prost::alloc::vec::Vec<Parameter>,
897    #[prost(message, optional, tag = "5")]
898    pub integration_status: ::core::option::Option<IntegrationStatus>,
899}
900#[derive(serde::Serialize, serde::Deserialize)]
901#[serde(rename_all = "snake_case")]
902#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
903#[repr(i32)]
904pub enum ConnectionStatus {
905    Pending = 0,
906    Active = 1,
907    Failing = 2,
908    StatusUnknown = 3,
909}
910impl ConnectionStatus {
911    /// String value of the enum field names used in the ProtoBuf definition.
912    ///
913    /// The values are not transformed in any way and thus are considered stable
914    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
915    pub fn as_str_name(&self) -> &'static str {
916        match self {
917            Self::Pending => "PENDING",
918            Self::Active => "ACTIVE",
919            Self::Failing => "FAILING",
920            Self::StatusUnknown => "STATUS_UNKNOWN",
921        }
922    }
923    /// Creates an enum from field names used in the ProtoBuf definition.
924    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
925        match value {
926            "PENDING" => Some(Self::Pending),
927            "ACTIVE" => Some(Self::Active),
928            "FAILING" => Some(Self::Failing),
929            "STATUS_UNKNOWN" => Some(Self::StatusUnknown),
930            _ => None,
931        }
932    }
933}
934#[derive(serde::Serialize, serde::Deserialize)]
935#[serde(rename_all = "snake_case")]
936#[derive(Clone, Copy, PartialEq, ::prost::Message)]
937pub struct ListManagedIntegrationKeysRequest {}
938#[derive(serde::Serialize, serde::Deserialize)]
939#[serde(rename_all = "snake_case")]
940#[derive(Clone, PartialEq, ::prost::Message)]
941pub struct ListManagedIntegrationKeysResponse {
942    #[prost(message, repeated, tag = "1")]
943    pub integration_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
944}
945#[derive(serde::Serialize, serde::Deserialize)]
946#[serde(rename_all = "snake_case")]
947#[derive(Clone, PartialEq, ::prost::Message)]
948pub struct GetDeployedIntegrationRequest {
949    #[prost(message, optional, tag = "1")]
950    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
951}
952#[derive(serde::Serialize, serde::Deserialize)]
953#[serde(rename_all = "snake_case")]
954#[derive(Clone, PartialEq, ::prost::Message)]
955pub struct GetDeployedIntegrationResponse {
956    #[prost(message, optional, tag = "1")]
957    pub integration: ::core::option::Option<DeployedIntegrationInformation>,
958}
959#[derive(serde::Serialize, serde::Deserialize)]
960#[serde(rename_all = "snake_case")]
961#[derive(Clone, PartialEq, ::prost::Message)]
962pub struct UpdateIntegrationRequest {
963    /// This is the integration ID generated at creation time
964    #[prost(message, optional, tag = "1")]
965    pub id: ::core::option::Option<::prost::alloc::string::String>,
966    #[prost(message, optional, tag = "2")]
967    pub metadata: ::core::option::Option<IntegrationMetadata>,
968}
969#[derive(serde::Serialize, serde::Deserialize)]
970#[serde(rename_all = "snake_case")]
971#[derive(Clone, Copy, PartialEq, ::prost::Message)]
972pub struct UpdateIntegrationResponse {}
973#[derive(serde::Serialize, serde::Deserialize)]
974#[serde(rename_all = "snake_case")]
975#[derive(Clone, PartialEq, ::prost::Message)]
976pub struct GetIntegrationDefinitionRequest {
977    #[prost(message, optional, tag = "1")]
978    pub id: ::core::option::Option<::prost::alloc::string::String>,
979    #[prost(message, optional, tag = "2")]
980    pub include_testing_revision: ::core::option::Option<bool>,
981}
982#[derive(serde::Serialize, serde::Deserialize)]
983#[serde(rename_all = "snake_case")]
984#[derive(Clone, PartialEq, ::prost::Message)]
985pub struct GetIntegrationDefinitionResponse {
986    #[prost(message, optional, tag = "1")]
987    pub integration_definition: ::core::option::Option<IntegrationDefinition>,
988}
989#[derive(serde::Serialize, serde::Deserialize)]
990#[serde(rename_all = "snake_case")]
991#[derive(Clone, Copy, PartialEq, ::prost::Message)]
992pub struct GetIntegrationsRequest {
993    #[prost(message, optional, tag = "1")]
994    pub include_testing_revision: ::core::option::Option<bool>,
995}
996#[derive(serde::Serialize, serde::Deserialize)]
997#[serde(rename_all = "snake_case")]
998#[derive(Clone, PartialEq, ::prost::Message)]
999pub struct GetIntegrationsResponse {
1000    #[prost(message, repeated, tag = "1")]
1001    pub integrations: ::prost::alloc::vec::Vec<
1002        get_integrations_response::IntegrationWithCounts,
1003    >,
1004}
1005/// Nested message and enum types in `GetIntegrationsResponse`.
1006pub mod get_integrations_response {
1007    #[derive(serde::Serialize, serde::Deserialize)]
1008    #[serde(rename_all = "snake_case")]
1009    #[derive(Clone, PartialEq, ::prost::Message)]
1010    pub struct IntegrationWithCounts {
1011        #[prost(message, optional, tag = "1")]
1012        pub integration: ::core::option::Option<super::Integration>,
1013        #[prost(message, optional, tag = "2")]
1014        pub amount_integrations: ::core::option::Option<u32>,
1015        #[prost(message, repeated, tag = "3")]
1016        pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1017        #[prost(message, optional, tag = "4")]
1018        pub upgrade_available: ::core::option::Option<bool>,
1019        #[prost(message, optional, tag = "5")]
1020        pub is_new: ::core::option::Option<bool>,
1021    }
1022}
1023#[derive(serde::Serialize, serde::Deserialize)]
1024#[serde(rename_all = "snake_case")]
1025#[derive(Clone, PartialEq, ::prost::Message)]
1026pub struct GetIntegrationDetailsRequest {
1027    #[prost(message, optional, tag = "1")]
1028    pub id: ::core::option::Option<::prost::alloc::string::String>,
1029    #[prost(message, optional, tag = "2")]
1030    pub include_testing_revision: ::core::option::Option<bool>,
1031}
1032#[derive(serde::Serialize, serde::Deserialize)]
1033#[serde(rename_all = "snake_case")]
1034#[derive(Clone, PartialEq, ::prost::Message)]
1035pub struct GetIntegrationDetailsResponse {
1036    #[prost(message, optional, tag = "1")]
1037    pub integration_detail: ::core::option::Option<IntegrationDetails>,
1038}
1039#[derive(serde::Serialize, serde::Deserialize)]
1040#[serde(rename_all = "snake_case")]
1041#[derive(Clone, PartialEq, ::prost::Message)]
1042pub struct GetManagedIntegrationStatusRequest {
1043    #[prost(string, tag = "1")]
1044    pub integration_id: ::prost::alloc::string::String,
1045}
1046#[derive(serde::Serialize, serde::Deserialize)]
1047#[serde(rename_all = "snake_case")]
1048#[derive(Clone, PartialEq, ::prost::Message)]
1049pub struct GetManagedIntegrationStatusResponse {
1050    #[prost(string, tag = "1")]
1051    pub integration_id: ::prost::alloc::string::String,
1052    #[prost(message, optional, tag = "3")]
1053    pub status: ::core::option::Option<IntegrationStatus>,
1054}
1055#[derive(serde::Serialize, serde::Deserialize)]
1056#[serde(rename_all = "snake_case")]
1057#[derive(Clone, PartialEq, ::prost::Message)]
1058pub struct SaveIntegrationRequest {
1059    #[prost(message, optional, tag = "1")]
1060    pub metadata: ::core::option::Option<IntegrationMetadata>,
1061}
1062#[derive(serde::Serialize, serde::Deserialize)]
1063#[serde(rename_all = "snake_case")]
1064#[derive(Clone, PartialEq, ::prost::Message)]
1065pub struct SaveIntegrationResponse {
1066    #[prost(message, optional, tag = "1")]
1067    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1068}
1069#[derive(serde::Serialize, serde::Deserialize)]
1070#[serde(rename_all = "snake_case")]
1071#[derive(Clone, PartialEq, ::prost::Message)]
1072pub struct DeleteIntegrationRequest {
1073    #[prost(message, optional, tag = "1")]
1074    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1075}
1076#[derive(serde::Serialize, serde::Deserialize)]
1077#[serde(rename_all = "snake_case")]
1078#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1079pub struct DeleteIntegrationResponse {}
1080#[derive(serde::Serialize, serde::Deserialize)]
1081#[serde(rename_all = "snake_case")]
1082#[derive(Clone, PartialEq, ::prost::Message)]
1083pub struct GetTemplateRequest {
1084    #[prost(message, optional, tag = "1")]
1085    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1086    #[prost(oneof = "get_template_request::ExtraParams", tags = "101, 102")]
1087    pub extra_params: ::core::option::Option<get_template_request::ExtraParams>,
1088}
1089/// Nested message and enum types in `GetTemplateRequest`.
1090pub mod get_template_request {
1091    #[derive(serde::Serialize, serde::Deserialize)]
1092    #[serde(rename_all = "snake_case")]
1093    #[derive(Clone, PartialEq, ::prost::Message)]
1094    pub struct CommonArmParams {
1095        #[prost(message, optional, tag = "1")]
1096        pub logs_url: ::core::option::Option<::prost::alloc::string::String>,
1097        #[prost(message, optional, tag = "2")]
1098        pub api_key: ::core::option::Option<::prost::alloc::string::String>,
1099        #[prost(message, optional, tag = "3")]
1100        pub cgx_domain: ::core::option::Option<::prost::alloc::string::String>,
1101    }
1102    #[derive(serde::Serialize, serde::Deserialize)]
1103    #[serde(rename_all = "snake_case")]
1104    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1105    pub struct Empty {}
1106    #[derive(serde::Serialize, serde::Deserialize)]
1107    #[serde(rename_all = "snake_case")]
1108    #[derive(Clone, PartialEq, ::prost::Oneof)]
1109    pub enum ExtraParams {
1110        #[prost(message, tag = "101")]
1111        CommonArmParams(CommonArmParams),
1112        #[prost(message, tag = "102")]
1113        Empty(Empty),
1114    }
1115}
1116#[derive(serde::Serialize, serde::Deserialize)]
1117#[serde(rename_all = "snake_case")]
1118#[derive(Clone, PartialEq, ::prost::Message)]
1119pub struct GetTemplateResponse {
1120    #[prost(message, optional, tag = "1")]
1121    pub template_url: ::core::option::Option<::prost::alloc::string::String>,
1122}
1123#[derive(serde::Serialize, serde::Deserialize)]
1124#[serde(rename_all = "snake_case")]
1125#[derive(Clone, PartialEq, ::prost::Message)]
1126pub struct GetRumApplicationVersionDataRequest {
1127    #[prost(message, optional, tag = "1")]
1128    pub application_name: ::core::option::Option<::prost::alloc::string::String>,
1129}
1130#[derive(serde::Serialize, serde::Deserialize)]
1131#[serde(rename_all = "snake_case")]
1132#[derive(Clone, PartialEq, ::prost::Message)]
1133pub struct GetRumApplicationVersionDataResponse {
1134    #[prost(message, optional, tag = "1")]
1135    pub version_data: ::core::option::Option<RumVersionData>,
1136}
1137#[derive(serde::Serialize, serde::Deserialize)]
1138#[serde(rename_all = "snake_case")]
1139#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1140pub struct SyncRumDataRequest {
1141    /// The time between syncs is controlled by configuration.
1142    #[prost(message, optional, tag = "1")]
1143    pub force: ::core::option::Option<bool>,
1144}
1145#[derive(serde::Serialize, serde::Deserialize)]
1146#[serde(rename_all = "snake_case")]
1147#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1148pub struct SyncRumDataResponse {
1149    #[prost(message, optional, tag = "1")]
1150    pub sync_executed: ::core::option::Option<bool>,
1151    #[prost(message, optional, tag = "2")]
1152    pub synced_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
1153}
1154#[derive(serde::Serialize, serde::Deserialize)]
1155#[serde(rename_all = "snake_case")]
1156#[derive(Clone, PartialEq, ::prost::Message)]
1157pub struct TestIntegrationRequest {
1158    #[prost(message, optional, tag = "1")]
1159    pub integration_data: ::core::option::Option<IntegrationMetadata>,
1160    #[prost(message, optional, tag = "2")]
1161    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1162}
1163#[derive(serde::Serialize, serde::Deserialize)]
1164#[serde(rename_all = "snake_case")]
1165#[derive(Clone, PartialEq, ::prost::Message)]
1166pub struct TestIntegrationResponse {
1167    #[prost(message, optional, tag = "1")]
1168    pub result: ::core::option::Option<TestIntegrationResult>,
1169}
1170/// Generated client implementations.
1171pub mod integration_service_client {
1172    #![allow(
1173        unused_variables,
1174        dead_code,
1175        missing_docs,
1176        clippy::wildcard_imports,
1177        clippy::let_unit_value,
1178    )]
1179    use tonic::codegen::*;
1180    use tonic::codegen::http::Uri;
1181    #[derive(Debug, Clone)]
1182    pub struct IntegrationServiceClient<T> {
1183        inner: tonic::client::Grpc<T>,
1184    }
1185    impl IntegrationServiceClient<tonic::transport::Channel> {
1186        /// Attempt to create a new client by connecting to a given endpoint.
1187        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1188        where
1189            D: TryInto<tonic::transport::Endpoint>,
1190            D::Error: Into<StdError>,
1191        {
1192            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1193            Ok(Self::new(conn))
1194        }
1195    }
1196    impl<T> IntegrationServiceClient<T>
1197    where
1198        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1199        T::Error: Into<StdError>,
1200        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1201        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1202    {
1203        pub fn new(inner: T) -> Self {
1204            let inner = tonic::client::Grpc::new(inner);
1205            Self { inner }
1206        }
1207        pub fn with_origin(inner: T, origin: Uri) -> Self {
1208            let inner = tonic::client::Grpc::with_origin(inner, origin);
1209            Self { inner }
1210        }
1211        pub fn with_interceptor<F>(
1212            inner: T,
1213            interceptor: F,
1214        ) -> IntegrationServiceClient<InterceptedService<T, F>>
1215        where
1216            F: tonic::service::Interceptor,
1217            T::ResponseBody: Default,
1218            T: tonic::codegen::Service<
1219                http::Request<tonic::body::BoxBody>,
1220                Response = http::Response<
1221                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1222                >,
1223            >,
1224            <T as tonic::codegen::Service<
1225                http::Request<tonic::body::BoxBody>,
1226            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1227        {
1228            IntegrationServiceClient::new(InterceptedService::new(inner, interceptor))
1229        }
1230        /// Compress requests with the given encoding.
1231        ///
1232        /// This requires the server to support it otherwise it might respond with an
1233        /// error.
1234        #[must_use]
1235        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1236            self.inner = self.inner.send_compressed(encoding);
1237            self
1238        }
1239        /// Enable decompressing responses.
1240        #[must_use]
1241        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1242            self.inner = self.inner.accept_compressed(encoding);
1243            self
1244        }
1245        /// Limits the maximum size of a decoded message.
1246        ///
1247        /// Default: `4MB`
1248        #[must_use]
1249        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1250            self.inner = self.inner.max_decoding_message_size(limit);
1251            self
1252        }
1253        /// Limits the maximum size of an encoded message.
1254        ///
1255        /// Default: `usize::MAX`
1256        #[must_use]
1257        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1258            self.inner = self.inner.max_encoding_message_size(limit);
1259            self
1260        }
1261        pub async fn list_managed_integration_keys(
1262            &mut self,
1263            request: impl tonic::IntoRequest<super::ListManagedIntegrationKeysRequest>,
1264        ) -> std::result::Result<
1265            tonic::Response<super::ListManagedIntegrationKeysResponse>,
1266            tonic::Status,
1267        > {
1268            self.inner
1269                .ready()
1270                .await
1271                .map_err(|e| {
1272                    tonic::Status::unknown(
1273                        format!("Service was not ready: {}", e.into()),
1274                    )
1275                })?;
1276            let codec = tonic::codec::ProstCodec::default();
1277            let path = http::uri::PathAndQuery::from_static(
1278                "/com.coralogix.integrations.v1.IntegrationService/ListManagedIntegrationKeys",
1279            );
1280            let mut req = request.into_request();
1281            req.extensions_mut()
1282                .insert(
1283                    GrpcMethod::new(
1284                        "com.coralogix.integrations.v1.IntegrationService",
1285                        "ListManagedIntegrationKeys",
1286                    ),
1287                );
1288            self.inner.unary(req, path, codec).await
1289        }
1290        pub async fn get_deployed_integration(
1291            &mut self,
1292            request: impl tonic::IntoRequest<super::GetDeployedIntegrationRequest>,
1293        ) -> std::result::Result<
1294            tonic::Response<super::GetDeployedIntegrationResponse>,
1295            tonic::Status,
1296        > {
1297            self.inner
1298                .ready()
1299                .await
1300                .map_err(|e| {
1301                    tonic::Status::unknown(
1302                        format!("Service was not ready: {}", e.into()),
1303                    )
1304                })?;
1305            let codec = tonic::codec::ProstCodec::default();
1306            let path = http::uri::PathAndQuery::from_static(
1307                "/com.coralogix.integrations.v1.IntegrationService/GetDeployedIntegration",
1308            );
1309            let mut req = request.into_request();
1310            req.extensions_mut()
1311                .insert(
1312                    GrpcMethod::new(
1313                        "com.coralogix.integrations.v1.IntegrationService",
1314                        "GetDeployedIntegration",
1315                    ),
1316                );
1317            self.inner.unary(req, path, codec).await
1318        }
1319        pub async fn get_integrations(
1320            &mut self,
1321            request: impl tonic::IntoRequest<super::GetIntegrationsRequest>,
1322        ) -> std::result::Result<
1323            tonic::Response<super::GetIntegrationsResponse>,
1324            tonic::Status,
1325        > {
1326            self.inner
1327                .ready()
1328                .await
1329                .map_err(|e| {
1330                    tonic::Status::unknown(
1331                        format!("Service was not ready: {}", e.into()),
1332                    )
1333                })?;
1334            let codec = tonic::codec::ProstCodec::default();
1335            let path = http::uri::PathAndQuery::from_static(
1336                "/com.coralogix.integrations.v1.IntegrationService/GetIntegrations",
1337            );
1338            let mut req = request.into_request();
1339            req.extensions_mut()
1340                .insert(
1341                    GrpcMethod::new(
1342                        "com.coralogix.integrations.v1.IntegrationService",
1343                        "GetIntegrations",
1344                    ),
1345                );
1346            self.inner.unary(req, path, codec).await
1347        }
1348        pub async fn get_integration_definition(
1349            &mut self,
1350            request: impl tonic::IntoRequest<super::GetIntegrationDefinitionRequest>,
1351        ) -> std::result::Result<
1352            tonic::Response<super::GetIntegrationDefinitionResponse>,
1353            tonic::Status,
1354        > {
1355            self.inner
1356                .ready()
1357                .await
1358                .map_err(|e| {
1359                    tonic::Status::unknown(
1360                        format!("Service was not ready: {}", e.into()),
1361                    )
1362                })?;
1363            let codec = tonic::codec::ProstCodec::default();
1364            let path = http::uri::PathAndQuery::from_static(
1365                "/com.coralogix.integrations.v1.IntegrationService/GetIntegrationDefinition",
1366            );
1367            let mut req = request.into_request();
1368            req.extensions_mut()
1369                .insert(
1370                    GrpcMethod::new(
1371                        "com.coralogix.integrations.v1.IntegrationService",
1372                        "GetIntegrationDefinition",
1373                    ),
1374                );
1375            self.inner.unary(req, path, codec).await
1376        }
1377        pub async fn get_integration_details(
1378            &mut self,
1379            request: impl tonic::IntoRequest<super::GetIntegrationDetailsRequest>,
1380        ) -> std::result::Result<
1381            tonic::Response<super::GetIntegrationDetailsResponse>,
1382            tonic::Status,
1383        > {
1384            self.inner
1385                .ready()
1386                .await
1387                .map_err(|e| {
1388                    tonic::Status::unknown(
1389                        format!("Service was not ready: {}", e.into()),
1390                    )
1391                })?;
1392            let codec = tonic::codec::ProstCodec::default();
1393            let path = http::uri::PathAndQuery::from_static(
1394                "/com.coralogix.integrations.v1.IntegrationService/GetIntegrationDetails",
1395            );
1396            let mut req = request.into_request();
1397            req.extensions_mut()
1398                .insert(
1399                    GrpcMethod::new(
1400                        "com.coralogix.integrations.v1.IntegrationService",
1401                        "GetIntegrationDetails",
1402                    ),
1403                );
1404            self.inner.unary(req, path, codec).await
1405        }
1406        pub async fn get_managed_integration_status(
1407            &mut self,
1408            request: impl tonic::IntoRequest<super::GetManagedIntegrationStatusRequest>,
1409        ) -> std::result::Result<
1410            tonic::Response<super::GetManagedIntegrationStatusResponse>,
1411            tonic::Status,
1412        > {
1413            self.inner
1414                .ready()
1415                .await
1416                .map_err(|e| {
1417                    tonic::Status::unknown(
1418                        format!("Service was not ready: {}", e.into()),
1419                    )
1420                })?;
1421            let codec = tonic::codec::ProstCodec::default();
1422            let path = http::uri::PathAndQuery::from_static(
1423                "/com.coralogix.integrations.v1.IntegrationService/GetManagedIntegrationStatus",
1424            );
1425            let mut req = request.into_request();
1426            req.extensions_mut()
1427                .insert(
1428                    GrpcMethod::new(
1429                        "com.coralogix.integrations.v1.IntegrationService",
1430                        "GetManagedIntegrationStatus",
1431                    ),
1432                );
1433            self.inner.unary(req, path, codec).await
1434        }
1435        pub async fn save_integration(
1436            &mut self,
1437            request: impl tonic::IntoRequest<super::SaveIntegrationRequest>,
1438        ) -> std::result::Result<
1439            tonic::Response<super::SaveIntegrationResponse>,
1440            tonic::Status,
1441        > {
1442            self.inner
1443                .ready()
1444                .await
1445                .map_err(|e| {
1446                    tonic::Status::unknown(
1447                        format!("Service was not ready: {}", e.into()),
1448                    )
1449                })?;
1450            let codec = tonic::codec::ProstCodec::default();
1451            let path = http::uri::PathAndQuery::from_static(
1452                "/com.coralogix.integrations.v1.IntegrationService/SaveIntegration",
1453            );
1454            let mut req = request.into_request();
1455            req.extensions_mut()
1456                .insert(
1457                    GrpcMethod::new(
1458                        "com.coralogix.integrations.v1.IntegrationService",
1459                        "SaveIntegration",
1460                    ),
1461                );
1462            self.inner.unary(req, path, codec).await
1463        }
1464        pub async fn update_integration(
1465            &mut self,
1466            request: impl tonic::IntoRequest<super::UpdateIntegrationRequest>,
1467        ) -> std::result::Result<
1468            tonic::Response<super::UpdateIntegrationResponse>,
1469            tonic::Status,
1470        > {
1471            self.inner
1472                .ready()
1473                .await
1474                .map_err(|e| {
1475                    tonic::Status::unknown(
1476                        format!("Service was not ready: {}", e.into()),
1477                    )
1478                })?;
1479            let codec = tonic::codec::ProstCodec::default();
1480            let path = http::uri::PathAndQuery::from_static(
1481                "/com.coralogix.integrations.v1.IntegrationService/UpdateIntegration",
1482            );
1483            let mut req = request.into_request();
1484            req.extensions_mut()
1485                .insert(
1486                    GrpcMethod::new(
1487                        "com.coralogix.integrations.v1.IntegrationService",
1488                        "UpdateIntegration",
1489                    ),
1490                );
1491            self.inner.unary(req, path, codec).await
1492        }
1493        pub async fn delete_integration(
1494            &mut self,
1495            request: impl tonic::IntoRequest<super::DeleteIntegrationRequest>,
1496        ) -> std::result::Result<
1497            tonic::Response<super::DeleteIntegrationResponse>,
1498            tonic::Status,
1499        > {
1500            self.inner
1501                .ready()
1502                .await
1503                .map_err(|e| {
1504                    tonic::Status::unknown(
1505                        format!("Service was not ready: {}", e.into()),
1506                    )
1507                })?;
1508            let codec = tonic::codec::ProstCodec::default();
1509            let path = http::uri::PathAndQuery::from_static(
1510                "/com.coralogix.integrations.v1.IntegrationService/DeleteIntegration",
1511            );
1512            let mut req = request.into_request();
1513            req.extensions_mut()
1514                .insert(
1515                    GrpcMethod::new(
1516                        "com.coralogix.integrations.v1.IntegrationService",
1517                        "DeleteIntegration",
1518                    ),
1519                );
1520            self.inner.unary(req, path, codec).await
1521        }
1522        pub async fn get_template(
1523            &mut self,
1524            request: impl tonic::IntoRequest<super::GetTemplateRequest>,
1525        ) -> std::result::Result<
1526            tonic::Response<super::GetTemplateResponse>,
1527            tonic::Status,
1528        > {
1529            self.inner
1530                .ready()
1531                .await
1532                .map_err(|e| {
1533                    tonic::Status::unknown(
1534                        format!("Service was not ready: {}", e.into()),
1535                    )
1536                })?;
1537            let codec = tonic::codec::ProstCodec::default();
1538            let path = http::uri::PathAndQuery::from_static(
1539                "/com.coralogix.integrations.v1.IntegrationService/GetTemplate",
1540            );
1541            let mut req = request.into_request();
1542            req.extensions_mut()
1543                .insert(
1544                    GrpcMethod::new(
1545                        "com.coralogix.integrations.v1.IntegrationService",
1546                        "GetTemplate",
1547                    ),
1548                );
1549            self.inner.unary(req, path, codec).await
1550        }
1551        pub async fn get_rum_application_version_data(
1552            &mut self,
1553            request: impl tonic::IntoRequest<super::GetRumApplicationVersionDataRequest>,
1554        ) -> std::result::Result<
1555            tonic::Response<super::GetRumApplicationVersionDataResponse>,
1556            tonic::Status,
1557        > {
1558            self.inner
1559                .ready()
1560                .await
1561                .map_err(|e| {
1562                    tonic::Status::unknown(
1563                        format!("Service was not ready: {}", e.into()),
1564                    )
1565                })?;
1566            let codec = tonic::codec::ProstCodec::default();
1567            let path = http::uri::PathAndQuery::from_static(
1568                "/com.coralogix.integrations.v1.IntegrationService/GetRumApplicationVersionData",
1569            );
1570            let mut req = request.into_request();
1571            req.extensions_mut()
1572                .insert(
1573                    GrpcMethod::new(
1574                        "com.coralogix.integrations.v1.IntegrationService",
1575                        "GetRumApplicationVersionData",
1576                    ),
1577                );
1578            self.inner.unary(req, path, codec).await
1579        }
1580        pub async fn sync_rum_data(
1581            &mut self,
1582            request: impl tonic::IntoRequest<super::SyncRumDataRequest>,
1583        ) -> std::result::Result<
1584            tonic::Response<super::SyncRumDataResponse>,
1585            tonic::Status,
1586        > {
1587            self.inner
1588                .ready()
1589                .await
1590                .map_err(|e| {
1591                    tonic::Status::unknown(
1592                        format!("Service was not ready: {}", e.into()),
1593                    )
1594                })?;
1595            let codec = tonic::codec::ProstCodec::default();
1596            let path = http::uri::PathAndQuery::from_static(
1597                "/com.coralogix.integrations.v1.IntegrationService/SyncRumData",
1598            );
1599            let mut req = request.into_request();
1600            req.extensions_mut()
1601                .insert(
1602                    GrpcMethod::new(
1603                        "com.coralogix.integrations.v1.IntegrationService",
1604                        "SyncRumData",
1605                    ),
1606                );
1607            self.inner.unary(req, path, codec).await
1608        }
1609        pub async fn test_integration(
1610            &mut self,
1611            request: impl tonic::IntoRequest<super::TestIntegrationRequest>,
1612        ) -> std::result::Result<
1613            tonic::Response<super::TestIntegrationResponse>,
1614            tonic::Status,
1615        > {
1616            self.inner
1617                .ready()
1618                .await
1619                .map_err(|e| {
1620                    tonic::Status::unknown(
1621                        format!("Service was not ready: {}", e.into()),
1622                    )
1623                })?;
1624            let codec = tonic::codec::ProstCodec::default();
1625            let path = http::uri::PathAndQuery::from_static(
1626                "/com.coralogix.integrations.v1.IntegrationService/TestIntegration",
1627            );
1628            let mut req = request.into_request();
1629            req.extensions_mut()
1630                .insert(
1631                    GrpcMethod::new(
1632                        "com.coralogix.integrations.v1.IntegrationService",
1633                        "TestIntegration",
1634                    ),
1635                );
1636            self.inner.unary(req, path, codec).await
1637        }
1638    }
1639}
1640#[derive(serde::Serialize, serde::Deserialize)]
1641#[serde(rename_all = "snake_case")]
1642#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1643pub struct GetContextualDataIntegrationsRequest {
1644    #[prost(message, optional, tag = "1")]
1645    pub include_testing_integrations: ::core::option::Option<bool>,
1646}
1647#[derive(serde::Serialize, serde::Deserialize)]
1648#[serde(rename_all = "snake_case")]
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct GetContextualDataIntegrationsResponse {
1651    #[prost(message, repeated, tag = "1")]
1652    pub integrations: ::prost::alloc::vec::Vec<
1653        get_contextual_data_integrations_response::IntegrationWithCounts,
1654    >,
1655}
1656/// Nested message and enum types in `GetContextualDataIntegrationsResponse`.
1657pub mod get_contextual_data_integrations_response {
1658    #[derive(serde::Serialize, serde::Deserialize)]
1659    #[serde(rename_all = "snake_case")]
1660    #[derive(Clone, PartialEq, ::prost::Message)]
1661    pub struct IntegrationWithCounts {
1662        #[prost(message, optional, tag = "1")]
1663        pub integration: ::core::option::Option<super::Integration>,
1664        #[prost(message, optional, tag = "2")]
1665        pub amount_integrations: ::core::option::Option<u32>,
1666        #[prost(message, repeated, tag = "3")]
1667        pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1668        #[prost(message, optional, tag = "4")]
1669        pub upgrade_available: ::core::option::Option<bool>,
1670        #[prost(message, optional, tag = "5")]
1671        pub is_new: ::core::option::Option<bool>,
1672    }
1673}
1674#[derive(serde::Serialize, serde::Deserialize)]
1675#[serde(rename_all = "snake_case")]
1676#[derive(Clone, PartialEq, ::prost::Message)]
1677pub struct GetContextualDataIntegrationDefinitionRequest {
1678    #[prost(message, optional, tag = "1")]
1679    pub id: ::core::option::Option<::prost::alloc::string::String>,
1680    #[prost(message, optional, tag = "2")]
1681    pub include_testing_integrations: ::core::option::Option<bool>,
1682}
1683#[derive(serde::Serialize, serde::Deserialize)]
1684#[serde(rename_all = "snake_case")]
1685#[derive(Clone, PartialEq, ::prost::Message)]
1686pub struct GetContextualDataIntegrationDefinitionResponse {
1687    #[prost(message, optional, tag = "1")]
1688    pub integration_definition: ::core::option::Option<IntegrationDefinition>,
1689}
1690#[derive(serde::Serialize, serde::Deserialize)]
1691#[serde(rename_all = "snake_case")]
1692#[derive(Clone, PartialEq, ::prost::Message)]
1693pub struct GetContextualDataIntegrationDetailsRequest {
1694    #[prost(message, optional, tag = "1")]
1695    pub id: ::core::option::Option<::prost::alloc::string::String>,
1696    #[prost(message, optional, tag = "2")]
1697    pub include_testing_revisions: ::core::option::Option<bool>,
1698}
1699#[derive(serde::Serialize, serde::Deserialize)]
1700#[serde(rename_all = "snake_case")]
1701#[derive(Clone, PartialEq, ::prost::Message)]
1702pub struct GetContextualDataIntegrationDetailsResponse {
1703    #[prost(message, optional, tag = "1")]
1704    pub integration_detail: ::core::option::Option<IntegrationDetails>,
1705}
1706#[derive(serde::Serialize, serde::Deserialize)]
1707#[serde(rename_all = "snake_case")]
1708#[derive(Clone, PartialEq, ::prost::Message)]
1709pub struct UpdateContextualDataIntegrationRequest {
1710    #[prost(message, optional, tag = "1")]
1711    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1712    #[prost(message, optional, tag = "2")]
1713    pub metadata: ::core::option::Option<IntegrationMetadata>,
1714}
1715#[derive(serde::Serialize, serde::Deserialize)]
1716#[serde(rename_all = "snake_case")]
1717#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1718pub struct UpdateContextualDataIntegrationResponse {}
1719#[derive(serde::Serialize, serde::Deserialize)]
1720#[serde(rename_all = "snake_case")]
1721#[derive(Clone, PartialEq, ::prost::Message)]
1722pub struct TestContextualDataIntegrationRequest {
1723    #[prost(message, optional, tag = "1")]
1724    pub integration_data: ::core::option::Option<IntegrationMetadata>,
1725    #[prost(message, optional, tag = "2")]
1726    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1727}
1728#[derive(serde::Serialize, serde::Deserialize)]
1729#[serde(rename_all = "snake_case")]
1730#[derive(Clone, PartialEq, ::prost::Message)]
1731pub struct TestContextualDataIntegrationResponse {
1732    #[prost(message, optional, tag = "1")]
1733    pub result: ::core::option::Option<TestIntegrationResult>,
1734}
1735#[derive(serde::Serialize, serde::Deserialize)]
1736#[serde(rename_all = "snake_case")]
1737#[derive(Clone, PartialEq, ::prost::Message)]
1738pub struct SaveContextualDataIntegrationRequest {
1739    #[prost(message, optional, tag = "1")]
1740    pub metadata: ::core::option::Option<IntegrationMetadata>,
1741}
1742#[derive(serde::Serialize, serde::Deserialize)]
1743#[serde(rename_all = "snake_case")]
1744#[derive(Clone, PartialEq, ::prost::Message)]
1745pub struct SaveContextualDataIntegrationResponse {
1746    #[prost(message, optional, tag = "1")]
1747    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1748}
1749#[derive(serde::Serialize, serde::Deserialize)]
1750#[serde(rename_all = "snake_case")]
1751#[derive(Clone, PartialEq, ::prost::Message)]
1752pub struct DeleteContextualDataIntegrationRequest {
1753    #[prost(message, optional, tag = "1")]
1754    pub integration_id: ::core::option::Option<::prost::alloc::string::String>,
1755}
1756#[derive(serde::Serialize, serde::Deserialize)]
1757#[serde(rename_all = "snake_case")]
1758#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1759pub struct DeleteContextualDataIntegrationResponse {}
1760/// Generated client implementations.
1761pub mod contextual_data_integration_service_client {
1762    #![allow(
1763        unused_variables,
1764        dead_code,
1765        missing_docs,
1766        clippy::wildcard_imports,
1767        clippy::let_unit_value,
1768    )]
1769    use tonic::codegen::*;
1770    use tonic::codegen::http::Uri;
1771    #[derive(Debug, Clone)]
1772    pub struct ContextualDataIntegrationServiceClient<T> {
1773        inner: tonic::client::Grpc<T>,
1774    }
1775    impl ContextualDataIntegrationServiceClient<tonic::transport::Channel> {
1776        /// Attempt to create a new client by connecting to a given endpoint.
1777        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1778        where
1779            D: TryInto<tonic::transport::Endpoint>,
1780            D::Error: Into<StdError>,
1781        {
1782            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1783            Ok(Self::new(conn))
1784        }
1785    }
1786    impl<T> ContextualDataIntegrationServiceClient<T>
1787    where
1788        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1789        T::Error: Into<StdError>,
1790        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1791        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1792    {
1793        pub fn new(inner: T) -> Self {
1794            let inner = tonic::client::Grpc::new(inner);
1795            Self { inner }
1796        }
1797        pub fn with_origin(inner: T, origin: Uri) -> Self {
1798            let inner = tonic::client::Grpc::with_origin(inner, origin);
1799            Self { inner }
1800        }
1801        pub fn with_interceptor<F>(
1802            inner: T,
1803            interceptor: F,
1804        ) -> ContextualDataIntegrationServiceClient<InterceptedService<T, F>>
1805        where
1806            F: tonic::service::Interceptor,
1807            T::ResponseBody: Default,
1808            T: tonic::codegen::Service<
1809                http::Request<tonic::body::BoxBody>,
1810                Response = http::Response<
1811                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1812                >,
1813            >,
1814            <T as tonic::codegen::Service<
1815                http::Request<tonic::body::BoxBody>,
1816            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1817        {
1818            ContextualDataIntegrationServiceClient::new(
1819                InterceptedService::new(inner, interceptor),
1820            )
1821        }
1822        /// Compress requests with the given encoding.
1823        ///
1824        /// This requires the server to support it otherwise it might respond with an
1825        /// error.
1826        #[must_use]
1827        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1828            self.inner = self.inner.send_compressed(encoding);
1829            self
1830        }
1831        /// Enable decompressing responses.
1832        #[must_use]
1833        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1834            self.inner = self.inner.accept_compressed(encoding);
1835            self
1836        }
1837        /// Limits the maximum size of a decoded message.
1838        ///
1839        /// Default: `4MB`
1840        #[must_use]
1841        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1842            self.inner = self.inner.max_decoding_message_size(limit);
1843            self
1844        }
1845        /// Limits the maximum size of an encoded message.
1846        ///
1847        /// Default: `usize::MAX`
1848        #[must_use]
1849        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1850            self.inner = self.inner.max_encoding_message_size(limit);
1851            self
1852        }
1853        pub async fn get_contextual_data_integrations(
1854            &mut self,
1855            request: impl tonic::IntoRequest<super::GetContextualDataIntegrationsRequest>,
1856        ) -> std::result::Result<
1857            tonic::Response<super::GetContextualDataIntegrationsResponse>,
1858            tonic::Status,
1859        > {
1860            self.inner
1861                .ready()
1862                .await
1863                .map_err(|e| {
1864                    tonic::Status::unknown(
1865                        format!("Service was not ready: {}", e.into()),
1866                    )
1867                })?;
1868            let codec = tonic::codec::ProstCodec::default();
1869            let path = http::uri::PathAndQuery::from_static(
1870                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/GetContextualDataIntegrations",
1871            );
1872            let mut req = request.into_request();
1873            req.extensions_mut()
1874                .insert(
1875                    GrpcMethod::new(
1876                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
1877                        "GetContextualDataIntegrations",
1878                    ),
1879                );
1880            self.inner.unary(req, path, codec).await
1881        }
1882        pub async fn get_contextual_data_integration_definition(
1883            &mut self,
1884            request: impl tonic::IntoRequest<
1885                super::GetContextualDataIntegrationDefinitionRequest,
1886            >,
1887        ) -> std::result::Result<
1888            tonic::Response<super::GetContextualDataIntegrationDefinitionResponse>,
1889            tonic::Status,
1890        > {
1891            self.inner
1892                .ready()
1893                .await
1894                .map_err(|e| {
1895                    tonic::Status::unknown(
1896                        format!("Service was not ready: {}", e.into()),
1897                    )
1898                })?;
1899            let codec = tonic::codec::ProstCodec::default();
1900            let path = http::uri::PathAndQuery::from_static(
1901                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/GetContextualDataIntegrationDefinition",
1902            );
1903            let mut req = request.into_request();
1904            req.extensions_mut()
1905                .insert(
1906                    GrpcMethod::new(
1907                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
1908                        "GetContextualDataIntegrationDefinition",
1909                    ),
1910                );
1911            self.inner.unary(req, path, codec).await
1912        }
1913        pub async fn get_contextual_data_integration_details(
1914            &mut self,
1915            request: impl tonic::IntoRequest<
1916                super::GetContextualDataIntegrationDetailsRequest,
1917            >,
1918        ) -> std::result::Result<
1919            tonic::Response<super::GetContextualDataIntegrationDetailsResponse>,
1920            tonic::Status,
1921        > {
1922            self.inner
1923                .ready()
1924                .await
1925                .map_err(|e| {
1926                    tonic::Status::unknown(
1927                        format!("Service was not ready: {}", e.into()),
1928                    )
1929                })?;
1930            let codec = tonic::codec::ProstCodec::default();
1931            let path = http::uri::PathAndQuery::from_static(
1932                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/GetContextualDataIntegrationDetails",
1933            );
1934            let mut req = request.into_request();
1935            req.extensions_mut()
1936                .insert(
1937                    GrpcMethod::new(
1938                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
1939                        "GetContextualDataIntegrationDetails",
1940                    ),
1941                );
1942            self.inner.unary(req, path, codec).await
1943        }
1944        pub async fn test_contextual_data_integration(
1945            &mut self,
1946            request: impl tonic::IntoRequest<super::TestContextualDataIntegrationRequest>,
1947        ) -> std::result::Result<
1948            tonic::Response<super::TestContextualDataIntegrationResponse>,
1949            tonic::Status,
1950        > {
1951            self.inner
1952                .ready()
1953                .await
1954                .map_err(|e| {
1955                    tonic::Status::unknown(
1956                        format!("Service was not ready: {}", e.into()),
1957                    )
1958                })?;
1959            let codec = tonic::codec::ProstCodec::default();
1960            let path = http::uri::PathAndQuery::from_static(
1961                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/TestContextualDataIntegration",
1962            );
1963            let mut req = request.into_request();
1964            req.extensions_mut()
1965                .insert(
1966                    GrpcMethod::new(
1967                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
1968                        "TestContextualDataIntegration",
1969                    ),
1970                );
1971            self.inner.unary(req, path, codec).await
1972        }
1973        pub async fn save_contextual_data_integration(
1974            &mut self,
1975            request: impl tonic::IntoRequest<super::SaveContextualDataIntegrationRequest>,
1976        ) -> std::result::Result<
1977            tonic::Response<super::SaveContextualDataIntegrationResponse>,
1978            tonic::Status,
1979        > {
1980            self.inner
1981                .ready()
1982                .await
1983                .map_err(|e| {
1984                    tonic::Status::unknown(
1985                        format!("Service was not ready: {}", e.into()),
1986                    )
1987                })?;
1988            let codec = tonic::codec::ProstCodec::default();
1989            let path = http::uri::PathAndQuery::from_static(
1990                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/SaveContextualDataIntegration",
1991            );
1992            let mut req = request.into_request();
1993            req.extensions_mut()
1994                .insert(
1995                    GrpcMethod::new(
1996                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
1997                        "SaveContextualDataIntegration",
1998                    ),
1999                );
2000            self.inner.unary(req, path, codec).await
2001        }
2002        pub async fn update_contextual_data_integration(
2003            &mut self,
2004            request: impl tonic::IntoRequest<
2005                super::UpdateContextualDataIntegrationRequest,
2006            >,
2007        ) -> std::result::Result<
2008            tonic::Response<super::UpdateContextualDataIntegrationResponse>,
2009            tonic::Status,
2010        > {
2011            self.inner
2012                .ready()
2013                .await
2014                .map_err(|e| {
2015                    tonic::Status::unknown(
2016                        format!("Service was not ready: {}", e.into()),
2017                    )
2018                })?;
2019            let codec = tonic::codec::ProstCodec::default();
2020            let path = http::uri::PathAndQuery::from_static(
2021                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/UpdateContextualDataIntegration",
2022            );
2023            let mut req = request.into_request();
2024            req.extensions_mut()
2025                .insert(
2026                    GrpcMethod::new(
2027                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
2028                        "UpdateContextualDataIntegration",
2029                    ),
2030                );
2031            self.inner.unary(req, path, codec).await
2032        }
2033        pub async fn delete_contextual_data_integration(
2034            &mut self,
2035            request: impl tonic::IntoRequest<
2036                super::DeleteContextualDataIntegrationRequest,
2037            >,
2038        ) -> std::result::Result<
2039            tonic::Response<super::DeleteContextualDataIntegrationResponse>,
2040            tonic::Status,
2041        > {
2042            self.inner
2043                .ready()
2044                .await
2045                .map_err(|e| {
2046                    tonic::Status::unknown(
2047                        format!("Service was not ready: {}", e.into()),
2048                    )
2049                })?;
2050            let codec = tonic::codec::ProstCodec::default();
2051            let path = http::uri::PathAndQuery::from_static(
2052                "/com.coralogix.integrations.v1.ContextualDataIntegrationService/DeleteContextualDataIntegration",
2053            );
2054            let mut req = request.into_request();
2055            req.extensions_mut()
2056                .insert(
2057                    GrpcMethod::new(
2058                        "com.coralogix.integrations.v1.ContextualDataIntegrationService",
2059                        "DeleteContextualDataIntegration",
2060                    ),
2061                );
2062            self.inner.unary(req, path, codec).await
2063        }
2064    }
2065}