1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct OpcAuthenticationConfig {
4 #[prost(
5 oneof = "opc_authentication_config::OpcAuthenticationConfig",
6 tags = "1, 2, 3"
7 )]
8 pub opc_authentication_config: ::core::option::Option<
9 opc_authentication_config::OpcAuthenticationConfig,
10 >,
11}
12pub mod opc_authentication_config {
14 #[derive(Clone, PartialEq, ::prost::Oneof)]
15 pub enum OpcAuthenticationConfig {
16 #[prost(message, tag = "1")]
17 Anonymous(super::super::super::super::google::protobuf::Empty),
18 #[prost(message, tag = "2")]
19 UsernamePassword(super::OpcUsernamePasswordAuthentication),
20 #[prost(message, tag = "3")]
21 Token(super::OpcTokenAuthentication),
22 }
23}
24#[derive(Clone, PartialEq, ::prost::Message)]
25pub struct OpcAuthenticationConfigSecret {
26 #[prost(
27 oneof = "opc_authentication_config_secret::OpcAuthenticationConfig",
28 tags = "1, 2, 3"
29 )]
30 pub opc_authentication_config: ::core::option::Option<
31 opc_authentication_config_secret::OpcAuthenticationConfig,
32 >,
33}
34pub mod opc_authentication_config_secret {
36 #[derive(Clone, PartialEq, ::prost::Oneof)]
37 pub enum OpcAuthenticationConfig {
38 #[prost(message, tag = "1")]
39 Anonymous(super::super::super::super::google::protobuf::Empty),
40 #[prost(message, tag = "2")]
41 UsernamePassword(super::OpcUsernamePasswordAuthenticationSecret),
42 #[prost(message, tag = "3")]
43 Token(super::OpcTokenAuthenticationSecret),
44 }
45}
46#[derive(Clone, PartialEq, ::prost::Message)]
47pub struct OpcUsernamePasswordAuthentication {
48 #[prost(string, tag = "1")]
49 pub username: ::prost::alloc::string::String,
50 #[prost(string, tag = "2")]
51 pub password: ::prost::alloc::string::String,
52}
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct OpcUsernamePasswordAuthenticationSecret {
55 #[prost(string, tag = "1")]
56 pub username: ::prost::alloc::string::String,
57 #[prost(string, tag = "2")]
58 pub password: ::prost::alloc::string::String,
59}
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct OpcTokenAuthentication {
62 #[prost(string, tag = "1")]
63 pub token: ::prost::alloc::string::String,
64}
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct OpcTokenAuthenticationSecret {
67 #[prost(string, tag = "1")]
68 pub token: ::prost::alloc::string::String,
69}
70#[derive(Clone, PartialEq, ::prost::Message)]
71pub struct OpcIdentifierValue {
72 #[prost(oneof = "opc_identifier_value::OpcIdentifierValue", tags = "1, 2")]
73 pub opc_identifier_value: ::core::option::Option<
74 opc_identifier_value::OpcIdentifierValue,
75 >,
76}
77pub mod opc_identifier_value {
79 #[derive(Clone, PartialEq, ::prost::Oneof)]
80 pub enum OpcIdentifierValue {
81 #[prost(int32, tag = "1")]
82 Numeric(i32),
83 #[prost(string, tag = "2")]
84 String(::prost::alloc::string::String),
85 }
86}
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct OpcNode {
89 #[prost(uint32, optional, tag = "1")]
90 pub namespace: ::core::option::Option<u32>,
91 #[prost(message, optional, tag = "2")]
92 pub identifier: ::core::option::Option<OpcIdentifierValue>,
93}
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct OpcUaChannelNamingConvention {
96 #[prost(
97 oneof = "opc_ua_channel_naming_convention::NamingConvention",
98 tags = "1, 2, 3, 4"
99 )]
100 pub naming_convention: ::core::option::Option<
101 opc_ua_channel_naming_convention::NamingConvention,
102 >,
103}
104pub mod opc_ua_channel_naming_convention {
106 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
107 pub struct OpcUaNodeId {}
108 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
109 pub struct OpcUaBrowseName {}
110 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
111 pub struct OpcUaDisplayName {}
112 #[derive(Clone, PartialEq, ::prost::Message)]
113 pub struct OpcUaFullPath {
114 #[prost(message, repeated, tag = "1")]
115 pub root_nodes: ::prost::alloc::vec::Vec<super::OpcNode>,
116 #[prost(string, tag = "2")]
117 pub delimiter: ::prost::alloc::string::String,
118 #[prost(string, repeated, tag = "3")]
119 pub array_tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
120 }
121 #[derive(Clone, PartialEq, ::prost::Oneof)]
122 pub enum NamingConvention {
123 #[prost(message, tag = "1")]
124 NodeId(OpcUaNodeId),
125 #[prost(message, tag = "2")]
126 BrowseName(OpcUaBrowseName),
127 #[prost(message, tag = "3")]
128 DisplayName(OpcUaDisplayName),
129 #[prost(message, tag = "4")]
130 FullPath(OpcUaFullPath),
131 }
132}
133#[derive(Clone, Copy, PartialEq, ::prost::Message)]
134pub struct OpcUaSubscriptionConfig {
135 #[prost(enumeration = "OpcUaFailedMonitorHandling", tag = "1")]
136 pub failed_monitor_handling: i32,
137 #[prost(message, optional, tag = "2")]
138 pub data_change_filter: ::core::option::Option<OpcUaDataChangeFilter>,
139}
140#[derive(Clone, Copy, PartialEq, ::prost::Message)]
141pub struct OpcUaPollingConfig {
142 #[prost(uint64, tag = "1")]
143 pub polling_interval_ms: u64,
144}
145#[derive(Clone, Copy, PartialEq, ::prost::Message)]
146pub struct OpcUaDataAcquisitionConfig {
147 #[prost(oneof = "opc_ua_data_acquisition_config::AcquisitionMode", tags = "1, 2")]
148 pub acquisition_mode: ::core::option::Option<
149 opc_ua_data_acquisition_config::AcquisitionMode,
150 >,
151}
152pub mod opc_ua_data_acquisition_config {
154 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
155 pub enum AcquisitionMode {
156 #[prost(message, tag = "1")]
157 Subscription(super::OpcUaSubscriptionConfig),
158 #[prost(message, tag = "2")]
159 Polling(super::OpcUaPollingConfig),
160 }
161}
162#[derive(Clone, PartialEq, ::prost::Message)]
163pub struct OpcUaConnectorDetails {
164 #[prost(string, tag = "1")]
165 pub uri: ::prost::alloc::string::String,
166 #[prost(message, optional, tag = "2")]
167 pub authentication_config: ::core::option::Option<OpcAuthenticationConfig>,
168 #[prost(message, optional, tag = "3")]
169 pub scraping_config: ::core::option::Option<OpcUaScrapingConfig>,
170}
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct OpcUaConnectorDetailsUpdates {
173 #[prost(string, optional, tag = "1")]
174 pub uri: ::core::option::Option<::prost::alloc::string::String>,
175 #[prost(message, optional, tag = "2")]
176 pub authentication_config: ::core::option::Option<OpcAuthenticationConfig>,
177 #[prost(message, optional, tag = "3")]
178 pub scraping_config: ::core::option::Option<OpcUaScrapingConfigUpdates>,
179}
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct OpcUaConnectorDetailsSecret {
182 #[prost(string, tag = "1")]
183 pub uri: ::prost::alloc::string::String,
184 #[prost(message, optional, tag = "2")]
185 pub authentication_config: ::core::option::Option<OpcAuthenticationConfigSecret>,
186 #[prost(message, optional, tag = "3")]
187 pub scraping_config: ::core::option::Option<OpcUaScrapingConfig>,
188}
189#[derive(Clone, PartialEq, ::prost::Message)]
190pub struct OpcUaTraversalConfig {
191 #[prost(message, repeated, tag = "1")]
192 pub root_nodes: ::prost::alloc::vec::Vec<OpcNode>,
193 #[prost(message, repeated, tag = "2")]
194 pub skip_nodes: ::prost::alloc::vec::Vec<OpcNode>,
195 #[prost(enumeration = "OpcUaReferenceExplorationType", tag = "3")]
196 pub reference_exploration_type: i32,
197}
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct OpcUaDirectNodeSubscription {
200 #[prost(message, repeated, tag = "1")]
201 pub nodes: ::prost::alloc::vec::Vec<OpcNode>,
202}
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct OpcUaNodeExplorationConfig {
205 #[prost(
206 oneof = "opc_ua_node_exploration_config::OpcUaNodeExplorationConfig",
207 tags = "1, 2"
208 )]
209 pub opc_ua_node_exploration_config: ::core::option::Option<
210 opc_ua_node_exploration_config::OpcUaNodeExplorationConfig,
211 >,
212}
213pub mod opc_ua_node_exploration_config {
215 #[derive(Clone, PartialEq, ::prost::Oneof)]
216 pub enum OpcUaNodeExplorationConfig {
217 #[prost(message, tag = "1")]
218 OpcUaTraversalConfig(super::OpcUaTraversalConfig),
219 #[prost(message, tag = "2")]
220 OpcUaDirectNodeSubscription(super::OpcUaDirectNodeSubscription),
221 }
222}
223#[derive(Clone, Copy, PartialEq, ::prost::Message)]
224pub struct OpcUaTimestampHandling {
225 #[prost(oneof = "opc_ua_timestamp_handling::TimestampType", tags = "1, 2, 3")]
226 pub timestamp_type: ::core::option::Option<opc_ua_timestamp_handling::TimestampType>,
227}
228pub mod opc_ua_timestamp_handling {
230 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
231 pub struct OpcUaServerTime {}
232 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
233 pub struct OpcUaSourceTime {}
234 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
235 pub struct OpcUaRelativeTimestamp {
236 #[prost(message, optional, tag = "1")]
237 pub offset: ::core::option::Option<
238 super::super::super::super::google::protobuf::Timestamp,
239 >,
240 }
241 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
242 pub enum TimestampType {
243 #[prost(message, tag = "1")]
244 Server(OpcUaServerTime),
245 #[prost(message, tag = "2")]
246 Source(OpcUaSourceTime),
247 #[prost(message, tag = "3")]
248 Relative(OpcUaRelativeTimestamp),
249 }
250}
251#[derive(Clone, Copy, PartialEq, ::prost::Message)]
252pub struct OpcUaDataChangeFilter {
253 #[prost(enumeration = "OpcUaDataChangeTrigger", tag = "1")]
254 pub trigger: i32,
255 #[prost(enumeration = "OpcUaDeadbandType", tag = "2")]
256 pub deadband_type: i32,
257 #[prost(double, tag = "3")]
258 pub deadband_value: f64,
259}
260#[derive(Clone, PartialEq, ::prost::Message)]
261pub struct OpcUaScrapingConfig {
262 #[prost(message, optional, tag = "1")]
263 pub node_exploration_config: ::core::option::Option<OpcUaNodeExplorationConfig>,
264 #[prost(string, tag = "2")]
265 pub unit_node_name: ::prost::alloc::string::String,
266 #[prost(message, optional, tag = "3")]
267 pub channel_naming_convention: ::core::option::Option<OpcUaChannelNamingConvention>,
268 #[prost(bool, tag = "4")]
269 pub override_host: bool,
270 #[prost(enumeration = "OpcUaUnknownDataTypeHandling", tag = "5")]
271 pub unknown_data_type_handling: i32,
272 #[deprecated]
273 #[prost(enumeration = "OpcUaFailedMonitorHandling", optional, tag = "6")]
274 pub failed_monitor_handling: ::core::option::Option<i32>,
275 #[prost(message, optional, tag = "7")]
276 pub timestamp_handling: ::core::option::Option<OpcUaTimestampHandling>,
277 #[deprecated]
278 #[prost(message, optional, tag = "8")]
279 pub data_change_filter: ::core::option::Option<OpcUaDataChangeFilter>,
280 #[prost(message, optional, tag = "9")]
281 pub data_acquisition_config: ::core::option::Option<OpcUaDataAcquisitionConfig>,
282}
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct OpcUaScrapingConfigUpdates {
285 #[prost(message, optional, tag = "1")]
286 pub node_exploration_config: ::core::option::Option<OpcUaNodeExplorationConfig>,
287 #[prost(string, optional, tag = "2")]
288 pub unit_node_name: ::core::option::Option<::prost::alloc::string::String>,
289 #[prost(message, optional, tag = "3")]
290 pub channel_naming_convention: ::core::option::Option<OpcUaChannelNamingConvention>,
291 #[prost(bool, optional, tag = "4")]
292 pub override_host: ::core::option::Option<bool>,
293 #[prost(enumeration = "OpcUaUnknownDataTypeHandling", optional, tag = "5")]
294 pub unknown_data_type_handling: ::core::option::Option<i32>,
295 #[deprecated]
296 #[prost(enumeration = "OpcUaFailedMonitorHandling", optional, tag = "6")]
297 pub failed_monitor_handling: ::core::option::Option<i32>,
298 #[prost(message, optional, tag = "7")]
299 pub timestamp_handling: ::core::option::Option<OpcUaTimestampHandling>,
300 #[deprecated]
301 #[prost(message, optional, tag = "8")]
302 pub data_change_filter: ::core::option::Option<OpcUaDataChangeFilter>,
303 #[prost(message, optional, tag = "9")]
304 pub data_acquisition_config: ::core::option::Option<OpcUaDataAcquisitionConfig>,
305}
306#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
307#[repr(i32)]
308pub enum OpcUaReferenceExplorationType {
309 Unspecified = 0,
310 Organizes = 1,
311 HierarchicalReferences = 2,
312}
313impl OpcUaReferenceExplorationType {
314 pub fn as_str_name(&self) -> &'static str {
319 match self {
320 Self::Unspecified => "OPC_UA_REFERENCE_EXPLORATION_TYPE_UNSPECIFIED",
321 Self::Organizes => "OPC_UA_REFERENCE_EXPLORATION_TYPE_ORGANIZES",
322 Self::HierarchicalReferences => {
323 "OPC_UA_REFERENCE_EXPLORATION_TYPE_HIERARCHICAL_REFERENCES"
324 }
325 }
326 }
327 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
329 match value {
330 "OPC_UA_REFERENCE_EXPLORATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
331 "OPC_UA_REFERENCE_EXPLORATION_TYPE_ORGANIZES" => Some(Self::Organizes),
332 "OPC_UA_REFERENCE_EXPLORATION_TYPE_HIERARCHICAL_REFERENCES" => {
333 Some(Self::HierarchicalReferences)
334 }
335 _ => None,
336 }
337 }
338}
339#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
340#[repr(i32)]
341pub enum OpcUaUnknownDataTypeHandling {
342 Unspecified = 0,
343 Error = 1,
344 TreatAsDouble = 2,
345 TreatAsString = 3,
346}
347impl OpcUaUnknownDataTypeHandling {
348 pub fn as_str_name(&self) -> &'static str {
353 match self {
354 Self::Unspecified => "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_UNSPECIFIED",
355 Self::Error => "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_ERROR",
356 Self::TreatAsDouble => "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_TREAT_AS_DOUBLE",
357 Self::TreatAsString => "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_TREAT_AS_STRING",
358 }
359 }
360 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
362 match value {
363 "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_UNSPECIFIED" => Some(Self::Unspecified),
364 "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_ERROR" => Some(Self::Error),
365 "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_TREAT_AS_DOUBLE" => {
366 Some(Self::TreatAsDouble)
367 }
368 "OPC_UA_UNKNOWN_DATA_TYPE_HANDLING_TREAT_AS_STRING" => {
369 Some(Self::TreatAsString)
370 }
371 _ => None,
372 }
373 }
374}
375#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
376#[repr(i32)]
377pub enum OpcUaFailedMonitorHandling {
378 Unspecified = 0,
379 Error = 1,
380 Ignore = 2,
381}
382impl OpcUaFailedMonitorHandling {
383 pub fn as_str_name(&self) -> &'static str {
388 match self {
389 Self::Unspecified => "OPC_UA_FAILED_MONITOR_HANDLING_UNSPECIFIED",
390 Self::Error => "OPC_UA_FAILED_MONITOR_HANDLING_ERROR",
391 Self::Ignore => "OPC_UA_FAILED_MONITOR_HANDLING_IGNORE",
392 }
393 }
394 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
396 match value {
397 "OPC_UA_FAILED_MONITOR_HANDLING_UNSPECIFIED" => Some(Self::Unspecified),
398 "OPC_UA_FAILED_MONITOR_HANDLING_ERROR" => Some(Self::Error),
399 "OPC_UA_FAILED_MONITOR_HANDLING_IGNORE" => Some(Self::Ignore),
400 _ => None,
401 }
402 }
403}
404#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
405#[repr(i32)]
406pub enum OpcUaDataChangeTrigger {
407 Unspecified = 0,
408 StatusOnly = 1,
409 StatusValue = 2,
410 StatusValueTimestamp = 3,
411}
412impl OpcUaDataChangeTrigger {
413 pub fn as_str_name(&self) -> &'static str {
418 match self {
419 Self::Unspecified => "OPC_UA_DATA_CHANGE_TRIGGER_UNSPECIFIED",
420 Self::StatusOnly => "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_ONLY",
421 Self::StatusValue => "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_VALUE",
422 Self::StatusValueTimestamp => {
423 "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_VALUE_TIMESTAMP"
424 }
425 }
426 }
427 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
429 match value {
430 "OPC_UA_DATA_CHANGE_TRIGGER_UNSPECIFIED" => Some(Self::Unspecified),
431 "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_ONLY" => Some(Self::StatusOnly),
432 "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_VALUE" => Some(Self::StatusValue),
433 "OPC_UA_DATA_CHANGE_TRIGGER_STATUS_VALUE_TIMESTAMP" => {
434 Some(Self::StatusValueTimestamp)
435 }
436 _ => None,
437 }
438 }
439}
440#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
441#[repr(i32)]
442pub enum OpcUaDeadbandType {
443 Unspecified = 0,
444 None = 1,
445 Absolute = 2,
446 Percent = 3,
447}
448impl OpcUaDeadbandType {
449 pub fn as_str_name(&self) -> &'static str {
454 match self {
455 Self::Unspecified => "OPC_UA_DEADBAND_TYPE_UNSPECIFIED",
456 Self::None => "OPC_UA_DEADBAND_TYPE_NONE",
457 Self::Absolute => "OPC_UA_DEADBAND_TYPE_ABSOLUTE",
458 Self::Percent => "OPC_UA_DEADBAND_TYPE_PERCENT",
459 }
460 }
461 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
463 match value {
464 "OPC_UA_DEADBAND_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
465 "OPC_UA_DEADBAND_TYPE_NONE" => Some(Self::None),
466 "OPC_UA_DEADBAND_TYPE_ABSOLUTE" => Some(Self::Absolute),
467 "OPC_UA_DEADBAND_TYPE_PERCENT" => Some(Self::Percent),
468 _ => None,
469 }
470 }
471}
472#[derive(Clone, PartialEq, ::prost::Message)]
473pub struct CreateDataConnectorRequest {
474 #[prost(string, tag = "1")]
475 pub name: ::prost::alloc::string::String,
476 #[prost(string, optional, tag = "2")]
477 pub description: ::core::option::Option<::prost::alloc::string::String>,
478 #[prost(message, optional, tag = "3")]
479 pub connection_details: ::core::option::Option<DataConnectorDetails>,
480 #[prost(string, tag = "4")]
481 pub workspace_rid: ::prost::alloc::string::String,
482 #[prost(string, tag = "5")]
483 pub target_dataset_rid: ::prost::alloc::string::String,
484}
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct CreateDataConnectorResponse {
487 #[prost(message, optional, tag = "1")]
488 pub data_connector: ::core::option::Option<DataConnector>,
489}
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct DataConnector {
492 #[prost(string, tag = "1")]
493 pub data_connector_rid: ::prost::alloc::string::String,
494 #[prost(string, tag = "2")]
495 pub name: ::prost::alloc::string::String,
496 #[prost(string, optional, tag = "3")]
497 pub description: ::core::option::Option<::prost::alloc::string::String>,
498 #[prost(message, optional, tag = "4")]
499 pub connection_details: ::core::option::Option<DataConnectorDetailsSecrets>,
500 #[prost(string, tag = "5")]
501 pub workspace_rid: ::prost::alloc::string::String,
502 #[prost(string, optional, tag = "6")]
503 pub target_dataset_rid: ::core::option::Option<::prost::alloc::string::String>,
504 #[prost(message, optional, tag = "7")]
505 pub created_at: ::core::option::Option<
506 super::super::super::google::protobuf::Timestamp,
507 >,
508}
509#[derive(Clone, PartialEq, ::prost::Message)]
510pub struct DataConnectorDetails {
511 #[prost(oneof = "data_connector_details::DataConnectorDetails", tags = "1")]
512 pub data_connector_details: ::core::option::Option<
513 data_connector_details::DataConnectorDetails,
514 >,
515}
516pub mod data_connector_details {
518 #[derive(Clone, PartialEq, ::prost::Oneof)]
519 pub enum DataConnectorDetails {
520 #[prost(message, tag = "1")]
521 OpcUa(super::OpcUaConnectorDetails),
522 }
523}
524#[derive(Clone, PartialEq, ::prost::Message)]
525pub struct DataConnectorDetailsUpdates {
526 #[prost(
527 oneof = "data_connector_details_updates::DataConnectorDetailsUpdates",
528 tags = "1"
529 )]
530 pub data_connector_details_updates: ::core::option::Option<
531 data_connector_details_updates::DataConnectorDetailsUpdates,
532 >,
533}
534pub mod data_connector_details_updates {
536 #[derive(Clone, PartialEq, ::prost::Oneof)]
537 pub enum DataConnectorDetailsUpdates {
538 #[prost(message, tag = "1")]
539 OpcUa(super::OpcUaConnectorDetailsUpdates),
540 }
541}
542#[derive(Clone, PartialEq, ::prost::Message)]
543pub struct DataConnectorDetailsSecrets {
544 #[prost(oneof = "data_connector_details_secrets::DataConnectorDetails", tags = "1")]
545 pub data_connector_details: ::core::option::Option<
546 data_connector_details_secrets::DataConnectorDetails,
547 >,
548}
549pub mod data_connector_details_secrets {
551 #[derive(Clone, PartialEq, ::prost::Oneof)]
552 pub enum DataConnectorDetails {
553 #[prost(message, tag = "1")]
554 OpcUa(super::OpcUaConnectorDetailsSecret),
555 }
556}
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct UpdateDataConnectorRequest {
559 #[prost(string, tag = "1")]
560 pub data_connector_rid: ::prost::alloc::string::String,
561 #[prost(string, optional, tag = "2")]
562 pub name: ::core::option::Option<::prost::alloc::string::String>,
563 #[prost(string, optional, tag = "3")]
564 pub description: ::core::option::Option<::prost::alloc::string::String>,
565 #[prost(message, optional, tag = "4")]
566 pub connection_details: ::core::option::Option<DataConnectorDetailsUpdates>,
567 #[prost(string, optional, tag = "5")]
568 pub target_dataset_rid: ::core::option::Option<::prost::alloc::string::String>,
569}
570#[derive(Clone, PartialEq, ::prost::Message)]
571pub struct UpdateDataConnectorResponse {
572 #[prost(message, optional, tag = "1")]
573 pub data_connector: ::core::option::Option<DataConnector>,
574}
575#[derive(Clone, PartialEq, ::prost::Message)]
576pub struct GetDataConnectorRequest {
577 #[prost(string, tag = "1")]
578 pub data_connector_rid: ::prost::alloc::string::String,
579}
580#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct GetDataConnectorResponse {
582 #[prost(message, optional, tag = "1")]
583 pub data_connector: ::core::option::Option<DataConnector>,
584}
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct NameFilter {
587 #[prost(string, tag = "1")]
588 pub name: ::prost::alloc::string::String,
589}
590#[derive(Clone, PartialEq, ::prost::Message)]
591pub struct DescriptionFilter {
592 #[prost(string, tag = "1")]
593 pub description: ::prost::alloc::string::String,
594}
595#[derive(Clone, PartialEq, ::prost::Message)]
596pub struct TargetDatasetFilter {
597 #[prost(string, tag = "1")]
598 pub target_dataset_rid: ::prost::alloc::string::String,
599}
600#[derive(Clone, PartialEq, ::prost::Message)]
601pub struct AndFilter {
602 #[prost(message, repeated, tag = "1")]
603 pub clauses: ::prost::alloc::vec::Vec<SearchFilter>,
604}
605#[derive(Clone, Copy, PartialEq, ::prost::Message)]
606pub struct SortBy {
607 #[prost(enumeration = "SortField", tag = "1")]
608 pub field: i32,
609 #[prost(enumeration = "SortOrder", tag = "2")]
610 pub order: i32,
611}
612#[derive(Clone, PartialEq, ::prost::Message)]
613pub struct SearchFilter {
614 #[prost(oneof = "search_filter::Filter", tags = "1, 2, 3, 4")]
615 pub filter: ::core::option::Option<search_filter::Filter>,
616}
617pub mod search_filter {
619 #[derive(Clone, PartialEq, ::prost::Oneof)]
620 pub enum Filter {
621 #[prost(message, tag = "1")]
622 Name(super::NameFilter),
623 #[prost(message, tag = "2")]
624 Description(super::DescriptionFilter),
625 #[prost(message, tag = "3")]
626 TargetDataset(super::TargetDatasetFilter),
627 #[prost(message, tag = "4")]
628 And(super::AndFilter),
629 }
630}
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct SearchRequest {
633 #[prost(string, tag = "1")]
634 pub workspace_rid: ::prost::alloc::string::String,
635 #[prost(message, optional, tag = "2")]
636 pub filter: ::core::option::Option<SearchFilter>,
637 #[prost(int32, tag = "3")]
638 pub page_size: i32,
639 #[prost(string, optional, tag = "4")]
640 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
641 #[prost(message, optional, tag = "5")]
642 pub sort_by: ::core::option::Option<SortBy>,
643}
644#[derive(Clone, PartialEq, ::prost::Message)]
645pub struct SearchResponse {
646 #[prost(message, repeated, tag = "1")]
647 pub data_connectors: ::prost::alloc::vec::Vec<DataConnector>,
648 #[prost(string, optional, tag = "2")]
649 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
650}
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct StartSessionRequest {
653 #[prost(string, tag = "1")]
654 pub data_connector_rid: ::prost::alloc::string::String,
655}
656#[derive(Clone, Copy, PartialEq, ::prost::Message)]
657pub struct StartSessionResponse {}
658#[derive(Clone, PartialEq, ::prost::Message)]
659pub struct StopSessionRequest {
660 #[prost(string, tag = "1")]
661 pub data_connector_rid: ::prost::alloc::string::String,
662}
663#[derive(Clone, Copy, PartialEq, ::prost::Message)]
664pub struct StopSessionResponse {}
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct GetSessionStatusRequest {
667 #[prost(string, tag = "1")]
668 pub data_connector_rid: ::prost::alloc::string::String,
669}
670#[derive(Clone, PartialEq, ::prost::Message)]
671pub struct ActiveSessionStatus {
672 #[prost(enumeration = "ReplicaStatus", repeated, tag = "1")]
673 pub replica_status: ::prost::alloc::vec::Vec<i32>,
674}
675#[derive(Clone, PartialEq, ::prost::Message)]
676pub struct GetSessionStatusResponse {
677 #[prost(oneof = "get_session_status_response::Status", tags = "1, 2")]
678 pub status: ::core::option::Option<get_session_status_response::Status>,
679}
680pub mod get_session_status_response {
682 #[derive(Clone, PartialEq, ::prost::Oneof)]
683 pub enum Status {
684 #[prost(message, tag = "1")]
685 None(super::super::super::super::google::protobuf::Empty),
686 #[prost(message, tag = "2")]
687 Active(super::ActiveSessionStatus),
688 }
689}
690#[derive(Clone, PartialEq, ::prost::Message)]
691pub struct DeleteDataConnectorRequest {
692 #[prost(string, tag = "1")]
693 pub data_connector_rid: ::prost::alloc::string::String,
694}
695#[derive(Clone, Copy, PartialEq, ::prost::Message)]
696pub struct DeleteDataConnectorResponse {}
697#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
698#[repr(i32)]
699pub enum DataConnectorErrorType {
700 Unspecified = 0,
701 ConnectorNotFound = 1,
702 ConnectorNotAuthorized = 2,
703 TargetDatasetNotInWorkspace = 3,
704}
705impl DataConnectorErrorType {
706 pub fn as_str_name(&self) -> &'static str {
711 match self {
712 Self::Unspecified => "DATA_CONNECTOR_ERROR_TYPE_UNSPECIFIED",
713 Self::ConnectorNotFound => "DATA_CONNECTOR_ERROR_TYPE_CONNECTOR_NOT_FOUND",
714 Self::ConnectorNotAuthorized => {
715 "DATA_CONNECTOR_ERROR_TYPE_CONNECTOR_NOT_AUTHORIZED"
716 }
717 Self::TargetDatasetNotInWorkspace => {
718 "DATA_CONNECTOR_ERROR_TYPE_TARGET_DATASET_NOT_IN_WORKSPACE"
719 }
720 }
721 }
722 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
724 match value {
725 "DATA_CONNECTOR_ERROR_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
726 "DATA_CONNECTOR_ERROR_TYPE_CONNECTOR_NOT_FOUND" => {
727 Some(Self::ConnectorNotFound)
728 }
729 "DATA_CONNECTOR_ERROR_TYPE_CONNECTOR_NOT_AUTHORIZED" => {
730 Some(Self::ConnectorNotAuthorized)
731 }
732 "DATA_CONNECTOR_ERROR_TYPE_TARGET_DATASET_NOT_IN_WORKSPACE" => {
733 Some(Self::TargetDatasetNotInWorkspace)
734 }
735 _ => None,
736 }
737 }
738}
739#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
740#[repr(i32)]
741pub enum SortField {
742 Unspecified = 0,
743 UpdatedAt = 1,
744}
745impl SortField {
746 pub fn as_str_name(&self) -> &'static str {
751 match self {
752 Self::Unspecified => "SORT_FIELD_UNSPECIFIED",
753 Self::UpdatedAt => "SORT_FIELD_UPDATED_AT",
754 }
755 }
756 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
758 match value {
759 "SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
760 "SORT_FIELD_UPDATED_AT" => Some(Self::UpdatedAt),
761 _ => None,
762 }
763 }
764}
765#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
766#[repr(i32)]
767pub enum SortOrder {
768 Unspecified = 0,
769 Asc = 1,
770 Desc = 2,
771}
772impl SortOrder {
773 pub fn as_str_name(&self) -> &'static str {
778 match self {
779 Self::Unspecified => "SORT_ORDER_UNSPECIFIED",
780 Self::Asc => "SORT_ORDER_ASC",
781 Self::Desc => "SORT_ORDER_DESC",
782 }
783 }
784 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
786 match value {
787 "SORT_ORDER_UNSPECIFIED" => Some(Self::Unspecified),
788 "SORT_ORDER_ASC" => Some(Self::Asc),
789 "SORT_ORDER_DESC" => Some(Self::Desc),
790 _ => None,
791 }
792 }
793}
794#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
795#[repr(i32)]
796pub enum ReplicaStatus {
797 Unspecified = 0,
798 Starting = 1,
799 Subscribing = 2,
800 Running = 3,
801 Stopping = 4,
802 Stopped = 5,
803}
804impl ReplicaStatus {
805 pub fn as_str_name(&self) -> &'static str {
810 match self {
811 Self::Unspecified => "REPLICA_STATUS_UNSPECIFIED",
812 Self::Starting => "REPLICA_STATUS_STARTING",
813 Self::Subscribing => "REPLICA_STATUS_SUBSCRIBING",
814 Self::Running => "REPLICA_STATUS_RUNNING",
815 Self::Stopping => "REPLICA_STATUS_STOPPING",
816 Self::Stopped => "REPLICA_STATUS_STOPPED",
817 }
818 }
819 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
821 match value {
822 "REPLICA_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
823 "REPLICA_STATUS_STARTING" => Some(Self::Starting),
824 "REPLICA_STATUS_SUBSCRIBING" => Some(Self::Subscribing),
825 "REPLICA_STATUS_RUNNING" => Some(Self::Running),
826 "REPLICA_STATUS_STOPPING" => Some(Self::Stopping),
827 "REPLICA_STATUS_STOPPED" => Some(Self::Stopped),
828 _ => None,
829 }
830 }
831}
832pub mod data_connector_service_client {
834 #![allow(
835 unused_variables,
836 dead_code,
837 missing_docs,
838 clippy::wildcard_imports,
839 clippy::let_unit_value,
840 )]
841 use tonic::codegen::*;
842 use tonic::codegen::http::Uri;
843 #[derive(Debug, Clone)]
844 pub struct DataConnectorServiceClient<T> {
845 inner: tonic::client::Grpc<T>,
846 }
847 impl DataConnectorServiceClient<tonic::transport::Channel> {
848 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
850 where
851 D: TryInto<tonic::transport::Endpoint>,
852 D::Error: Into<StdError>,
853 {
854 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
855 Ok(Self::new(conn))
856 }
857 }
858 impl<T> DataConnectorServiceClient<T>
859 where
860 T: tonic::client::GrpcService<tonic::body::Body>,
861 T::Error: Into<StdError>,
862 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
863 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
864 {
865 pub fn new(inner: T) -> Self {
866 let inner = tonic::client::Grpc::new(inner);
867 Self { inner }
868 }
869 pub fn with_origin(inner: T, origin: Uri) -> Self {
870 let inner = tonic::client::Grpc::with_origin(inner, origin);
871 Self { inner }
872 }
873 pub fn with_interceptor<F>(
874 inner: T,
875 interceptor: F,
876 ) -> DataConnectorServiceClient<InterceptedService<T, F>>
877 where
878 F: tonic::service::Interceptor,
879 T::ResponseBody: Default,
880 T: tonic::codegen::Service<
881 http::Request<tonic::body::Body>,
882 Response = http::Response<
883 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
884 >,
885 >,
886 <T as tonic::codegen::Service<
887 http::Request<tonic::body::Body>,
888 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
889 {
890 DataConnectorServiceClient::new(InterceptedService::new(inner, interceptor))
891 }
892 #[must_use]
897 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
898 self.inner = self.inner.send_compressed(encoding);
899 self
900 }
901 #[must_use]
903 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
904 self.inner = self.inner.accept_compressed(encoding);
905 self
906 }
907 #[must_use]
911 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
912 self.inner = self.inner.max_decoding_message_size(limit);
913 self
914 }
915 #[must_use]
919 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
920 self.inner = self.inner.max_encoding_message_size(limit);
921 self
922 }
923 pub async fn create_data_connector(
924 &mut self,
925 request: impl tonic::IntoRequest<super::CreateDataConnectorRequest>,
926 ) -> std::result::Result<
927 tonic::Response<super::CreateDataConnectorResponse>,
928 tonic::Status,
929 > {
930 self.inner
931 .ready()
932 .await
933 .map_err(|e| {
934 tonic::Status::unknown(
935 format!("Service was not ready: {}", e.into()),
936 )
937 })?;
938 let codec = tonic::codec::ProstCodec::default();
939 let path = http::uri::PathAndQuery::from_static(
940 "/nominal.data_connector.v1.DataConnectorService/CreateDataConnector",
941 );
942 let mut req = request.into_request();
943 req.extensions_mut()
944 .insert(
945 GrpcMethod::new(
946 "nominal.data_connector.v1.DataConnectorService",
947 "CreateDataConnector",
948 ),
949 );
950 self.inner.unary(req, path, codec).await
951 }
952 pub async fn get_data_connector(
953 &mut self,
954 request: impl tonic::IntoRequest<super::GetDataConnectorRequest>,
955 ) -> std::result::Result<
956 tonic::Response<super::GetDataConnectorResponse>,
957 tonic::Status,
958 > {
959 self.inner
960 .ready()
961 .await
962 .map_err(|e| {
963 tonic::Status::unknown(
964 format!("Service was not ready: {}", e.into()),
965 )
966 })?;
967 let codec = tonic::codec::ProstCodec::default();
968 let path = http::uri::PathAndQuery::from_static(
969 "/nominal.data_connector.v1.DataConnectorService/GetDataConnector",
970 );
971 let mut req = request.into_request();
972 req.extensions_mut()
973 .insert(
974 GrpcMethod::new(
975 "nominal.data_connector.v1.DataConnectorService",
976 "GetDataConnector",
977 ),
978 );
979 self.inner.unary(req, path, codec).await
980 }
981 pub async fn update_data_connector(
982 &mut self,
983 request: impl tonic::IntoRequest<super::UpdateDataConnectorRequest>,
984 ) -> std::result::Result<
985 tonic::Response<super::UpdateDataConnectorResponse>,
986 tonic::Status,
987 > {
988 self.inner
989 .ready()
990 .await
991 .map_err(|e| {
992 tonic::Status::unknown(
993 format!("Service was not ready: {}", e.into()),
994 )
995 })?;
996 let codec = tonic::codec::ProstCodec::default();
997 let path = http::uri::PathAndQuery::from_static(
998 "/nominal.data_connector.v1.DataConnectorService/UpdateDataConnector",
999 );
1000 let mut req = request.into_request();
1001 req.extensions_mut()
1002 .insert(
1003 GrpcMethod::new(
1004 "nominal.data_connector.v1.DataConnectorService",
1005 "UpdateDataConnector",
1006 ),
1007 );
1008 self.inner.unary(req, path, codec).await
1009 }
1010 pub async fn search(
1011 &mut self,
1012 request: impl tonic::IntoRequest<super::SearchRequest>,
1013 ) -> std::result::Result<tonic::Response<super::SearchResponse>, tonic::Status> {
1014 self.inner
1015 .ready()
1016 .await
1017 .map_err(|e| {
1018 tonic::Status::unknown(
1019 format!("Service was not ready: {}", e.into()),
1020 )
1021 })?;
1022 let codec = tonic::codec::ProstCodec::default();
1023 let path = http::uri::PathAndQuery::from_static(
1024 "/nominal.data_connector.v1.DataConnectorService/Search",
1025 );
1026 let mut req = request.into_request();
1027 req.extensions_mut()
1028 .insert(
1029 GrpcMethod::new(
1030 "nominal.data_connector.v1.DataConnectorService",
1031 "Search",
1032 ),
1033 );
1034 self.inner.unary(req, path, codec).await
1035 }
1036 pub async fn start_session(
1037 &mut self,
1038 request: impl tonic::IntoRequest<super::StartSessionRequest>,
1039 ) -> std::result::Result<
1040 tonic::Response<super::StartSessionResponse>,
1041 tonic::Status,
1042 > {
1043 self.inner
1044 .ready()
1045 .await
1046 .map_err(|e| {
1047 tonic::Status::unknown(
1048 format!("Service was not ready: {}", e.into()),
1049 )
1050 })?;
1051 let codec = tonic::codec::ProstCodec::default();
1052 let path = http::uri::PathAndQuery::from_static(
1053 "/nominal.data_connector.v1.DataConnectorService/StartSession",
1054 );
1055 let mut req = request.into_request();
1056 req.extensions_mut()
1057 .insert(
1058 GrpcMethod::new(
1059 "nominal.data_connector.v1.DataConnectorService",
1060 "StartSession",
1061 ),
1062 );
1063 self.inner.unary(req, path, codec).await
1064 }
1065 pub async fn stop_session(
1066 &mut self,
1067 request: impl tonic::IntoRequest<super::StopSessionRequest>,
1068 ) -> std::result::Result<
1069 tonic::Response<super::StopSessionResponse>,
1070 tonic::Status,
1071 > {
1072 self.inner
1073 .ready()
1074 .await
1075 .map_err(|e| {
1076 tonic::Status::unknown(
1077 format!("Service was not ready: {}", e.into()),
1078 )
1079 })?;
1080 let codec = tonic::codec::ProstCodec::default();
1081 let path = http::uri::PathAndQuery::from_static(
1082 "/nominal.data_connector.v1.DataConnectorService/StopSession",
1083 );
1084 let mut req = request.into_request();
1085 req.extensions_mut()
1086 .insert(
1087 GrpcMethod::new(
1088 "nominal.data_connector.v1.DataConnectorService",
1089 "StopSession",
1090 ),
1091 );
1092 self.inner.unary(req, path, codec).await
1093 }
1094 pub async fn get_session_status(
1095 &mut self,
1096 request: impl tonic::IntoRequest<super::GetSessionStatusRequest>,
1097 ) -> std::result::Result<
1098 tonic::Response<super::GetSessionStatusResponse>,
1099 tonic::Status,
1100 > {
1101 self.inner
1102 .ready()
1103 .await
1104 .map_err(|e| {
1105 tonic::Status::unknown(
1106 format!("Service was not ready: {}", e.into()),
1107 )
1108 })?;
1109 let codec = tonic::codec::ProstCodec::default();
1110 let path = http::uri::PathAndQuery::from_static(
1111 "/nominal.data_connector.v1.DataConnectorService/GetSessionStatus",
1112 );
1113 let mut req = request.into_request();
1114 req.extensions_mut()
1115 .insert(
1116 GrpcMethod::new(
1117 "nominal.data_connector.v1.DataConnectorService",
1118 "GetSessionStatus",
1119 ),
1120 );
1121 self.inner.unary(req, path, codec).await
1122 }
1123 pub async fn delete_data_connector(
1124 &mut self,
1125 request: impl tonic::IntoRequest<super::DeleteDataConnectorRequest>,
1126 ) -> std::result::Result<
1127 tonic::Response<super::DeleteDataConnectorResponse>,
1128 tonic::Status,
1129 > {
1130 self.inner
1131 .ready()
1132 .await
1133 .map_err(|e| {
1134 tonic::Status::unknown(
1135 format!("Service was not ready: {}", e.into()),
1136 )
1137 })?;
1138 let codec = tonic::codec::ProstCodec::default();
1139 let path = http::uri::PathAndQuery::from_static(
1140 "/nominal.data_connector.v1.DataConnectorService/DeleteDataConnector",
1141 );
1142 let mut req = request.into_request();
1143 req.extensions_mut()
1144 .insert(
1145 GrpcMethod::new(
1146 "nominal.data_connector.v1.DataConnectorService",
1147 "DeleteDataConnector",
1148 ),
1149 );
1150 self.inner.unary(req, path, codec).await
1151 }
1152 }
1153}