opcua_types/generated/types/
enums.rs

1// This file was autogenerated from schemas/1.05/Opc.Ua.NodeSet2.Services.xml by async-opcua-codegen
2//
3// DO NOT EDIT THIS FILE
4
5// OPCUA for Rust
6// SPDX-License-Identifier: MPL-2.0
7// Copyright (C) 2017-2024 Adam Lock, Einar Omang
8#[allow(unused)]
9mod opcua {
10    pub(super) use crate as types;
11}
12bitflags::bitflags! {
13    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
14    "https://reference.opcfoundation.org/v105/Core/docs/Part3/8.58"] pub struct
15    AccessLevelExType : i32 { const CurrentRead = 1i32; const CurrentWrite = 2i32; const
16    HistoryRead = 4i32; const HistoryWrite = 8i32; const SemanticChange = 16i32; const
17    StatusWrite = 32i32; const TimestampWrite = 64i32; const NonatomicRead = 256i32;
18    const NonatomicWrite = 512i32; const WriteFullArrayOnly = 1024i32; const
19    NoSubDataTypes = 2048i32; const NonVolatile = 4096i32; const Constant = 8192i32; }
20}
21impl opcua::types::UaNullable for AccessLevelExType {
22    fn is_ua_null(&self) -> bool {
23        self.is_empty()
24    }
25}
26opcua::types::impl_encoded_as!(
27    AccessLevelExType,
28    |v| Ok(AccessLevelExType::from_bits_truncate(v)),
29    |v: &AccessLevelExType| Ok::<_, opcua::types::Error>(v.bits()),
30    |v: &AccessLevelExType| v.bits().byte_len()
31);
32impl Default for AccessLevelExType {
33    fn default() -> Self {
34        Self::empty()
35    }
36}
37impl opcua::types::IntoVariant for AccessLevelExType {
38    fn into_variant(self) -> opcua::types::Variant {
39        self.bits().into_variant()
40    }
41}
42#[cfg(feature = "xml")]
43impl opcua::types::xml::XmlType for AccessLevelExType {
44    const TAG: &'static str = "AccessLevelExType";
45}
46bitflags::bitflags! {
47    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
48    "https://reference.opcfoundation.org/v105/Core/docs/Part3/8.57"] pub struct
49    AccessLevelType : u8 { const CurrentRead = 1u8; const CurrentWrite = 2u8; const
50    HistoryRead = 4u8; const HistoryWrite = 8u8; const SemanticChange = 16u8; const
51    StatusWrite = 32u8; const TimestampWrite = 64u8; }
52}
53impl opcua::types::UaNullable for AccessLevelType {
54    fn is_ua_null(&self) -> bool {
55        self.is_empty()
56    }
57}
58opcua::types::impl_encoded_as!(
59    AccessLevelType,
60    |v| Ok(AccessLevelType::from_bits_truncate(v)),
61    |v: &AccessLevelType| Ok::<_, opcua::types::Error>(v.bits()),
62    |v: &AccessLevelType| v.bits().byte_len()
63);
64impl Default for AccessLevelType {
65    fn default() -> Self {
66        Self::empty()
67    }
68}
69impl opcua::types::IntoVariant for AccessLevelType {
70    fn into_variant(self) -> opcua::types::Variant {
71        self.bits().into_variant()
72    }
73}
74#[cfg(feature = "xml")]
75impl opcua::types::xml::XmlType for AccessLevelType {
76    const TAG: &'static str = "AccessLevelType";
77}
78bitflags::bitflags! {
79    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
80    "https://reference.opcfoundation.org/v105/Core/docs/Part5/12.2.9/#12.2.9.13"] pub
81    struct AccessRestrictionType : i16 { const SigningRequired = 1i16; const
82    EncryptionRequired = 2i16; const SessionRequired = 4i16; const
83    ApplyRestrictionsToBrowse = 8i16; }
84}
85impl opcua::types::UaNullable for AccessRestrictionType {
86    fn is_ua_null(&self) -> bool {
87        self.is_empty()
88    }
89}
90opcua::types::impl_encoded_as!(
91    AccessRestrictionType,
92    |v| Ok(AccessRestrictionType::from_bits_truncate(v)),
93    |v: &AccessRestrictionType| Ok::<_, opcua::types::Error>(v.bits()),
94    |v: &AccessRestrictionType| v.bits().byte_len()
95);
96impl Default for AccessRestrictionType {
97    fn default() -> Self {
98        Self::empty()
99    }
100}
101impl opcua::types::IntoVariant for AccessRestrictionType {
102    fn into_variant(self) -> opcua::types::Variant {
103        self.bits().into_variant()
104    }
105}
106#[cfg(feature = "xml")]
107impl opcua::types::xml::XmlType for AccessRestrictionType {
108    const TAG: &'static str = "AccessRestrictionType";
109}
110#[opcua::types::ua_encodable]
111///https://reference.opcfoundation.org/v105/Core/docs/Part14/6.2.11/#6.2.11.2.1
112#[derive(Debug, Copy, Clone, PartialEq, Eq)]
113#[repr(i32)]
114pub enum ActionState {
115    #[opcua(default)]
116    Idle = 0i32,
117    Executing = 1i32,
118    Done = 2i32,
119}
120bitflags::bitflags! {
121    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
122    "https://reference.opcfoundation.org/v105/Core/docs/Part9/8.3"] pub struct AlarmMask
123    : i16 { const Active = 1i16; const Unacknowledged = 2i16; const Unconfirmed = 4i16; }
124}
125impl opcua::types::UaNullable for AlarmMask {
126    fn is_ua_null(&self) -> bool {
127        self.is_empty()
128    }
129}
130opcua::types::impl_encoded_as!(
131    AlarmMask,
132    |v| Ok(AlarmMask::from_bits_truncate(v)),
133    |v: &AlarmMask| Ok::<_, opcua::types::Error>(v.bits()),
134    |v: &AlarmMask| v.bits().byte_len()
135);
136impl Default for AlarmMask {
137    fn default() -> Self {
138        Self::empty()
139    }
140}
141impl opcua::types::IntoVariant for AlarmMask {
142    fn into_variant(self) -> opcua::types::Variant {
143        self.bits().into_variant()
144    }
145}
146#[cfg(feature = "xml")]
147impl opcua::types::xml::XmlType for AlarmMask {
148    const TAG: &'static str = "AlarmMask";
149}
150#[opcua::types::ua_encodable]
151///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.4
152#[derive(Debug, Copy, Clone, PartialEq, Eq)]
153#[repr(i32)]
154pub enum ApplicationType {
155    #[opcua(default)]
156    Server = 0i32,
157    Client = 1i32,
158    ClientAndServer = 2i32,
159    DiscoveryServer = 3i32,
160}
161bitflags::bitflags! {
162    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
163    "https://reference.opcfoundation.org/v105/Core/docs/Part3/8.60"] pub struct
164    AttributeWriteMask : i32 { const AccessLevel = 1i32; const ArrayDimensions = 2i32;
165    const BrowseName = 4i32; const ContainsNoLoops = 8i32; const DataType = 16i32; const
166    Description = 32i32; const DisplayName = 64i32; const EventNotifier = 128i32; const
167    Executable = 256i32; const Historizing = 512i32; const InverseName = 1024i32; const
168    IsAbstract = 2048i32; const MinimumSamplingInterval = 4096i32; const NodeClass =
169    8192i32; const NodeId = 16384i32; const Symmetric = 32768i32; const UserAccessLevel =
170    65536i32; const UserExecutable = 131072i32; const UserWriteMask = 262144i32; const
171    ValueRank = 524288i32; const WriteMask = 1048576i32; const ValueForVariableType =
172    2097152i32; const DataTypeDefinition = 4194304i32; const RolePermissions =
173    8388608i32; const AccessRestrictions = 16777216i32; const AccessLevelEx =
174    33554432i32; }
175}
176impl opcua::types::UaNullable for AttributeWriteMask {
177    fn is_ua_null(&self) -> bool {
178        self.is_empty()
179    }
180}
181opcua::types::impl_encoded_as!(
182    AttributeWriteMask,
183    |v| Ok(AttributeWriteMask::from_bits_truncate(v)),
184    |v: &AttributeWriteMask| Ok::<_, opcua::types::Error>(v.bits()),
185    |v: &AttributeWriteMask| v.bits().byte_len()
186);
187impl Default for AttributeWriteMask {
188    fn default() -> Self {
189        Self::empty()
190    }
191}
192impl opcua::types::IntoVariant for AttributeWriteMask {
193    fn into_variant(self) -> opcua::types::Variant {
194        self.bits().into_variant()
195    }
196}
197#[cfg(feature = "xml")]
198impl opcua::types::xml::XmlType for AttributeWriteMask {
199    const TAG: &'static str = "AttributeWriteMask";
200}
201#[opcua::types::ua_encodable]
202///https://reference.opcfoundation.org/v105/Core/docs/Part8/5.6.7
203#[derive(Debug, Copy, Clone, PartialEq, Eq)]
204#[repr(i32)]
205pub enum AxisScaleEnumeration {
206    #[opcua(default)]
207    Linear = 0i32,
208    Log = 1i32,
209    Ln = 2i32,
210}
211#[opcua::types::ua_encodable]
212///https://reference.opcfoundation.org/v105/Core/docs/Part14/6.4.2/#6.4.2.1
213#[derive(Debug, Copy, Clone, PartialEq, Eq)]
214#[repr(i32)]
215pub enum BrokerTransportQualityOfService {
216    #[opcua(default)]
217    NotSpecified = 0i32,
218    BestEffort = 1i32,
219    AtLeastOnce = 2i32,
220    AtMostOnce = 3i32,
221    ExactlyOnce = 4i32,
222}
223#[opcua::types::ua_encodable]
224///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.5
225#[derive(Debug, Copy, Clone, PartialEq, Eq)]
226#[repr(i32)]
227pub enum BrowseDirection {
228    #[opcua(default)]
229    Forward = 0i32,
230    Inverse = 1i32,
231    Both = 2i32,
232    Invalid = 3i32,
233}
234#[opcua::types::ua_encodable]
235#[derive(Debug, Copy, Clone, PartialEq, Eq)]
236#[repr(i32)]
237pub enum BrowseResultMask {
238    #[opcua(default)]
239    None = 0i32,
240    ReferenceTypeId = 1i32,
241    IsForward = 2i32,
242    NodeClass = 4i32,
243    BrowseName = 8i32,
244    DisplayName = 16i32,
245    TypeDefinition = 32i32,
246    All = 63i32,
247    ReferenceTypeInfo = 3i32,
248    TargetInfo = 60i32,
249}
250#[opcua::types::ua_encodable]
251///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.9
252#[derive(Debug, Copy, Clone, PartialEq, Eq)]
253#[repr(i32)]
254pub enum ChassisIdSubtype {
255    ///Represents a chassis identifier based on the value of entPhysicalAlias object (defined in IETF RFC 2737) for a chassis component (i.e., an entPhysicalClass value of chassis(3))
256    ChassisComponent = 1i32,
257    ///Represents a chassis identifier based on the value of ifAlias object (defined in IETF RFC 2863) for an interface on the containing chassis.
258    InterfaceAlias = 2i32,
259    ///Represents a chassis identifier based on the value of entPhysicalAlias object (defined in IETF RFC 2737) for a port or backplane component (i.e., entPhysicalClass has a value of port(10), or backplane(4)), within the containing chassis.
260    PortComponent = 3i32,
261    ///Represents a chassis identifier based on the value of a unicast source address (encoded in network byte order and IEEE 802.3 canonical bit order) of a port on the containing chassis as defined in IEEE Std 802-2014.
262    MacAddress = 4i32,
263    ///Represents a chassis identifier based on a network address associated with a particular chassis. The encoded address is actually composed of two fields. The first field is a single octet, representing the IANA AddressFamilyNumbers value for the specific address type, and the second field is the network address value.
264    NetworkAddress = 5i32,
265    ///Represents a chassis identifier based on the value of ifName object (defined in IETF RFC 2863) for an interface on the containing chassis.
266    InterfaceName = 6i32,
267    ///Represents a chassis identifier based on a locally defined value.
268    Local = 7i32,
269}
270#[opcua::types::ua_encodable]
271///https://reference.opcfoundation.org/v105/Core/docs/Part8/6.6.3
272#[derive(Debug, Copy, Clone, PartialEq, Eq)]
273#[repr(i32)]
274pub enum ConversionLimitEnum {
275    #[opcua(default)]
276    NoConversion = 0i32,
277    Limited = 1i32,
278    Unlimited = 2i32,
279}
280#[opcua::types::ua_encodable]
281///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.10
282#[derive(Debug, Copy, Clone, PartialEq, Eq)]
283#[repr(i32)]
284pub enum DataChangeTrigger {
285    #[opcua(default)]
286    Status = 0i32,
287    StatusValue = 1i32,
288    StatusValueTimestamp = 2i32,
289}
290bitflags::bitflags! {
291    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
292    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.2.4/#6.2.4.2"] pub
293    struct DataSetFieldContentMask : i32 { const StatusCode = 1i32; const SourceTimestamp
294    = 2i32; const ServerTimestamp = 4i32; const SourcePicoSeconds = 8i32; const
295    ServerPicoSeconds = 16i32; const RawData = 32i32; }
296}
297impl opcua::types::UaNullable for DataSetFieldContentMask {
298    fn is_ua_null(&self) -> bool {
299        self.is_empty()
300    }
301}
302opcua::types::impl_encoded_as!(
303    DataSetFieldContentMask,
304    |v| Ok(DataSetFieldContentMask::from_bits_truncate(v)),
305    |v: &DataSetFieldContentMask| Ok::<_, opcua::types::Error>(v.bits()),
306    |v: &DataSetFieldContentMask| v.bits().byte_len()
307);
308impl Default for DataSetFieldContentMask {
309    fn default() -> Self {
310        Self::empty()
311    }
312}
313impl opcua::types::IntoVariant for DataSetFieldContentMask {
314    fn into_variant(self) -> opcua::types::Variant {
315        self.bits().into_variant()
316    }
317}
318#[cfg(feature = "xml")]
319impl opcua::types::xml::XmlType for DataSetFieldContentMask {
320    const TAG: &'static str = "DataSetFieldContentMask";
321}
322bitflags::bitflags! {
323    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
324    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.2.3/#6.2.3.2.5"] pub
325    struct DataSetFieldFlags : i16 { const PromotedField = 1i16; }
326}
327impl opcua::types::UaNullable for DataSetFieldFlags {
328    fn is_ua_null(&self) -> bool {
329        self.is_empty()
330    }
331}
332opcua::types::impl_encoded_as!(
333    DataSetFieldFlags,
334    |v| Ok(DataSetFieldFlags::from_bits_truncate(v)),
335    |v: &DataSetFieldFlags| Ok::<_, opcua::types::Error>(v.bits()),
336    |v: &DataSetFieldFlags| v.bits().byte_len()
337);
338impl Default for DataSetFieldFlags {
339    fn default() -> Self {
340        Self::empty()
341    }
342}
343impl opcua::types::IntoVariant for DataSetFieldFlags {
344    fn into_variant(self) -> opcua::types::Variant {
345        self.bits().into_variant()
346    }
347}
348#[cfg(feature = "xml")]
349impl opcua::types::xml::XmlType for DataSetFieldFlags {
350    const TAG: &'static str = "DataSetFieldFlags";
351}
352#[opcua::types::ua_encodable]
353///https://reference.opcfoundation.org/v105/Core/docs/Part14/6.3.1/#6.3.1.1.3
354#[derive(Debug, Copy, Clone, PartialEq, Eq)]
355#[repr(i32)]
356pub enum DataSetOrderingType {
357    #[opcua(default)]
358    Undefined = 0i32,
359    AscendingWriterId = 1i32,
360    AscendingWriterIdSingle = 2i32,
361}
362#[opcua::types::ua_encodable]
363#[derive(Debug, Copy, Clone, PartialEq, Eq)]
364#[repr(i32)]
365pub enum DeadbandType {
366    #[opcua(default)]
367    None = 0i32,
368    Absolute = 1i32,
369    Percent = 2i32,
370}
371#[opcua::types::ua_encodable]
372///https://reference.opcfoundation.org/v105/Core/docs/Part14/9.1.11/#9.1.11.4
373#[derive(Debug, Copy, Clone, PartialEq, Eq)]
374#[repr(i32)]
375pub enum DiagnosticsLevel {
376    #[opcua(default)]
377    Basic = 0i32,
378    Advanced = 1i32,
379    Info = 2i32,
380    Log = 3i32,
381    Debug = 4i32,
382}
383#[opcua::types::ua_encodable]
384///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.1
385#[derive(Debug, Copy, Clone, PartialEq, Eq)]
386#[repr(i32)]
387pub enum Duplex {
388    #[opcua(default)]
389    ///Full duplex.
390    Full = 0i32,
391    ///Half duplex.
392    Half = 1i32,
393    ///Link is currently disconnected or initializing.
394    Unknown = 2i32,
395}
396bitflags::bitflags! {
397    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
398    "https://reference.opcfoundation.org/v105/Core/docs/Part3/8.59"] pub struct
399    EventNotifierType : u8 { const SubscribeToEvents = 1u8; const HistoryRead = 4u8;
400    const HistoryWrite = 8u8; }
401}
402impl opcua::types::UaNullable for EventNotifierType {
403    fn is_ua_null(&self) -> bool {
404        self.is_empty()
405    }
406}
407opcua::types::impl_encoded_as!(
408    EventNotifierType,
409    |v| Ok(EventNotifierType::from_bits_truncate(v)),
410    |v: &EventNotifierType| Ok::<_, opcua::types::Error>(v.bits()),
411    |v: &EventNotifierType| v.bits().byte_len()
412);
413impl Default for EventNotifierType {
414    fn default() -> Self {
415        Self::empty()
416    }
417}
418impl opcua::types::IntoVariant for EventNotifierType {
419    fn into_variant(self) -> opcua::types::Variant {
420        self.bits().into_variant()
421    }
422}
423#[cfg(feature = "xml")]
424impl opcua::types::xml::XmlType for EventNotifierType {
425    const TAG: &'static str = "EventNotifierType";
426}
427#[opcua::types::ua_encodable]
428///https://reference.opcfoundation.org/v105/Core/docs/Part11/5.2.2
429#[derive(Debug, Copy, Clone, PartialEq, Eq)]
430#[repr(i32)]
431pub enum ExceptionDeviationFormat {
432    #[opcua(default)]
433    AbsoluteValue = 0i32,
434    PercentOfValue = 1i32,
435    PercentOfRange = 2i32,
436    PercentOfEURange = 3i32,
437    Unknown = 4i32,
438}
439#[opcua::types::ua_encodable]
440///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.7.3
441#[derive(Debug, Copy, Clone, PartialEq, Eq)]
442#[repr(i32)]
443pub enum FilterOperator {
444    #[opcua(default)]
445    Equals = 0i32,
446    IsNull = 1i32,
447    GreaterThan = 2i32,
448    LessThan = 3i32,
449    GreaterThanOrEqual = 4i32,
450    LessThanOrEqual = 5i32,
451    Like = 6i32,
452    Not = 7i32,
453    Between = 8i32,
454    InList = 9i32,
455    And = 10i32,
456    Or = 11i32,
457    Cast = 12i32,
458    InView = 13i32,
459    OfType = 14i32,
460    RelatedTo = 15i32,
461    BitwiseAnd = 16i32,
462    BitwiseOr = 17i32,
463}
464#[opcua::types::ua_encodable]
465///https://reference.opcfoundation.org/v105/Core/docs/Part11/6.7
466#[derive(Debug, Copy, Clone, PartialEq, Eq)]
467#[repr(i32)]
468pub enum HistoryUpdateType {
469    ///Data was inserted.
470    Insert = 1i32,
471    ///Data was replaced.
472    Replace = 2i32,
473    ///Data was inserted or replaced.
474    Update = 3i32,
475    ///Data was deleted.
476    Delete = 4i32,
477}
478#[opcua::types::ua_encodable]
479///https://reference.opcfoundation.org/v105/Core/docs/Part18/4.4.4
480#[derive(Debug, Copy, Clone, PartialEq, Eq)]
481#[repr(i32)]
482pub enum IdentityCriteriaType {
483    ///The rule specifies a UserName from a UserNameIdentityToken.
484    UserName = 1i32,
485    ///The rule specifies the Thumbprint of a user or CA Certificate.
486    Thumbprint = 2i32,
487    ///The rule is a Role specified in an Access Token.
488    Role = 3i32,
489    ///The rule is a user group specified in the Access Token.
490    GroupId = 4i32,
491    ///The rule specifies Anonymous UserIdentityToken.
492    Anonymous = 5i32,
493    ///The rule specifies any non Anonymous UserIdentityToken.
494    AuthenticatedUser = 6i32,
495    ///The rule specifies the combination of an application identity and an Anonymous UserIdentityToken.
496    Application = 7i32,
497    ///The rule specifies the X509 subject name of a user or CA Certificate.
498    X509Subject = 8i32,
499    ///The rule specifies any trusted application that has been authenticated with a trusted ApplicationInstance Certificate.
500    TrustedApplication = 9i32,
501}
502#[opcua::types::ua_encodable]
503///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.2.5/#12.2.5.1
504#[derive(Debug, Copy, Clone, PartialEq, Eq)]
505#[repr(i32)]
506pub enum IdType {
507    #[opcua(default)]
508    Numeric = 0i32,
509    String = 1i32,
510    Guid = 2i32,
511    Opaque = 3i32,
512}
513#[opcua::types::ua_encodable]
514///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.2
515#[derive(Debug, Copy, Clone, PartialEq, Eq)]
516#[repr(i32)]
517pub enum InterfaceAdminStatus {
518    #[opcua(default)]
519    ///Ready to pass packets.
520    Up = 0i32,
521    ///Not ready to pass packets and not in some test mode.
522    Down = 1i32,
523    ///In some test mode.
524    Testing = 2i32,
525}
526#[opcua::types::ua_encodable]
527///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.3
528#[derive(Debug, Copy, Clone, PartialEq, Eq)]
529#[repr(i32)]
530pub enum InterfaceOperStatus {
531    #[opcua(default)]
532    ///Ready to pass packets.
533    Up = 0i32,
534    ///The interface does not pass any packets.
535    Down = 1i32,
536    ///In some test mode. No operational packets can be passed.
537    Testing = 2i32,
538    ///Status cannot be determined for some reason.
539    Unknown = 3i32,
540    ///Waiting for some external event.
541    Dormant = 4i32,
542    ///Some component (typically hardware) is missing.
543    NotPresent = 5i32,
544    ///Down due to state of lower-layer interface(s).
545    LowerLayerDown = 6i32,
546}
547bitflags::bitflags! {
548    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
549    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.3.2/#6.3.2.3.1"] pub
550    struct JsonDataSetMessageContentMask : i32 { const DataSetWriterId = 1i32; const
551    MetaDataVersion = 2i32; const SequenceNumber = 4i32; const Timestamp = 8i32; const
552    Status = 16i32; const MessageType = 32i32; const DataSetWriterName = 64i32; const
553    FieldEncoding1 = 128i32; const PublisherId = 256i32; const WriterGroupName = 512i32;
554    const MinorVersion = 1024i32; const FieldEncoding2 = 2048i32; }
555}
556impl opcua::types::UaNullable for JsonDataSetMessageContentMask {
557    fn is_ua_null(&self) -> bool {
558        self.is_empty()
559    }
560}
561opcua::types::impl_encoded_as!(
562    JsonDataSetMessageContentMask,
563    |v| Ok(JsonDataSetMessageContentMask::from_bits_truncate(v)),
564    |v: &JsonDataSetMessageContentMask| Ok::<_, opcua::types::Error>(v.bits()),
565    |v: &JsonDataSetMessageContentMask| v.bits().byte_len()
566);
567impl Default for JsonDataSetMessageContentMask {
568    fn default() -> Self {
569        Self::empty()
570    }
571}
572impl opcua::types::IntoVariant for JsonDataSetMessageContentMask {
573    fn into_variant(self) -> opcua::types::Variant {
574        self.bits().into_variant()
575    }
576}
577#[cfg(feature = "xml")]
578impl opcua::types::xml::XmlType for JsonDataSetMessageContentMask {
579    const TAG: &'static str = "JsonDataSetMessageContentMask";
580}
581bitflags::bitflags! {
582    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
583    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.3.2/#6.3.2.1.1"] pub
584    struct JsonNetworkMessageContentMask : i32 { const NetworkMessageHeader = 1i32; const
585    DataSetMessageHeader = 2i32; const SingleDataSetMessage = 4i32; const PublisherId =
586    8i32; const DataSetClassId = 16i32; const ReplyTo = 32i32; const WriterGroupName =
587    64i32; }
588}
589impl opcua::types::UaNullable for JsonNetworkMessageContentMask {
590    fn is_ua_null(&self) -> bool {
591        self.is_empty()
592    }
593}
594opcua::types::impl_encoded_as!(
595    JsonNetworkMessageContentMask,
596    |v| Ok(JsonNetworkMessageContentMask::from_bits_truncate(v)),
597    |v: &JsonNetworkMessageContentMask| Ok::<_, opcua::types::Error>(v.bits()),
598    |v: &JsonNetworkMessageContentMask| v.bits().byte_len()
599);
600impl Default for JsonNetworkMessageContentMask {
601    fn default() -> Self {
602        Self::empty()
603    }
604}
605impl opcua::types::IntoVariant for JsonNetworkMessageContentMask {
606    fn into_variant(self) -> opcua::types::Variant {
607        self.bits().into_variant()
608    }
609}
610#[cfg(feature = "xml")]
611impl opcua::types::xml::XmlType for JsonNetworkMessageContentMask {
612    const TAG: &'static str = "JsonNetworkMessageContentMask";
613}
614bitflags::bitflags! {
615    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
616    "https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.3/#5.3.3.1"] pub
617    struct LldpSystemCapabilitiesMap : i32 { #[doc =
618    "System has capabilities other than those listed below"] const Other = 1i32; #[doc =
619    "System has repeater capability"] const Repeater = 2i32; #[doc =
620    "System has bridge capability"] const Bridge = 4i32; #[doc =
621    "System has WLAN access point capability"] const WlanAccessPoint = 8i32; #[doc =
622    "System has router capability"] const Router = 16i32; #[doc =
623    "System has telephone capability"] const Telephone = 32i32; #[doc =
624    "System has DOCSIS cable device capability (IETF RFC 4639)"] const DocsisCableDevice
625    = 64i32; #[doc = "System has only station capability"] const StationOnly = 128i32;
626    #[doc = "System has C-VLAN component functionality"] const CvlanComponent = 256i32;
627    #[doc = "System has S-VLAN component functionality"] const SvlanComponent = 512i32;
628    #[doc = "System has Two-port MAC Relay (TPMR) functionality."] const TwoPortMacRelay
629    = 1024i32; }
630}
631impl opcua::types::UaNullable for LldpSystemCapabilitiesMap {
632    fn is_ua_null(&self) -> bool {
633        self.is_empty()
634    }
635}
636opcua::types::impl_encoded_as!(
637    LldpSystemCapabilitiesMap,
638    |v| Ok(LldpSystemCapabilitiesMap::from_bits_truncate(v)),
639    |v: &LldpSystemCapabilitiesMap| Ok::<_, opcua::types::Error>(v.bits()),
640    |v: &LldpSystemCapabilitiesMap| v.bits().byte_len()
641);
642impl Default for LldpSystemCapabilitiesMap {
643    fn default() -> Self {
644        Self::empty()
645    }
646}
647impl opcua::types::IntoVariant for LldpSystemCapabilitiesMap {
648    fn into_variant(self) -> opcua::types::Variant {
649        self.bits().into_variant()
650    }
651}
652#[cfg(feature = "xml")]
653impl opcua::types::xml::XmlType for LldpSystemCapabilitiesMap {
654    const TAG: &'static str = "LldpSystemCapabilitiesMap";
655}
656#[opcua::types::ua_encodable]
657///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.11
658#[derive(Debug, Copy, Clone, PartialEq, Eq)]
659#[repr(i32)]
660pub enum ManAddrIfSubtype {
661    #[opcua(default)]
662    ///Optional variable is not set.
663    None = 0i32,
664    ///Interface is not known.
665    Unknown = 1i32,
666    ///Interface based on the port-ref MIB object.
667    PortRef = 2i32,
668    ///Interface based on the system port number.
669    SystemPortNumber = 3i32,
670}
671#[opcua::types::ua_encodable]
672///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.3.10
673#[derive(Debug, Copy, Clone, PartialEq, Eq)]
674#[repr(i32)]
675pub enum MessageSecurityMode {
676    #[opcua(default)]
677    Invalid = 0i32,
678    None = 1i32,
679    Sign = 2i32,
680    SignAndEncrypt = 3i32,
681}
682#[opcua::types::ua_encodable]
683#[derive(Debug, Copy, Clone, PartialEq, Eq)]
684#[repr(i32)]
685pub enum ModelChangeStructureVerbMask {
686    NodeAdded = 1i32,
687    NodeDeleted = 2i32,
688    ReferenceAdded = 4i32,
689    ReferenceDeleted = 8i32,
690    DataTypeChanged = 16i32,
691}
692#[opcua::types::ua_encodable]
693///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.23
694#[derive(Debug, Copy, Clone, PartialEq, Eq)]
695#[repr(i32)]
696pub enum MonitoringMode {
697    #[opcua(default)]
698    Disabled = 0i32,
699    Sampling = 1i32,
700    Reporting = 2i32,
701}
702#[opcua::types::ua_encodable]
703#[derive(Debug, Copy, Clone, PartialEq, Eq)]
704#[repr(i32)]
705pub enum NamingRuleType {
706    ///The BrowseName must appear in all instances of the type.
707    Mandatory = 1i32,
708    ///The BrowseName may appear in an instance of the type.
709    Optional = 2i32,
710    ///The modelling rule defines a constraint and the BrowseName is not used in an instance of the type.
711    Constraint = 3i32,
712}
713#[opcua::types::ua_encodable]
714///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.4
715#[derive(Debug, Copy, Clone, PartialEq, Eq)]
716#[repr(i32)]
717pub enum NegotiationStatus {
718    #[opcua(default)]
719    ///The auto-negotiation protocol is running and negotiation is currently in-progress.
720    InProgress = 0i32,
721    ///The auto-negotiation protocol has completed successfully.
722    Complete = 1i32,
723    ///The auto-negotiation protocol has failed.
724    Failed = 2i32,
725    ///The auto-negotiation status is not currently known, this could be because it is still negotiating or the protocol cannot run (e.g., if no medium is present).
726    Unknown = 3i32,
727    ///No auto-negotiation is executed. The auto-negotiation function is either not supported on this interface or has not been enabled.
728    NoNegotiation = 4i32,
729}
730#[opcua::types::ua_encodable]
731#[derive(Debug, Copy, Clone, PartialEq, Eq)]
732#[repr(i32)]
733pub enum NodeAttributesMask {
734    #[opcua(default)]
735    None = 0i32,
736    AccessLevel = 1i32,
737    ArrayDimensions = 2i32,
738    BrowseName = 4i32,
739    ContainsNoLoops = 8i32,
740    DataType = 16i32,
741    Description = 32i32,
742    DisplayName = 64i32,
743    EventNotifier = 128i32,
744    Executable = 256i32,
745    Historizing = 512i32,
746    InverseName = 1024i32,
747    IsAbstract = 2048i32,
748    MinimumSamplingInterval = 4096i32,
749    NodeClass = 8192i32,
750    NodeId = 16384i32,
751    Symmetric = 32768i32,
752    UserAccessLevel = 65536i32,
753    UserExecutable = 131072i32,
754    UserWriteMask = 262144i32,
755    ValueRank = 524288i32,
756    WriteMask = 1048576i32,
757    Value = 2097152i32,
758    DataTypeDefinition = 4194304i32,
759    RolePermissions = 8388608i32,
760    AccessRestrictions = 16777216i32,
761    All = 33554431i32,
762    BaseNode = 26501220i32,
763    Object = 26501348i32,
764    ObjectType = 26503268i32,
765    Variable = 26571383i32,
766    VariableType = 28600438i32,
767    Method = 26632548i32,
768    ReferenceType = 26537060i32,
769    View = 26501356i32,
770}
771#[opcua::types::ua_encodable]
772///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.2.5/#12.2.5.2
773#[derive(Debug, Copy, Clone, PartialEq, Eq)]
774#[repr(i32)]
775pub enum NodeClass {
776    #[opcua(default)]
777    ///No value is specified.
778    Unspecified = 0i32,
779    ///The Node is an Object.
780    Object = 1i32,
781    ///The Node is a Variable.
782    Variable = 2i32,
783    ///The Node is a Method.
784    Method = 4i32,
785    ///The Node is an ObjectType.
786    ObjectType = 8i32,
787    ///The Node is a VariableType.
788    VariableType = 16i32,
789    ///The Node is a ReferenceType.
790    ReferenceType = 32i32,
791    ///The Node is a DataType.
792    DataType = 64i32,
793    ///The Node is a View.
794    View = 128i32,
795}
796#[opcua::types::ua_encodable]
797#[derive(Debug, Copy, Clone, PartialEq, Eq)]
798#[repr(i32)]
799pub enum OpenFileMode {
800    Read = 1i32,
801    Write = 2i32,
802    EraseExisting = 4i32,
803    Append = 8i32,
804}
805#[opcua::types::ua_encodable]
806///https://reference.opcfoundation.org/v105/Core/docs/Part14/6.2.10/#6.2.10.2.4
807#[derive(Debug, Copy, Clone, PartialEq, Eq)]
808#[repr(i32)]
809pub enum OverrideValueHandling {
810    #[opcua(default)]
811    Disabled = 0i32,
812    LastUsableValue = 1i32,
813    OverrideValue = 2i32,
814}
815bitflags::bitflags! {
816    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
817    "https://reference.opcfoundation.org/v105/Core/docs/Part18/5.2.2"] pub struct
818    PasswordOptionsMask : i32 { #[doc =
819    "Indicates if the server supports the feature to require a password change after the creation of the user."]
820    const SupportInitialPasswordChange = 1i32; #[doc =
821    "Indicates if the server supports to disable a user."] const SupportDisableUser =
822    2i32; #[doc =
823    "Indicates if the server supports the configuration NoDelete for a user."] const
824    SupportDisableDeleteForUser = 4i32; #[doc =
825    "Indicates if the server supports the configuration NoChangeByUser for a user."]
826    const SupportNoChangeForUser = 8i32; #[doc =
827    "Indicates if the server supports to management of a description for the user."]
828    const SupportDescriptionForUser = 16i32; #[doc =
829    "Indicates if a upper case ASCII character is required in a password."] const
830    RequiresUpperCaseCharacters = 32i32; #[doc =
831    "Indicates if a lower case ASCII character is required in a password."] const
832    RequiresLowerCaseCharacters = 64i32; #[doc =
833    "Indicates if a digit ASCII character is required in a password."] const
834    RequiresDigitCharacters = 128i32; #[doc =
835    "Indicates if a special character is required in a password."] const
836    RequiresSpecialCharacters = 256i32; }
837}
838impl opcua::types::UaNullable for PasswordOptionsMask {
839    fn is_ua_null(&self) -> bool {
840        self.is_empty()
841    }
842}
843opcua::types::impl_encoded_as!(
844    PasswordOptionsMask,
845    |v| Ok(PasswordOptionsMask::from_bits_truncate(v)),
846    |v: &PasswordOptionsMask| Ok::<_, opcua::types::Error>(v.bits()),
847    |v: &PasswordOptionsMask| v.bits().byte_len()
848);
849impl Default for PasswordOptionsMask {
850    fn default() -> Self {
851        Self::empty()
852    }
853}
854impl opcua::types::IntoVariant for PasswordOptionsMask {
855    fn into_variant(self) -> opcua::types::Variant {
856        self.bits().into_variant()
857    }
858}
859#[cfg(feature = "xml")]
860impl opcua::types::xml::XmlType for PasswordOptionsMask {
861    const TAG: &'static str = "PasswordOptionsMask";
862}
863#[opcua::types::ua_encodable]
864///https://reference.opcfoundation.org/v105/Core/docs/Part11/6.8
865#[derive(Debug, Copy, Clone, PartialEq, Eq)]
866#[repr(i32)]
867pub enum PerformUpdateType {
868    ///Data was inserted.
869    Insert = 1i32,
870    ///Data was replaced.
871    Replace = 2i32,
872    ///Data was inserted or replaced.
873    Update = 3i32,
874    ///Data was deleted.
875    Remove = 4i32,
876}
877bitflags::bitflags! {
878    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
879    "https://reference.opcfoundation.org/v105/Core/docs/Part3/8.55"] pub struct
880    PermissionType : i32 { const Browse = 1i32; const ReadRolePermissions = 2i32; const
881    WriteAttribute = 4i32; const WriteRolePermissions = 8i32; const WriteHistorizing =
882    16i32; const Read = 32i32; const Write = 64i32; const ReadHistory = 128i32; const
883    InsertHistory = 256i32; const ModifyHistory = 512i32; const DeleteHistory = 1024i32;
884    const ReceiveEvents = 2048i32; const Call = 4096i32; const AddReference = 8192i32;
885    const RemoveReference = 16384i32; const DeleteNode = 32768i32; const AddNode =
886    65536i32; }
887}
888impl opcua::types::UaNullable for PermissionType {
889    fn is_ua_null(&self) -> bool {
890        self.is_empty()
891    }
892}
893opcua::types::impl_encoded_as!(
894    PermissionType,
895    |v| Ok(PermissionType::from_bits_truncate(v)),
896    |v: &PermissionType| Ok::<_, opcua::types::Error>(v.bits()),
897    |v: &PermissionType| v.bits().byte_len()
898);
899impl Default for PermissionType {
900    fn default() -> Self {
901        Self::empty()
902    }
903}
904impl opcua::types::IntoVariant for PermissionType {
905    fn into_variant(self) -> opcua::types::Variant {
906        self.bits().into_variant()
907    }
908}
909#[cfg(feature = "xml")]
910impl opcua::types::xml::XmlType for PermissionType {
911    const TAG: &'static str = "PermissionType";
912}
913#[opcua::types::ua_encodable]
914///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.10
915#[derive(Debug, Copy, Clone, PartialEq, Eq)]
916#[repr(i32)]
917pub enum PortIdSubtype {
918    ///Represents a port identifier based on the ifAlias MIB object defined in IETF RFC 2863.
919    InterfaceAlias = 1i32,
920    ///Represents a port identifier based on the value of entPhysicalAlias (defined in IETF RFC 2737) for a port component (i.e., entPhysicalClass value of port(10) or backplane(4)), within the containing chassis.
921    PortComponent = 2i32,
922    ///Represents a port identifier based on a unicast source address (encoded in network byte order and IEEE 802.3 canonical bit order) which has been detected by the agent and associated with a particular port (IEEE Std 802-2014).
923    MacAddress = 3i32,
924    ///Represents a port identifier based on a network address, detected by the agent and associated with a particular port.
925    NetworkAddress = 4i32,
926    ///Represents a port identifier based on the ifName MIB object, defined in IETF RFC 2863.
927    InterfaceName = 5i32,
928    ///Represents a port identifier based on the agent-local identifier of the circuit (defined in IETF RFC 3046), detected by the agent and associated with a particular port.
929    AgentCircuitId = 6i32,
930    ///Represents a port identifier based on a value locally assigned.
931    Local = 7i32,
932}
933bitflags::bitflags! {
934    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
935    "https://reference.opcfoundation.org/v105/Core/docs/Part14/9.1.3/#9.1.3.7.2"] pub
936    struct PubSubConfigurationRefMask : i32 { const ElementAdd = 1i32; const ElementMatch
937    = 2i32; const ElementModify = 4i32; const ElementRemove = 8i32; const ReferenceWriter
938    = 16i32; const ReferenceReader = 32i32; const ReferenceWriterGroup = 64i32; const
939    ReferenceReaderGroup = 128i32; const ReferenceConnection = 256i32; const
940    ReferencePubDataset = 512i32; const ReferenceSubDataset = 1024i32; const
941    ReferenceSecurityGroup = 2048i32; const ReferencePushTarget = 4096i32; }
942}
943impl opcua::types::UaNullable for PubSubConfigurationRefMask {
944    fn is_ua_null(&self) -> bool {
945        self.is_empty()
946    }
947}
948opcua::types::impl_encoded_as!(
949    PubSubConfigurationRefMask,
950    |v| Ok(PubSubConfigurationRefMask::from_bits_truncate(v)),
951    |v: &PubSubConfigurationRefMask| Ok::<_, opcua::types::Error>(v.bits()),
952    |v: &PubSubConfigurationRefMask| v.bits().byte_len()
953);
954impl Default for PubSubConfigurationRefMask {
955    fn default() -> Self {
956        Self::empty()
957    }
958}
959impl opcua::types::IntoVariant for PubSubConfigurationRefMask {
960    fn into_variant(self) -> opcua::types::Variant {
961        self.bits().into_variant()
962    }
963}
964#[cfg(feature = "xml")]
965impl opcua::types::xml::XmlType for PubSubConfigurationRefMask {
966    const TAG: &'static str = "PubSubConfigurationRefMask";
967}
968#[opcua::types::ua_encodable]
969///https://reference.opcfoundation.org/v105/Core/docs/Part14/9.1.11/#9.1.11.6
970#[derive(Debug, Copy, Clone, PartialEq, Eq)]
971#[repr(i32)]
972pub enum PubSubDiagnosticsCounterClassification {
973    #[opcua(default)]
974    Information = 0i32,
975    Error = 1i32,
976}
977#[opcua::types::ua_encodable]
978///https://reference.opcfoundation.org/v105/Core/docs/Part14/6.2.1
979#[derive(Debug, Copy, Clone, PartialEq, Eq)]
980#[repr(i32)]
981pub enum PubSubState {
982    #[opcua(default)]
983    Disabled = 0i32,
984    Paused = 1i32,
985    Operational = 2i32,
986    Error = 3i32,
987    PreOperational = 4i32,
988}
989#[opcua::types::ua_encodable]
990///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.5
991#[derive(Debug, Copy, Clone, PartialEq, Eq)]
992#[repr(i32)]
993pub enum RedundancySupport {
994    #[opcua(default)]
995    None = 0i32,
996    Cold = 1i32,
997    Warm = 2i32,
998    Hot = 3i32,
999    Transparent = 4i32,
1000    HotAndMirrored = 5i32,
1001}
1002#[opcua::types::ua_encodable]
1003///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.44
1004#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1005#[repr(i32)]
1006pub enum RedundantServerMode {
1007    #[opcua(default)]
1008    PrimaryWithBackup = 0i32,
1009    PrimaryOnly = 1i32,
1010    BackupReady = 2i32,
1011    BackupNotReady = 3i32,
1012}
1013#[opcua::types::ua_encodable]
1014///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.3.12
1015#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1016#[repr(i32)]
1017pub enum SecurityTokenRequestType {
1018    #[opcua(default)]
1019    Issue = 0i32,
1020    Renew = 1i32,
1021}
1022#[opcua::types::ua_encodable]
1023///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.6
1024#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1025#[repr(i32)]
1026pub enum ServerState {
1027    #[opcua(default)]
1028    Running = 0i32,
1029    Failed = 1i32,
1030    NoConfiguration = 2i32,
1031    Suspended = 3i32,
1032    Shutdown = 4i32,
1033    Test = 5i32,
1034    CommunicationFault = 6i32,
1035    Unknown = 7i32,
1036}
1037#[opcua::types::ua_encodable]
1038///https://reference.opcfoundation.org/v105/Core/docs/Part11/6.5.8
1039#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1040#[repr(i32)]
1041pub enum SortOrderType {
1042    #[opcua(default)]
1043    Ascending = 0i32,
1044    Descending = 1i32,
1045}
1046#[opcua::types::ua_encodable]
1047///https://reference.opcfoundation.org/v105/Core/docs/Part5/12.2.5/#12.2.5.3
1048#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1049#[repr(i32)]
1050pub enum StructureType {
1051    #[opcua(default)]
1052    Structure = 0i32,
1053    StructureWithOptionalFields = 1i32,
1054    Union = 2i32,
1055    StructureWithSubtypedValues = 3i32,
1056    UnionWithSubtypedValues = 4i32,
1057}
1058#[opcua::types::ua_encodable]
1059///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.40
1060#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1061#[repr(i32)]
1062pub enum TimestampsToReturn {
1063    #[opcua(default)]
1064    Source = 0i32,
1065    Server = 1i32,
1066    Both = 2i32,
1067    Neither = 3i32,
1068    Invalid = 4i32,
1069}
1070#[opcua::types::ua_encodable]
1071///https://reference.opcfoundation.org/v105/Core/docs/Part12/7.8.2/#7.8.2.7
1072#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1073#[repr(i32)]
1074pub enum TrustListMasks {
1075    #[opcua(default)]
1076    ///No fields are provided.
1077    None = 0i32,
1078    ///The TrustedCertificates are provided.
1079    TrustedCertificates = 1i32,
1080    ///The TrustedCrls are provided.
1081    TrustedCrls = 2i32,
1082    ///The IssuerCertificates are provided.
1083    IssuerCertificates = 4i32,
1084    ///The IssuerCrls are provided.
1085    IssuerCrls = 8i32,
1086    ///All fields are provided.
1087    All = 15i32,
1088}
1089bitflags::bitflags! {
1090    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
1091    "https://reference.opcfoundation.org/v105/Core/docs/Part12/7.8.2/#7.8.2.8"] pub
1092    struct TrustListValidationOptions : i32 { #[doc =
1093    "Ignore errors related to the validity time of the Certificate."] const
1094    SuppressCertificateExpired = 1i32; #[doc =
1095    "Ignore mismatches between the host name or ApplicationUri."] const
1096    SuppressHostNameInvalid = 2i32; #[doc =
1097    "Ignore errors if the revocation list cannot be found for the issuer of the Certificate."]
1098    const SuppressRevocationStatusUnknown = 4i32; #[doc =
1099    "Ignore errors if an issuer has an expired Certificate."] const
1100    SuppressIssuerCertificateExpired = 8i32; #[doc =
1101    "Ignore errors if the revocation list cannot be found for any issuer of issuer Certificates."]
1102    const SuppressIssuerRevocationStatusUnknown = 16i32; #[doc =
1103    "Check the revocation status online."] const CheckRevocationStatusOnline = 32i32;
1104    #[doc = "Check the revocation status offline."] const CheckRevocationStatusOffline =
1105    64i32; }
1106}
1107impl opcua::types::UaNullable for TrustListValidationOptions {
1108    fn is_ua_null(&self) -> bool {
1109        self.is_empty()
1110    }
1111}
1112opcua::types::impl_encoded_as!(
1113    TrustListValidationOptions,
1114    |v| Ok(TrustListValidationOptions::from_bits_truncate(v)),
1115    |v: &TrustListValidationOptions| Ok::<_, opcua::types::Error>(v.bits()),
1116    |v: &TrustListValidationOptions| v.bits().byte_len()
1117);
1118impl Default for TrustListValidationOptions {
1119    fn default() -> Self {
1120        Self::empty()
1121    }
1122}
1123impl opcua::types::IntoVariant for TrustListValidationOptions {
1124    fn into_variant(self) -> opcua::types::Variant {
1125        self.bits().into_variant()
1126    }
1127}
1128#[cfg(feature = "xml")]
1129impl opcua::types::xml::XmlType for TrustListValidationOptions {
1130    const TAG: &'static str = "TrustListValidationOptions";
1131}
1132#[opcua::types::ua_encodable]
1133///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.5
1134#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1135#[repr(i32)]
1136pub enum TsnFailureCode {
1137    #[opcua(default)]
1138    ///No failure
1139    NoFailure = 0i32,
1140    ///Insufficient bandwidth
1141    InsufficientBandwidth = 1i32,
1142    ///Insufficient bridge resources
1143    InsufficientResources = 2i32,
1144    ///Insufficient bandwidth for Traffic Class
1145    InsufficientTrafficClassBandwidth = 3i32,
1146    ///StreamID in use by another Talker
1147    StreamIdInUse = 4i32,
1148    ///Stream destination address already in use
1149    StreamDestinationAddressInUse = 5i32,
1150    ///Stream pre-empted by higher rank
1151    StreamPreemptedByHigherRank = 6i32,
1152    ///Reported latency has changed
1153    LatencyHasChanged = 7i32,
1154    ///Egress port is not AVBCapable
1155    EgressPortNotAvbCapable = 8i32,
1156    ///Use a different destination address
1157    UseDifferentDestinationAddress = 9i32,
1158    ///Out of MSRP resources
1159    OutOfMsrpResources = 10i32,
1160    ///Out of MMRP resources
1161    OutOfMmrpResources = 11i32,
1162    ///Cannot store destination address
1163    CannotStoreDestinationAddress = 12i32,
1164    ///Requested priority is not an SR Class priority
1165    PriorityIsNotAnSrcClass = 13i32,
1166    ///MaxFrameSize is too large for media
1167    MaxFrameSizeTooLarge = 14i32,
1168    ///MaxFanInPorts limit has been reached
1169    MaxFanInPortsLimitReached = 15i32,
1170    ///Changes in FirstValue for a registered StreamID
1171    FirstValueChangedForStreamId = 16i32,
1172    ///VLAN is blocked on this egress port (Registration Forbidden)
1173    VlanBlockedOnEgress = 17i32,
1174    ///VLAN tagging is disabled on this egress port (untagged set)
1175    VlanTaggingDisabledOnEgress = 18i32,
1176    ///SR class priority mismatch
1177    SrClassPriorityMismatch = 19i32,
1178    ///Enhanced feature cannot be propagated to original Port
1179    FeatureNotPropagated = 20i32,
1180    ///MaxLatency exceeded
1181    MaxLatencyExceeded = 21i32,
1182    ///Nearest Bridge cannot provide network identification for stream transformation
1183    BridgeDoesNotProvideNetworkId = 22i32,
1184    ///Stream transformation not supported
1185    StreamTransformNotSupported = 23i32,
1186    ///Stream identification type not supported for stream transformation
1187    StreamIdTypeNotSupported = 24i32,
1188    ///Enhanced feature cannot be supported without a CNC
1189    FeatureNotSupported = 25i32,
1190}
1191#[opcua::types::ua_encodable]
1192///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.8
1193#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1194#[repr(i32)]
1195pub enum TsnListenerStatus {
1196    #[opcua(default)]
1197    ///No Listener detected.
1198    None = 0i32,
1199    ///Listener ready (configured).
1200    Ready = 1i32,
1201    ///One or more Listeners ready, and one or more Listeners failed.
1202    PartialFailed = 2i32,
1203    ///Listener failed.
1204    Failed = 3i32,
1205}
1206#[opcua::types::ua_encodable]
1207///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.6
1208#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1209#[repr(i32)]
1210pub enum TsnStreamState {
1211    #[opcua(default)]
1212    ///The related TSN Stream is currently disabled.
1213    Disabled = 0i32,
1214    ///The related TSN Stream is in the process of receiving configuration parameters from the TSN Control Layer.
1215    Configuring = 1i32,
1216    ///The related TSN Stream has successfully received and applied the configuration from the TSN Control Layer. The related TSN Stream is not fully operational as long as local preconditions (e.g. synchronization state) are not valid.
1217    Ready = 2i32,
1218    ///The related TSN Stream object is configured and all other required preconditions (e.g. synchronization state) for sending / receiving data are valid.
1219    Operational = 3i32,
1220    ///The related TSN Stream object is in an error state.
1221    Error = 4i32,
1222}
1223#[opcua::types::ua_encodable]
1224///https://reference.opcfoundation.org/v105/Core/docs/Part22/5.3.1/#5.3.1.7
1225#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1226#[repr(i32)]
1227pub enum TsnTalkerStatus {
1228    #[opcua(default)]
1229    ///No Talker detected.
1230    None = 0i32,
1231    ///Talker ready (configured).
1232    Ready = 1i32,
1233    ///Talker failed.
1234    Failed = 2i32,
1235}
1236bitflags::bitflags! {
1237    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
1238    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.3.1/#6.3.1.3.2"] pub
1239    struct UadpDataSetMessageContentMask : i32 { const Timestamp = 1i32; const
1240    PicoSeconds = 2i32; const Status = 4i32; const MajorVersion = 8i32; const
1241    MinorVersion = 16i32; const SequenceNumber = 32i32; }
1242}
1243impl opcua::types::UaNullable for UadpDataSetMessageContentMask {
1244    fn is_ua_null(&self) -> bool {
1245        self.is_empty()
1246    }
1247}
1248opcua::types::impl_encoded_as!(
1249    UadpDataSetMessageContentMask,
1250    |v| Ok(UadpDataSetMessageContentMask::from_bits_truncate(v)),
1251    |v: &UadpDataSetMessageContentMask| Ok::<_, opcua::types::Error>(v.bits()),
1252    |v: &UadpDataSetMessageContentMask| v.bits().byte_len()
1253);
1254impl Default for UadpDataSetMessageContentMask {
1255    fn default() -> Self {
1256        Self::empty()
1257    }
1258}
1259impl opcua::types::IntoVariant for UadpDataSetMessageContentMask {
1260    fn into_variant(self) -> opcua::types::Variant {
1261        self.bits().into_variant()
1262    }
1263}
1264#[cfg(feature = "xml")]
1265impl opcua::types::xml::XmlType for UadpDataSetMessageContentMask {
1266    const TAG: &'static str = "UadpDataSetMessageContentMask";
1267}
1268bitflags::bitflags! {
1269    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
1270    "https://reference.opcfoundation.org/v105/Core/docs/Part14/6.3.1/#6.3.1.1.4"] pub
1271    struct UadpNetworkMessageContentMask : i32 { const PublisherId = 1i32; const
1272    GroupHeader = 2i32; const WriterGroupId = 4i32; const GroupVersion = 8i32; const
1273    NetworkMessageNumber = 16i32; const SequenceNumber = 32i32; const PayloadHeader =
1274    64i32; const Timestamp = 128i32; const PicoSeconds = 256i32; const DataSetClassId =
1275    512i32; const PromotedFields = 1024i32; }
1276}
1277impl opcua::types::UaNullable for UadpNetworkMessageContentMask {
1278    fn is_ua_null(&self) -> bool {
1279        self.is_empty()
1280    }
1281}
1282opcua::types::impl_encoded_as!(
1283    UadpNetworkMessageContentMask,
1284    |v| Ok(UadpNetworkMessageContentMask::from_bits_truncate(v)),
1285    |v: &UadpNetworkMessageContentMask| Ok::<_, opcua::types::Error>(v.bits()),
1286    |v: &UadpNetworkMessageContentMask| v.bits().byte_len()
1287);
1288impl Default for UadpNetworkMessageContentMask {
1289    fn default() -> Self {
1290        Self::empty()
1291    }
1292}
1293impl opcua::types::IntoVariant for UadpNetworkMessageContentMask {
1294    fn into_variant(self) -> opcua::types::Variant {
1295        self.bits().into_variant()
1296    }
1297}
1298#[cfg(feature = "xml")]
1299impl opcua::types::xml::XmlType for UadpNetworkMessageContentMask {
1300    const TAG: &'static str = "UadpNetworkMessageContentMask";
1301}
1302bitflags::bitflags! {
1303    #[derive(Debug, Copy, Clone, PartialEq)] #[doc =
1304    "https://reference.opcfoundation.org/v105/Core/docs/Part18/5.2.3"] pub struct
1305    UserConfigurationMask : i32 { #[doc = "The user cannot be deleted."] const NoDelete =
1306    1i32; #[doc = "The user is disabled."] const Disabled = 2i32; #[doc =
1307    "The user cannot change the password."] const NoChangeByUser = 4i32; #[doc =
1308    "The user must change the password to get the assigned roles. If the password is not changed, the user has only the Role Anonymous."]
1309    const MustChangePassword = 8i32; }
1310}
1311impl opcua::types::UaNullable for UserConfigurationMask {
1312    fn is_ua_null(&self) -> bool {
1313        self.is_empty()
1314    }
1315}
1316opcua::types::impl_encoded_as!(
1317    UserConfigurationMask,
1318    |v| Ok(UserConfigurationMask::from_bits_truncate(v)),
1319    |v: &UserConfigurationMask| Ok::<_, opcua::types::Error>(v.bits()),
1320    |v: &UserConfigurationMask| v.bits().byte_len()
1321);
1322impl Default for UserConfigurationMask {
1323    fn default() -> Self {
1324        Self::empty()
1325    }
1326}
1327impl opcua::types::IntoVariant for UserConfigurationMask {
1328    fn into_variant(self) -> opcua::types::Variant {
1329        self.bits().into_variant()
1330    }
1331}
1332#[cfg(feature = "xml")]
1333impl opcua::types::xml::XmlType for UserConfigurationMask {
1334    const TAG: &'static str = "UserConfigurationMask";
1335}
1336#[opcua::types::ua_encodable]
1337///https://reference.opcfoundation.org/v105/Core/docs/Part4/7.43
1338#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1339#[repr(i32)]
1340pub enum UserTokenType {
1341    #[opcua(default)]
1342    Anonymous = 0i32,
1343    UserName = 1i32,
1344    Certificate = 2i32,
1345    IssuedToken = 3i32,
1346}