Skip to main content

nominal_api_proto/proto/
nominal.connection.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3pub struct InfluxChannelNameComponent {
4    #[prost(
5        oneof = "influx_channel_name_component::InfluxChannelNameComponent",
6        tags = "1, 2, 3"
7    )]
8    pub influx_channel_name_component: ::core::option::Option<
9        influx_channel_name_component::InfluxChannelNameComponent,
10    >,
11}
12/// Nested message and enum types in `InfluxChannelNameComponent`.
13pub mod influx_channel_name_component {
14    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
15    pub enum InfluxChannelNameComponent {
16        #[prost(message, tag = "1")]
17        Bucket(super::super::super::super::google::protobuf::Empty),
18        #[prost(message, tag = "2")]
19        Measurement(super::super::super::super::google::protobuf::Empty),
20        #[prost(message, tag = "3")]
21        Field(super::super::super::super::google::protobuf::Empty),
22    }
23}
24#[derive(Clone, PartialEq, ::prost::Message)]
25pub struct NominalChannelNameComponent {
26    #[prost(
27        oneof = "nominal_channel_name_component::NominalChannelNameComponent",
28        tags = "1, 2"
29    )]
30    pub nominal_channel_name_component: ::core::option::Option<
31        nominal_channel_name_component::NominalChannelNameComponent,
32    >,
33}
34/// Nested message and enum types in `NominalChannelNameComponent`.
35pub mod nominal_channel_name_component {
36    #[derive(Clone, PartialEq, ::prost::Oneof)]
37    pub enum NominalChannelNameComponent {
38        #[prost(message, tag = "1")]
39        Channel(super::super::super::super::google::protobuf::Empty),
40        #[prost(string, tag = "2")]
41        ValueOfTagWithName(::prost::alloc::string::String),
42    }
43}
44#[derive(Clone, PartialEq, ::prost::Message)]
45pub struct TimestreamChannelNameComponent {
46    #[prost(
47        oneof = "timestream_channel_name_component::TimestreamChannelNameComponent",
48        tags = "1, 2, 3, 4"
49    )]
50    pub timestream_channel_name_component: ::core::option::Option<
51        timestream_channel_name_component::TimestreamChannelNameComponent,
52    >,
53}
54/// Nested message and enum types in `TimestreamChannelNameComponent`.
55pub mod timestream_channel_name_component {
56    #[derive(Clone, PartialEq, ::prost::Oneof)]
57    pub enum TimestreamChannelNameComponent {
58        #[prost(message, tag = "1")]
59        Table(super::super::super::super::google::protobuf::Empty),
60        #[prost(message, tag = "2")]
61        Measure(super::super::super::super::google::protobuf::Empty),
62        #[prost(message, tag = "3")]
63        Attribute(super::super::super::super::google::protobuf::Empty),
64        #[prost(string, tag = "4")]
65        ValueOfTagWithName(::prost::alloc::string::String),
66    }
67}
68#[derive(Clone, Copy, PartialEq, ::prost::Message)]
69pub struct PivotedTimescaleChannelNameComponent {
70    #[prost(
71        oneof = "pivoted_timescale_channel_name_component::PivotedTimescaleChannelNameComponent",
72        tags = "1, 2"
73    )]
74    pub pivoted_timescale_channel_name_component: ::core::option::Option<
75        pivoted_timescale_channel_name_component::PivotedTimescaleChannelNameComponent,
76    >,
77}
78/// Nested message and enum types in `PivotedTimescaleChannelNameComponent`.
79pub mod pivoted_timescale_channel_name_component {
80    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
81    pub enum PivotedTimescaleChannelNameComponent {
82        #[prost(message, tag = "1")]
83        Table(super::super::super::super::google::protobuf::Empty),
84        #[prost(message, tag = "2")]
85        Name(super::super::super::super::google::protobuf::Empty),
86    }
87}
88#[derive(Clone, Copy, PartialEq, ::prost::Message)]
89pub struct BigQueryChannelNameComponent {
90    #[prost(bool, tag = "1")]
91    pub include_project: bool,
92    #[prost(bool, tag = "2")]
93    pub include_dataset: bool,
94    #[prost(bool, tag = "3")]
95    pub include_table: bool,
96}
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct InfluxScrapingFilter {
99    #[prost(oneof = "influx_scraping_filter::InfluxScrapingFilter", tags = "1, 2, 3")]
100    pub influx_scraping_filter: ::core::option::Option<
101        influx_scraping_filter::InfluxScrapingFilter,
102    >,
103}
104/// Nested message and enum types in `InfluxScrapingFilter`.
105pub mod influx_scraping_filter {
106    #[derive(Clone, PartialEq, ::prost::Oneof)]
107    pub enum InfluxScrapingFilter {
108        #[prost(message, tag = "1")]
109        Not(::prost::alloc::boxed::Box<super::InfluxScrapingFilter>),
110        #[prost(message, tag = "2")]
111        MatchBucket(super::BucketNames),
112        #[prost(message, tag = "3")]
113        MatchMeasurement(super::MeasurementNames),
114    }
115}
116#[derive(Clone, PartialEq, ::prost::Message)]
117pub struct TimestreamScrapingFilter {
118    #[prost(oneof = "timestream_scraping_filter::TimestreamScrapingFilter", tags = "1")]
119    pub timestream_scraping_filter: ::core::option::Option<
120        timestream_scraping_filter::TimestreamScrapingFilter,
121    >,
122}
123/// Nested message and enum types in `TimestreamScrapingFilter`.
124pub mod timestream_scraping_filter {
125    #[derive(Clone, PartialEq, ::prost::Oneof)]
126    pub enum TimestreamScrapingFilter {
127        #[prost(message, tag = "1")]
128        MatchTable(super::TableNames),
129    }
130}
131#[derive(Clone, PartialEq, ::prost::Message)]
132pub struct TimescaleScrapingFilter {
133    #[prost(
134        oneof = "timescale_scraping_filter::TimescaleScrapingFilter",
135        tags = "1, 2, 3"
136    )]
137    pub timescale_scraping_filter: ::core::option::Option<
138        timescale_scraping_filter::TimescaleScrapingFilter,
139    >,
140}
141/// Nested message and enum types in `TimescaleScrapingFilter`.
142pub mod timescale_scraping_filter {
143    #[derive(Clone, PartialEq, ::prost::Oneof)]
144    pub enum TimescaleScrapingFilter {
145        #[prost(message, tag = "1")]
146        Not(::prost::alloc::boxed::Box<super::TimescaleScrapingFilter>),
147        #[prost(message, tag = "2")]
148        MatchTable(super::TableNames),
149        #[prost(message, tag = "3")]
150        MatchSchema(super::SchemaNames),
151    }
152}
153#[derive(Clone, PartialEq, ::prost::Message)]
154pub struct BucketNames {
155    #[prost(string, repeated, tag = "1")]
156    pub bucket_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
157}
158#[derive(Clone, PartialEq, ::prost::Message)]
159pub struct MeasurementNames {
160    #[prost(string, repeated, tag = "1")]
161    pub measurement_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
162}
163#[derive(Clone, PartialEq, ::prost::Message)]
164pub struct TableNames {
165    #[prost(string, repeated, tag = "1")]
166    pub table_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
167}
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct SchemaNames {
170    #[prost(string, repeated, tag = "1")]
171    pub schema_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
172}
173#[derive(Clone, PartialEq, ::prost::Message)]
174pub struct InfluxSeriesArchetypeConstructionConfig {
175    #[prost(message, repeated, tag = "1")]
176    pub channel_name_components: ::prost::alloc::vec::Vec<InfluxChannelNameComponent>,
177    #[prost(string, tag = "2")]
178    pub separator: ::prost::alloc::string::String,
179}
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct InfluxScrapingConfig {
182    #[prost(message, repeated, tag = "1")]
183    pub filter: ::prost::alloc::vec::Vec<InfluxScrapingFilter>,
184    #[prost(message, optional, tag = "2")]
185    pub series_archetype_construction: ::core::option::Option<
186        InfluxSeriesArchetypeConstructionConfig,
187    >,
188}
189#[derive(Clone, PartialEq, ::prost::Message)]
190pub struct NominalScrapingConfig {
191    #[prost(message, repeated, tag = "1")]
192    pub channel_name_components: ::prost::alloc::vec::Vec<NominalChannelNameComponent>,
193    #[prost(string, tag = "2")]
194    pub separator: ::prost::alloc::string::String,
195}
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct VisualCrossingAvailableSeries {
198    #[prost(string, tag = "1")]
199    pub channel: ::prost::alloc::string::String,
200    #[prost(string, optional, tag = "2")]
201    pub unit: ::core::option::Option<::prost::alloc::string::String>,
202    #[prost(string, optional, tag = "3")]
203    pub description: ::core::option::Option<::prost::alloc::string::String>,
204    #[prost(enumeration = "VisualCrossingType", tag = "4")]
205    pub r#type: i32,
206}
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct VisualCrossingScrapingConfig {
209    #[deprecated]
210    #[prost(message, repeated, tag = "1")]
211    pub available_series: ::prost::alloc::vec::Vec<VisualCrossingAvailableSeries>,
212}
213#[derive(Clone, PartialEq, ::prost::Message)]
214pub struct TimestreamScrapingConfig {
215    #[prost(message, repeated, tag = "1")]
216    pub filter: ::prost::alloc::vec::Vec<TimestreamScrapingFilter>,
217    #[prost(message, repeated, tag = "2")]
218    pub channel_name_components: ::prost::alloc::vec::Vec<
219        TimestreamChannelNameComponent,
220    >,
221    #[prost(string, tag = "3")]
222    pub separator: ::prost::alloc::string::String,
223    #[prost(int32, optional, tag = "4")]
224    pub max_look_back_period_hours: ::core::option::Option<i32>,
225}
226#[derive(Clone, PartialEq, ::prost::Message)]
227pub struct PivotedTimescaleScrapingConfig {
228    #[prost(message, repeated, tag = "1")]
229    pub filter: ::prost::alloc::vec::Vec<TimescaleScrapingFilter>,
230    #[prost(string, tag = "2")]
231    pub time_column: ::prost::alloc::string::String,
232    #[prost(string, tag = "3")]
233    pub name_column: ::prost::alloc::string::String,
234    #[prost(string, tag = "4")]
235    pub value_column: ::prost::alloc::string::String,
236    #[prost(string, repeated, tag = "5")]
237    pub dimension_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
238    #[prost(message, repeated, tag = "6")]
239    pub channel_name_components: ::prost::alloc::vec::Vec<
240        PivotedTimescaleChannelNameComponent,
241    >,
242    #[prost(string, tag = "7")]
243    pub separator: ::prost::alloc::string::String,
244}
245#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct BigQueryScrapingConfig {
247    #[prost(string, tag = "1")]
248    pub time_column: ::prost::alloc::string::String,
249    #[prost(string, repeated, tag = "2")]
250    pub tag_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
251    #[prost(message, optional, tag = "3")]
252    pub channel_name_components: ::core::option::Option<BigQueryChannelNameComponent>,
253    #[prost(string, optional, tag = "4")]
254    pub separator: ::core::option::Option<::prost::alloc::string::String>,
255}
256#[derive(Clone, Copy, PartialEq, ::prost::Message)]
257pub struct AllChannelsConnectionsScrapingConfig {}
258#[derive(Clone, PartialEq, ::prost::Message)]
259pub struct ChannelAllowListConnectionsScrapingConfig {
260    #[prost(string, repeated, tag = "1")]
261    pub channel_allow_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
262}
263#[derive(Clone, PartialEq, ::prost::Message)]
264pub struct ChannelBlockListConnectionsScrapingConfig {
265    #[prost(string, repeated, tag = "1")]
266    pub channel_block_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
267}
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct ApiScrapingConfig {
270    #[prost(oneof = "api_scraping_config::ApiScrapingConfig", tags = "1, 2, 3")]
271    pub api_scraping_config: ::core::option::Option<
272        api_scraping_config::ApiScrapingConfig,
273    >,
274}
275/// Nested message and enum types in `ApiScrapingConfig`.
276pub mod api_scraping_config {
277    #[derive(Clone, PartialEq, ::prost::Oneof)]
278    pub enum ApiScrapingConfig {
279        #[prost(message, tag = "1")]
280        AllChannels(super::AllChannelsConnectionsScrapingConfig),
281        #[prost(message, tag = "2")]
282        ChannelAllowList(super::ChannelAllowListConnectionsScrapingConfig),
283        #[prost(message, tag = "3")]
284        ChannelBlockList(super::ChannelBlockListConnectionsScrapingConfig),
285    }
286}
287#[derive(Clone, PartialEq, ::prost::Message)]
288pub struct ScrapingConfig {
289    #[prost(oneof = "scraping_config::ScrapingConfig", tags = "1, 2, 3, 4, 5, 6, 7")]
290    pub scraping_config: ::core::option::Option<scraping_config::ScrapingConfig>,
291}
292/// Nested message and enum types in `ScrapingConfig`.
293pub mod scraping_config {
294    #[derive(Clone, PartialEq, ::prost::Oneof)]
295    pub enum ScrapingConfig {
296        #[prost(message, tag = "1")]
297        Influx(super::InfluxScrapingConfig),
298        #[prost(message, tag = "2")]
299        Nominal(super::NominalScrapingConfig),
300        #[prost(message, tag = "3")]
301        Timestream(super::TimestreamScrapingConfig),
302        #[prost(message, tag = "4")]
303        Timescale(super::PivotedTimescaleScrapingConfig),
304        #[prost(message, tag = "5")]
305        VisualCrossing(super::VisualCrossingScrapingConfig),
306        #[prost(message, tag = "6")]
307        BigQuery(super::BigQueryScrapingConfig),
308        #[prost(message, tag = "7")]
309        Api(super::ApiScrapingConfig),
310    }
311}
312#[derive(Clone, PartialEq, ::prost::Message)]
313pub struct HeaderValue {
314    #[prost(oneof = "header_value::HeaderValue", tags = "1, 2")]
315    pub header_value: ::core::option::Option<header_value::HeaderValue>,
316}
317/// Nested message and enum types in `HeaderValue`.
318pub mod header_value {
319    #[derive(Clone, PartialEq, ::prost::Oneof)]
320    pub enum HeaderValue {
321        #[prost(string, tag = "1")]
322        Plain(::prost::alloc::string::String),
323        #[prost(string, tag = "2")]
324        SecretRid(::prost::alloc::string::String),
325    }
326}
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct PasswordCredentials {
329    #[prost(string, tag = "1")]
330    pub username: ::prost::alloc::string::String,
331    #[prost(string, tag = "2")]
332    pub password_secret_rid: ::prost::alloc::string::String,
333}
334#[derive(Clone, PartialEq, ::prost::Message)]
335pub struct TimescaleConnectionDetails {
336    #[prost(string, tag = "1")]
337    pub database: ::prost::alloc::string::String,
338    #[prost(string, tag = "2")]
339    pub host: ::prost::alloc::string::String,
340    #[prost(int32, tag = "3")]
341    pub port: i32,
342    #[prost(string, tag = "4")]
343    pub username: ::prost::alloc::string::String,
344    #[prost(string, tag = "5")]
345    pub password_secret_rid: ::prost::alloc::string::String,
346}
347#[derive(Clone, PartialEq, ::prost::Message)]
348pub struct Influx2ConnectionDetails {
349    #[prost(string, tag = "1")]
350    pub host: ::prost::alloc::string::String,
351    #[prost(int32, tag = "2")]
352    pub port: i32,
353    #[prost(map = "string, message", tag = "3")]
354    pub headers: ::std::collections::HashMap<
355        ::prost::alloc::string::String,
356        HeaderValue,
357    >,
358    #[prost(string, tag = "4")]
359    pub org: ::prost::alloc::string::String,
360    #[prost(string, tag = "5")]
361    pub token_secret_rid: ::prost::alloc::string::String,
362}
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct Influx1ConnectionDetails {
365    #[prost(string, tag = "1")]
366    pub host: ::prost::alloc::string::String,
367    #[prost(int32, tag = "2")]
368    pub port: i32,
369    #[prost(map = "string, message", tag = "3")]
370    pub headers: ::std::collections::HashMap<
371        ::prost::alloc::string::String,
372        HeaderValue,
373    >,
374    #[prost(message, optional, tag = "4")]
375    pub credentials: ::core::option::Option<PasswordCredentials>,
376}
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct NominalConnectionDetails {
379    #[prost(string, tag = "1")]
380    pub nominal_data_source_rid: ::prost::alloc::string::String,
381}
382#[derive(Clone, PartialEq, ::prost::Message)]
383pub struct TimestreamConnectionDetails {
384    #[prost(string, tag = "1")]
385    pub nominal_role_arn: ::prost::alloc::string::String,
386    #[prost(string, tag = "2")]
387    pub nominal_role_region: ::prost::alloc::string::String,
388    #[prost(string, tag = "3")]
389    pub external_region: ::prost::alloc::string::String,
390    #[prost(string, tag = "4")]
391    pub external_role_arn: ::prost::alloc::string::String,
392    #[prost(string, tag = "5")]
393    pub database: ::prost::alloc::string::String,
394}
395#[derive(Clone, PartialEq, ::prost::Message)]
396pub struct BigQueryConnectionDetails {
397    #[prost(string, tag = "1")]
398    pub region: ::prost::alloc::string::String,
399    #[prost(string, tag = "2")]
400    pub project: ::prost::alloc::string::String,
401    #[prost(string, tag = "3")]
402    pub dataset: ::prost::alloc::string::String,
403    #[prost(string, tag = "4")]
404    pub table: ::prost::alloc::string::String,
405    #[prost(string, tag = "5")]
406    pub service_account_key_secret_rid: ::prost::alloc::string::String,
407}
408#[derive(Clone, PartialEq, ::prost::Message)]
409pub struct VisualCrossingConnectionDetails {
410    #[prost(string, tag = "1")]
411    pub api_key_secret_rid: ::prost::alloc::string::String,
412}
413#[derive(Clone, PartialEq, ::prost::Message)]
414pub struct ApiConnectionDetails {
415    #[prost(string, tag = "1")]
416    pub api_uri: ::prost::alloc::string::String,
417    #[prost(string, tag = "2")]
418    pub token_secret_rid: ::prost::alloc::string::String,
419}
420#[derive(Clone, PartialEq, ::prost::Message)]
421pub struct ConnectionDetails {
422    #[prost(
423        oneof = "connection_details::ConnectionDetails",
424        tags = "1, 2, 3, 4, 5, 6, 7, 8"
425    )]
426    pub connection_details: ::core::option::Option<
427        connection_details::ConnectionDetails,
428    >,
429}
430/// Nested message and enum types in `ConnectionDetails`.
431pub mod connection_details {
432    #[derive(Clone, PartialEq, ::prost::Oneof)]
433    pub enum ConnectionDetails {
434        #[prost(message, tag = "1")]
435        Timescale(super::TimescaleConnectionDetails),
436        #[prost(message, tag = "2")]
437        Influx(super::Influx2ConnectionDetails),
438        #[prost(message, tag = "3")]
439        Influx1(super::Influx1ConnectionDetails),
440        #[prost(message, tag = "4")]
441        Nominal(super::NominalConnectionDetails),
442        #[prost(message, tag = "5")]
443        Timestream(super::TimestreamConnectionDetails),
444        #[prost(message, tag = "6")]
445        VisualCrossing(super::VisualCrossingConnectionDetails),
446        #[prost(message, tag = "7")]
447        BigQuery(super::BigQueryConnectionDetails),
448        #[prost(message, tag = "8")]
449        Api(super::ApiConnectionDetails),
450    }
451}
452#[derive(Clone, Copy, PartialEq, ::prost::Message)]
453pub struct Duration {
454    #[prost(enumeration = "TemporalUnit", tag = "1")]
455    pub unit: i32,
456    #[prost(int32, tag = "2")]
457    pub count: i32,
458}
459#[derive(Clone, Copy, PartialEq, ::prost::Message)]
460pub struct LimitsConfig {
461    #[prost(message, optional, tag = "1")]
462    pub max_query_range: ::core::option::Option<Duration>,
463}
464#[derive(Clone, Copy, PartialEq, ::prost::Message)]
465pub struct ConnectionStatus {
466    #[prost(bool, tag = "1")]
467    pub is_connected: bool,
468}
469#[derive(Clone, PartialEq, ::prost::Message)]
470pub struct Connection {
471    #[prost(string, tag = "1")]
472    pub rid: ::prost::alloc::string::String,
473    #[prost(string, tag = "2")]
474    pub display_name: ::prost::alloc::string::String,
475    #[prost(string, optional, tag = "3")]
476    pub description: ::core::option::Option<::prost::alloc::string::String>,
477    #[prost(message, optional, tag = "4")]
478    pub connection_details: ::core::option::Option<ConnectionDetails>,
479    #[prost(string, repeated, tag = "5")]
480    pub required_tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
481    #[prost(map = "string, string", tag = "6")]
482    pub metadata: ::std::collections::HashMap<
483        ::prost::alloc::string::String,
484        ::prost::alloc::string::String,
485    >,
486    #[prost(message, optional, tag = "7")]
487    pub scraping: ::core::option::Option<ScrapingConfig>,
488    #[prost(bool, tag = "8")]
489    pub should_scrape: bool,
490    #[prost(message, optional, tag = "9")]
491    pub limits: ::core::option::Option<LimitsConfig>,
492    #[prost(message, optional, tag = "10")]
493    pub connection_status: ::core::option::Option<ConnectionStatus>,
494    #[prost(bool, tag = "11")]
495    pub is_archived: bool,
496}
497#[derive(Clone, Copy, PartialEq, ::prost::Message)]
498pub struct ConnectionPlottingConfiguration {
499    #[prost(int32, optional, tag = "1")]
500    pub max_undecimated_points_per_page: ::core::option::Option<i32>,
501    #[prost(int64, optional, tag = "2")]
502    pub max_unbounded_range: ::core::option::Option<i64>,
503    #[prost(double, optional, tag = "3")]
504    pub max_undecimated_page_reads_per_second: ::core::option::Option<f64>,
505    #[prost(double, optional, tag = "4")]
506    pub max_permits_per_second: ::core::option::Option<f64>,
507    #[prost(int32, optional, tag = "5")]
508    pub max_connections: ::core::option::Option<i32>,
509}
510#[derive(Clone, PartialEq, ::prost::Message)]
511pub struct AvailableTagValuesWrapper {
512    #[prost(map = "string, message", tag = "1")]
513    pub available_tag_values: ::std::collections::HashMap<
514        ::prost::alloc::string::String,
515        TagValueSet,
516    >,
517}
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct TagValueSet {
520    #[prost(string, repeated, tag = "1")]
521    pub value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
522}
523#[derive(Clone, PartialEq, ::prost::Message)]
524pub struct ConnectionCreation {
525    #[prost(string, tag = "1")]
526    pub name: ::prost::alloc::string::String,
527    #[prost(string, optional, tag = "2")]
528    pub description: ::core::option::Option<::prost::alloc::string::String>,
529    #[prost(message, optional, tag = "3")]
530    pub connection_details: ::core::option::Option<ConnectionDetails>,
531    #[prost(map = "string, string", tag = "4")]
532    pub metadata: ::std::collections::HashMap<
533        ::prost::alloc::string::String,
534        ::prost::alloc::string::String,
535    >,
536    #[prost(string, repeated, tag = "5")]
537    pub required_tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
538    #[prost(map = "string, message", tag = "6")]
539    pub available_tag_values: ::std::collections::HashMap<
540        ::prost::alloc::string::String,
541        TagValueSet,
542    >,
543    #[prost(message, optional, tag = "7")]
544    pub scraping: ::core::option::Option<ScrapingConfig>,
545    #[prost(bool, tag = "8")]
546    pub should_scrape: bool,
547    #[prost(message, optional, tag = "9")]
548    pub limits: ::core::option::Option<LimitsConfig>,
549    #[prost(string, optional, tag = "10")]
550    pub workspace: ::core::option::Option<::prost::alloc::string::String>,
551    #[prost(string, repeated, tag = "11")]
552    pub marking_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
553}
554#[derive(Clone, PartialEq, ::prost::Message)]
555pub struct ConnectionUpdate {
556    #[prost(string, optional, tag = "1")]
557    pub name: ::core::option::Option<::prost::alloc::string::String>,
558    #[prost(string, optional, tag = "2")]
559    pub description: ::core::option::Option<::prost::alloc::string::String>,
560    #[prost(message, optional, tag = "3")]
561    pub metadata: ::core::option::Option<MetadataWrapper>,
562    #[prost(message, optional, tag = "4")]
563    pub connection_details: ::core::option::Option<ConnectionDetails>,
564    #[prost(message, optional, tag = "5")]
565    pub required_tag_names: ::core::option::Option<RequiredTagNamesWrapper>,
566    #[prost(message, optional, tag = "6")]
567    pub available_tag_values: ::core::option::Option<AvailableTagValuesWrapper>,
568    #[prost(message, optional, tag = "7")]
569    pub scraping: ::core::option::Option<ScrapingConfig>,
570    #[prost(bool, optional, tag = "8")]
571    pub should_scrape: ::core::option::Option<bool>,
572    #[prost(message, optional, tag = "9")]
573    pub limits: ::core::option::Option<LimitsConfig>,
574}
575#[derive(Clone, PartialEq, ::prost::Message)]
576pub struct MetadataWrapper {
577    #[prost(map = "string, string", tag = "1")]
578    pub metadata: ::std::collections::HashMap<
579        ::prost::alloc::string::String,
580        ::prost::alloc::string::String,
581    >,
582}
583#[derive(Clone, PartialEq, ::prost::Message)]
584pub struct RequiredTagNamesWrapper {
585    #[prost(string, repeated, tag = "1")]
586    pub required_tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
587}
588#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct CreateConnectionRequest {
590    #[prost(message, optional, tag = "1")]
591    pub connection: ::core::option::Option<ConnectionCreation>,
592}
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct CreateConnectionResponse {
595    #[prost(message, optional, tag = "1")]
596    pub connection: ::core::option::Option<Connection>,
597}
598#[derive(Clone, PartialEq, ::prost::Message)]
599pub struct UpdateConnectionRequest {
600    #[prost(string, tag = "1")]
601    pub rid: ::prost::alloc::string::String,
602    #[prost(message, optional, tag = "2")]
603    pub update: ::core::option::Option<ConnectionUpdate>,
604}
605#[derive(Clone, PartialEq, ::prost::Message)]
606pub struct UpdateConnectionResponse {
607    #[prost(message, optional, tag = "1")]
608    pub connection: ::core::option::Option<Connection>,
609}
610#[derive(Clone, PartialEq, ::prost::Message)]
611pub struct UpdateConnectionStatusRequest {
612    #[prost(string, tag = "1")]
613    pub rid: ::prost::alloc::string::String,
614    #[prost(message, optional, tag = "2")]
615    pub status: ::core::option::Option<ConnectionStatus>,
616}
617#[derive(Clone, Copy, PartialEq, ::prost::Message)]
618pub struct UpdateConnectionStatusResponse {}
619#[derive(Clone, PartialEq, ::prost::Message)]
620pub struct AddAvailableTagsRequest {
621    #[prost(string, tag = "1")]
622    pub rid: ::prost::alloc::string::String,
623    #[prost(map = "string, message", tag = "2")]
624    pub tags: ::std::collections::HashMap<::prost::alloc::string::String, TagValueSet>,
625}
626#[derive(Clone, PartialEq, ::prost::Message)]
627pub struct AddAvailableTagsResponse {
628    #[prost(message, optional, tag = "1")]
629    pub connection: ::core::option::Option<Connection>,
630}
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct GetConnectionRequest {
633    #[prost(string, tag = "1")]
634    pub rid: ::prost::alloc::string::String,
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct GetConnectionResponse {
638    #[prost(message, optional, tag = "1")]
639    pub connection: ::core::option::Option<Connection>,
640}
641#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct BatchGetConnectionsRequest {
643    #[prost(string, repeated, tag = "1")]
644    pub rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
645}
646#[derive(Clone, PartialEq, ::prost::Message)]
647pub struct BatchGetConnectionsResponse {
648    #[prost(message, repeated, tag = "1")]
649    pub connections: ::prost::alloc::vec::Vec<Connection>,
650}
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct ListConnectionsRequest {
653    #[prost(bool, optional, tag = "1")]
654    pub include_archived: ::core::option::Option<bool>,
655    #[prost(string, repeated, tag = "2")]
656    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
657    #[prost(int32, optional, tag = "3")]
658    pub page_size: ::core::option::Option<i32>,
659    #[prost(string, optional, tag = "4")]
660    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
661}
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct ListConnectionsResponse {
664    #[prost(message, repeated, tag = "1")]
665    pub connections: ::prost::alloc::vec::Vec<Connection>,
666    #[prost(string, optional, tag = "2")]
667    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
668}
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct SearchConnectionsRequest {
671    #[prost(string, repeated, tag = "1")]
672    pub nominal_data_source_rids: ::prost::alloc::vec::Vec<
673        ::prost::alloc::string::String,
674    >,
675    #[prost(string, repeated, tag = "2")]
676    pub workspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
677    #[prost(int32, optional, tag = "3")]
678    pub page_size: ::core::option::Option<i32>,
679    #[prost(string, optional, tag = "4")]
680    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
681}
682#[derive(Clone, PartialEq, ::prost::Message)]
683pub struct SearchConnectionsResponse {
684    #[prost(message, repeated, tag = "1")]
685    pub connections: ::prost::alloc::vec::Vec<Connection>,
686    #[prost(string, optional, tag = "2")]
687    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
688}
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct ArchiveConnectionRequest {
691    #[prost(string, tag = "1")]
692    pub rid: ::prost::alloc::string::String,
693}
694#[derive(Clone, Copy, PartialEq, ::prost::Message)]
695pub struct ArchiveConnectionResponse {}
696#[derive(Clone, PartialEq, ::prost::Message)]
697pub struct UnarchiveConnectionRequest {
698    #[prost(string, tag = "1")]
699    pub rid: ::prost::alloc::string::String,
700}
701#[derive(Clone, Copy, PartialEq, ::prost::Message)]
702pub struct UnarchiveConnectionResponse {}
703#[derive(Clone, PartialEq, ::prost::Message)]
704pub struct PopulateSeriesRequest {
705    #[prost(string, tag = "1")]
706    pub rid: ::prost::alloc::string::String,
707    #[prost(message, optional, tag = "2")]
708    pub start_time: ::core::option::Option<
709        super::super::super::google::protobuf::Timestamp,
710    >,
711    #[prost(message, optional, tag = "3")]
712    pub end_time: ::core::option::Option<
713        super::super::super::google::protobuf::Timestamp,
714    >,
715}
716#[derive(Clone, Copy, PartialEq, ::prost::Message)]
717pub struct PopulateSeriesResponse {}
718#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
719#[repr(i32)]
720pub enum VisualCrossingType {
721    Unspecified = 0,
722    Double = 1,
723    String = 2,
724}
725impl VisualCrossingType {
726    /// String value of the enum field names used in the ProtoBuf definition.
727    ///
728    /// The values are not transformed in any way and thus are considered stable
729    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
730    pub fn as_str_name(&self) -> &'static str {
731        match self {
732            Self::Unspecified => "VISUAL_CROSSING_TYPE_UNSPECIFIED",
733            Self::Double => "VISUAL_CROSSING_TYPE_DOUBLE",
734            Self::String => "VISUAL_CROSSING_TYPE_STRING",
735        }
736    }
737    /// Creates an enum from field names used in the ProtoBuf definition.
738    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
739        match value {
740            "VISUAL_CROSSING_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
741            "VISUAL_CROSSING_TYPE_DOUBLE" => Some(Self::Double),
742            "VISUAL_CROSSING_TYPE_STRING" => Some(Self::String),
743            _ => None,
744        }
745    }
746}
747#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
748#[repr(i32)]
749pub enum TemporalUnit {
750    Unspecified = 0,
751    Hours = 1,
752    Days = 2,
753    Weeks = 3,
754}
755impl TemporalUnit {
756    /// String value of the enum field names used in the ProtoBuf definition.
757    ///
758    /// The values are not transformed in any way and thus are considered stable
759    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
760    pub fn as_str_name(&self) -> &'static str {
761        match self {
762            Self::Unspecified => "TEMPORAL_UNIT_UNSPECIFIED",
763            Self::Hours => "TEMPORAL_UNIT_HOURS",
764            Self::Days => "TEMPORAL_UNIT_DAYS",
765            Self::Weeks => "TEMPORAL_UNIT_WEEKS",
766        }
767    }
768    /// Creates an enum from field names used in the ProtoBuf definition.
769    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
770        match value {
771            "TEMPORAL_UNIT_UNSPECIFIED" => Some(Self::Unspecified),
772            "TEMPORAL_UNIT_HOURS" => Some(Self::Hours),
773            "TEMPORAL_UNIT_DAYS" => Some(Self::Days),
774            "TEMPORAL_UNIT_WEEKS" => Some(Self::Weeks),
775            _ => None,
776        }
777    }
778}
779#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
780#[repr(i32)]
781pub enum ConnectionError {
782    ConnectionNotFound = 0,
783    InvalidArgument = 1,
784}
785impl ConnectionError {
786    /// String value of the enum field names used in the ProtoBuf definition.
787    ///
788    /// The values are not transformed in any way and thus are considered stable
789    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
790    pub fn as_str_name(&self) -> &'static str {
791        match self {
792            Self::ConnectionNotFound => "CONNECTION_ERROR_CONNECTION_NOT_FOUND",
793            Self::InvalidArgument => "CONNECTION_ERROR_INVALID_ARGUMENT",
794        }
795    }
796    /// Creates an enum from field names used in the ProtoBuf definition.
797    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
798        match value {
799            "CONNECTION_ERROR_CONNECTION_NOT_FOUND" => Some(Self::ConnectionNotFound),
800            "CONNECTION_ERROR_INVALID_ARGUMENT" => Some(Self::InvalidArgument),
801            _ => None,
802        }
803    }
804}
805/// Generated client implementations.
806pub mod connection_service_client {
807    #![allow(
808        unused_variables,
809        dead_code,
810        missing_docs,
811        clippy::wildcard_imports,
812        clippy::let_unit_value,
813    )]
814    use tonic::codegen::*;
815    use tonic::codegen::http::Uri;
816    #[derive(Debug, Clone)]
817    pub struct ConnectionServiceClient<T> {
818        inner: tonic::client::Grpc<T>,
819    }
820    impl ConnectionServiceClient<tonic::transport::Channel> {
821        /// Attempt to create a new client by connecting to a given endpoint.
822        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
823        where
824            D: TryInto<tonic::transport::Endpoint>,
825            D::Error: Into<StdError>,
826        {
827            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
828            Ok(Self::new(conn))
829        }
830    }
831    impl<T> ConnectionServiceClient<T>
832    where
833        T: tonic::client::GrpcService<tonic::body::Body>,
834        T::Error: Into<StdError>,
835        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
836        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
837    {
838        pub fn new(inner: T) -> Self {
839            let inner = tonic::client::Grpc::new(inner);
840            Self { inner }
841        }
842        pub fn with_origin(inner: T, origin: Uri) -> Self {
843            let inner = tonic::client::Grpc::with_origin(inner, origin);
844            Self { inner }
845        }
846        pub fn with_interceptor<F>(
847            inner: T,
848            interceptor: F,
849        ) -> ConnectionServiceClient<InterceptedService<T, F>>
850        where
851            F: tonic::service::Interceptor,
852            T::ResponseBody: Default,
853            T: tonic::codegen::Service<
854                http::Request<tonic::body::Body>,
855                Response = http::Response<
856                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
857                >,
858            >,
859            <T as tonic::codegen::Service<
860                http::Request<tonic::body::Body>,
861            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
862        {
863            ConnectionServiceClient::new(InterceptedService::new(inner, interceptor))
864        }
865        /// Compress requests with the given encoding.
866        ///
867        /// This requires the server to support it otherwise it might respond with an
868        /// error.
869        #[must_use]
870        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
871            self.inner = self.inner.send_compressed(encoding);
872            self
873        }
874        /// Enable decompressing responses.
875        #[must_use]
876        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
877            self.inner = self.inner.accept_compressed(encoding);
878            self
879        }
880        /// Limits the maximum size of a decoded message.
881        ///
882        /// Default: `4MB`
883        #[must_use]
884        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
885            self.inner = self.inner.max_decoding_message_size(limit);
886            self
887        }
888        /// Limits the maximum size of an encoded message.
889        ///
890        /// Default: `usize::MAX`
891        #[must_use]
892        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
893            self.inner = self.inner.max_encoding_message_size(limit);
894            self
895        }
896        #[deprecated]
897        pub async fn create_connection(
898            &mut self,
899            request: impl tonic::IntoRequest<super::CreateConnectionRequest>,
900        ) -> std::result::Result<
901            tonic::Response<super::CreateConnectionResponse>,
902            tonic::Status,
903        > {
904            self.inner
905                .ready()
906                .await
907                .map_err(|e| {
908                    tonic::Status::unknown(
909                        format!("Service was not ready: {}", e.into()),
910                    )
911                })?;
912            let codec = tonic::codec::ProstCodec::default();
913            let path = http::uri::PathAndQuery::from_static(
914                "/nominal.connection.v1.ConnectionService/CreateConnection",
915            );
916            let mut req = request.into_request();
917            req.extensions_mut()
918                .insert(
919                    GrpcMethod::new(
920                        "nominal.connection.v1.ConnectionService",
921                        "CreateConnection",
922                    ),
923                );
924            self.inner.unary(req, path, codec).await
925        }
926        pub async fn update_connection(
927            &mut self,
928            request: impl tonic::IntoRequest<super::UpdateConnectionRequest>,
929        ) -> std::result::Result<
930            tonic::Response<super::UpdateConnectionResponse>,
931            tonic::Status,
932        > {
933            self.inner
934                .ready()
935                .await
936                .map_err(|e| {
937                    tonic::Status::unknown(
938                        format!("Service was not ready: {}", e.into()),
939                    )
940                })?;
941            let codec = tonic::codec::ProstCodec::default();
942            let path = http::uri::PathAndQuery::from_static(
943                "/nominal.connection.v1.ConnectionService/UpdateConnection",
944            );
945            let mut req = request.into_request();
946            req.extensions_mut()
947                .insert(
948                    GrpcMethod::new(
949                        "nominal.connection.v1.ConnectionService",
950                        "UpdateConnection",
951                    ),
952                );
953            self.inner.unary(req, path, codec).await
954        }
955        pub async fn update_connection_status(
956            &mut self,
957            request: impl tonic::IntoRequest<super::UpdateConnectionStatusRequest>,
958        ) -> std::result::Result<
959            tonic::Response<super::UpdateConnectionStatusResponse>,
960            tonic::Status,
961        > {
962            self.inner
963                .ready()
964                .await
965                .map_err(|e| {
966                    tonic::Status::unknown(
967                        format!("Service was not ready: {}", e.into()),
968                    )
969                })?;
970            let codec = tonic::codec::ProstCodec::default();
971            let path = http::uri::PathAndQuery::from_static(
972                "/nominal.connection.v1.ConnectionService/UpdateConnectionStatus",
973            );
974            let mut req = request.into_request();
975            req.extensions_mut()
976                .insert(
977                    GrpcMethod::new(
978                        "nominal.connection.v1.ConnectionService",
979                        "UpdateConnectionStatus",
980                    ),
981                );
982            self.inner.unary(req, path, codec).await
983        }
984        pub async fn add_available_tags(
985            &mut self,
986            request: impl tonic::IntoRequest<super::AddAvailableTagsRequest>,
987        ) -> std::result::Result<
988            tonic::Response<super::AddAvailableTagsResponse>,
989            tonic::Status,
990        > {
991            self.inner
992                .ready()
993                .await
994                .map_err(|e| {
995                    tonic::Status::unknown(
996                        format!("Service was not ready: {}", e.into()),
997                    )
998                })?;
999            let codec = tonic::codec::ProstCodec::default();
1000            let path = http::uri::PathAndQuery::from_static(
1001                "/nominal.connection.v1.ConnectionService/AddAvailableTags",
1002            );
1003            let mut req = request.into_request();
1004            req.extensions_mut()
1005                .insert(
1006                    GrpcMethod::new(
1007                        "nominal.connection.v1.ConnectionService",
1008                        "AddAvailableTags",
1009                    ),
1010                );
1011            self.inner.unary(req, path, codec).await
1012        }
1013        pub async fn get_connection(
1014            &mut self,
1015            request: impl tonic::IntoRequest<super::GetConnectionRequest>,
1016        ) -> std::result::Result<
1017            tonic::Response<super::GetConnectionResponse>,
1018            tonic::Status,
1019        > {
1020            self.inner
1021                .ready()
1022                .await
1023                .map_err(|e| {
1024                    tonic::Status::unknown(
1025                        format!("Service was not ready: {}", e.into()),
1026                    )
1027                })?;
1028            let codec = tonic::codec::ProstCodec::default();
1029            let path = http::uri::PathAndQuery::from_static(
1030                "/nominal.connection.v1.ConnectionService/GetConnection",
1031            );
1032            let mut req = request.into_request();
1033            req.extensions_mut()
1034                .insert(
1035                    GrpcMethod::new(
1036                        "nominal.connection.v1.ConnectionService",
1037                        "GetConnection",
1038                    ),
1039                );
1040            self.inner.unary(req, path, codec).await
1041        }
1042        pub async fn batch_get_connections(
1043            &mut self,
1044            request: impl tonic::IntoRequest<super::BatchGetConnectionsRequest>,
1045        ) -> std::result::Result<
1046            tonic::Response<super::BatchGetConnectionsResponse>,
1047            tonic::Status,
1048        > {
1049            self.inner
1050                .ready()
1051                .await
1052                .map_err(|e| {
1053                    tonic::Status::unknown(
1054                        format!("Service was not ready: {}", e.into()),
1055                    )
1056                })?;
1057            let codec = tonic::codec::ProstCodec::default();
1058            let path = http::uri::PathAndQuery::from_static(
1059                "/nominal.connection.v1.ConnectionService/BatchGetConnections",
1060            );
1061            let mut req = request.into_request();
1062            req.extensions_mut()
1063                .insert(
1064                    GrpcMethod::new(
1065                        "nominal.connection.v1.ConnectionService",
1066                        "BatchGetConnections",
1067                    ),
1068                );
1069            self.inner.unary(req, path, codec).await
1070        }
1071        pub async fn list_connections(
1072            &mut self,
1073            request: impl tonic::IntoRequest<super::ListConnectionsRequest>,
1074        ) -> std::result::Result<
1075            tonic::Response<super::ListConnectionsResponse>,
1076            tonic::Status,
1077        > {
1078            self.inner
1079                .ready()
1080                .await
1081                .map_err(|e| {
1082                    tonic::Status::unknown(
1083                        format!("Service was not ready: {}", e.into()),
1084                    )
1085                })?;
1086            let codec = tonic::codec::ProstCodec::default();
1087            let path = http::uri::PathAndQuery::from_static(
1088                "/nominal.connection.v1.ConnectionService/ListConnections",
1089            );
1090            let mut req = request.into_request();
1091            req.extensions_mut()
1092                .insert(
1093                    GrpcMethod::new(
1094                        "nominal.connection.v1.ConnectionService",
1095                        "ListConnections",
1096                    ),
1097                );
1098            self.inner.unary(req, path, codec).await
1099        }
1100        pub async fn search_connections(
1101            &mut self,
1102            request: impl tonic::IntoRequest<super::SearchConnectionsRequest>,
1103        ) -> std::result::Result<
1104            tonic::Response<super::SearchConnectionsResponse>,
1105            tonic::Status,
1106        > {
1107            self.inner
1108                .ready()
1109                .await
1110                .map_err(|e| {
1111                    tonic::Status::unknown(
1112                        format!("Service was not ready: {}", e.into()),
1113                    )
1114                })?;
1115            let codec = tonic::codec::ProstCodec::default();
1116            let path = http::uri::PathAndQuery::from_static(
1117                "/nominal.connection.v1.ConnectionService/SearchConnections",
1118            );
1119            let mut req = request.into_request();
1120            req.extensions_mut()
1121                .insert(
1122                    GrpcMethod::new(
1123                        "nominal.connection.v1.ConnectionService",
1124                        "SearchConnections",
1125                    ),
1126                );
1127            self.inner.unary(req, path, codec).await
1128        }
1129        pub async fn archive_connection(
1130            &mut self,
1131            request: impl tonic::IntoRequest<super::ArchiveConnectionRequest>,
1132        ) -> std::result::Result<
1133            tonic::Response<super::ArchiveConnectionResponse>,
1134            tonic::Status,
1135        > {
1136            self.inner
1137                .ready()
1138                .await
1139                .map_err(|e| {
1140                    tonic::Status::unknown(
1141                        format!("Service was not ready: {}", e.into()),
1142                    )
1143                })?;
1144            let codec = tonic::codec::ProstCodec::default();
1145            let path = http::uri::PathAndQuery::from_static(
1146                "/nominal.connection.v1.ConnectionService/ArchiveConnection",
1147            );
1148            let mut req = request.into_request();
1149            req.extensions_mut()
1150                .insert(
1151                    GrpcMethod::new(
1152                        "nominal.connection.v1.ConnectionService",
1153                        "ArchiveConnection",
1154                    ),
1155                );
1156            self.inner.unary(req, path, codec).await
1157        }
1158        pub async fn unarchive_connection(
1159            &mut self,
1160            request: impl tonic::IntoRequest<super::UnarchiveConnectionRequest>,
1161        ) -> std::result::Result<
1162            tonic::Response<super::UnarchiveConnectionResponse>,
1163            tonic::Status,
1164        > {
1165            self.inner
1166                .ready()
1167                .await
1168                .map_err(|e| {
1169                    tonic::Status::unknown(
1170                        format!("Service was not ready: {}", e.into()),
1171                    )
1172                })?;
1173            let codec = tonic::codec::ProstCodec::default();
1174            let path = http::uri::PathAndQuery::from_static(
1175                "/nominal.connection.v1.ConnectionService/UnarchiveConnection",
1176            );
1177            let mut req = request.into_request();
1178            req.extensions_mut()
1179                .insert(
1180                    GrpcMethod::new(
1181                        "nominal.connection.v1.ConnectionService",
1182                        "UnarchiveConnection",
1183                    ),
1184                );
1185            self.inner.unary(req, path, codec).await
1186        }
1187    }
1188}
1189/// Generated client implementations.
1190pub mod connection_bootstrapper_service_client {
1191    #![allow(
1192        unused_variables,
1193        dead_code,
1194        missing_docs,
1195        clippy::wildcard_imports,
1196        clippy::let_unit_value,
1197    )]
1198    use tonic::codegen::*;
1199    use tonic::codegen::http::Uri;
1200    #[derive(Debug, Clone)]
1201    pub struct ConnectionBootstrapperServiceClient<T> {
1202        inner: tonic::client::Grpc<T>,
1203    }
1204    impl ConnectionBootstrapperServiceClient<tonic::transport::Channel> {
1205        /// Attempt to create a new client by connecting to a given endpoint.
1206        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1207        where
1208            D: TryInto<tonic::transport::Endpoint>,
1209            D::Error: Into<StdError>,
1210        {
1211            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1212            Ok(Self::new(conn))
1213        }
1214    }
1215    impl<T> ConnectionBootstrapperServiceClient<T>
1216    where
1217        T: tonic::client::GrpcService<tonic::body::Body>,
1218        T::Error: Into<StdError>,
1219        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1220        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1221    {
1222        pub fn new(inner: T) -> Self {
1223            let inner = tonic::client::Grpc::new(inner);
1224            Self { inner }
1225        }
1226        pub fn with_origin(inner: T, origin: Uri) -> Self {
1227            let inner = tonic::client::Grpc::with_origin(inner, origin);
1228            Self { inner }
1229        }
1230        pub fn with_interceptor<F>(
1231            inner: T,
1232            interceptor: F,
1233        ) -> ConnectionBootstrapperServiceClient<InterceptedService<T, F>>
1234        where
1235            F: tonic::service::Interceptor,
1236            T::ResponseBody: Default,
1237            T: tonic::codegen::Service<
1238                http::Request<tonic::body::Body>,
1239                Response = http::Response<
1240                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1241                >,
1242            >,
1243            <T as tonic::codegen::Service<
1244                http::Request<tonic::body::Body>,
1245            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1246        {
1247            ConnectionBootstrapperServiceClient::new(
1248                InterceptedService::new(inner, interceptor),
1249            )
1250        }
1251        /// Compress requests with the given encoding.
1252        ///
1253        /// This requires the server to support it otherwise it might respond with an
1254        /// error.
1255        #[must_use]
1256        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1257            self.inner = self.inner.send_compressed(encoding);
1258            self
1259        }
1260        /// Enable decompressing responses.
1261        #[must_use]
1262        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1263            self.inner = self.inner.accept_compressed(encoding);
1264            self
1265        }
1266        /// Limits the maximum size of a decoded message.
1267        ///
1268        /// Default: `4MB`
1269        #[must_use]
1270        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1271            self.inner = self.inner.max_decoding_message_size(limit);
1272            self
1273        }
1274        /// Limits the maximum size of an encoded message.
1275        ///
1276        /// Default: `usize::MAX`
1277        #[must_use]
1278        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1279            self.inner = self.inner.max_encoding_message_size(limit);
1280            self
1281        }
1282        pub async fn populate_series(
1283            &mut self,
1284            request: impl tonic::IntoRequest<super::PopulateSeriesRequest>,
1285        ) -> std::result::Result<
1286            tonic::Response<super::PopulateSeriesResponse>,
1287            tonic::Status,
1288        > {
1289            self.inner
1290                .ready()
1291                .await
1292                .map_err(|e| {
1293                    tonic::Status::unknown(
1294                        format!("Service was not ready: {}", e.into()),
1295                    )
1296                })?;
1297            let codec = tonic::codec::ProstCodec::default();
1298            let path = http::uri::PathAndQuery::from_static(
1299                "/nominal.connection.v1.ConnectionBootstrapperService/PopulateSeries",
1300            );
1301            let mut req = request.into_request();
1302            req.extensions_mut()
1303                .insert(
1304                    GrpcMethod::new(
1305                        "nominal.connection.v1.ConnectionBootstrapperService",
1306                        "PopulateSeries",
1307                    ),
1308                );
1309            self.inner.unary(req, path, codec).await
1310        }
1311    }
1312}