Completed
Pull Request — master (#113)
by Olivier
02:56
created

opcua.ua.ViewAttributes   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Test Coverage

Coverage 18.92%
Metric Value
dl 0
loc 67
ccs 7
cts 37
cp 0.1892
rs 10
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 13 2
A _binary_init() 0 8 1
A __str__() 0 8 1
A from_binary() 0 3 1
A to_binary() 0 10 1
1
'''
2
Autogenerate code from xml spec
3
'''
4
5 1
from datetime import datetime
6 1
from enum import Enum, IntEnum
7
8 1
from opcua.common.utils import Buffer
9 1
from opcua.common.uaerrors import UAError
10 1
from opcua.ua.uatypes import *
11 1
from opcua.ua.object_ids import ObjectIds
12
13
14 1
class NamingRuleType(IntEnum):
15
    '''
16
    :ivar Mandatory:
17
    :vartype Mandatory: 1
18
    :ivar Optional:
19
    :vartype Optional: 2
20
    :ivar Constraint:
21
    :vartype Constraint: 3
22
    '''
23 1
    Mandatory = 1
24 1
    Optional = 2
25 1
    Constraint = 3
26
27
28 1
class OpenFileMode(IntEnum):
29
    '''
30
    :ivar Read:
31
    :vartype Read: 1
32
    :ivar Write:
33
    :vartype Write: 2
34
    :ivar EraseExisting:
35
    :vartype EraseExisting: 4
36
    :ivar Append:
37
    :vartype Append: 8
38
    '''
39 1
    Read = 1
40 1
    Write = 2
41 1
    EraseExisting = 4
42 1
    Append = 8
43
44
45 1
class TrustListMasks(IntEnum):
46
    '''
47
    :ivar None_:
48
    :vartype None_: 0
49
    :ivar TrustedCertificates:
50
    :vartype TrustedCertificates: 1
51
    :ivar TrustedCrls:
52
    :vartype TrustedCrls: 2
53
    :ivar IssuerCertificates:
54
    :vartype IssuerCertificates: 4
55
    :ivar IssuerCrls:
56
    :vartype IssuerCrls: 8
57
    :ivar All:
58
    :vartype All: 15
59
    '''
60 1
    None_ = 0
61 1
    TrustedCertificates = 1
62 1
    TrustedCrls = 2
63 1
    IssuerCertificates = 4
64 1
    IssuerCrls = 8
65 1
    All = 15
66
67
68 1
class IdType(IntEnum):
69
    '''
70
    The type of identifier used in a node id.
71
72
    :ivar Numeric:
73
    :vartype Numeric: 0
74
    :ivar String:
75
    :vartype String: 1
76
    :ivar Guid:
77
    :vartype Guid: 2
78
    :ivar Opaque:
79
    :vartype Opaque: 3
80
    '''
81 1
    Numeric = 0
82 1
    String = 1
83 1
    Guid = 2
84 1
    Opaque = 3
85
86
87 1
class NodeClass(IntEnum):
88
    '''
89
    A mask specifying the class of the node.
90
91
    :ivar Unspecified:
92
    :vartype Unspecified: 0
93
    :ivar Object:
94
    :vartype Object: 1
95
    :ivar Variable:
96
    :vartype Variable: 2
97
    :ivar Method:
98
    :vartype Method: 4
99
    :ivar ObjectType:
100
    :vartype ObjectType: 8
101
    :ivar VariableType:
102
    :vartype VariableType: 16
103
    :ivar ReferenceType:
104
    :vartype ReferenceType: 32
105
    :ivar DataType:
106
    :vartype DataType: 64
107
    :ivar View:
108
    :vartype View: 128
109
    '''
110 1
    Unspecified = 0
111 1
    Object = 1
112 1
    Variable = 2
113 1
    Method = 4
114 1
    ObjectType = 8
115 1
    VariableType = 16
116 1
    ReferenceType = 32
117 1
    DataType = 64
118 1
    View = 128
119
120
121 1
class ApplicationType(IntEnum):
122
    '''
123
    The types of applications.
124
125
    :ivar Server:
126
    :vartype Server: 0
127
    :ivar Client:
128
    :vartype Client: 1
129
    :ivar ClientAndServer:
130
    :vartype ClientAndServer: 2
131
    :ivar DiscoveryServer:
132
    :vartype DiscoveryServer: 3
133
    '''
134 1
    Server = 0
135 1
    Client = 1
136 1
    ClientAndServer = 2
137 1
    DiscoveryServer = 3
138
139
140 1
class MessageSecurityMode(IntEnum):
141
    '''
142
    The type of security to use on a message.
143
144
    :ivar Invalid:
145
    :vartype Invalid: 0
146
    :ivar None_:
147
    :vartype None_: 1
148
    :ivar Sign:
149
    :vartype Sign: 2
150
    :ivar SignAndEncrypt:
151
    :vartype SignAndEncrypt: 3
152
    '''
153 1
    Invalid = 0
154 1
    None_ = 1
155 1
    Sign = 2
156 1
    SignAndEncrypt = 3
157
158
159 1
class UserTokenType(IntEnum):
160
    '''
161
    The possible user token types.
162
163
    :ivar Anonymous:
164
    :vartype Anonymous: 0
165
    :ivar UserName:
166
    :vartype UserName: 1
167
    :ivar Certificate:
168
    :vartype Certificate: 2
169
    :ivar IssuedToken:
170
    :vartype IssuedToken: 3
171
    :ivar Kerberos:
172
    :vartype Kerberos: 4
173
    '''
174 1
    Anonymous = 0
175 1
    UserName = 1
176 1
    Certificate = 2
177 1
    IssuedToken = 3
178 1
    Kerberos = 4
179
180
181 1
class SecurityTokenRequestType(IntEnum):
182
    '''
183
    Indicates whether a token if being created or renewed.
184
185
    :ivar Issue:
186
    :vartype Issue: 0
187
    :ivar Renew:
188
    :vartype Renew: 1
189
    '''
190 1
    Issue = 0
191 1
    Renew = 1
192
193
194 1
class NodeAttributesMask(IntEnum):
195
    '''
196
    The bits used to specify default attributes for a new node.
197
198
    :ivar None_:
199
    :vartype None_: 0
200
    :ivar AccessLevel:
201
    :vartype AccessLevel: 1
202
    :ivar ArrayDimensions:
203
    :vartype ArrayDimensions: 2
204
    :ivar BrowseName:
205
    :vartype BrowseName: 4
206
    :ivar ContainsNoLoops:
207
    :vartype ContainsNoLoops: 8
208
    :ivar DataType:
209
    :vartype DataType: 16
210
    :ivar Description:
211
    :vartype Description: 32
212
    :ivar DisplayName:
213
    :vartype DisplayName: 64
214
    :ivar EventNotifier:
215
    :vartype EventNotifier: 128
216
    :ivar Executable:
217
    :vartype Executable: 256
218
    :ivar Historizing:
219
    :vartype Historizing: 512
220
    :ivar InverseName:
221
    :vartype InverseName: 1024
222
    :ivar IsAbstract:
223
    :vartype IsAbstract: 2048
224
    :ivar MinimumSamplingInterval:
225
    :vartype MinimumSamplingInterval: 4096
226
    :ivar NodeClass:
227
    :vartype NodeClass: 8192
228
    :ivar NodeId:
229
    :vartype NodeId: 16384
230
    :ivar Symmetric:
231
    :vartype Symmetric: 32768
232
    :ivar UserAccessLevel:
233
    :vartype UserAccessLevel: 65536
234
    :ivar UserExecutable:
235
    :vartype UserExecutable: 131072
236
    :ivar UserWriteMask:
237
    :vartype UserWriteMask: 262144
238
    :ivar ValueRank:
239
    :vartype ValueRank: 524288
240
    :ivar WriteMask:
241
    :vartype WriteMask: 1048576
242
    :ivar Value:
243
    :vartype Value: 2097152
244
    :ivar All:
245
    :vartype All: 4194303
246
    :ivar BaseNode:
247
    :vartype BaseNode: 1335396
248
    :ivar Object:
249
    :vartype Object: 1335524
250
    :ivar ObjectTypeOrDataType:
251
    :vartype ObjectTypeOrDataType: 1337444
252
    :ivar Variable:
253
    :vartype Variable: 4026999
254
    :ivar VariableType:
255
    :vartype VariableType: 3958902
256
    :ivar Method:
257
    :vartype Method: 1466724
258
    :ivar ReferenceType:
259
    :vartype ReferenceType: 1371236
260
    :ivar View:
261
    :vartype View: 1335532
262
    '''
263 1
    None_ = 0
264 1
    AccessLevel = 1
265 1
    ArrayDimensions = 2
266 1
    BrowseName = 4
267 1
    ContainsNoLoops = 8
268 1
    DataType = 16
269 1
    Description = 32
270 1
    DisplayName = 64
271 1
    EventNotifier = 128
272 1
    Executable = 256
273 1
    Historizing = 512
274 1
    InverseName = 1024
275 1
    IsAbstract = 2048
276 1
    MinimumSamplingInterval = 4096
277 1
    NodeClass = 8192
278 1
    NodeId = 16384
279 1
    Symmetric = 32768
280 1
    UserAccessLevel = 65536
281 1
    UserExecutable = 131072
282 1
    UserWriteMask = 262144
283 1
    ValueRank = 524288
284 1
    WriteMask = 1048576
285 1
    Value = 2097152
286 1
    All = 4194303
287 1
    BaseNode = 1335396
288 1
    Object = 1335524
289 1
    ObjectTypeOrDataType = 1337444
290 1
    Variable = 4026999
291 1
    VariableType = 3958902
292 1
    Method = 1466724
293 1
    ReferenceType = 1371236
294 1
    View = 1335532
295
296
297 1
class AttributeWriteMask(IntEnum):
298
    '''
299
    Define bits used to indicate which attributes are writable.
300
301
    :ivar None_:
302
    :vartype None_: 0
303
    :ivar AccessLevel:
304
    :vartype AccessLevel: 1
305
    :ivar ArrayDimensions:
306
    :vartype ArrayDimensions: 2
307
    :ivar BrowseName:
308
    :vartype BrowseName: 4
309
    :ivar ContainsNoLoops:
310
    :vartype ContainsNoLoops: 8
311
    :ivar DataType:
312
    :vartype DataType: 16
313
    :ivar Description:
314
    :vartype Description: 32
315
    :ivar DisplayName:
316
    :vartype DisplayName: 64
317
    :ivar EventNotifier:
318
    :vartype EventNotifier: 128
319
    :ivar Executable:
320
    :vartype Executable: 256
321
    :ivar Historizing:
322
    :vartype Historizing: 512
323
    :ivar InverseName:
324
    :vartype InverseName: 1024
325
    :ivar IsAbstract:
326
    :vartype IsAbstract: 2048
327
    :ivar MinimumSamplingInterval:
328
    :vartype MinimumSamplingInterval: 4096
329
    :ivar NodeClass:
330
    :vartype NodeClass: 8192
331
    :ivar NodeId:
332
    :vartype NodeId: 16384
333
    :ivar Symmetric:
334
    :vartype Symmetric: 32768
335
    :ivar UserAccessLevel:
336
    :vartype UserAccessLevel: 65536
337
    :ivar UserExecutable:
338
    :vartype UserExecutable: 131072
339
    :ivar UserWriteMask:
340
    :vartype UserWriteMask: 262144
341
    :ivar ValueRank:
342
    :vartype ValueRank: 524288
343
    :ivar WriteMask:
344
    :vartype WriteMask: 1048576
345
    :ivar ValueForVariableType:
346
    :vartype ValueForVariableType: 2097152
347
    '''
348 1
    None_ = 0
349 1
    AccessLevel = 1
350 1
    ArrayDimensions = 2
351 1
    BrowseName = 4
352 1
    ContainsNoLoops = 8
353 1
    DataType = 16
354 1
    Description = 32
355 1
    DisplayName = 64
356 1
    EventNotifier = 128
357 1
    Executable = 256
358 1
    Historizing = 512
359 1
    InverseName = 1024
360 1
    IsAbstract = 2048
361 1
    MinimumSamplingInterval = 4096
362 1
    NodeClass = 8192
363 1
    NodeId = 16384
364 1
    Symmetric = 32768
365 1
    UserAccessLevel = 65536
366 1
    UserExecutable = 131072
367 1
    UserWriteMask = 262144
368 1
    ValueRank = 524288
369 1
    WriteMask = 1048576
370 1
    ValueForVariableType = 2097152
371
372
373 1
class BrowseDirection(IntEnum):
374
    '''
375
    The directions of the references to return.
376
377
    :ivar Forward:
378
    :vartype Forward: 0
379
    :ivar Inverse:
380
    :vartype Inverse: 1
381
    :ivar Both:
382
    :vartype Both: 2
383
    '''
384 1
    Forward = 0
385 1
    Inverse = 1
386 1
    Both = 2
387
388
389 1
class BrowseResultMask(IntEnum):
390
    '''
391
    A bit mask which specifies what should be returned in a browse response.
392
393
    :ivar None_:
394
    :vartype None_: 0
395
    :ivar ReferenceTypeId:
396
    :vartype ReferenceTypeId: 1
397
    :ivar IsForward:
398
    :vartype IsForward: 2
399
    :ivar NodeClass:
400
    :vartype NodeClass: 4
401
    :ivar BrowseName:
402
    :vartype BrowseName: 8
403
    :ivar DisplayName:
404
    :vartype DisplayName: 16
405
    :ivar TypeDefinition:
406
    :vartype TypeDefinition: 32
407
    :ivar All:
408
    :vartype All: 63
409
    :ivar ReferenceTypeInfo:
410
    :vartype ReferenceTypeInfo: 3
411
    :ivar TargetInfo:
412
    :vartype TargetInfo: 60
413
    '''
414 1
    None_ = 0
415 1
    ReferenceTypeId = 1
416 1
    IsForward = 2
417 1
    NodeClass = 4
418 1
    BrowseName = 8
419 1
    DisplayName = 16
420 1
    TypeDefinition = 32
421 1
    All = 63
422 1
    ReferenceTypeInfo = 3
423 1
    TargetInfo = 60
424
425
426 1
class ComplianceLevel(IntEnum):
427
    '''
428
    :ivar Untested:
429
    :vartype Untested: 0
430
    :ivar Partial:
431
    :vartype Partial: 1
432
    :ivar SelfTested:
433
    :vartype SelfTested: 2
434
    :ivar Certified:
435
    :vartype Certified: 3
436
    '''
437 1
    Untested = 0
438 1
    Partial = 1
439 1
    SelfTested = 2
440 1
    Certified = 3
441
442
443 1
class FilterOperator(IntEnum):
444
    '''
445
    :ivar Equals:
446
    :vartype Equals: 0
447
    :ivar IsNull:
448
    :vartype IsNull: 1
449
    :ivar GreaterThan:
450
    :vartype GreaterThan: 2
451
    :ivar LessThan:
452
    :vartype LessThan: 3
453
    :ivar GreaterThanOrEqual:
454
    :vartype GreaterThanOrEqual: 4
455
    :ivar LessThanOrEqual:
456
    :vartype LessThanOrEqual: 5
457
    :ivar Like:
458
    :vartype Like: 6
459
    :ivar Not:
460
    :vartype Not: 7
461
    :ivar Between:
462
    :vartype Between: 8
463
    :ivar InList:
464
    :vartype InList: 9
465
    :ivar And:
466
    :vartype And: 10
467
    :ivar Or:
468
    :vartype Or: 11
469
    :ivar Cast:
470
    :vartype Cast: 12
471
    :ivar InView:
472
    :vartype InView: 13
473
    :ivar OfType:
474
    :vartype OfType: 14
475
    :ivar RelatedTo:
476
    :vartype RelatedTo: 15
477
    :ivar BitwiseAnd:
478
    :vartype BitwiseAnd: 16
479
    :ivar BitwiseOr:
480
    :vartype BitwiseOr: 17
481
    '''
482 1
    Equals = 0
483 1
    IsNull = 1
484 1
    GreaterThan = 2
485 1
    LessThan = 3
486 1
    GreaterThanOrEqual = 4
487 1
    LessThanOrEqual = 5
488 1
    Like = 6
489 1
    Not = 7
490 1
    Between = 8
491 1
    InList = 9
492 1
    And = 10
493 1
    Or = 11
494 1
    Cast = 12
495 1
    InView = 13
496 1
    OfType = 14
497 1
    RelatedTo = 15
498 1
    BitwiseAnd = 16
499 1
    BitwiseOr = 17
500
501
502 1
class TimestampsToReturn(IntEnum):
503
    '''
504
    :ivar Source:
505
    :vartype Source: 0
506
    :ivar Server:
507
    :vartype Server: 1
508
    :ivar Both:
509
    :vartype Both: 2
510
    :ivar Neither:
511
    :vartype Neither: 3
512
    '''
513 1
    Source = 0
514 1
    Server = 1
515 1
    Both = 2
516 1
    Neither = 3
517
518
519 1
class HistoryUpdateType(IntEnum):
520
    '''
521
    :ivar Insert:
522
    :vartype Insert: 1
523
    :ivar Replace:
524
    :vartype Replace: 2
525
    :ivar Update:
526
    :vartype Update: 3
527
    :ivar Delete:
528
    :vartype Delete: 4
529
    '''
530 1
    Insert = 1
531 1
    Replace = 2
532 1
    Update = 3
533 1
    Delete = 4
534
535
536 1
class PerformUpdateType(IntEnum):
537
    '''
538
    :ivar Insert:
539
    :vartype Insert: 1
540
    :ivar Replace:
541
    :vartype Replace: 2
542
    :ivar Update:
543
    :vartype Update: 3
544
    :ivar Remove:
545
    :vartype Remove: 4
546
    '''
547 1
    Insert = 1
548 1
    Replace = 2
549 1
    Update = 3
550 1
    Remove = 4
551
552
553 1
class MonitoringMode(IntEnum):
554
    '''
555
    :ivar Disabled:
556
    :vartype Disabled: 0
557
    :ivar Sampling:
558
    :vartype Sampling: 1
559
    :ivar Reporting:
560
    :vartype Reporting: 2
561
    '''
562 1
    Disabled = 0
563 1
    Sampling = 1
564 1
    Reporting = 2
565
566
567 1
class DataChangeTrigger(IntEnum):
568
    '''
569
    :ivar Status:
570
    :vartype Status: 0
571
    :ivar StatusValue:
572
    :vartype StatusValue: 1
573
    :ivar StatusValueTimestamp:
574
    :vartype StatusValueTimestamp: 2
575
    '''
576 1
    Status = 0
577 1
    StatusValue = 1
578 1
    StatusValueTimestamp = 2
579
580
581 1
class DeadbandType(IntEnum):
582
    '''
583
    :ivar None_:
584
    :vartype None_: 0
585
    :ivar Absolute:
586
    :vartype Absolute: 1
587
    :ivar Percent:
588
    :vartype Percent: 2
589
    '''
590 1
    None_ = 0
591 1
    Absolute = 1
592 1
    Percent = 2
593
594
595 1
class EnumeratedTestType(IntEnum):
596
    '''
597
    A simple enumerated type used for testing.
598
599
    :ivar Red:
600
    :vartype Red: 1
601
    :ivar Yellow:
602
    :vartype Yellow: 4
603
    :ivar Green:
604
    :vartype Green: 5
605
    '''
606 1
    Red = 1
607 1
    Yellow = 4
608 1
    Green = 5
609
610
611 1
class RedundancySupport(IntEnum):
612
    '''
613
    :ivar None_:
614
    :vartype None_: 0
615
    :ivar Cold:
616
    :vartype Cold: 1
617
    :ivar Warm:
618
    :vartype Warm: 2
619
    :ivar Hot:
620
    :vartype Hot: 3
621
    :ivar Transparent:
622
    :vartype Transparent: 4
623
    :ivar HotAndMirrored:
624
    :vartype HotAndMirrored: 5
625
    '''
626 1
    None_ = 0
627 1
    Cold = 1
628 1
    Warm = 2
629 1
    Hot = 3
630 1
    Transparent = 4
631 1
    HotAndMirrored = 5
632
633
634 1
class ServerState(IntEnum):
635
    '''
636
    :ivar Running:
637
    :vartype Running: 0
638
    :ivar Failed:
639
    :vartype Failed: 1
640
    :ivar NoConfiguration:
641
    :vartype NoConfiguration: 2
642
    :ivar Suspended:
643
    :vartype Suspended: 3
644
    :ivar Shutdown:
645
    :vartype Shutdown: 4
646
    :ivar Test:
647
    :vartype Test: 5
648
    :ivar CommunicationFault:
649
    :vartype CommunicationFault: 6
650
    :ivar Unknown:
651
    :vartype Unknown: 7
652
    '''
653 1
    Running = 0
654 1
    Failed = 1
655 1
    NoConfiguration = 2
656 1
    Suspended = 3
657 1
    Shutdown = 4
658 1
    Test = 5
659 1
    CommunicationFault = 6
660 1
    Unknown = 7
661
662
663 1
class ModelChangeStructureVerbMask(IntEnum):
664
    '''
665
    :ivar NodeAdded:
666
    :vartype NodeAdded: 1
667
    :ivar NodeDeleted:
668
    :vartype NodeDeleted: 2
669
    :ivar ReferenceAdded:
670
    :vartype ReferenceAdded: 4
671
    :ivar ReferenceDeleted:
672
    :vartype ReferenceDeleted: 8
673
    :ivar DataTypeChanged:
674
    :vartype DataTypeChanged: 16
675
    '''
676 1
    NodeAdded = 1
677 1
    NodeDeleted = 2
678 1
    ReferenceAdded = 4
679 1
    ReferenceDeleted = 8
680 1
    DataTypeChanged = 16
681
682
683 1
class AxisScaleEnumeration(IntEnum):
684
    '''
685
    :ivar Linear:
686
    :vartype Linear: 0
687
    :ivar Log:
688
    :vartype Log: 1
689
    :ivar Ln:
690
    :vartype Ln: 2
691
    '''
692 1
    Linear = 0
693 1
    Log = 1
694 1
    Ln = 2
695
696
697 1
class ExceptionDeviationFormat(IntEnum):
698
    '''
699
    :ivar AbsoluteValue:
700
    :vartype AbsoluteValue: 0
701
    :ivar PercentOfValue:
702
    :vartype PercentOfValue: 1
703
    :ivar PercentOfRange:
704
    :vartype PercentOfRange: 2
705
    :ivar PercentOfEURange:
706
    :vartype PercentOfEURange: 3
707
    :ivar Unknown:
708
    :vartype Unknown: 4
709
    '''
710 1
    AbsoluteValue = 0
711 1
    PercentOfValue = 1
712 1
    PercentOfRange = 2
713 1
    PercentOfEURange = 3
714 1
    Unknown = 4
715
716
717 1
class XmlElement(FrozenClass):
718
    '''
719
    An XML element encoded as a UTF-8 string.
720
721
    :ivar Length:
722
    :vartype Length: Int32
723
    :ivar Value:
724
    :vartype Value: Char
725
    '''
726 1
    def __init__(self, binary=None):
727
        if binary is not None:
728
            self._binary_init(binary)
729
            self._freeze = True
730
            return
731
        self.Length = 0
732
        self.Value = []
733
        self._freeze = True
734
735 1
    def to_binary(self):
736
        packet = []
737
        packet.append(uatype_Int32.pack(self.Length))
738
        packet.append(uatype_Int32.pack(len(self.Value)))
739
        for fieldname in self.Value:
740
            packet.append(uatype_Char.pack(fieldname))
741
        return b''.join(packet)
742
743 1
    @staticmethod
744
    def from_binary(data):
745
        return XmlElement(data)
746
747 1
    def _binary_init(self, data):
748
        self.Length = uatype_Int32.unpack(data.read(4))[0]
749
        self.Value = unpack_uatype_array('Char', data)
750
751 1
    def __str__(self):
752
        return 'XmlElement(' + 'Length:' + str(self.Length) + ', ' + \
753
               'Value:' + str(self.Value) + ')'
754
755 1
    __repr__ = __str__
756
757
758 1
class DiagnosticInfo(FrozenClass):
759
    '''
760
    A recursive structure containing diagnostic information associated with a status code.
761
762
    :ivar Encoding:
763
    :vartype Encoding: UInt8
764
    :ivar SymbolicId:
765
    :vartype SymbolicId: Int32
766
    :ivar NamespaceURI:
767
    :vartype NamespaceURI: Int32
768
    :ivar Locale:
769
    :vartype Locale: Int32
770
    :ivar LocalizedText:
771
    :vartype LocalizedText: Int32
772
    :ivar AdditionalInfo:
773
    :vartype AdditionalInfo: CharArray
774
    :ivar InnerStatusCode:
775
    :vartype InnerStatusCode: StatusCode
776
    :ivar InnerDiagnosticInfo:
777
    :vartype InnerDiagnosticInfo: DiagnosticInfo
778
    '''
779 1
    def __init__(self, binary=None):
780 1
        if binary is not None:
781 1
            self._binary_init(binary)
782 1
            self._freeze = True
783 1
            return
784 1
        self.Encoding = 0
785 1
        self.SymbolicId = 0
786 1
        self.NamespaceURI = 0
787 1
        self.Locale = 0
788 1
        self.LocalizedText = 0
789 1
        self.AdditionalInfo = b''
790 1
        self.InnerStatusCode = StatusCode()
791 1
        self.InnerDiagnosticInfo = None
792 1
        self._freeze = True
793
794 1
    def to_binary(self):
795 1
        packet = []
796 1
        if self.SymbolicId: self.Encoding |= (1 << 0)
797 1
        if self.NamespaceURI: self.Encoding |= (1 << 1)
798 1
        if self.Locale: self.Encoding |= (1 << 2)
799 1
        if self.LocalizedText: self.Encoding |= (1 << 3)
800 1
        if self.AdditionalInfo: self.Encoding |= (1 << 4)
801 1
        if self.InnerStatusCode: self.Encoding |= (1 << 5)
802 1
        if self.InnerDiagnosticInfo: self.Encoding |= (1 << 6)
803 1
        packet.append(uatype_UInt8.pack(self.Encoding))
804 1
        if self.SymbolicId: 
805
            packet.append(uatype_Int32.pack(self.SymbolicId))
806 1
        if self.NamespaceURI: 
807
            packet.append(uatype_Int32.pack(self.NamespaceURI))
808 1
        if self.Locale: 
809
            packet.append(uatype_Int32.pack(self.Locale))
810 1
        if self.LocalizedText: 
811
            packet.append(uatype_Int32.pack(self.LocalizedText))
812 1
        if self.AdditionalInfo: 
813
            packet.append(pack_bytes(self.AdditionalInfo))
814 1
        if self.InnerStatusCode: 
815 1
            packet.append(self.InnerStatusCode.to_binary())
816 1
        if self.InnerDiagnosticInfo: 
817
            packet.append(self.InnerDiagnosticInfo.to_binary())
818 1
        return b''.join(packet)
819
820 1
    @staticmethod
821
    def from_binary(data):
822 1
        return DiagnosticInfo(data)
823
824 1
    def _binary_init(self, data):
825 1
        self.Encoding = uatype_UInt8.unpack(data.read(1))[0]
826 1
        if self.Encoding & (1 << 0):
827
            self.SymbolicId = uatype_Int32.unpack(data.read(4))[0]
828
        else:
829 1
            self.SymbolicId = 0
830 1
        if self.Encoding & (1 << 1):
831
            self.NamespaceURI = uatype_Int32.unpack(data.read(4))[0]
832
        else:
833 1
            self.NamespaceURI = 0
834 1
        if self.Encoding & (1 << 2):
835
            self.Locale = uatype_Int32.unpack(data.read(4))[0]
836
        else:
837 1
            self.Locale = 0
838 1
        if self.Encoding & (1 << 3):
839
            self.LocalizedText = uatype_Int32.unpack(data.read(4))[0]
840
        else:
841 1
            self.LocalizedText = 0
842 1
        if self.Encoding & (1 << 4):
843
            self.AdditionalInfo = unpack_bytes(data)
844
        else:
845 1
            self.AdditionalInfo = b''
846 1
        if self.Encoding & (1 << 5):
847 1
            self.InnerStatusCode = StatusCode.from_binary(data)
848
        else:
849
            self.InnerStatusCode = StatusCode()
850 1
        if self.Encoding & (1 << 6):
851
            self.InnerDiagnosticInfo = DiagnosticInfo.from_binary(data)
852
        else:
853 1
            self.InnerDiagnosticInfo = None
854
855 1
    def __str__(self):
856
        return 'DiagnosticInfo(' + 'Encoding:' + str(self.Encoding) + ', ' + \
857
               'SymbolicId:' + str(self.SymbolicId) + ', ' + \
858
               'NamespaceURI:' + str(self.NamespaceURI) + ', ' + \
859
               'Locale:' + str(self.Locale) + ', ' + \
860
               'LocalizedText:' + str(self.LocalizedText) + ', ' + \
861
               'AdditionalInfo:' + str(self.AdditionalInfo) + ', ' + \
862
               'InnerStatusCode:' + str(self.InnerStatusCode) + ', ' + \
863
               'InnerDiagnosticInfo:' + str(self.InnerDiagnosticInfo) + ')'
864
865 1
    __repr__ = __str__
866
867
868 1
class TrustListDataType(FrozenClass):
869
    '''
870
    :ivar SpecifiedLists:
871
    :vartype SpecifiedLists: UInt32
872
    :ivar TrustedCertificates:
873
    :vartype TrustedCertificates: ByteString
874
    :ivar TrustedCrls:
875
    :vartype TrustedCrls: ByteString
876
    :ivar IssuerCertificates:
877
    :vartype IssuerCertificates: ByteString
878
    :ivar IssuerCrls:
879
    :vartype IssuerCrls: ByteString
880
    '''
881 1
    def __init__(self, binary=None):
882
        if binary is not None:
883
            self._binary_init(binary)
884
            self._freeze = True
885
            return
886
        self.SpecifiedLists = 0
887
        self.TrustedCertificates = []
888
        self.TrustedCrls = []
889
        self.IssuerCertificates = []
890
        self.IssuerCrls = []
891
        self._freeze = True
892
893 1
    def to_binary(self):
894
        packet = []
895
        packet.append(uatype_UInt32.pack(self.SpecifiedLists))
896
        packet.append(uatype_Int32.pack(len(self.TrustedCertificates)))
897
        for fieldname in self.TrustedCertificates:
898
            packet.append(pack_bytes(fieldname))
899
        packet.append(uatype_Int32.pack(len(self.TrustedCrls)))
900
        for fieldname in self.TrustedCrls:
901
            packet.append(pack_bytes(fieldname))
902
        packet.append(uatype_Int32.pack(len(self.IssuerCertificates)))
903
        for fieldname in self.IssuerCertificates:
904
            packet.append(pack_bytes(fieldname))
905
        packet.append(uatype_Int32.pack(len(self.IssuerCrls)))
906
        for fieldname in self.IssuerCrls:
907
            packet.append(pack_bytes(fieldname))
908
        return b''.join(packet)
909
910 1
    @staticmethod
911
    def from_binary(data):
912
        return TrustListDataType(data)
913
914 1
    def _binary_init(self, data):
915
        self.SpecifiedLists = uatype_UInt32.unpack(data.read(4))[0]
916
        self.TrustedCertificates = unpack_uatype_array('ByteString', data)
917
        self.TrustedCrls = unpack_uatype_array('ByteString', data)
918
        self.IssuerCertificates = unpack_uatype_array('ByteString', data)
919
        self.IssuerCrls = unpack_uatype_array('ByteString', data)
920
921 1
    def __str__(self):
922
        return 'TrustListDataType(' + 'SpecifiedLists:' + str(self.SpecifiedLists) + ', ' + \
923
               'TrustedCertificates:' + str(self.TrustedCertificates) + ', ' + \
924
               'TrustedCrls:' + str(self.TrustedCrls) + ', ' + \
925
               'IssuerCertificates:' + str(self.IssuerCertificates) + ', ' + \
926
               'IssuerCrls:' + str(self.IssuerCrls) + ')'
927
928 1
    __repr__ = __str__
929
930
931 1
class Argument(FrozenClass):
932
    '''
933
    An argument for a method.
934
935
    :ivar Name:
936
    :vartype Name: String
937
    :ivar DataType:
938
    :vartype DataType: NodeId
939
    :ivar ValueRank:
940
    :vartype ValueRank: Int32
941
    :ivar ArrayDimensions:
942
    :vartype ArrayDimensions: UInt32
943
    :ivar Description:
944
    :vartype Description: LocalizedText
945
    '''
946 1
    def __init__(self, binary=None):
947 1
        if binary is not None:
948
            self._binary_init(binary)
949
            self._freeze = True
950
            return
951 1
        self.Name = ''
952 1
        self.DataType = NodeId()
953 1
        self.ValueRank = 0
954 1
        self.ArrayDimensions = []
955 1
        self.Description = LocalizedText()
956 1
        self._freeze = True
957
958 1
    def to_binary(self):
959
        packet = []
960
        packet.append(pack_string(self.Name))
961
        packet.append(self.DataType.to_binary())
962
        packet.append(uatype_Int32.pack(self.ValueRank))
963
        packet.append(uatype_Int32.pack(len(self.ArrayDimensions)))
964
        for fieldname in self.ArrayDimensions:
965
            packet.append(uatype_UInt32.pack(fieldname))
966
        packet.append(self.Description.to_binary())
967
        return b''.join(packet)
968
969 1
    @staticmethod
970
    def from_binary(data):
971
        return Argument(data)
972
973 1
    def _binary_init(self, data):
974
        self.Name = unpack_string(data)
975
        self.DataType = NodeId.from_binary(data)
976
        self.ValueRank = uatype_Int32.unpack(data.read(4))[0]
977
        self.ArrayDimensions = unpack_uatype_array('UInt32', data)
978
        self.Description = LocalizedText.from_binary(data)
979
980 1
    def __str__(self):
981
        return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \
982
               'DataType:' + str(self.DataType) + ', ' + \
983
               'ValueRank:' + str(self.ValueRank) + ', ' + \
984
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
985
               'Description:' + str(self.Description) + ')'
986
987 1
    __repr__ = __str__
988
989
990 1
class EnumValueType(FrozenClass):
991
    '''
992
    A mapping between a value of an enumerated type and a name and description.
993
994
    :ivar Value:
995
    :vartype Value: Int64
996
    :ivar DisplayName:
997
    :vartype DisplayName: LocalizedText
998
    :ivar Description:
999
    :vartype Description: LocalizedText
1000
    '''
1001 1
    def __init__(self, binary=None):
1002
        if binary is not None:
1003
            self._binary_init(binary)
1004
            self._freeze = True
1005
            return
1006
        self.Value = 0
1007
        self.DisplayName = LocalizedText()
1008
        self.Description = LocalizedText()
1009
        self._freeze = True
1010
1011 1
    def to_binary(self):
1012
        packet = []
1013
        packet.append(uatype_Int64.pack(self.Value))
1014
        packet.append(self.DisplayName.to_binary())
1015
        packet.append(self.Description.to_binary())
1016
        return b''.join(packet)
1017
1018 1
    @staticmethod
1019
    def from_binary(data):
1020
        return EnumValueType(data)
1021
1022 1
    def _binary_init(self, data):
1023
        self.Value = uatype_Int64.unpack(data.read(8))[0]
1024
        self.DisplayName = LocalizedText.from_binary(data)
1025
        self.Description = LocalizedText.from_binary(data)
1026
1027 1
    def __str__(self):
1028
        return 'EnumValueType(' + 'Value:' + str(self.Value) + ', ' + \
1029
               'DisplayName:' + str(self.DisplayName) + ', ' + \
1030
               'Description:' + str(self.Description) + ')'
1031
1032 1
    __repr__ = __str__
1033
1034
1035 1
class OptionSet(FrozenClass):
1036
    '''
1037
    This abstract Structured DataType is the base DataType for all DataTypes representing a bit mask.
1038
1039
    :ivar Value:
1040
    :vartype Value: ByteString
1041
    :ivar ValidBits:
1042
    :vartype ValidBits: ByteString
1043
    '''
1044 1
    def __init__(self, binary=None):
1045
        if binary is not None:
1046
            self._binary_init(binary)
1047
            self._freeze = True
1048
            return
1049
        self.Value = b''
1050
        self.ValidBits = b''
1051
        self._freeze = True
1052
1053 1
    def to_binary(self):
1054
        packet = []
1055
        packet.append(pack_bytes(self.Value))
1056
        packet.append(pack_bytes(self.ValidBits))
1057
        return b''.join(packet)
1058
1059 1
    @staticmethod
1060
    def from_binary(data):
1061
        return OptionSet(data)
1062
1063 1
    def _binary_init(self, data):
1064
        self.Value = unpack_bytes(data)
1065
        self.ValidBits = unpack_bytes(data)
1066
1067 1
    def __str__(self):
1068
        return 'OptionSet(' + 'Value:' + str(self.Value) + ', ' + \
1069
               'ValidBits:' + str(self.ValidBits) + ')'
1070
1071 1
    __repr__ = __str__
1072
1073
1074 1
class Union(FrozenClass):
1075
    '''
1076
    This abstract DataType is the base DataType for all union DataTypes.
1077
1078
    '''
1079 1
    def __init__(self, binary=None):
1080
        if binary is not None:
1081
            self._binary_init(binary)
1082
            self._freeze = True
1083
            return
1084
        self._freeze = True
1085
1086 1
    def to_binary(self):
1087
        packet = []
1088
        return b''.join(packet)
1089
1090 1
    @staticmethod
1091
    def from_binary(data):
1092
        return Union(data)
1093
1094 1
    def _binary_init(self, data):
1095
        pass
1096
1097 1
    def __str__(self):
1098
        return 'Union(' +  + ')'
1099
1100 1
    __repr__ = __str__
1101
1102
1103 1
class TimeZoneDataType(FrozenClass):
1104
    '''
1105
    :ivar Offset:
1106
    :vartype Offset: Int16
1107
    :ivar DaylightSavingInOffset:
1108
    :vartype DaylightSavingInOffset: Boolean
1109
    '''
1110 1
    def __init__(self, binary=None):
1111
        if binary is not None:
1112
            self._binary_init(binary)
1113
            self._freeze = True
1114
            return
1115
        self.Offset = 0
1116
        self.DaylightSavingInOffset = True
1117
        self._freeze = True
1118
1119 1
    def to_binary(self):
1120
        packet = []
1121
        packet.append(uatype_Int16.pack(self.Offset))
1122
        packet.append(uatype_Boolean.pack(self.DaylightSavingInOffset))
1123
        return b''.join(packet)
1124
1125 1
    @staticmethod
1126
    def from_binary(data):
1127
        return TimeZoneDataType(data)
1128
1129 1
    def _binary_init(self, data):
1130
        self.Offset = uatype_Int16.unpack(data.read(2))[0]
1131
        self.DaylightSavingInOffset = uatype_Boolean.unpack(data.read(1))[0]
1132
1133 1
    def __str__(self):
1134
        return 'TimeZoneDataType(' + 'Offset:' + str(self.Offset) + ', ' + \
1135
               'DaylightSavingInOffset:' + str(self.DaylightSavingInOffset) + ')'
1136
1137 1
    __repr__ = __str__
1138
1139
1140 1
class ApplicationDescription(FrozenClass):
1141
    '''
1142
    Describes an application and how to find it.
1143
1144
    :ivar ApplicationUri:
1145
    :vartype ApplicationUri: String
1146
    :ivar ProductUri:
1147
    :vartype ProductUri: String
1148
    :ivar ApplicationName:
1149
    :vartype ApplicationName: LocalizedText
1150
    :ivar ApplicationType:
1151
    :vartype ApplicationType: ApplicationType
1152
    :ivar GatewayServerUri:
1153
    :vartype GatewayServerUri: String
1154
    :ivar DiscoveryProfileUri:
1155
    :vartype DiscoveryProfileUri: String
1156
    :ivar DiscoveryUrls:
1157
    :vartype DiscoveryUrls: String
1158
    '''
1159 1
    def __init__(self, binary=None):
1160 1
        if binary is not None:
1161 1
            self._binary_init(binary)
1162 1
            self._freeze = True
1163 1
            return
1164 1
        self.ApplicationUri = ''
1165 1
        self.ProductUri = ''
1166 1
        self.ApplicationName = LocalizedText()
1167 1
        self.ApplicationType = ApplicationType(0)
1168 1
        self.GatewayServerUri = ''
1169 1
        self.DiscoveryProfileUri = ''
1170 1
        self.DiscoveryUrls = []
1171 1
        self._freeze = True
1172
1173 1
    def to_binary(self):
1174 1
        packet = []
1175 1
        packet.append(pack_string(self.ApplicationUri))
1176 1
        packet.append(pack_string(self.ProductUri))
1177 1
        packet.append(self.ApplicationName.to_binary())
1178 1
        packet.append(uatype_UInt32.pack(self.ApplicationType.value))
1179 1
        packet.append(pack_string(self.GatewayServerUri))
1180 1
        packet.append(pack_string(self.DiscoveryProfileUri))
1181 1
        packet.append(uatype_Int32.pack(len(self.DiscoveryUrls)))
1182 1
        for fieldname in self.DiscoveryUrls:
1183 1
            packet.append(pack_string(fieldname))
1184 1
        return b''.join(packet)
1185
1186 1
    @staticmethod
1187
    def from_binary(data):
1188 1
        return ApplicationDescription(data)
1189
1190 1
    def _binary_init(self, data):
1191 1
        self.ApplicationUri = unpack_string(data)
1192 1
        self.ProductUri = unpack_string(data)
1193 1
        self.ApplicationName = LocalizedText.from_binary(data)
1194 1
        self.ApplicationType = ApplicationType(uatype_UInt32.unpack(data.read(4))[0])
1195 1
        self.GatewayServerUri = unpack_string(data)
1196 1
        self.DiscoveryProfileUri = unpack_string(data)
1197 1
        self.DiscoveryUrls = unpack_uatype_array('String', data)
1198
1199 1
    def __str__(self):
1200
        return 'ApplicationDescription(' + 'ApplicationUri:' + str(self.ApplicationUri) + ', ' + \
1201
               'ProductUri:' + str(self.ProductUri) + ', ' + \
1202
               'ApplicationName:' + str(self.ApplicationName) + ', ' + \
1203
               'ApplicationType:' + str(self.ApplicationType) + ', ' + \
1204
               'GatewayServerUri:' + str(self.GatewayServerUri) + ', ' + \
1205
               'DiscoveryProfileUri:' + str(self.DiscoveryProfileUri) + ', ' + \
1206
               'DiscoveryUrls:' + str(self.DiscoveryUrls) + ')'
1207
1208 1
    __repr__ = __str__
1209
1210
1211 1
class RequestHeader(FrozenClass):
1212
    '''
1213
    The header passed with every server request.
1214
1215
    :ivar AuthenticationToken:
1216
    :vartype AuthenticationToken: NodeId
1217
    :ivar Timestamp:
1218
    :vartype Timestamp: DateTime
1219
    :ivar RequestHandle:
1220
    :vartype RequestHandle: UInt32
1221
    :ivar ReturnDiagnostics:
1222
    :vartype ReturnDiagnostics: UInt32
1223
    :ivar AuditEntryId:
1224
    :vartype AuditEntryId: String
1225
    :ivar TimeoutHint:
1226
    :vartype TimeoutHint: UInt32
1227
    :ivar AdditionalHeader:
1228
    :vartype AdditionalHeader: ExtensionObject
1229
    '''
1230 1
    def __init__(self, binary=None):
1231 1
        if binary is not None:
1232 1
            self._binary_init(binary)
1233 1
            self._freeze = True
1234 1
            return
1235 1
        self.AuthenticationToken = NodeId()
1236 1
        self.Timestamp = datetime.now()
1237 1
        self.RequestHandle = 0
1238 1
        self.ReturnDiagnostics = 0
1239 1
        self.AuditEntryId = ''
1240 1
        self.TimeoutHint = 0
1241 1
        self.AdditionalHeader = None
1242 1
        self._freeze = True
1243
1244 1
    def to_binary(self):
1245 1
        packet = []
1246 1
        packet.append(self.AuthenticationToken.to_binary())
1247 1
        packet.append(pack_datetime(self.Timestamp))
1248 1
        packet.append(uatype_UInt32.pack(self.RequestHandle))
1249 1
        packet.append(uatype_UInt32.pack(self.ReturnDiagnostics))
1250 1
        packet.append(pack_string(self.AuditEntryId))
1251 1
        packet.append(uatype_UInt32.pack(self.TimeoutHint))
1252 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1253 1
        return b''.join(packet)
1254
1255 1
    @staticmethod
1256
    def from_binary(data):
1257 1
        return RequestHeader(data)
1258
1259 1
    def _binary_init(self, data):
1260 1
        self.AuthenticationToken = NodeId.from_binary(data)
1261 1
        self.Timestamp = unpack_datetime(data)
1262 1
        self.RequestHandle = uatype_UInt32.unpack(data.read(4))[0]
1263 1
        self.ReturnDiagnostics = uatype_UInt32.unpack(data.read(4))[0]
1264 1
        self.AuditEntryId = unpack_string(data)
1265 1
        self.TimeoutHint = uatype_UInt32.unpack(data.read(4))[0]
1266 1
        self.AdditionalHeader = extensionobject_from_binary(data)
1267
1268 1
    def __str__(self):
1269
        return 'RequestHeader(' + 'AuthenticationToken:' + str(self.AuthenticationToken) + ', ' + \
1270
               'Timestamp:' + str(self.Timestamp) + ', ' + \
1271
               'RequestHandle:' + str(self.RequestHandle) + ', ' + \
1272
               'ReturnDiagnostics:' + str(self.ReturnDiagnostics) + ', ' + \
1273
               'AuditEntryId:' + str(self.AuditEntryId) + ', ' + \
1274
               'TimeoutHint:' + str(self.TimeoutHint) + ', ' + \
1275
               'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1276
1277 1
    __repr__ = __str__
1278
1279
1280 1
class ResponseHeader(FrozenClass):
1281
    '''
1282
    The header passed with every server response.
1283
1284
    :ivar Timestamp:
1285
    :vartype Timestamp: DateTime
1286
    :ivar RequestHandle:
1287
    :vartype RequestHandle: UInt32
1288
    :ivar ServiceResult:
1289
    :vartype ServiceResult: StatusCode
1290
    :ivar ServiceDiagnostics:
1291
    :vartype ServiceDiagnostics: DiagnosticInfo
1292
    :ivar StringTable:
1293
    :vartype StringTable: String
1294
    :ivar AdditionalHeader:
1295
    :vartype AdditionalHeader: ExtensionObject
1296
    '''
1297 1
    def __init__(self, binary=None):
1298 1
        if binary is not None:
1299 1
            self._binary_init(binary)
1300 1
            self._freeze = True
1301 1
            return
1302 1
        self.Timestamp = datetime.now()
1303 1
        self.RequestHandle = 0
1304 1
        self.ServiceResult = StatusCode()
1305 1
        self.ServiceDiagnostics = DiagnosticInfo()
1306 1
        self.StringTable = []
1307 1
        self.AdditionalHeader = None
1308 1
        self._freeze = True
1309
1310 1
    def to_binary(self):
1311 1
        packet = []
1312 1
        packet.append(pack_datetime(self.Timestamp))
1313 1
        packet.append(uatype_UInt32.pack(self.RequestHandle))
1314 1
        packet.append(self.ServiceResult.to_binary())
1315 1
        packet.append(self.ServiceDiagnostics.to_binary())
1316 1
        packet.append(uatype_Int32.pack(len(self.StringTable)))
1317 1
        for fieldname in self.StringTable:
1318
            packet.append(pack_string(fieldname))
1319 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1320 1
        return b''.join(packet)
1321
1322 1
    @staticmethod
1323
    def from_binary(data):
1324 1
        return ResponseHeader(data)
1325
1326 1
    def _binary_init(self, data):
1327 1
        self.Timestamp = unpack_datetime(data)
1328 1
        self.RequestHandle = uatype_UInt32.unpack(data.read(4))[0]
1329 1
        self.ServiceResult = StatusCode.from_binary(data)
1330 1
        self.ServiceDiagnostics = DiagnosticInfo.from_binary(data)
1331 1
        self.StringTable = unpack_uatype_array('String', data)
1332 1
        self.AdditionalHeader = extensionobject_from_binary(data)
1333
1334 1
    def __str__(self):
1335
        return 'ResponseHeader(' + 'Timestamp:' + str(self.Timestamp) + ', ' + \
1336
               'RequestHandle:' + str(self.RequestHandle) + ', ' + \
1337
               'ServiceResult:' + str(self.ServiceResult) + ', ' + \
1338
               'ServiceDiagnostics:' + str(self.ServiceDiagnostics) + ', ' + \
1339
               'StringTable:' + str(self.StringTable) + ', ' + \
1340
               'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1341
1342 1
    __repr__ = __str__
1343
1344
1345 1
class ServiceFault(FrozenClass):
1346
    '''
1347
    The response returned by all services when there is a service level error.
1348
1349
    :ivar TypeId:
1350
    :vartype TypeId: NodeId
1351
    :ivar ResponseHeader:
1352
    :vartype ResponseHeader: ResponseHeader
1353
    '''
1354 1
    def __init__(self, binary=None):
1355 1
        if binary is not None:
1356
            self._binary_init(binary)
1357
            self._freeze = True
1358
            return
1359 1
        self.TypeId = FourByteNodeId(ObjectIds.ServiceFault_Encoding_DefaultBinary)
1360 1
        self.ResponseHeader = ResponseHeader()
1361 1
        self._freeze = True
1362
1363 1
    def to_binary(self):
1364 1
        packet = []
1365 1
        packet.append(self.TypeId.to_binary())
1366 1
        packet.append(self.ResponseHeader.to_binary())
1367 1
        return b''.join(packet)
1368
1369 1
    @staticmethod
1370
    def from_binary(data):
1371
        return ServiceFault(data)
1372
1373 1
    def _binary_init(self, data):
1374
        self.TypeId = NodeId.from_binary(data)
1375
        self.ResponseHeader = ResponseHeader.from_binary(data)
1376
1377 1
    def __str__(self):
1378
        return 'ServiceFault(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1379
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
1380
1381 1
    __repr__ = __str__
1382
1383
1384 1
class FindServersParameters(FrozenClass):
1385
    '''
1386
    :ivar EndpointUrl:
1387
    :vartype EndpointUrl: String
1388
    :ivar LocaleIds:
1389
    :vartype LocaleIds: String
1390
    :ivar ServerUris:
1391
    :vartype ServerUris: String
1392
    '''
1393 1
    def __init__(self, binary=None):
1394 1
        if binary is not None:
1395 1
            self._binary_init(binary)
1396 1
            self._freeze = True
1397 1
            return
1398 1
        self.EndpointUrl = ''
1399 1
        self.LocaleIds = []
1400 1
        self.ServerUris = []
1401 1
        self._freeze = True
1402
1403 1
    def to_binary(self):
1404 1
        packet = []
1405 1
        packet.append(pack_string(self.EndpointUrl))
1406 1
        packet.append(uatype_Int32.pack(len(self.LocaleIds)))
1407 1
        for fieldname in self.LocaleIds:
1408
            packet.append(pack_string(fieldname))
1409 1
        packet.append(uatype_Int32.pack(len(self.ServerUris)))
1410 1
        for fieldname in self.ServerUris:
1411 1
            packet.append(pack_string(fieldname))
1412 1
        return b''.join(packet)
1413
1414 1
    @staticmethod
1415
    def from_binary(data):
1416 1
        return FindServersParameters(data)
1417
1418 1
    def _binary_init(self, data):
1419 1
        self.EndpointUrl = unpack_string(data)
1420 1
        self.LocaleIds = unpack_uatype_array('String', data)
1421 1
        self.ServerUris = unpack_uatype_array('String', data)
1422
1423 1
    def __str__(self):
1424
        return 'FindServersParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1425
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
1426
               'ServerUris:' + str(self.ServerUris) + ')'
1427
1428 1
    __repr__ = __str__
1429
1430
1431 1
class FindServersRequest(FrozenClass):
1432
    '''
1433
    Finds the servers known to the discovery server.
1434
1435
    :ivar TypeId:
1436
    :vartype TypeId: NodeId
1437
    :ivar RequestHeader:
1438
    :vartype RequestHeader: RequestHeader
1439
    :ivar Parameters:
1440
    :vartype Parameters: FindServersParameters
1441
    '''
1442 1
    def __init__(self, binary=None):
1443 1
        if binary is not None:
1444
            self._binary_init(binary)
1445
            self._freeze = True
1446
            return
1447 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersRequest_Encoding_DefaultBinary)
1448 1
        self.RequestHeader = RequestHeader()
1449 1
        self.Parameters = FindServersParameters()
1450 1
        self._freeze = True
1451
1452 1
    def to_binary(self):
1453 1
        packet = []
1454 1
        packet.append(self.TypeId.to_binary())
1455 1
        packet.append(self.RequestHeader.to_binary())
1456 1
        packet.append(self.Parameters.to_binary())
1457 1
        return b''.join(packet)
1458
1459 1
    @staticmethod
1460
    def from_binary(data):
1461
        return FindServersRequest(data)
1462
1463 1
    def _binary_init(self, data):
1464
        self.TypeId = NodeId.from_binary(data)
1465
        self.RequestHeader = RequestHeader.from_binary(data)
1466
        self.Parameters = FindServersParameters.from_binary(data)
1467
1468 1
    def __str__(self):
1469
        return 'FindServersRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1470
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1471
               'Parameters:' + str(self.Parameters) + ')'
1472
1473 1
    __repr__ = __str__
1474
1475
1476 1
class FindServersResponse(FrozenClass):
1477
    '''
1478
    Finds the servers known to the discovery server.
1479
1480
    :ivar TypeId:
1481
    :vartype TypeId: NodeId
1482
    :ivar ResponseHeader:
1483
    :vartype ResponseHeader: ResponseHeader
1484
    :ivar Servers:
1485
    :vartype Servers: ApplicationDescription
1486
    '''
1487 1
    def __init__(self, binary=None):
1488 1
        if binary is not None:
1489 1
            self._binary_init(binary)
1490 1
            self._freeze = True
1491 1
            return
1492 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersResponse_Encoding_DefaultBinary)
1493 1
        self.ResponseHeader = ResponseHeader()
1494 1
        self.Servers = []
1495 1
        self._freeze = True
1496
1497 1
    def to_binary(self):
1498 1
        packet = []
1499 1
        packet.append(self.TypeId.to_binary())
1500 1
        packet.append(self.ResponseHeader.to_binary())
1501 1
        packet.append(uatype_Int32.pack(len(self.Servers)))
1502 1
        for fieldname in self.Servers:
1503 1
            packet.append(fieldname.to_binary())
1504 1
        return b''.join(packet)
1505
1506 1
    @staticmethod
1507
    def from_binary(data):
1508 1
        return FindServersResponse(data)
1509
1510 1
    def _binary_init(self, data):
1511 1
        self.TypeId = NodeId.from_binary(data)
1512 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
1513 1
        length = uatype_Int32.unpack(data.read(4))[0]
1514 1
        array = []
1515 1
        if length != -1:
1516 1
            for _ in range(0, length):
1517 1
                array.append(ApplicationDescription.from_binary(data))
1518 1
        self.Servers = array
1519
1520 1
    def __str__(self):
1521
        return 'FindServersResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1522
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
1523
               'Servers:' + str(self.Servers) + ')'
1524
1525 1
    __repr__ = __str__
1526
1527
1528 1
class ServerOnNetwork(FrozenClass):
1529
    '''
1530
    :ivar RecordId:
1531
    :vartype RecordId: UInt32
1532
    :ivar ServerName:
1533
    :vartype ServerName: String
1534
    :ivar DiscoveryUrl:
1535
    :vartype DiscoveryUrl: String
1536
    :ivar ServerCapabilities:
1537
    :vartype ServerCapabilities: String
1538
    '''
1539 1
    def __init__(self, binary=None):
1540
        if binary is not None:
1541
            self._binary_init(binary)
1542
            self._freeze = True
1543
            return
1544
        self.RecordId = 0
1545
        self.ServerName = ''
1546
        self.DiscoveryUrl = ''
1547
        self.ServerCapabilities = []
1548
        self._freeze = True
1549
1550 1
    def to_binary(self):
1551
        packet = []
1552
        packet.append(uatype_UInt32.pack(self.RecordId))
1553
        packet.append(pack_string(self.ServerName))
1554
        packet.append(pack_string(self.DiscoveryUrl))
1555
        packet.append(uatype_Int32.pack(len(self.ServerCapabilities)))
1556
        for fieldname in self.ServerCapabilities:
1557
            packet.append(pack_string(fieldname))
1558
        return b''.join(packet)
1559
1560 1
    @staticmethod
1561
    def from_binary(data):
1562
        return ServerOnNetwork(data)
1563
1564 1
    def _binary_init(self, data):
1565
        self.RecordId = uatype_UInt32.unpack(data.read(4))[0]
1566
        self.ServerName = unpack_string(data)
1567
        self.DiscoveryUrl = unpack_string(data)
1568
        self.ServerCapabilities = unpack_uatype_array('String', data)
1569
1570 1
    def __str__(self):
1571
        return 'ServerOnNetwork(' + 'RecordId:' + str(self.RecordId) + ', ' + \
1572
               'ServerName:' + str(self.ServerName) + ', ' + \
1573
               'DiscoveryUrl:' + str(self.DiscoveryUrl) + ', ' + \
1574
               'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
1575
1576 1
    __repr__ = __str__
1577
1578
1579 1
class FindServersOnNetworkParameters(FrozenClass):
1580
    '''
1581
    :ivar StartingRecordId:
1582
    :vartype StartingRecordId: UInt32
1583
    :ivar MaxRecordsToReturn:
1584
    :vartype MaxRecordsToReturn: UInt32
1585
    :ivar ServerCapabilityFilter:
1586
    :vartype ServerCapabilityFilter: String
1587
    '''
1588 1
    def __init__(self, binary=None):
1589
        if binary is not None:
1590
            self._binary_init(binary)
1591
            self._freeze = True
1592
            return
1593
        self.StartingRecordId = 0
1594
        self.MaxRecordsToReturn = 0
1595
        self.ServerCapabilityFilter = []
1596
        self._freeze = True
1597
1598 1
    def to_binary(self):
1599
        packet = []
1600
        packet.append(uatype_UInt32.pack(self.StartingRecordId))
1601
        packet.append(uatype_UInt32.pack(self.MaxRecordsToReturn))
1602
        packet.append(uatype_Int32.pack(len(self.ServerCapabilityFilter)))
1603
        for fieldname in self.ServerCapabilityFilter:
1604
            packet.append(pack_string(fieldname))
1605
        return b''.join(packet)
1606
1607 1
    @staticmethod
1608
    def from_binary(data):
1609
        return FindServersOnNetworkParameters(data)
1610
1611 1
    def _binary_init(self, data):
1612
        self.StartingRecordId = uatype_UInt32.unpack(data.read(4))[0]
1613
        self.MaxRecordsToReturn = uatype_UInt32.unpack(data.read(4))[0]
1614
        self.ServerCapabilityFilter = unpack_uatype_array('String', data)
1615
1616 1
    def __str__(self):
1617
        return 'FindServersOnNetworkParameters(' + 'StartingRecordId:' + str(self.StartingRecordId) + ', ' + \
1618
               'MaxRecordsToReturn:' + str(self.MaxRecordsToReturn) + ', ' + \
1619
               'ServerCapabilityFilter:' + str(self.ServerCapabilityFilter) + ')'
1620
1621 1
    __repr__ = __str__
1622
1623
1624 1
class FindServersOnNetworkRequest(FrozenClass):
1625
    '''
1626
    :ivar TypeId:
1627
    :vartype TypeId: NodeId
1628
    :ivar RequestHeader:
1629
    :vartype RequestHeader: RequestHeader
1630
    :ivar Parameters:
1631
    :vartype Parameters: FindServersOnNetworkParameters
1632
    '''
1633 1
    def __init__(self, binary=None):
1634
        if binary is not None:
1635
            self._binary_init(binary)
1636
            self._freeze = True
1637
            return
1638
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary)
1639
        self.RequestHeader = RequestHeader()
1640
        self.Parameters = FindServersOnNetworkParameters()
1641
        self._freeze = True
1642
1643 1
    def to_binary(self):
1644
        packet = []
1645
        packet.append(self.TypeId.to_binary())
1646
        packet.append(self.RequestHeader.to_binary())
1647
        packet.append(self.Parameters.to_binary())
1648
        return b''.join(packet)
1649
1650 1
    @staticmethod
1651
    def from_binary(data):
1652
        return FindServersOnNetworkRequest(data)
1653
1654 1
    def _binary_init(self, data):
1655
        self.TypeId = NodeId.from_binary(data)
1656
        self.RequestHeader = RequestHeader.from_binary(data)
1657
        self.Parameters = FindServersOnNetworkParameters.from_binary(data)
1658
1659 1
    def __str__(self):
1660
        return 'FindServersOnNetworkRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1661
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1662
               'Parameters:' + str(self.Parameters) + ')'
1663
1664 1
    __repr__ = __str__
1665
1666
1667 1
class FindServersOnNetworkResult(FrozenClass):
1668
    '''
1669
    :ivar LastCounterResetTime:
1670
    :vartype LastCounterResetTime: DateTime
1671
    :ivar Servers:
1672
    :vartype Servers: ServerOnNetwork
1673
    '''
1674 1
    def __init__(self, binary=None):
1675
        if binary is not None:
1676
            self._binary_init(binary)
1677
            self._freeze = True
1678
            return
1679
        self.LastCounterResetTime = datetime.now()
1680
        self.Servers = []
1681
        self._freeze = True
1682
1683 1
    def to_binary(self):
1684
        packet = []
1685
        packet.append(pack_datetime(self.LastCounterResetTime))
1686
        packet.append(uatype_Int32.pack(len(self.Servers)))
1687
        for fieldname in self.Servers:
1688
            packet.append(fieldname.to_binary())
1689
        return b''.join(packet)
1690
1691 1
    @staticmethod
1692
    def from_binary(data):
1693
        return FindServersOnNetworkResult(data)
1694
1695 1
    def _binary_init(self, data):
1696
        self.LastCounterResetTime = unpack_datetime(data)
1697
        length = uatype_Int32.unpack(data.read(4))[0]
1698
        array = []
1699
        if length != -1:
1700
            for _ in range(0, length):
1701
                array.append(ServerOnNetwork.from_binary(data))
1702
        self.Servers = array
1703
1704 1
    def __str__(self):
1705
        return 'FindServersOnNetworkResult(' + 'LastCounterResetTime:' + str(self.LastCounterResetTime) + ', ' + \
1706
               'Servers:' + str(self.Servers) + ')'
1707
1708 1
    __repr__ = __str__
1709
1710
1711 1
class FindServersOnNetworkResponse(FrozenClass):
1712
    '''
1713
    :ivar TypeId:
1714
    :vartype TypeId: NodeId
1715
    :ivar ResponseHeader:
1716
    :vartype ResponseHeader: ResponseHeader
1717
    :ivar Parameters:
1718
    :vartype Parameters: FindServersOnNetworkResult
1719
    '''
1720 1
    def __init__(self, binary=None):
1721
        if binary is not None:
1722
            self._binary_init(binary)
1723
            self._freeze = True
1724
            return
1725
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary)
1726
        self.ResponseHeader = ResponseHeader()
1727
        self.Parameters = FindServersOnNetworkResult()
1728
        self._freeze = True
1729
1730 1
    def to_binary(self):
1731
        packet = []
1732
        packet.append(self.TypeId.to_binary())
1733
        packet.append(self.ResponseHeader.to_binary())
1734
        packet.append(self.Parameters.to_binary())
1735
        return b''.join(packet)
1736
1737 1
    @staticmethod
1738
    def from_binary(data):
1739
        return FindServersOnNetworkResponse(data)
1740
1741 1
    def _binary_init(self, data):
1742
        self.TypeId = NodeId.from_binary(data)
1743
        self.ResponseHeader = ResponseHeader.from_binary(data)
1744
        self.Parameters = FindServersOnNetworkResult.from_binary(data)
1745
1746 1
    def __str__(self):
1747
        return 'FindServersOnNetworkResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1748
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
1749
               'Parameters:' + str(self.Parameters) + ')'
1750
1751 1
    __repr__ = __str__
1752
1753
1754 1
class UserTokenPolicy(FrozenClass):
1755
    '''
1756
    Describes a user token that can be used with a server.
1757
1758
    :ivar PolicyId:
1759
    :vartype PolicyId: String
1760
    :ivar TokenType:
1761
    :vartype TokenType: UserTokenType
1762
    :ivar IssuedTokenType:
1763
    :vartype IssuedTokenType: String
1764
    :ivar IssuerEndpointUrl:
1765
    :vartype IssuerEndpointUrl: String
1766
    :ivar SecurityPolicyUri:
1767
    :vartype SecurityPolicyUri: String
1768
    '''
1769 1
    def __init__(self, binary=None):
1770 1
        if binary is not None:
1771 1
            self._binary_init(binary)
1772 1
            self._freeze = True
1773 1
            return
1774 1
        self.PolicyId = ''
1775 1
        self.TokenType = UserTokenType(0)
1776 1
        self.IssuedTokenType = ''
1777 1
        self.IssuerEndpointUrl = ''
1778 1
        self.SecurityPolicyUri = ''
1779 1
        self._freeze = True
1780
1781 1
    def to_binary(self):
1782 1
        packet = []
1783 1
        packet.append(pack_string(self.PolicyId))
1784 1
        packet.append(uatype_UInt32.pack(self.TokenType.value))
1785 1
        packet.append(pack_string(self.IssuedTokenType))
1786 1
        packet.append(pack_string(self.IssuerEndpointUrl))
1787 1
        packet.append(pack_string(self.SecurityPolicyUri))
1788 1
        return b''.join(packet)
1789
1790 1
    @staticmethod
1791
    def from_binary(data):
1792 1
        return UserTokenPolicy(data)
1793
1794 1
    def _binary_init(self, data):
1795 1
        self.PolicyId = unpack_string(data)
1796 1
        self.TokenType = UserTokenType(uatype_UInt32.unpack(data.read(4))[0])
1797 1
        self.IssuedTokenType = unpack_string(data)
1798 1
        self.IssuerEndpointUrl = unpack_string(data)
1799 1
        self.SecurityPolicyUri = unpack_string(data)
1800
1801 1
    def __str__(self):
1802
        return 'UserTokenPolicy(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
1803
               'TokenType:' + str(self.TokenType) + ', ' + \
1804
               'IssuedTokenType:' + str(self.IssuedTokenType) + ', ' + \
1805
               'IssuerEndpointUrl:' + str(self.IssuerEndpointUrl) + ', ' + \
1806
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ')'
1807
1808 1
    __repr__ = __str__
1809
1810
1811 1
class EndpointDescription(FrozenClass):
1812
    '''
1813
    The description of a endpoint that can be used to access a server.
1814
1815
    :ivar EndpointUrl:
1816
    :vartype EndpointUrl: String
1817
    :ivar Server:
1818
    :vartype Server: ApplicationDescription
1819
    :ivar ServerCertificate:
1820
    :vartype ServerCertificate: ByteString
1821
    :ivar SecurityMode:
1822
    :vartype SecurityMode: MessageSecurityMode
1823
    :ivar SecurityPolicyUri:
1824
    :vartype SecurityPolicyUri: String
1825
    :ivar UserIdentityTokens:
1826
    :vartype UserIdentityTokens: UserTokenPolicy
1827
    :ivar TransportProfileUri:
1828
    :vartype TransportProfileUri: String
1829
    :ivar SecurityLevel:
1830
    :vartype SecurityLevel: Byte
1831
    '''
1832 1
    def __init__(self, binary=None):
1833 1
        if binary is not None:
1834 1
            self._binary_init(binary)
1835 1
            self._freeze = True
1836 1
            return
1837 1
        self.EndpointUrl = ''
1838 1
        self.Server = ApplicationDescription()
1839 1
        self.ServerCertificate = b''
1840 1
        self.SecurityMode = MessageSecurityMode(0)
1841 1
        self.SecurityPolicyUri = ''
1842 1
        self.UserIdentityTokens = []
1843 1
        self.TransportProfileUri = ''
1844 1
        self.SecurityLevel = 0
1845 1
        self._freeze = True
1846
1847 1
    def to_binary(self):
1848 1
        packet = []
1849 1
        packet.append(pack_string(self.EndpointUrl))
1850 1
        packet.append(self.Server.to_binary())
1851 1
        packet.append(pack_bytes(self.ServerCertificate))
1852 1
        packet.append(uatype_UInt32.pack(self.SecurityMode.value))
1853 1
        packet.append(pack_string(self.SecurityPolicyUri))
1854 1
        packet.append(uatype_Int32.pack(len(self.UserIdentityTokens)))
1855 1
        for fieldname in self.UserIdentityTokens:
1856 1
            packet.append(fieldname.to_binary())
1857 1
        packet.append(pack_string(self.TransportProfileUri))
1858 1
        packet.append(uatype_Byte.pack(self.SecurityLevel))
1859 1
        return b''.join(packet)
1860
1861 1
    @staticmethod
1862
    def from_binary(data):
1863 1
        return EndpointDescription(data)
1864
1865 1
    def _binary_init(self, data):
1866 1
        self.EndpointUrl = unpack_string(data)
1867 1
        self.Server = ApplicationDescription.from_binary(data)
1868 1
        self.ServerCertificate = unpack_bytes(data)
1869 1
        self.SecurityMode = MessageSecurityMode(uatype_UInt32.unpack(data.read(4))[0])
1870 1
        self.SecurityPolicyUri = unpack_string(data)
1871 1
        length = uatype_Int32.unpack(data.read(4))[0]
1872 1
        array = []
1873 1
        if length != -1:
1874 1
            for _ in range(0, length):
1875 1
                array.append(UserTokenPolicy.from_binary(data))
1876 1
        self.UserIdentityTokens = array
1877 1
        self.TransportProfileUri = unpack_string(data)
1878 1
        self.SecurityLevel = uatype_Byte.unpack(data.read(1))[0]
1879
1880 1
    def __str__(self):
1881
        return 'EndpointDescription(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1882
               'Server:' + str(self.Server) + ', ' + \
1883
               'ServerCertificate:' + str(self.ServerCertificate) + ', ' + \
1884
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
1885
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', ' + \
1886
               'UserIdentityTokens:' + str(self.UserIdentityTokens) + ', ' + \
1887
               'TransportProfileUri:' + str(self.TransportProfileUri) + ', ' + \
1888
               'SecurityLevel:' + str(self.SecurityLevel) + ')'
1889
1890 1
    __repr__ = __str__
1891
1892
1893 1
class GetEndpointsParameters(FrozenClass):
1894
    '''
1895
    :ivar EndpointUrl:
1896
    :vartype EndpointUrl: String
1897
    :ivar LocaleIds:
1898
    :vartype LocaleIds: String
1899
    :ivar ProfileUris:
1900
    :vartype ProfileUris: String
1901
    '''
1902 1
    def __init__(self, binary=None):
1903 1
        if binary is not None:
1904 1
            self._binary_init(binary)
1905 1
            self._freeze = True
1906 1
            return
1907 1
        self.EndpointUrl = ''
1908 1
        self.LocaleIds = []
1909 1
        self.ProfileUris = []
1910 1
        self._freeze = True
1911
1912 1
    def to_binary(self):
1913 1
        packet = []
1914 1
        packet.append(pack_string(self.EndpointUrl))
1915 1
        packet.append(uatype_Int32.pack(len(self.LocaleIds)))
1916 1
        for fieldname in self.LocaleIds:
1917
            packet.append(pack_string(fieldname))
1918 1
        packet.append(uatype_Int32.pack(len(self.ProfileUris)))
1919 1
        for fieldname in self.ProfileUris:
1920
            packet.append(pack_string(fieldname))
1921 1
        return b''.join(packet)
1922
1923 1
    @staticmethod
1924
    def from_binary(data):
1925 1
        return GetEndpointsParameters(data)
1926
1927 1
    def _binary_init(self, data):
1928 1
        self.EndpointUrl = unpack_string(data)
1929 1
        self.LocaleIds = unpack_uatype_array('String', data)
1930 1
        self.ProfileUris = unpack_uatype_array('String', data)
1931
1932 1
    def __str__(self):
1933
        return 'GetEndpointsParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1934
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
1935
               'ProfileUris:' + str(self.ProfileUris) + ')'
1936
1937 1
    __repr__ = __str__
1938
1939
1940 1
class GetEndpointsRequest(FrozenClass):
1941
    '''
1942
    Gets the endpoints used by the server.
1943
1944
    :ivar TypeId:
1945
    :vartype TypeId: NodeId
1946
    :ivar RequestHeader:
1947
    :vartype RequestHeader: RequestHeader
1948
    :ivar Parameters:
1949
    :vartype Parameters: GetEndpointsParameters
1950
    '''
1951 1
    def __init__(self, binary=None):
1952 1
        if binary is not None:
1953
            self._binary_init(binary)
1954
            self._freeze = True
1955
            return
1956 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary)
1957 1
        self.RequestHeader = RequestHeader()
1958 1
        self.Parameters = GetEndpointsParameters()
1959 1
        self._freeze = True
1960
1961 1
    def to_binary(self):
1962 1
        packet = []
1963 1
        packet.append(self.TypeId.to_binary())
1964 1
        packet.append(self.RequestHeader.to_binary())
1965 1
        packet.append(self.Parameters.to_binary())
1966 1
        return b''.join(packet)
1967
1968 1
    @staticmethod
1969
    def from_binary(data):
1970
        return GetEndpointsRequest(data)
1971
1972 1
    def _binary_init(self, data):
1973
        self.TypeId = NodeId.from_binary(data)
1974
        self.RequestHeader = RequestHeader.from_binary(data)
1975
        self.Parameters = GetEndpointsParameters.from_binary(data)
1976
1977 1
    def __str__(self):
1978
        return 'GetEndpointsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1979
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1980
               'Parameters:' + str(self.Parameters) + ')'
1981
1982 1
    __repr__ = __str__
1983
1984
1985 1
class GetEndpointsResponse(FrozenClass):
1986
    '''
1987
    Gets the endpoints used by the server.
1988
1989
    :ivar TypeId:
1990
    :vartype TypeId: NodeId
1991
    :ivar ResponseHeader:
1992
    :vartype ResponseHeader: ResponseHeader
1993
    :ivar Endpoints:
1994
    :vartype Endpoints: EndpointDescription
1995
    '''
1996 1
    def __init__(self, binary=None):
1997 1
        if binary is not None:
1998 1
            self._binary_init(binary)
1999 1
            self._freeze = True
2000 1
            return
2001 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary)
2002 1
        self.ResponseHeader = ResponseHeader()
2003 1
        self.Endpoints = []
2004 1
        self._freeze = True
2005
2006 1
    def to_binary(self):
2007 1
        packet = []
2008 1
        packet.append(self.TypeId.to_binary())
2009 1
        packet.append(self.ResponseHeader.to_binary())
2010 1
        packet.append(uatype_Int32.pack(len(self.Endpoints)))
2011 1
        for fieldname in self.Endpoints:
2012 1
            packet.append(fieldname.to_binary())
2013 1
        return b''.join(packet)
2014
2015 1
    @staticmethod
2016
    def from_binary(data):
2017 1
        return GetEndpointsResponse(data)
2018
2019 1
    def _binary_init(self, data):
2020 1
        self.TypeId = NodeId.from_binary(data)
2021 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
2022 1
        length = uatype_Int32.unpack(data.read(4))[0]
2023 1
        array = []
2024 1
        if length != -1:
2025 1
            for _ in range(0, length):
2026 1
                array.append(EndpointDescription.from_binary(data))
2027 1
        self.Endpoints = array
2028
2029 1
    def __str__(self):
2030
        return 'GetEndpointsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2031
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2032
               'Endpoints:' + str(self.Endpoints) + ')'
2033
2034 1
    __repr__ = __str__
2035
2036
2037 1
class RegisteredServer(FrozenClass):
2038
    '''
2039
    The information required to register a server with a discovery server.
2040
2041
    :ivar ServerUri:
2042
    :vartype ServerUri: String
2043
    :ivar ProductUri:
2044
    :vartype ProductUri: String
2045
    :ivar ServerNames:
2046
    :vartype ServerNames: LocalizedText
2047
    :ivar ServerType:
2048
    :vartype ServerType: ApplicationType
2049
    :ivar GatewayServerUri:
2050
    :vartype GatewayServerUri: String
2051
    :ivar DiscoveryUrls:
2052
    :vartype DiscoveryUrls: String
2053
    :ivar SemaphoreFilePath:
2054
    :vartype SemaphoreFilePath: String
2055
    :ivar IsOnline:
2056
    :vartype IsOnline: Boolean
2057
    '''
2058 1
    def __init__(self, binary=None):
2059 1
        if binary is not None:
2060 1
            self._binary_init(binary)
2061 1
            self._freeze = True
2062 1
            return
2063 1
        self.ServerUri = ''
2064 1
        self.ProductUri = ''
2065 1
        self.ServerNames = []
2066 1
        self.ServerType = ApplicationType(0)
2067 1
        self.GatewayServerUri = ''
2068 1
        self.DiscoveryUrls = []
2069 1
        self.SemaphoreFilePath = ''
2070 1
        self.IsOnline = True
2071 1
        self._freeze = True
2072
2073 1
    def to_binary(self):
2074 1
        packet = []
2075 1
        packet.append(pack_string(self.ServerUri))
2076 1
        packet.append(pack_string(self.ProductUri))
2077 1
        packet.append(uatype_Int32.pack(len(self.ServerNames)))
2078 1
        for fieldname in self.ServerNames:
2079 1
            packet.append(fieldname.to_binary())
2080 1
        packet.append(uatype_UInt32.pack(self.ServerType.value))
2081 1
        packet.append(pack_string(self.GatewayServerUri))
2082 1
        packet.append(uatype_Int32.pack(len(self.DiscoveryUrls)))
2083 1
        for fieldname in self.DiscoveryUrls:
2084 1
            packet.append(pack_string(fieldname))
2085 1
        packet.append(pack_string(self.SemaphoreFilePath))
2086 1
        packet.append(uatype_Boolean.pack(self.IsOnline))
2087 1
        return b''.join(packet)
2088
2089 1
    @staticmethod
2090
    def from_binary(data):
2091 1
        return RegisteredServer(data)
2092
2093 1
    def _binary_init(self, data):
2094 1
        self.ServerUri = unpack_string(data)
2095 1
        self.ProductUri = unpack_string(data)
2096 1
        length = uatype_Int32.unpack(data.read(4))[0]
2097 1
        array = []
2098 1
        if length != -1:
2099 1
            for _ in range(0, length):
2100 1
                array.append(LocalizedText.from_binary(data))
2101 1
        self.ServerNames = array
2102 1
        self.ServerType = ApplicationType(uatype_UInt32.unpack(data.read(4))[0])
2103 1
        self.GatewayServerUri = unpack_string(data)
2104 1
        self.DiscoveryUrls = unpack_uatype_array('String', data)
2105 1
        self.SemaphoreFilePath = unpack_string(data)
2106 1
        self.IsOnline = uatype_Boolean.unpack(data.read(1))[0]
2107
2108 1
    def __str__(self):
2109
        return 'RegisteredServer(' + 'ServerUri:' + str(self.ServerUri) + ', ' + \
2110
               'ProductUri:' + str(self.ProductUri) + ', ' + \
2111
               'ServerNames:' + str(self.ServerNames) + ', ' + \
2112
               'ServerType:' + str(self.ServerType) + ', ' + \
2113
               'GatewayServerUri:' + str(self.GatewayServerUri) + ', ' + \
2114
               'DiscoveryUrls:' + str(self.DiscoveryUrls) + ', ' + \
2115
               'SemaphoreFilePath:' + str(self.SemaphoreFilePath) + ', ' + \
2116
               'IsOnline:' + str(self.IsOnline) + ')'
2117
2118 1
    __repr__ = __str__
2119
2120
2121 1
class RegisterServerRequest(FrozenClass):
2122
    '''
2123
    Registers a server with the discovery server.
2124
2125
    :ivar TypeId:
2126
    :vartype TypeId: NodeId
2127
    :ivar RequestHeader:
2128
    :vartype RequestHeader: RequestHeader
2129
    :ivar Server:
2130
    :vartype Server: RegisteredServer
2131
    '''
2132 1
    def __init__(self, binary=None):
2133 1
        if binary is not None:
2134
            self._binary_init(binary)
2135
            self._freeze = True
2136
            return
2137 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerRequest_Encoding_DefaultBinary)
2138 1
        self.RequestHeader = RequestHeader()
2139 1
        self.Server = RegisteredServer()
2140 1
        self._freeze = True
2141
2142 1
    def to_binary(self):
2143 1
        packet = []
2144 1
        packet.append(self.TypeId.to_binary())
2145 1
        packet.append(self.RequestHeader.to_binary())
2146 1
        packet.append(self.Server.to_binary())
2147 1
        return b''.join(packet)
2148
2149 1
    @staticmethod
2150
    def from_binary(data):
2151
        return RegisterServerRequest(data)
2152
2153 1
    def _binary_init(self, data):
2154
        self.TypeId = NodeId.from_binary(data)
2155
        self.RequestHeader = RequestHeader.from_binary(data)
2156
        self.Server = RegisteredServer.from_binary(data)
2157
2158 1
    def __str__(self):
2159
        return 'RegisterServerRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2160
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2161
               'Server:' + str(self.Server) + ')'
2162
2163 1
    __repr__ = __str__
2164
2165
2166 1
class RegisterServerResponse(FrozenClass):
2167
    '''
2168
    Registers a server with the discovery server.
2169
2170
    :ivar TypeId:
2171
    :vartype TypeId: NodeId
2172
    :ivar ResponseHeader:
2173
    :vartype ResponseHeader: ResponseHeader
2174
    '''
2175 1
    def __init__(self, binary=None):
2176 1
        if binary is not None:
2177 1
            self._binary_init(binary)
2178 1
            self._freeze = True
2179 1
            return
2180 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerResponse_Encoding_DefaultBinary)
2181 1
        self.ResponseHeader = ResponseHeader()
2182 1
        self._freeze = True
2183
2184 1
    def to_binary(self):
2185 1
        packet = []
2186 1
        packet.append(self.TypeId.to_binary())
2187 1
        packet.append(self.ResponseHeader.to_binary())
2188 1
        return b''.join(packet)
2189
2190 1
    @staticmethod
2191
    def from_binary(data):
2192 1
        return RegisterServerResponse(data)
2193
2194 1
    def _binary_init(self, data):
2195 1
        self.TypeId = NodeId.from_binary(data)
2196 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
2197
2198 1
    def __str__(self):
2199
        return 'RegisterServerResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2200
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
2201
2202 1
    __repr__ = __str__
2203
2204
2205 1
class DiscoveryConfiguration(FrozenClass):
2206
    '''
2207
    A base type for discovery configuration information.
2208
2209
    '''
2210 1
    def __init__(self, binary=None):
2211
        if binary is not None:
2212
            self._binary_init(binary)
2213
            self._freeze = True
2214
            return
2215
        self._freeze = True
2216
2217 1
    def to_binary(self):
2218
        packet = []
2219
        return b''.join(packet)
2220
2221 1
    @staticmethod
2222
    def from_binary(data):
2223
        return DiscoveryConfiguration(data)
2224
2225 1
    def _binary_init(self, data):
2226
        pass
2227
2228 1
    def __str__(self):
2229
        return 'DiscoveryConfiguration(' +  + ')'
2230
2231 1
    __repr__ = __str__
2232
2233
2234 1
class MdnsDiscoveryConfiguration(FrozenClass):
2235
    '''
2236
    The discovery information needed for mDNS registration.
2237
2238
    :ivar MdnsServerName:
2239
    :vartype MdnsServerName: String
2240
    :ivar ServerCapabilities:
2241
    :vartype ServerCapabilities: String
2242
    '''
2243 1
    def __init__(self, binary=None):
2244
        if binary is not None:
2245
            self._binary_init(binary)
2246
            self._freeze = True
2247
            return
2248
        self.MdnsServerName = ''
2249
        self.ServerCapabilities = []
2250
        self._freeze = True
2251
2252 1
    def to_binary(self):
2253
        packet = []
2254
        packet.append(pack_string(self.MdnsServerName))
2255
        packet.append(uatype_Int32.pack(len(self.ServerCapabilities)))
2256
        for fieldname in self.ServerCapabilities:
2257
            packet.append(pack_string(fieldname))
2258
        return b''.join(packet)
2259
2260 1
    @staticmethod
2261
    def from_binary(data):
2262
        return MdnsDiscoveryConfiguration(data)
2263
2264 1
    def _binary_init(self, data):
2265
        self.MdnsServerName = unpack_string(data)
2266
        self.ServerCapabilities = unpack_uatype_array('String', data)
2267
2268 1
    def __str__(self):
2269
        return 'MdnsDiscoveryConfiguration(' + 'MdnsServerName:' + str(self.MdnsServerName) + ', ' + \
2270
               'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
2271
2272 1
    __repr__ = __str__
2273
2274
2275 1
class RegisterServer2Parameters(FrozenClass):
2276
    '''
2277
    :ivar Server:
2278
    :vartype Server: RegisteredServer
2279
    :ivar DiscoveryConfiguration:
2280
    :vartype DiscoveryConfiguration: ExtensionObject
2281
    '''
2282 1
    def __init__(self, binary=None):
2283
        if binary is not None:
2284
            self._binary_init(binary)
2285
            self._freeze = True
2286
            return
2287
        self.Server = RegisteredServer()
2288
        self.DiscoveryConfiguration = []
2289
        self._freeze = True
2290
2291 1
    def to_binary(self):
2292
        packet = []
2293
        packet.append(self.Server.to_binary())
2294
        packet.append(uatype_Int32.pack(len(self.DiscoveryConfiguration)))
2295
        for fieldname in self.DiscoveryConfiguration:
2296
            packet.append(extensionobject_to_binary(fieldname))
2297
        return b''.join(packet)
2298
2299 1
    @staticmethod
2300
    def from_binary(data):
2301
        return RegisterServer2Parameters(data)
2302
2303 1
    def _binary_init(self, data):
2304
        self.Server = RegisteredServer.from_binary(data)
2305
        length = uatype_Int32.unpack(data.read(4))[0]
2306
        array = []
2307
        if length != -1:
2308
            for _ in range(0, length):
2309
                array.append(extensionobject_from_binary(data))
2310
        self.DiscoveryConfiguration = array
2311
2312 1
    def __str__(self):
2313
        return 'RegisterServer2Parameters(' + 'Server:' + str(self.Server) + ', ' + \
2314
               'DiscoveryConfiguration:' + str(self.DiscoveryConfiguration) + ')'
2315
2316 1
    __repr__ = __str__
2317
2318
2319 1
class RegisterServer2Request(FrozenClass):
2320
    '''
2321
    :ivar TypeId:
2322
    :vartype TypeId: NodeId
2323
    :ivar RequestHeader:
2324
    :vartype RequestHeader: RequestHeader
2325
    :ivar Parameters:
2326
    :vartype Parameters: RegisterServer2Parameters
2327
    '''
2328 1
    def __init__(self, binary=None):
2329
        if binary is not None:
2330
            self._binary_init(binary)
2331
            self._freeze = True
2332
            return
2333
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Request_Encoding_DefaultBinary)
2334
        self.RequestHeader = RequestHeader()
2335
        self.Parameters = RegisterServer2Parameters()
2336
        self._freeze = True
2337
2338 1
    def to_binary(self):
2339
        packet = []
2340
        packet.append(self.TypeId.to_binary())
2341
        packet.append(self.RequestHeader.to_binary())
2342
        packet.append(self.Parameters.to_binary())
2343
        return b''.join(packet)
2344
2345 1
    @staticmethod
2346
    def from_binary(data):
2347
        return RegisterServer2Request(data)
2348
2349 1
    def _binary_init(self, data):
2350
        self.TypeId = NodeId.from_binary(data)
2351
        self.RequestHeader = RequestHeader.from_binary(data)
2352
        self.Parameters = RegisterServer2Parameters.from_binary(data)
2353
2354 1
    def __str__(self):
2355
        return 'RegisterServer2Request(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2356
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2357
               'Parameters:' + str(self.Parameters) + ')'
2358
2359 1
    __repr__ = __str__
2360
2361
2362 1
class RegisterServer2Response(FrozenClass):
2363
    '''
2364
    :ivar TypeId:
2365
    :vartype TypeId: NodeId
2366
    :ivar ResponseHeader:
2367
    :vartype ResponseHeader: ResponseHeader
2368
    :ivar ConfigurationResults:
2369
    :vartype ConfigurationResults: StatusCode
2370
    :ivar DiagnosticInfos:
2371
    :vartype DiagnosticInfos: DiagnosticInfo
2372
    '''
2373 1
    def __init__(self, binary=None):
2374
        if binary is not None:
2375
            self._binary_init(binary)
2376
            self._freeze = True
2377
            return
2378
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Response_Encoding_DefaultBinary)
2379
        self.ResponseHeader = ResponseHeader()
2380
        self.ConfigurationResults = []
2381
        self.DiagnosticInfos = []
2382
        self._freeze = True
2383
2384 1
    def to_binary(self):
2385
        packet = []
2386
        packet.append(self.TypeId.to_binary())
2387
        packet.append(self.ResponseHeader.to_binary())
2388
        packet.append(uatype_Int32.pack(len(self.ConfigurationResults)))
2389
        for fieldname in self.ConfigurationResults:
2390
            packet.append(fieldname.to_binary())
2391
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
2392
        for fieldname in self.DiagnosticInfos:
2393
            packet.append(fieldname.to_binary())
2394
        return b''.join(packet)
2395
2396 1
    @staticmethod
2397
    def from_binary(data):
2398
        return RegisterServer2Response(data)
2399
2400 1
    def _binary_init(self, data):
2401
        self.TypeId = NodeId.from_binary(data)
2402
        self.ResponseHeader = ResponseHeader.from_binary(data)
2403
        length = uatype_Int32.unpack(data.read(4))[0]
2404
        array = []
2405
        if length != -1:
2406
            for _ in range(0, length):
2407
                array.append(StatusCode.from_binary(data))
2408
        self.ConfigurationResults = array
2409
        length = uatype_Int32.unpack(data.read(4))[0]
2410
        array = []
2411
        if length != -1:
2412
            for _ in range(0, length):
2413
                array.append(DiagnosticInfo.from_binary(data))
2414
        self.DiagnosticInfos = array
2415
2416 1
    def __str__(self):
2417
        return 'RegisterServer2Response(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2418
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2419
               'ConfigurationResults:' + str(self.ConfigurationResults) + ', ' + \
2420
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
2421
2422 1
    __repr__ = __str__
2423
2424
2425 1
class ChannelSecurityToken(FrozenClass):
2426
    '''
2427
    The token that identifies a set of keys for an active secure channel.
2428
2429
    :ivar ChannelId:
2430
    :vartype ChannelId: UInt32
2431
    :ivar TokenId:
2432
    :vartype TokenId: UInt32
2433
    :ivar CreatedAt:
2434
    :vartype CreatedAt: DateTime
2435
    :ivar RevisedLifetime:
2436
    :vartype RevisedLifetime: UInt32
2437
    '''
2438 1
    def __init__(self, binary=None):
2439 1
        if binary is not None:
2440 1
            self._binary_init(binary)
2441 1
            self._freeze = True
2442 1
            return
2443 1
        self.ChannelId = 0
2444 1
        self.TokenId = 0
2445 1
        self.CreatedAt = datetime.now()
2446 1
        self.RevisedLifetime = 0
2447 1
        self._freeze = True
2448
2449 1
    def to_binary(self):
2450 1
        packet = []
2451 1
        packet.append(uatype_UInt32.pack(self.ChannelId))
2452 1
        packet.append(uatype_UInt32.pack(self.TokenId))
2453 1
        packet.append(pack_datetime(self.CreatedAt))
2454 1
        packet.append(uatype_UInt32.pack(self.RevisedLifetime))
2455 1
        return b''.join(packet)
2456
2457 1
    @staticmethod
2458
    def from_binary(data):
2459 1
        return ChannelSecurityToken(data)
2460
2461 1
    def _binary_init(self, data):
2462 1
        self.ChannelId = uatype_UInt32.unpack(data.read(4))[0]
2463 1
        self.TokenId = uatype_UInt32.unpack(data.read(4))[0]
2464 1
        self.CreatedAt = unpack_datetime(data)
2465 1
        self.RevisedLifetime = uatype_UInt32.unpack(data.read(4))[0]
2466
2467 1
    def __str__(self):
2468
        return 'ChannelSecurityToken(' + 'ChannelId:' + str(self.ChannelId) + ', ' + \
2469
               'TokenId:' + str(self.TokenId) + ', ' + \
2470
               'CreatedAt:' + str(self.CreatedAt) + ', ' + \
2471
               'RevisedLifetime:' + str(self.RevisedLifetime) + ')'
2472
2473 1
    __repr__ = __str__
2474
2475
2476 1
class OpenSecureChannelParameters(FrozenClass):
2477
    '''
2478
    :ivar ClientProtocolVersion:
2479
    :vartype ClientProtocolVersion: UInt32
2480
    :ivar RequestType:
2481
    :vartype RequestType: SecurityTokenRequestType
2482
    :ivar SecurityMode:
2483
    :vartype SecurityMode: MessageSecurityMode
2484
    :ivar ClientNonce:
2485
    :vartype ClientNonce: ByteString
2486
    :ivar RequestedLifetime:
2487
    :vartype RequestedLifetime: UInt32
2488
    '''
2489 1
    def __init__(self, binary=None):
2490 1
        if binary is not None:
2491 1
            self._binary_init(binary)
2492 1
            self._freeze = True
2493 1
            return
2494 1
        self.ClientProtocolVersion = 0
2495 1
        self.RequestType = SecurityTokenRequestType(0)
2496 1
        self.SecurityMode = MessageSecurityMode(0)
2497 1
        self.ClientNonce = b''
2498 1
        self.RequestedLifetime = 0
2499 1
        self._freeze = True
2500
2501 1
    def to_binary(self):
2502 1
        packet = []
2503 1
        packet.append(uatype_UInt32.pack(self.ClientProtocolVersion))
2504 1
        packet.append(uatype_UInt32.pack(self.RequestType.value))
2505 1
        packet.append(uatype_UInt32.pack(self.SecurityMode.value))
2506 1
        packet.append(pack_bytes(self.ClientNonce))
2507 1
        packet.append(uatype_UInt32.pack(self.RequestedLifetime))
2508 1
        return b''.join(packet)
2509
2510 1
    @staticmethod
2511
    def from_binary(data):
2512 1
        return OpenSecureChannelParameters(data)
2513
2514 1
    def _binary_init(self, data):
2515 1
        self.ClientProtocolVersion = uatype_UInt32.unpack(data.read(4))[0]
2516 1
        self.RequestType = SecurityTokenRequestType(uatype_UInt32.unpack(data.read(4))[0])
2517 1
        self.SecurityMode = MessageSecurityMode(uatype_UInt32.unpack(data.read(4))[0])
2518 1
        self.ClientNonce = unpack_bytes(data)
2519 1
        self.RequestedLifetime = uatype_UInt32.unpack(data.read(4))[0]
2520
2521 1
    def __str__(self):
2522
        return 'OpenSecureChannelParameters(' + 'ClientProtocolVersion:' + str(self.ClientProtocolVersion) + ', ' + \
2523
               'RequestType:' + str(self.RequestType) + ', ' + \
2524
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
2525
               'ClientNonce:' + str(self.ClientNonce) + ', ' + \
2526
               'RequestedLifetime:' + str(self.RequestedLifetime) + ')'
2527
2528 1
    __repr__ = __str__
2529
2530
2531 1
class OpenSecureChannelRequest(FrozenClass):
2532
    '''
2533
    Creates a secure channel with a server.
2534
2535
    :ivar TypeId:
2536
    :vartype TypeId: NodeId
2537
    :ivar RequestHeader:
2538
    :vartype RequestHeader: RequestHeader
2539
    :ivar Parameters:
2540
    :vartype Parameters: OpenSecureChannelParameters
2541
    '''
2542 1
    def __init__(self, binary=None):
2543 1
        if binary is not None:
2544 1
            self._binary_init(binary)
2545 1
            self._freeze = True
2546 1
            return
2547 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary)
2548 1
        self.RequestHeader = RequestHeader()
2549 1
        self.Parameters = OpenSecureChannelParameters()
2550 1
        self._freeze = True
2551
2552 1
    def to_binary(self):
2553 1
        packet = []
2554 1
        packet.append(self.TypeId.to_binary())
2555 1
        packet.append(self.RequestHeader.to_binary())
2556 1
        packet.append(self.Parameters.to_binary())
2557 1
        return b''.join(packet)
2558
2559 1
    @staticmethod
2560
    def from_binary(data):
2561 1
        return OpenSecureChannelRequest(data)
2562
2563 1
    def _binary_init(self, data):
2564 1
        self.TypeId = NodeId.from_binary(data)
2565 1
        self.RequestHeader = RequestHeader.from_binary(data)
2566 1
        self.Parameters = OpenSecureChannelParameters.from_binary(data)
2567
2568 1
    def __str__(self):
2569
        return 'OpenSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2570
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2571
               'Parameters:' + str(self.Parameters) + ')'
2572
2573 1
    __repr__ = __str__
2574
2575
2576 1
class OpenSecureChannelResult(FrozenClass):
2577
    '''
2578
    :ivar ServerProtocolVersion:
2579
    :vartype ServerProtocolVersion: UInt32
2580
    :ivar SecurityToken:
2581
    :vartype SecurityToken: ChannelSecurityToken
2582
    :ivar ServerNonce:
2583
    :vartype ServerNonce: ByteString
2584
    '''
2585 1
    def __init__(self, binary=None):
2586 1
        if binary is not None:
2587 1
            self._binary_init(binary)
2588 1
            self._freeze = True
2589 1
            return
2590 1
        self.ServerProtocolVersion = 0
2591 1
        self.SecurityToken = ChannelSecurityToken()
2592 1
        self.ServerNonce = b''
2593 1
        self._freeze = True
2594
2595 1
    def to_binary(self):
2596 1
        packet = []
2597 1
        packet.append(uatype_UInt32.pack(self.ServerProtocolVersion))
2598 1
        packet.append(self.SecurityToken.to_binary())
2599 1
        packet.append(pack_bytes(self.ServerNonce))
2600 1
        return b''.join(packet)
2601
2602 1
    @staticmethod
2603
    def from_binary(data):
2604 1
        return OpenSecureChannelResult(data)
2605
2606 1
    def _binary_init(self, data):
2607 1
        self.ServerProtocolVersion = uatype_UInt32.unpack(data.read(4))[0]
2608 1
        self.SecurityToken = ChannelSecurityToken.from_binary(data)
2609 1
        self.ServerNonce = unpack_bytes(data)
2610
2611 1
    def __str__(self):
2612
        return 'OpenSecureChannelResult(' + 'ServerProtocolVersion:' + str(self.ServerProtocolVersion) + ', ' + \
2613
               'SecurityToken:' + str(self.SecurityToken) + ', ' + \
2614
               'ServerNonce:' + str(self.ServerNonce) + ')'
2615
2616 1
    __repr__ = __str__
2617
2618
2619 1
class OpenSecureChannelResponse(FrozenClass):
2620
    '''
2621
    Creates a secure channel with a server.
2622
2623
    :ivar TypeId:
2624
    :vartype TypeId: NodeId
2625
    :ivar ResponseHeader:
2626
    :vartype ResponseHeader: ResponseHeader
2627
    :ivar Parameters:
2628
    :vartype Parameters: OpenSecureChannelResult
2629
    '''
2630 1
    def __init__(self, binary=None):
2631 1
        if binary is not None:
2632 1
            self._binary_init(binary)
2633 1
            self._freeze = True
2634 1
            return
2635 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary)
2636 1
        self.ResponseHeader = ResponseHeader()
2637 1
        self.Parameters = OpenSecureChannelResult()
2638 1
        self._freeze = True
2639
2640 1
    def to_binary(self):
2641 1
        packet = []
2642 1
        packet.append(self.TypeId.to_binary())
2643 1
        packet.append(self.ResponseHeader.to_binary())
2644 1
        packet.append(self.Parameters.to_binary())
2645 1
        return b''.join(packet)
2646
2647 1
    @staticmethod
2648
    def from_binary(data):
2649 1
        return OpenSecureChannelResponse(data)
2650
2651 1
    def _binary_init(self, data):
2652 1
        self.TypeId = NodeId.from_binary(data)
2653 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
2654 1
        self.Parameters = OpenSecureChannelResult.from_binary(data)
2655
2656 1
    def __str__(self):
2657
        return 'OpenSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2658
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2659
               'Parameters:' + str(self.Parameters) + ')'
2660
2661 1
    __repr__ = __str__
2662
2663
2664 1
class CloseSecureChannelRequest(FrozenClass):
2665
    '''
2666
    Closes a secure channel.
2667
2668
    :ivar TypeId:
2669
    :vartype TypeId: NodeId
2670
    :ivar RequestHeader:
2671
    :vartype RequestHeader: RequestHeader
2672
    '''
2673 1
    def __init__(self, binary=None):
2674 1
        if binary is not None:
2675
            self._binary_init(binary)
2676
            self._freeze = True
2677
            return
2678 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary)
2679 1
        self.RequestHeader = RequestHeader()
2680 1
        self._freeze = True
2681
2682 1
    def to_binary(self):
2683 1
        packet = []
2684 1
        packet.append(self.TypeId.to_binary())
2685 1
        packet.append(self.RequestHeader.to_binary())
2686 1
        return b''.join(packet)
2687
2688 1
    @staticmethod
2689
    def from_binary(data):
2690
        return CloseSecureChannelRequest(data)
2691
2692 1
    def _binary_init(self, data):
2693
        self.TypeId = NodeId.from_binary(data)
2694
        self.RequestHeader = RequestHeader.from_binary(data)
2695
2696 1
    def __str__(self):
2697
        return 'CloseSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2698
               'RequestHeader:' + str(self.RequestHeader) + ')'
2699
2700 1
    __repr__ = __str__
2701
2702
2703 1
class CloseSecureChannelResponse(FrozenClass):
2704
    '''
2705
    Closes a secure channel.
2706
2707
    :ivar TypeId:
2708
    :vartype TypeId: NodeId
2709
    :ivar ResponseHeader:
2710
    :vartype ResponseHeader: ResponseHeader
2711
    '''
2712 1
    def __init__(self, binary=None):
2713
        if binary is not None:
2714
            self._binary_init(binary)
2715
            self._freeze = True
2716
            return
2717
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary)
2718
        self.ResponseHeader = ResponseHeader()
2719
        self._freeze = True
2720
2721 1
    def to_binary(self):
2722
        packet = []
2723
        packet.append(self.TypeId.to_binary())
2724
        packet.append(self.ResponseHeader.to_binary())
2725
        return b''.join(packet)
2726
2727 1
    @staticmethod
2728
    def from_binary(data):
2729
        return CloseSecureChannelResponse(data)
2730
2731 1
    def _binary_init(self, data):
2732
        self.TypeId = NodeId.from_binary(data)
2733
        self.ResponseHeader = ResponseHeader.from_binary(data)
2734
2735 1
    def __str__(self):
2736
        return 'CloseSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2737
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
2738
2739 1
    __repr__ = __str__
2740
2741
2742 1
class SignedSoftwareCertificate(FrozenClass):
2743
    '''
2744
    A software certificate with a digital signature.
2745
2746
    :ivar CertificateData:
2747
    :vartype CertificateData: ByteString
2748
    :ivar Signature:
2749
    :vartype Signature: ByteString
2750
    '''
2751 1
    def __init__(self, binary=None):
2752
        if binary is not None:
2753
            self._binary_init(binary)
2754
            self._freeze = True
2755
            return
2756
        self.CertificateData = b''
2757
        self.Signature = b''
2758
        self._freeze = True
2759
2760 1
    def to_binary(self):
2761
        packet = []
2762
        packet.append(pack_bytes(self.CertificateData))
2763
        packet.append(pack_bytes(self.Signature))
2764
        return b''.join(packet)
2765
2766 1
    @staticmethod
2767
    def from_binary(data):
2768
        return SignedSoftwareCertificate(data)
2769
2770 1
    def _binary_init(self, data):
2771
        self.CertificateData = unpack_bytes(data)
2772
        self.Signature = unpack_bytes(data)
2773
2774 1
    def __str__(self):
2775
        return 'SignedSoftwareCertificate(' + 'CertificateData:' + str(self.CertificateData) + ', ' + \
2776
               'Signature:' + str(self.Signature) + ')'
2777
2778 1
    __repr__ = __str__
2779
2780
2781 1
class SignatureData(FrozenClass):
2782
    '''
2783
    A digital signature.
2784
2785
    :ivar Algorithm:
2786
    :vartype Algorithm: String
2787
    :ivar Signature:
2788
    :vartype Signature: ByteString
2789
    '''
2790 1
    def __init__(self, binary=None):
2791 1
        if binary is not None:
2792 1
            self._binary_init(binary)
2793 1
            self._freeze = True
2794 1
            return
2795 1
        self.Algorithm = ''
2796 1
        self.Signature = b''
2797 1
        self._freeze = True
2798
2799 1
    def to_binary(self):
2800 1
        packet = []
2801 1
        packet.append(pack_string(self.Algorithm))
2802 1
        packet.append(pack_bytes(self.Signature))
2803 1
        return b''.join(packet)
2804
2805 1
    @staticmethod
2806
    def from_binary(data):
2807 1
        return SignatureData(data)
2808
2809 1
    def _binary_init(self, data):
2810 1
        self.Algorithm = unpack_string(data)
2811 1
        self.Signature = unpack_bytes(data)
2812
2813 1
    def __str__(self):
2814
        return 'SignatureData(' + 'Algorithm:' + str(self.Algorithm) + ', ' + \
2815
               'Signature:' + str(self.Signature) + ')'
2816
2817 1
    __repr__ = __str__
2818
2819
2820 1
class CreateSessionParameters(FrozenClass):
2821
    '''
2822
    :ivar ClientDescription:
2823
    :vartype ClientDescription: ApplicationDescription
2824
    :ivar ServerUri:
2825
    :vartype ServerUri: String
2826
    :ivar EndpointUrl:
2827
    :vartype EndpointUrl: String
2828
    :ivar SessionName:
2829
    :vartype SessionName: String
2830
    :ivar ClientNonce:
2831
    :vartype ClientNonce: ByteString
2832
    :ivar ClientCertificate:
2833
    :vartype ClientCertificate: ByteString
2834
    :ivar RequestedSessionTimeout:
2835
    :vartype RequestedSessionTimeout: Double
2836
    :ivar MaxResponseMessageSize:
2837
    :vartype MaxResponseMessageSize: UInt32
2838
    '''
2839 1
    def __init__(self, binary=None):
2840 1
        if binary is not None:
2841 1
            self._binary_init(binary)
2842 1
            self._freeze = True
2843 1
            return
2844 1
        self.ClientDescription = ApplicationDescription()
2845 1
        self.ServerUri = ''
2846 1
        self.EndpointUrl = ''
2847 1
        self.SessionName = ''
2848 1
        self.ClientNonce = b''
2849 1
        self.ClientCertificate = b''
2850 1
        self.RequestedSessionTimeout = 0
2851 1
        self.MaxResponseMessageSize = 0
2852 1
        self._freeze = True
2853
2854 1
    def to_binary(self):
2855 1
        packet = []
2856 1
        packet.append(self.ClientDescription.to_binary())
2857 1
        packet.append(pack_string(self.ServerUri))
2858 1
        packet.append(pack_string(self.EndpointUrl))
2859 1
        packet.append(pack_string(self.SessionName))
2860 1
        packet.append(pack_bytes(self.ClientNonce))
2861 1
        packet.append(pack_bytes(self.ClientCertificate))
2862 1
        packet.append(uatype_Double.pack(self.RequestedSessionTimeout))
2863 1
        packet.append(uatype_UInt32.pack(self.MaxResponseMessageSize))
2864 1
        return b''.join(packet)
2865
2866 1
    @staticmethod
2867
    def from_binary(data):
2868 1
        return CreateSessionParameters(data)
2869
2870 1
    def _binary_init(self, data):
2871 1
        self.ClientDescription = ApplicationDescription.from_binary(data)
2872 1
        self.ServerUri = unpack_string(data)
2873 1
        self.EndpointUrl = unpack_string(data)
2874 1
        self.SessionName = unpack_string(data)
2875 1
        self.ClientNonce = unpack_bytes(data)
2876 1
        self.ClientCertificate = unpack_bytes(data)
2877 1
        self.RequestedSessionTimeout = uatype_Double.unpack(data.read(8))[0]
2878 1
        self.MaxResponseMessageSize = uatype_UInt32.unpack(data.read(4))[0]
2879
2880 1
    def __str__(self):
2881
        return 'CreateSessionParameters(' + 'ClientDescription:' + str(self.ClientDescription) + ', ' + \
2882
               'ServerUri:' + str(self.ServerUri) + ', ' + \
2883
               'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
2884
               'SessionName:' + str(self.SessionName) + ', ' + \
2885
               'ClientNonce:' + str(self.ClientNonce) + ', ' + \
2886
               'ClientCertificate:' + str(self.ClientCertificate) + ', ' + \
2887
               'RequestedSessionTimeout:' + str(self.RequestedSessionTimeout) + ', ' + \
2888
               'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ')'
2889
2890 1
    __repr__ = __str__
2891
2892
2893 1
class CreateSessionRequest(FrozenClass):
2894
    '''
2895
    Creates a new session with the server.
2896
2897
    :ivar TypeId:
2898
    :vartype TypeId: NodeId
2899
    :ivar RequestHeader:
2900
    :vartype RequestHeader: RequestHeader
2901
    :ivar Parameters:
2902
    :vartype Parameters: CreateSessionParameters
2903
    '''
2904 1
    def __init__(self, binary=None):
2905 1
        if binary is not None:
2906
            self._binary_init(binary)
2907
            self._freeze = True
2908
            return
2909 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionRequest_Encoding_DefaultBinary)
2910 1
        self.RequestHeader = RequestHeader()
2911 1
        self.Parameters = CreateSessionParameters()
2912 1
        self._freeze = True
2913
2914 1
    def to_binary(self):
2915 1
        packet = []
2916 1
        packet.append(self.TypeId.to_binary())
2917 1
        packet.append(self.RequestHeader.to_binary())
2918 1
        packet.append(self.Parameters.to_binary())
2919 1
        return b''.join(packet)
2920
2921 1
    @staticmethod
2922
    def from_binary(data):
2923
        return CreateSessionRequest(data)
2924
2925 1
    def _binary_init(self, data):
2926
        self.TypeId = NodeId.from_binary(data)
2927
        self.RequestHeader = RequestHeader.from_binary(data)
2928
        self.Parameters = CreateSessionParameters.from_binary(data)
2929
2930 1
    def __str__(self):
2931
        return 'CreateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2932
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2933
               'Parameters:' + str(self.Parameters) + ')'
2934
2935 1
    __repr__ = __str__
2936
2937
2938 1
class CreateSessionResult(FrozenClass):
2939
    '''
2940
    :ivar SessionId:
2941
    :vartype SessionId: NodeId
2942
    :ivar AuthenticationToken:
2943
    :vartype AuthenticationToken: NodeId
2944
    :ivar RevisedSessionTimeout:
2945
    :vartype RevisedSessionTimeout: Double
2946
    :ivar ServerNonce:
2947
    :vartype ServerNonce: ByteString
2948
    :ivar ServerCertificate:
2949
    :vartype ServerCertificate: ByteString
2950
    :ivar ServerEndpoints:
2951
    :vartype ServerEndpoints: EndpointDescription
2952
    :ivar ServerSoftwareCertificates:
2953
    :vartype ServerSoftwareCertificates: SignedSoftwareCertificate
2954
    :ivar ServerSignature:
2955
    :vartype ServerSignature: SignatureData
2956
    :ivar MaxRequestMessageSize:
2957
    :vartype MaxRequestMessageSize: UInt32
2958
    '''
2959 1
    def __init__(self, binary=None):
2960 1
        if binary is not None:
2961 1
            self._binary_init(binary)
2962 1
            self._freeze = True
2963 1
            return
2964 1
        self.SessionId = NodeId()
2965 1
        self.AuthenticationToken = NodeId()
2966 1
        self.RevisedSessionTimeout = 0
2967 1
        self.ServerNonce = b''
2968 1
        self.ServerCertificate = b''
2969 1
        self.ServerEndpoints = []
2970 1
        self.ServerSoftwareCertificates = []
2971 1
        self.ServerSignature = SignatureData()
2972 1
        self.MaxRequestMessageSize = 0
2973 1
        self._freeze = True
2974
2975 1
    def to_binary(self):
2976 1
        packet = []
2977 1
        packet.append(self.SessionId.to_binary())
2978 1
        packet.append(self.AuthenticationToken.to_binary())
2979 1
        packet.append(uatype_Double.pack(self.RevisedSessionTimeout))
2980 1
        packet.append(pack_bytes(self.ServerNonce))
2981 1
        packet.append(pack_bytes(self.ServerCertificate))
2982 1
        packet.append(uatype_Int32.pack(len(self.ServerEndpoints)))
2983 1
        for fieldname in self.ServerEndpoints:
2984 1
            packet.append(fieldname.to_binary())
2985 1
        packet.append(uatype_Int32.pack(len(self.ServerSoftwareCertificates)))
2986 1
        for fieldname in self.ServerSoftwareCertificates:
2987
            packet.append(fieldname.to_binary())
2988 1
        packet.append(self.ServerSignature.to_binary())
2989 1
        packet.append(uatype_UInt32.pack(self.MaxRequestMessageSize))
2990 1
        return b''.join(packet)
2991
2992 1
    @staticmethod
2993
    def from_binary(data):
2994 1
        return CreateSessionResult(data)
2995
2996 1
    def _binary_init(self, data):
2997 1
        self.SessionId = NodeId.from_binary(data)
2998 1
        self.AuthenticationToken = NodeId.from_binary(data)
2999 1
        self.RevisedSessionTimeout = uatype_Double.unpack(data.read(8))[0]
3000 1
        self.ServerNonce = unpack_bytes(data)
3001 1
        self.ServerCertificate = unpack_bytes(data)
3002 1
        length = uatype_Int32.unpack(data.read(4))[0]
3003 1
        array = []
3004 1
        if length != -1:
3005 1
            for _ in range(0, length):
3006 1
                array.append(EndpointDescription.from_binary(data))
3007 1
        self.ServerEndpoints = array
3008 1
        length = uatype_Int32.unpack(data.read(4))[0]
3009 1
        array = []
3010 1
        if length != -1:
3011 1
            for _ in range(0, length):
3012
                array.append(SignedSoftwareCertificate.from_binary(data))
3013 1
        self.ServerSoftwareCertificates = array
3014 1
        self.ServerSignature = SignatureData.from_binary(data)
3015 1
        self.MaxRequestMessageSize = uatype_UInt32.unpack(data.read(4))[0]
3016
3017 1
    def __str__(self):
3018
        return 'CreateSessionResult(' + 'SessionId:' + str(self.SessionId) + ', ' + \
3019
               'AuthenticationToken:' + str(self.AuthenticationToken) + ', ' + \
3020
               'RevisedSessionTimeout:' + str(self.RevisedSessionTimeout) + ', ' + \
3021
               'ServerNonce:' + str(self.ServerNonce) + ', ' + \
3022
               'ServerCertificate:' + str(self.ServerCertificate) + ', ' + \
3023
               'ServerEndpoints:' + str(self.ServerEndpoints) + ', ' + \
3024
               'ServerSoftwareCertificates:' + str(self.ServerSoftwareCertificates) + ', ' + \
3025
               'ServerSignature:' + str(self.ServerSignature) + ', ' + \
3026
               'MaxRequestMessageSize:' + str(self.MaxRequestMessageSize) + ')'
3027
3028 1
    __repr__ = __str__
3029
3030
3031 1
class CreateSessionResponse(FrozenClass):
3032
    '''
3033
    Creates a new session with the server.
3034
3035
    :ivar TypeId:
3036
    :vartype TypeId: NodeId
3037
    :ivar ResponseHeader:
3038
    :vartype ResponseHeader: ResponseHeader
3039
    :ivar Parameters:
3040
    :vartype Parameters: CreateSessionResult
3041
    '''
3042 1
    def __init__(self, binary=None):
3043 1
        if binary is not None:
3044 1
            self._binary_init(binary)
3045 1
            self._freeze = True
3046 1
            return
3047 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionResponse_Encoding_DefaultBinary)
3048 1
        self.ResponseHeader = ResponseHeader()
3049 1
        self.Parameters = CreateSessionResult()
3050 1
        self._freeze = True
3051
3052 1
    def to_binary(self):
3053 1
        packet = []
3054 1
        packet.append(self.TypeId.to_binary())
3055 1
        packet.append(self.ResponseHeader.to_binary())
3056 1
        packet.append(self.Parameters.to_binary())
3057 1
        return b''.join(packet)
3058
3059 1
    @staticmethod
3060
    def from_binary(data):
3061 1
        return CreateSessionResponse(data)
3062
3063 1
    def _binary_init(self, data):
3064 1
        self.TypeId = NodeId.from_binary(data)
3065 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
3066 1
        self.Parameters = CreateSessionResult.from_binary(data)
3067
3068 1
    def __str__(self):
3069
        return 'CreateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3070
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
3071
               'Parameters:' + str(self.Parameters) + ')'
3072
3073 1
    __repr__ = __str__
3074
3075
3076 1
class UserIdentityToken(FrozenClass):
3077
    '''
3078
    A base type for a user identity token.
3079
3080
    :ivar PolicyId:
3081
    :vartype PolicyId: String
3082
    '''
3083 1
    def __init__(self, binary=None):
3084
        if binary is not None:
3085
            self._binary_init(binary)
3086
            self._freeze = True
3087
            return
3088
        self.PolicyId = ''
3089
        self._freeze = True
3090
3091 1
    def to_binary(self):
3092
        packet = []
3093
        packet.append(pack_string(self.PolicyId))
3094
        return b''.join(packet)
3095
3096 1
    @staticmethod
3097
    def from_binary(data):
3098
        return UserIdentityToken(data)
3099
3100 1
    def _binary_init(self, data):
3101
        self.PolicyId = unpack_string(data)
3102
3103 1
    def __str__(self):
3104
        return 'UserIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
3105
3106 1
    __repr__ = __str__
3107
3108
3109 1
class AnonymousIdentityToken(FrozenClass):
3110
    '''
3111
    A token representing an anonymous user.
3112
3113
    :ivar PolicyId:
3114
    :vartype PolicyId: String
3115
    '''
3116 1
    def __init__(self, binary=None):
3117 1
        if binary is not None:
3118 1
            self._binary_init(binary)
3119 1
            self._freeze = True
3120 1
            return
3121 1
        self.PolicyId = ''
3122 1
        self._freeze = True
3123
3124 1
    def to_binary(self):
3125 1
        packet = []
3126 1
        packet.append(pack_string(self.PolicyId))
3127 1
        return b''.join(packet)
3128
3129 1
    @staticmethod
3130
    def from_binary(data):
3131 1
        return AnonymousIdentityToken(data)
3132
3133 1
    def _binary_init(self, data):
3134 1
        self.PolicyId = unpack_string(data)
3135
3136 1
    def __str__(self):
3137
        return 'AnonymousIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
3138
3139 1
    __repr__ = __str__
3140
3141
3142 1
class UserNameIdentityToken(FrozenClass):
3143
    '''
3144
    A token representing a user identified by a user name and password.
3145
3146
    :ivar PolicyId:
3147
    :vartype PolicyId: String
3148
    :ivar UserName:
3149
    :vartype UserName: String
3150
    :ivar Password:
3151
    :vartype Password: ByteString
3152
    :ivar EncryptionAlgorithm:
3153
    :vartype EncryptionAlgorithm: String
3154
    '''
3155 1
    def __init__(self, binary=None):
3156 1
        if binary is not None:
3157 1
            self._binary_init(binary)
3158 1
            self._freeze = True
3159 1
            return
3160 1
        self.PolicyId = ''
3161 1
        self.UserName = ''
3162 1
        self.Password = b''
3163 1
        self.EncryptionAlgorithm = ''
3164 1
        self._freeze = True
3165
3166 1
    def to_binary(self):
3167 1
        packet = []
3168 1
        packet.append(pack_string(self.PolicyId))
3169 1
        packet.append(pack_string(self.UserName))
3170 1
        packet.append(pack_bytes(self.Password))
3171 1
        packet.append(pack_string(self.EncryptionAlgorithm))
3172 1
        return b''.join(packet)
3173
3174 1
    @staticmethod
3175
    def from_binary(data):
3176 1
        return UserNameIdentityToken(data)
3177
3178 1
    def _binary_init(self, data):
3179 1
        self.PolicyId = unpack_string(data)
3180 1
        self.UserName = unpack_string(data)
3181 1
        self.Password = unpack_bytes(data)
3182 1
        self.EncryptionAlgorithm = unpack_string(data)
3183
3184 1
    def __str__(self):
3185
        return 'UserNameIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
3186
               'UserName:' + str(self.UserName) + ', ' + \
3187
               'Password:' + str(self.Password) + ', ' + \
3188
               'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
3189
3190 1
    __repr__ = __str__
3191
3192
3193 1
class X509IdentityToken(FrozenClass):
3194
    '''
3195
    A token representing a user identified by an X509 certificate.
3196
3197
    :ivar PolicyId:
3198
    :vartype PolicyId: String
3199
    :ivar CertificateData:
3200
    :vartype CertificateData: ByteString
3201
    '''
3202 1
    def __init__(self, binary=None):
3203
        if binary is not None:
3204
            self._binary_init(binary)
3205
            self._freeze = True
3206
            return
3207
        self.PolicyId = ''
3208
        self.CertificateData = b''
3209
        self._freeze = True
3210
3211 1
    def to_binary(self):
3212
        packet = []
3213
        packet.append(pack_string(self.PolicyId))
3214
        packet.append(pack_bytes(self.CertificateData))
3215
        return b''.join(packet)
3216
3217 1
    @staticmethod
3218
    def from_binary(data):
3219
        return X509IdentityToken(data)
3220
3221 1
    def _binary_init(self, data):
3222
        self.PolicyId = unpack_string(data)
3223
        self.CertificateData = unpack_bytes(data)
3224
3225 1
    def __str__(self):
3226
        return 'X509IdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
3227
               'CertificateData:' + str(self.CertificateData) + ')'
3228
3229 1
    __repr__ = __str__
3230
3231
3232 1
class KerberosIdentityToken(FrozenClass):
3233
    '''
3234
    :ivar PolicyId:
3235
    :vartype PolicyId: String
3236
    :ivar TicketData:
3237
    :vartype TicketData: ByteString
3238
    '''
3239 1
    def __init__(self, binary=None):
3240
        if binary is not None:
3241
            self._binary_init(binary)
3242
            self._freeze = True
3243
            return
3244
        self.PolicyId = ''
3245
        self.TicketData = b''
3246
        self._freeze = True
3247
3248 1
    def to_binary(self):
3249
        packet = []
3250
        packet.append(pack_string(self.PolicyId))
3251
        packet.append(pack_bytes(self.TicketData))
3252
        return b''.join(packet)
3253
3254 1
    @staticmethod
3255
    def from_binary(data):
3256
        return KerberosIdentityToken(data)
3257
3258 1
    def _binary_init(self, data):
3259
        self.PolicyId = unpack_string(data)
3260
        self.TicketData = unpack_bytes(data)
3261
3262 1
    def __str__(self):
3263
        return 'KerberosIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
3264
               'TicketData:' + str(self.TicketData) + ')'
3265
3266 1
    __repr__ = __str__
3267
3268
3269 1
class IssuedIdentityToken(FrozenClass):
3270
    '''
3271
    A token representing a user identified by a WS-Security XML token.
3272
3273
    :ivar PolicyId:
3274
    :vartype PolicyId: String
3275
    :ivar TokenData:
3276
    :vartype TokenData: ByteString
3277
    :ivar EncryptionAlgorithm:
3278
    :vartype EncryptionAlgorithm: String
3279
    '''
3280 1
    def __init__(self, binary=None):
3281
        if binary is not None:
3282
            self._binary_init(binary)
3283
            self._freeze = True
3284
            return
3285
        self.PolicyId = ''
3286
        self.TokenData = b''
3287
        self.EncryptionAlgorithm = ''
3288
        self._freeze = True
3289
3290 1
    def to_binary(self):
3291
        packet = []
3292
        packet.append(pack_string(self.PolicyId))
3293
        packet.append(pack_bytes(self.TokenData))
3294
        packet.append(pack_string(self.EncryptionAlgorithm))
3295
        return b''.join(packet)
3296
3297 1
    @staticmethod
3298
    def from_binary(data):
3299
        return IssuedIdentityToken(data)
3300
3301 1
    def _binary_init(self, data):
3302
        self.PolicyId = unpack_string(data)
3303
        self.TokenData = unpack_bytes(data)
3304
        self.EncryptionAlgorithm = unpack_string(data)
3305
3306 1
    def __str__(self):
3307
        return 'IssuedIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
3308
               'TokenData:' + str(self.TokenData) + ', ' + \
3309
               'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
3310
3311 1
    __repr__ = __str__
3312
3313
3314 1
class ActivateSessionParameters(FrozenClass):
3315
    '''
3316
    :ivar ClientSignature:
3317
    :vartype ClientSignature: SignatureData
3318
    :ivar ClientSoftwareCertificates:
3319
    :vartype ClientSoftwareCertificates: SignedSoftwareCertificate
3320
    :ivar LocaleIds:
3321
    :vartype LocaleIds: String
3322
    :ivar UserIdentityToken:
3323
    :vartype UserIdentityToken: ExtensionObject
3324
    :ivar UserTokenSignature:
3325
    :vartype UserTokenSignature: SignatureData
3326
    '''
3327 1
    def __init__(self, binary=None):
3328 1
        if binary is not None:
3329 1
            self._binary_init(binary)
3330 1
            self._freeze = True
3331 1
            return
3332 1
        self.ClientSignature = SignatureData()
3333 1
        self.ClientSoftwareCertificates = []
3334 1
        self.LocaleIds = []
3335 1
        self.UserIdentityToken = None
3336 1
        self.UserTokenSignature = SignatureData()
3337 1
        self._freeze = True
3338
3339 1
    def to_binary(self):
3340 1
        packet = []
3341 1
        packet.append(self.ClientSignature.to_binary())
3342 1
        packet.append(uatype_Int32.pack(len(self.ClientSoftwareCertificates)))
3343 1
        for fieldname in self.ClientSoftwareCertificates:
3344
            packet.append(fieldname.to_binary())
3345 1
        packet.append(uatype_Int32.pack(len(self.LocaleIds)))
3346 1
        for fieldname in self.LocaleIds:
3347 1
            packet.append(pack_string(fieldname))
3348 1
        packet.append(extensionobject_to_binary(self.UserIdentityToken))
3349 1
        packet.append(self.UserTokenSignature.to_binary())
3350 1
        return b''.join(packet)
3351
3352 1
    @staticmethod
3353
    def from_binary(data):
3354 1
        return ActivateSessionParameters(data)
3355
3356 1
    def _binary_init(self, data):
3357 1
        self.ClientSignature = SignatureData.from_binary(data)
3358 1
        length = uatype_Int32.unpack(data.read(4))[0]
3359 1
        array = []
3360 1
        if length != -1:
3361 1
            for _ in range(0, length):
3362
                array.append(SignedSoftwareCertificate.from_binary(data))
3363 1
        self.ClientSoftwareCertificates = array
3364 1
        self.LocaleIds = unpack_uatype_array('String', data)
3365 1
        self.UserIdentityToken = extensionobject_from_binary(data)
3366 1
        self.UserTokenSignature = SignatureData.from_binary(data)
3367
3368 1
    def __str__(self):
3369
        return 'ActivateSessionParameters(' + 'ClientSignature:' + str(self.ClientSignature) + ', ' + \
3370
               'ClientSoftwareCertificates:' + str(self.ClientSoftwareCertificates) + ', ' + \
3371
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
3372
               'UserIdentityToken:' + str(self.UserIdentityToken) + ', ' + \
3373
               'UserTokenSignature:' + str(self.UserTokenSignature) + ')'
3374
3375 1
    __repr__ = __str__
3376
3377
3378 1
class ActivateSessionRequest(FrozenClass):
3379
    '''
3380
    Activates a session with the server.
3381
3382
    :ivar TypeId:
3383
    :vartype TypeId: NodeId
3384
    :ivar RequestHeader:
3385
    :vartype RequestHeader: RequestHeader
3386
    :ivar Parameters:
3387
    :vartype Parameters: ActivateSessionParameters
3388
    '''
3389 1
    def __init__(self, binary=None):
3390 1
        if binary is not None:
3391
            self._binary_init(binary)
3392
            self._freeze = True
3393
            return
3394 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary)
3395 1
        self.RequestHeader = RequestHeader()
3396 1
        self.Parameters = ActivateSessionParameters()
3397 1
        self._freeze = True
3398
3399 1
    def to_binary(self):
3400 1
        packet = []
3401 1
        packet.append(self.TypeId.to_binary())
3402 1
        packet.append(self.RequestHeader.to_binary())
3403 1
        packet.append(self.Parameters.to_binary())
3404 1
        return b''.join(packet)
3405
3406 1
    @staticmethod
3407
    def from_binary(data):
3408
        return ActivateSessionRequest(data)
3409
3410 1
    def _binary_init(self, data):
3411
        self.TypeId = NodeId.from_binary(data)
3412
        self.RequestHeader = RequestHeader.from_binary(data)
3413
        self.Parameters = ActivateSessionParameters.from_binary(data)
3414
3415 1
    def __str__(self):
3416
        return 'ActivateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3417
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3418
               'Parameters:' + str(self.Parameters) + ')'
3419
3420 1
    __repr__ = __str__
3421
3422
3423 1
class ActivateSessionResult(FrozenClass):
3424
    '''
3425
    :ivar ServerNonce:
3426
    :vartype ServerNonce: ByteString
3427
    :ivar Results:
3428
    :vartype Results: StatusCode
3429
    :ivar DiagnosticInfos:
3430
    :vartype DiagnosticInfos: DiagnosticInfo
3431
    '''
3432 1
    def __init__(self, binary=None):
3433 1
        if binary is not None:
3434 1
            self._binary_init(binary)
3435 1
            self._freeze = True
3436 1
            return
3437 1
        self.ServerNonce = b''
3438 1
        self.Results = []
3439 1
        self.DiagnosticInfos = []
3440 1
        self._freeze = True
3441
3442 1
    def to_binary(self):
3443 1
        packet = []
3444 1
        packet.append(pack_bytes(self.ServerNonce))
3445 1
        packet.append(uatype_Int32.pack(len(self.Results)))
3446 1
        for fieldname in self.Results:
3447
            packet.append(fieldname.to_binary())
3448 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
3449 1
        for fieldname in self.DiagnosticInfos:
3450
            packet.append(fieldname.to_binary())
3451 1
        return b''.join(packet)
3452
3453 1
    @staticmethod
3454
    def from_binary(data):
3455 1
        return ActivateSessionResult(data)
3456
3457 1
    def _binary_init(self, data):
3458 1
        self.ServerNonce = unpack_bytes(data)
3459 1
        length = uatype_Int32.unpack(data.read(4))[0]
3460 1
        array = []
3461 1
        if length != -1:
3462 1
            for _ in range(0, length):
3463
                array.append(StatusCode.from_binary(data))
3464 1
        self.Results = array
3465 1
        length = uatype_Int32.unpack(data.read(4))[0]
3466 1
        array = []
3467 1
        if length != -1:
3468 1
            for _ in range(0, length):
3469
                array.append(DiagnosticInfo.from_binary(data))
3470 1
        self.DiagnosticInfos = array
3471
3472 1
    def __str__(self):
3473
        return 'ActivateSessionResult(' + 'ServerNonce:' + str(self.ServerNonce) + ', ' + \
3474
               'Results:' + str(self.Results) + ', ' + \
3475
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
3476
3477 1
    __repr__ = __str__
3478
3479
3480 1
class ActivateSessionResponse(FrozenClass):
3481
    '''
3482
    Activates a session with the server.
3483
3484
    :ivar TypeId:
3485
    :vartype TypeId: NodeId
3486
    :ivar ResponseHeader:
3487
    :vartype ResponseHeader: ResponseHeader
3488
    :ivar Parameters:
3489
    :vartype Parameters: ActivateSessionResult
3490
    '''
3491 1
    def __init__(self, binary=None):
3492 1
        if binary is not None:
3493 1
            self._binary_init(binary)
3494 1
            self._freeze = True
3495 1
            return
3496 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary)
3497 1
        self.ResponseHeader = ResponseHeader()
3498 1
        self.Parameters = ActivateSessionResult()
3499 1
        self._freeze = True
3500
3501 1
    def to_binary(self):
3502 1
        packet = []
3503 1
        packet.append(self.TypeId.to_binary())
3504 1
        packet.append(self.ResponseHeader.to_binary())
3505 1
        packet.append(self.Parameters.to_binary())
3506 1
        return b''.join(packet)
3507
3508 1
    @staticmethod
3509
    def from_binary(data):
3510 1
        return ActivateSessionResponse(data)
3511
3512 1
    def _binary_init(self, data):
3513 1
        self.TypeId = NodeId.from_binary(data)
3514 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
3515 1
        self.Parameters = ActivateSessionResult.from_binary(data)
3516
3517 1
    def __str__(self):
3518
        return 'ActivateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3519
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
3520
               'Parameters:' + str(self.Parameters) + ')'
3521
3522 1
    __repr__ = __str__
3523
3524
3525 1
class CloseSessionRequest(FrozenClass):
3526
    '''
3527
    Closes a session with the server.
3528
3529
    :ivar TypeId:
3530
    :vartype TypeId: NodeId
3531
    :ivar RequestHeader:
3532
    :vartype RequestHeader: RequestHeader
3533
    :ivar DeleteSubscriptions:
3534
    :vartype DeleteSubscriptions: Boolean
3535
    '''
3536 1
    def __init__(self, binary=None):
3537 1
        if binary is not None:
3538
            self._binary_init(binary)
3539
            self._freeze = True
3540
            return
3541 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionRequest_Encoding_DefaultBinary)
3542 1
        self.RequestHeader = RequestHeader()
3543 1
        self.DeleteSubscriptions = True
3544 1
        self._freeze = True
3545
3546 1
    def to_binary(self):
3547 1
        packet = []
3548 1
        packet.append(self.TypeId.to_binary())
3549 1
        packet.append(self.RequestHeader.to_binary())
3550 1
        packet.append(uatype_Boolean.pack(self.DeleteSubscriptions))
3551 1
        return b''.join(packet)
3552
3553 1
    @staticmethod
3554
    def from_binary(data):
3555
        return CloseSessionRequest(data)
3556
3557 1
    def _binary_init(self, data):
3558
        self.TypeId = NodeId.from_binary(data)
3559
        self.RequestHeader = RequestHeader.from_binary(data)
3560
        self.DeleteSubscriptions = uatype_Boolean.unpack(data.read(1))[0]
3561
3562 1
    def __str__(self):
3563
        return 'CloseSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3564
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3565
               'DeleteSubscriptions:' + str(self.DeleteSubscriptions) + ')'
3566
3567 1
    __repr__ = __str__
3568
3569
3570 1
class CloseSessionResponse(FrozenClass):
3571
    '''
3572
    Closes a session with the server.
3573
3574
    :ivar TypeId:
3575
    :vartype TypeId: NodeId
3576
    :ivar ResponseHeader:
3577
    :vartype ResponseHeader: ResponseHeader
3578
    '''
3579 1
    def __init__(self, binary=None):
3580 1
        if binary is not None:
3581 1
            self._binary_init(binary)
3582 1
            self._freeze = True
3583 1
            return
3584 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionResponse_Encoding_DefaultBinary)
3585 1
        self.ResponseHeader = ResponseHeader()
3586 1
        self._freeze = True
3587
3588 1
    def to_binary(self):
3589 1
        packet = []
3590 1
        packet.append(self.TypeId.to_binary())
3591 1
        packet.append(self.ResponseHeader.to_binary())
3592 1
        return b''.join(packet)
3593
3594 1
    @staticmethod
3595
    def from_binary(data):
3596 1
        return CloseSessionResponse(data)
3597
3598 1
    def _binary_init(self, data):
3599 1
        self.TypeId = NodeId.from_binary(data)
3600 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
3601
3602 1
    def __str__(self):
3603
        return 'CloseSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3604
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
3605
3606 1
    __repr__ = __str__
3607
3608
3609 1
class CancelParameters(FrozenClass):
3610
    '''
3611
    :ivar RequestHandle:
3612
    :vartype RequestHandle: UInt32
3613
    '''
3614 1
    def __init__(self, binary=None):
3615
        if binary is not None:
3616
            self._binary_init(binary)
3617
            self._freeze = True
3618
            return
3619
        self.RequestHandle = 0
3620
        self._freeze = True
3621
3622 1
    def to_binary(self):
3623
        packet = []
3624
        packet.append(uatype_UInt32.pack(self.RequestHandle))
3625
        return b''.join(packet)
3626
3627 1
    @staticmethod
3628
    def from_binary(data):
3629
        return CancelParameters(data)
3630
3631 1
    def _binary_init(self, data):
3632
        self.RequestHandle = uatype_UInt32.unpack(data.read(4))[0]
3633
3634 1
    def __str__(self):
3635
        return 'CancelParameters(' + 'RequestHandle:' + str(self.RequestHandle) + ')'
3636
3637 1
    __repr__ = __str__
3638
3639
3640 1
class CancelRequest(FrozenClass):
3641
    '''
3642
    Cancels an outstanding request.
3643
3644
    :ivar TypeId:
3645
    :vartype TypeId: NodeId
3646
    :ivar RequestHeader:
3647
    :vartype RequestHeader: RequestHeader
3648
    :ivar Parameters:
3649
    :vartype Parameters: CancelParameters
3650
    '''
3651 1
    def __init__(self, binary=None):
3652
        if binary is not None:
3653
            self._binary_init(binary)
3654
            self._freeze = True
3655
            return
3656
        self.TypeId = FourByteNodeId(ObjectIds.CancelRequest_Encoding_DefaultBinary)
3657
        self.RequestHeader = RequestHeader()
3658
        self.Parameters = CancelParameters()
3659
        self._freeze = True
3660
3661 1
    def to_binary(self):
3662
        packet = []
3663
        packet.append(self.TypeId.to_binary())
3664
        packet.append(self.RequestHeader.to_binary())
3665
        packet.append(self.Parameters.to_binary())
3666
        return b''.join(packet)
3667
3668 1
    @staticmethod
3669
    def from_binary(data):
3670
        return CancelRequest(data)
3671
3672 1
    def _binary_init(self, data):
3673
        self.TypeId = NodeId.from_binary(data)
3674
        self.RequestHeader = RequestHeader.from_binary(data)
3675
        self.Parameters = CancelParameters.from_binary(data)
3676
3677 1
    def __str__(self):
3678
        return 'CancelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3679
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3680
               'Parameters:' + str(self.Parameters) + ')'
3681
3682 1
    __repr__ = __str__
3683
3684
3685 1
class CancelResult(FrozenClass):
3686
    '''
3687
    :ivar CancelCount:
3688
    :vartype CancelCount: UInt32
3689
    '''
3690 1
    def __init__(self, binary=None):
3691
        if binary is not None:
3692
            self._binary_init(binary)
3693
            self._freeze = True
3694
            return
3695
        self.CancelCount = 0
3696
        self._freeze = True
3697
3698 1
    def to_binary(self):
3699
        packet = []
3700
        packet.append(uatype_UInt32.pack(self.CancelCount))
3701
        return b''.join(packet)
3702
3703 1
    @staticmethod
3704
    def from_binary(data):
3705
        return CancelResult(data)
3706
3707 1
    def _binary_init(self, data):
3708
        self.CancelCount = uatype_UInt32.unpack(data.read(4))[0]
3709
3710 1
    def __str__(self):
3711
        return 'CancelResult(' + 'CancelCount:' + str(self.CancelCount) + ')'
3712
3713 1
    __repr__ = __str__
3714
3715
3716 1
class CancelResponse(FrozenClass):
3717
    '''
3718
    Cancels an outstanding request.
3719
3720
    :ivar TypeId:
3721
    :vartype TypeId: NodeId
3722
    :ivar ResponseHeader:
3723
    :vartype ResponseHeader: ResponseHeader
3724
    :ivar Parameters:
3725
    :vartype Parameters: CancelResult
3726
    '''
3727 1
    def __init__(self, binary=None):
3728
        if binary is not None:
3729
            self._binary_init(binary)
3730
            self._freeze = True
3731
            return
3732
        self.TypeId = FourByteNodeId(ObjectIds.CancelResponse_Encoding_DefaultBinary)
3733
        self.ResponseHeader = ResponseHeader()
3734
        self.Parameters = CancelResult()
3735
        self._freeze = True
3736
3737 1
    def to_binary(self):
3738
        packet = []
3739
        packet.append(self.TypeId.to_binary())
3740
        packet.append(self.ResponseHeader.to_binary())
3741
        packet.append(self.Parameters.to_binary())
3742
        return b''.join(packet)
3743
3744 1
    @staticmethod
3745
    def from_binary(data):
3746
        return CancelResponse(data)
3747
3748 1
    def _binary_init(self, data):
3749
        self.TypeId = NodeId.from_binary(data)
3750
        self.ResponseHeader = ResponseHeader.from_binary(data)
3751
        self.Parameters = CancelResult.from_binary(data)
3752
3753 1
    def __str__(self):
3754
        return 'CancelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3755
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
3756
               'Parameters:' + str(self.Parameters) + ')'
3757
3758 1
    __repr__ = __str__
3759
3760
3761 1
class NodeAttributes(FrozenClass):
3762
    '''
3763
    The base attributes for all nodes.
3764
3765
    :ivar SpecifiedAttributes:
3766
    :vartype SpecifiedAttributes: UInt32
3767
    :ivar DisplayName:
3768
    :vartype DisplayName: LocalizedText
3769
    :ivar Description:
3770
    :vartype Description: LocalizedText
3771
    :ivar WriteMask:
3772
    :vartype WriteMask: UInt32
3773
    :ivar UserWriteMask:
3774
    :vartype UserWriteMask: UInt32
3775
    '''
3776 1
    def __init__(self, binary=None):
3777
        if binary is not None:
3778
            self._binary_init(binary)
3779
            self._freeze = True
3780
            return
3781
        self.SpecifiedAttributes = 0
3782
        self.DisplayName = LocalizedText()
3783
        self.Description = LocalizedText()
3784
        self.WriteMask = 0
3785
        self.UserWriteMask = 0
3786
        self._freeze = True
3787
3788 1
    def to_binary(self):
3789
        packet = []
3790
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
3791
        packet.append(self.DisplayName.to_binary())
3792
        packet.append(self.Description.to_binary())
3793
        packet.append(uatype_UInt32.pack(self.WriteMask))
3794
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
3795
        return b''.join(packet)
3796
3797 1
    @staticmethod
3798
    def from_binary(data):
3799
        return NodeAttributes(data)
3800
3801 1
    def _binary_init(self, data):
3802
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
3803
        self.DisplayName = LocalizedText.from_binary(data)
3804
        self.Description = LocalizedText.from_binary(data)
3805
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
3806
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
3807
3808 1
    def __str__(self):
3809
        return 'NodeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3810
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3811
               'Description:' + str(self.Description) + ', ' + \
3812
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3813
               'UserWriteMask:' + str(self.UserWriteMask) + ')'
3814
3815 1
    __repr__ = __str__
3816
3817
3818 1
class ObjectAttributes(FrozenClass):
3819
    '''
3820
    The attributes for an object node.
3821
3822
    :ivar SpecifiedAttributes:
3823
    :vartype SpecifiedAttributes: UInt32
3824
    :ivar DisplayName:
3825
    :vartype DisplayName: LocalizedText
3826
    :ivar Description:
3827
    :vartype Description: LocalizedText
3828
    :ivar WriteMask:
3829
    :vartype WriteMask: UInt32
3830
    :ivar UserWriteMask:
3831
    :vartype UserWriteMask: UInt32
3832
    :ivar EventNotifier:
3833
    :vartype EventNotifier: Byte
3834
    '''
3835 1
    def __init__(self, binary=None):
3836 1
        if binary is not None:
3837 1
            self._binary_init(binary)
3838 1
            self._freeze = True
3839 1
            return
3840 1
        self.SpecifiedAttributes = 0
3841 1
        self.DisplayName = LocalizedText()
3842 1
        self.Description = LocalizedText()
3843 1
        self.WriteMask = 0
3844 1
        self.UserWriteMask = 0
3845 1
        self.EventNotifier = 0
3846 1
        self._freeze = True
3847
3848 1
    def to_binary(self):
3849 1
        packet = []
3850 1
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
3851 1
        packet.append(self.DisplayName.to_binary())
3852 1
        packet.append(self.Description.to_binary())
3853 1
        packet.append(uatype_UInt32.pack(self.WriteMask))
3854 1
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
3855 1
        packet.append(uatype_Byte.pack(self.EventNotifier))
3856 1
        return b''.join(packet)
3857
3858 1
    @staticmethod
3859
    def from_binary(data):
3860 1
        return ObjectAttributes(data)
3861
3862 1
    def _binary_init(self, data):
3863 1
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
3864 1
        self.DisplayName = LocalizedText.from_binary(data)
3865 1
        self.Description = LocalizedText.from_binary(data)
3866 1
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
3867 1
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
3868 1
        self.EventNotifier = uatype_Byte.unpack(data.read(1))[0]
3869
3870 1
    def __str__(self):
3871
        return 'ObjectAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3872
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3873
               'Description:' + str(self.Description) + ', ' + \
3874
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3875
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3876
               'EventNotifier:' + str(self.EventNotifier) + ')'
3877
3878 1
    __repr__ = __str__
3879
3880
3881 1
class VariableAttributes(FrozenClass):
3882
    '''
3883
    The attributes for a variable node.
3884
3885
    :ivar SpecifiedAttributes:
3886
    :vartype SpecifiedAttributes: UInt32
3887
    :ivar DisplayName:
3888
    :vartype DisplayName: LocalizedText
3889
    :ivar Description:
3890
    :vartype Description: LocalizedText
3891
    :ivar WriteMask:
3892
    :vartype WriteMask: UInt32
3893
    :ivar UserWriteMask:
3894
    :vartype UserWriteMask: UInt32
3895
    :ivar Value:
3896
    :vartype Value: Variant
3897
    :ivar DataType:
3898
    :vartype DataType: NodeId
3899
    :ivar ValueRank:
3900
    :vartype ValueRank: Int32
3901
    :ivar ArrayDimensions:
3902
    :vartype ArrayDimensions: UInt32
3903
    :ivar AccessLevel:
3904
    :vartype AccessLevel: Byte
3905
    :ivar UserAccessLevel:
3906
    :vartype UserAccessLevel: Byte
3907
    :ivar MinimumSamplingInterval:
3908
    :vartype MinimumSamplingInterval: Double
3909
    :ivar Historizing:
3910
    :vartype Historizing: Boolean
3911
    '''
3912 1
    def __init__(self, binary=None):
3913 1
        if binary is not None:
3914 1
            self._binary_init(binary)
3915 1
            self._freeze = True
3916 1
            return
3917 1
        self.SpecifiedAttributes = 0
3918 1
        self.DisplayName = LocalizedText()
3919 1
        self.Description = LocalizedText()
3920 1
        self.WriteMask = 0
3921 1
        self.UserWriteMask = 0
3922 1
        self.Value = Variant()
3923 1
        self.DataType = NodeId()
3924 1
        self.ValueRank = 0
3925 1
        self.ArrayDimensions = []
3926 1
        self.AccessLevel = 0
3927 1
        self.UserAccessLevel = 0
3928 1
        self.MinimumSamplingInterval = 0
3929 1
        self.Historizing = True
3930 1
        self._freeze = True
3931
3932 1
    def to_binary(self):
3933 1
        packet = []
3934 1
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
3935 1
        packet.append(self.DisplayName.to_binary())
3936 1
        packet.append(self.Description.to_binary())
3937 1
        packet.append(uatype_UInt32.pack(self.WriteMask))
3938 1
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
3939 1
        packet.append(self.Value.to_binary())
3940 1
        packet.append(self.DataType.to_binary())
3941 1
        packet.append(uatype_Int32.pack(self.ValueRank))
3942 1
        packet.append(uatype_Int32.pack(len(self.ArrayDimensions)))
3943 1
        for fieldname in self.ArrayDimensions:
3944
            packet.append(uatype_UInt32.pack(fieldname))
3945 1
        packet.append(uatype_Byte.pack(self.AccessLevel))
3946 1
        packet.append(uatype_Byte.pack(self.UserAccessLevel))
3947 1
        packet.append(uatype_Double.pack(self.MinimumSamplingInterval))
3948 1
        packet.append(uatype_Boolean.pack(self.Historizing))
3949 1
        return b''.join(packet)
3950
3951 1
    @staticmethod
3952
    def from_binary(data):
3953 1
        return VariableAttributes(data)
3954
3955 1
    def _binary_init(self, data):
3956 1
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
3957 1
        self.DisplayName = LocalizedText.from_binary(data)
3958 1
        self.Description = LocalizedText.from_binary(data)
3959 1
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
3960 1
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
3961 1
        self.Value = Variant.from_binary(data)
3962 1
        self.DataType = NodeId.from_binary(data)
3963 1
        self.ValueRank = uatype_Int32.unpack(data.read(4))[0]
3964 1
        self.ArrayDimensions = unpack_uatype_array('UInt32', data)
3965 1
        self.AccessLevel = uatype_Byte.unpack(data.read(1))[0]
3966 1
        self.UserAccessLevel = uatype_Byte.unpack(data.read(1))[0]
3967 1
        self.MinimumSamplingInterval = uatype_Double.unpack(data.read(8))[0]
3968 1
        self.Historizing = uatype_Boolean.unpack(data.read(1))[0]
3969
3970 1
    def __str__(self):
3971
        return 'VariableAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3972
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3973
               'Description:' + str(self.Description) + ', ' + \
3974
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3975
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3976
               'Value:' + str(self.Value) + ', ' + \
3977
               'DataType:' + str(self.DataType) + ', ' + \
3978
               'ValueRank:' + str(self.ValueRank) + ', ' + \
3979
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
3980
               'AccessLevel:' + str(self.AccessLevel) + ', ' + \
3981
               'UserAccessLevel:' + str(self.UserAccessLevel) + ', ' + \
3982
               'MinimumSamplingInterval:' + str(self.MinimumSamplingInterval) + ', ' + \
3983
               'Historizing:' + str(self.Historizing) + ')'
3984
3985 1
    __repr__ = __str__
3986
3987
3988 1
class MethodAttributes(FrozenClass):
3989
    '''
3990
    The attributes for a method node.
3991
3992
    :ivar SpecifiedAttributes:
3993
    :vartype SpecifiedAttributes: UInt32
3994
    :ivar DisplayName:
3995
    :vartype DisplayName: LocalizedText
3996
    :ivar Description:
3997
    :vartype Description: LocalizedText
3998
    :ivar WriteMask:
3999
    :vartype WriteMask: UInt32
4000
    :ivar UserWriteMask:
4001
    :vartype UserWriteMask: UInt32
4002
    :ivar Executable:
4003
    :vartype Executable: Boolean
4004
    :ivar UserExecutable:
4005
    :vartype UserExecutable: Boolean
4006
    '''
4007 1
    def __init__(self, binary=None):
4008 1
        if binary is not None:
4009
            self._binary_init(binary)
4010
            self._freeze = True
4011
            return
4012 1
        self.SpecifiedAttributes = 0
4013 1
        self.DisplayName = LocalizedText()
4014 1
        self.Description = LocalizedText()
4015 1
        self.WriteMask = 0
4016 1
        self.UserWriteMask = 0
4017 1
        self.Executable = True
4018 1
        self.UserExecutable = True
4019 1
        self._freeze = True
4020
4021 1
    def to_binary(self):
4022
        packet = []
4023
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4024
        packet.append(self.DisplayName.to_binary())
4025
        packet.append(self.Description.to_binary())
4026
        packet.append(uatype_UInt32.pack(self.WriteMask))
4027
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4028
        packet.append(uatype_Boolean.pack(self.Executable))
4029
        packet.append(uatype_Boolean.pack(self.UserExecutable))
4030
        return b''.join(packet)
4031
4032 1
    @staticmethod
4033
    def from_binary(data):
4034
        return MethodAttributes(data)
4035
4036 1
    def _binary_init(self, data):
4037
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4038
        self.DisplayName = LocalizedText.from_binary(data)
4039
        self.Description = LocalizedText.from_binary(data)
4040
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4041
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4042
        self.Executable = uatype_Boolean.unpack(data.read(1))[0]
4043
        self.UserExecutable = uatype_Boolean.unpack(data.read(1))[0]
4044
4045 1
    def __str__(self):
4046
        return 'MethodAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4047
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4048
               'Description:' + str(self.Description) + ', ' + \
4049
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4050
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4051
               'Executable:' + str(self.Executable) + ', ' + \
4052
               'UserExecutable:' + str(self.UserExecutable) + ')'
4053
4054 1
    __repr__ = __str__
4055
4056
4057 1
class ObjectTypeAttributes(FrozenClass):
4058
    '''
4059
    The attributes for an object type node.
4060
4061
    :ivar SpecifiedAttributes:
4062
    :vartype SpecifiedAttributes: UInt32
4063
    :ivar DisplayName:
4064
    :vartype DisplayName: LocalizedText
4065
    :ivar Description:
4066
    :vartype Description: LocalizedText
4067
    :ivar WriteMask:
4068
    :vartype WriteMask: UInt32
4069
    :ivar UserWriteMask:
4070
    :vartype UserWriteMask: UInt32
4071
    :ivar IsAbstract:
4072
    :vartype IsAbstract: Boolean
4073
    '''
4074 1
    def __init__(self, binary=None):
4075 1
        if binary is not None:
4076
            self._binary_init(binary)
4077
            self._freeze = True
4078
            return
4079 1
        self.SpecifiedAttributes = 0
4080 1
        self.DisplayName = LocalizedText()
4081 1
        self.Description = LocalizedText()
4082 1
        self.WriteMask = 0
4083 1
        self.UserWriteMask = 0
4084 1
        self.IsAbstract = True
4085 1
        self._freeze = True
4086
4087 1
    def to_binary(self):
4088
        packet = []
4089
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4090
        packet.append(self.DisplayName.to_binary())
4091
        packet.append(self.Description.to_binary())
4092
        packet.append(uatype_UInt32.pack(self.WriteMask))
4093
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4094
        packet.append(uatype_Boolean.pack(self.IsAbstract))
4095
        return b''.join(packet)
4096
4097 1
    @staticmethod
4098
    def from_binary(data):
4099
        return ObjectTypeAttributes(data)
4100
4101 1
    def _binary_init(self, data):
4102
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4103
        self.DisplayName = LocalizedText.from_binary(data)
4104
        self.Description = LocalizedText.from_binary(data)
4105
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4106
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4107
        self.IsAbstract = uatype_Boolean.unpack(data.read(1))[0]
4108
4109 1
    def __str__(self):
4110
        return 'ObjectTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4111
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4112
               'Description:' + str(self.Description) + ', ' + \
4113
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4114
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4115
               'IsAbstract:' + str(self.IsAbstract) + ')'
4116
4117 1
    __repr__ = __str__
4118
4119
4120 1
class VariableTypeAttributes(FrozenClass):
4121
    '''
4122
    The attributes for a variable type node.
4123
4124
    :ivar SpecifiedAttributes:
4125
    :vartype SpecifiedAttributes: UInt32
4126
    :ivar DisplayName:
4127
    :vartype DisplayName: LocalizedText
4128
    :ivar Description:
4129
    :vartype Description: LocalizedText
4130
    :ivar WriteMask:
4131
    :vartype WriteMask: UInt32
4132
    :ivar UserWriteMask:
4133
    :vartype UserWriteMask: UInt32
4134
    :ivar Value:
4135
    :vartype Value: Variant
4136
    :ivar DataType:
4137
    :vartype DataType: NodeId
4138
    :ivar ValueRank:
4139
    :vartype ValueRank: Int32
4140
    :ivar ArrayDimensions:
4141
    :vartype ArrayDimensions: UInt32
4142
    :ivar IsAbstract:
4143
    :vartype IsAbstract: Boolean
4144
    '''
4145 1
    def __init__(self, binary=None):
4146 1
        if binary is not None:
4147
            self._binary_init(binary)
4148
            self._freeze = True
4149
            return
4150 1
        self.SpecifiedAttributes = 0
4151 1
        self.DisplayName = LocalizedText()
4152 1
        self.Description = LocalizedText()
4153 1
        self.WriteMask = 0
4154 1
        self.UserWriteMask = 0
4155 1
        self.Value = Variant()
4156 1
        self.DataType = NodeId()
4157 1
        self.ValueRank = 0
4158 1
        self.ArrayDimensions = []
4159 1
        self.IsAbstract = True
4160 1
        self._freeze = True
4161
4162 1
    def to_binary(self):
4163
        packet = []
4164
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4165
        packet.append(self.DisplayName.to_binary())
4166
        packet.append(self.Description.to_binary())
4167
        packet.append(uatype_UInt32.pack(self.WriteMask))
4168
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4169
        packet.append(self.Value.to_binary())
4170
        packet.append(self.DataType.to_binary())
4171
        packet.append(uatype_Int32.pack(self.ValueRank))
4172
        packet.append(uatype_Int32.pack(len(self.ArrayDimensions)))
4173
        for fieldname in self.ArrayDimensions:
4174
            packet.append(uatype_UInt32.pack(fieldname))
4175
        packet.append(uatype_Boolean.pack(self.IsAbstract))
4176
        return b''.join(packet)
4177
4178 1
    @staticmethod
4179
    def from_binary(data):
4180
        return VariableTypeAttributes(data)
4181
4182 1
    def _binary_init(self, data):
4183
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4184
        self.DisplayName = LocalizedText.from_binary(data)
4185
        self.Description = LocalizedText.from_binary(data)
4186
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4187
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4188
        self.Value = Variant.from_binary(data)
4189
        self.DataType = NodeId.from_binary(data)
4190
        self.ValueRank = uatype_Int32.unpack(data.read(4))[0]
4191
        self.ArrayDimensions = unpack_uatype_array('UInt32', data)
4192
        self.IsAbstract = uatype_Boolean.unpack(data.read(1))[0]
4193
4194 1
    def __str__(self):
4195
        return 'VariableTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4196
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4197
               'Description:' + str(self.Description) + ', ' + \
4198
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4199
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4200
               'Value:' + str(self.Value) + ', ' + \
4201
               'DataType:' + str(self.DataType) + ', ' + \
4202
               'ValueRank:' + str(self.ValueRank) + ', ' + \
4203
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
4204
               'IsAbstract:' + str(self.IsAbstract) + ')'
4205
4206 1
    __repr__ = __str__
4207
4208
4209 1
class ReferenceTypeAttributes(FrozenClass):
4210
    '''
4211
    The attributes for a reference type node.
4212
4213
    :ivar SpecifiedAttributes:
4214
    :vartype SpecifiedAttributes: UInt32
4215
    :ivar DisplayName:
4216
    :vartype DisplayName: LocalizedText
4217
    :ivar Description:
4218
    :vartype Description: LocalizedText
4219
    :ivar WriteMask:
4220
    :vartype WriteMask: UInt32
4221
    :ivar UserWriteMask:
4222
    :vartype UserWriteMask: UInt32
4223
    :ivar IsAbstract:
4224
    :vartype IsAbstract: Boolean
4225
    :ivar Symmetric:
4226
    :vartype Symmetric: Boolean
4227
    :ivar InverseName:
4228
    :vartype InverseName: LocalizedText
4229
    '''
4230 1
    def __init__(self, binary=None):
4231 1
        if binary is not None:
4232
            self._binary_init(binary)
4233
            self._freeze = True
4234
            return
4235 1
        self.SpecifiedAttributes = 0
4236 1
        self.DisplayName = LocalizedText()
4237 1
        self.Description = LocalizedText()
4238 1
        self.WriteMask = 0
4239 1
        self.UserWriteMask = 0
4240 1
        self.IsAbstract = True
4241 1
        self.Symmetric = True
4242 1
        self.InverseName = LocalizedText()
4243 1
        self._freeze = True
4244
4245 1
    def to_binary(self):
4246
        packet = []
4247
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4248
        packet.append(self.DisplayName.to_binary())
4249
        packet.append(self.Description.to_binary())
4250
        packet.append(uatype_UInt32.pack(self.WriteMask))
4251
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4252
        packet.append(uatype_Boolean.pack(self.IsAbstract))
4253
        packet.append(uatype_Boolean.pack(self.Symmetric))
4254
        packet.append(self.InverseName.to_binary())
4255
        return b''.join(packet)
4256
4257 1
    @staticmethod
4258
    def from_binary(data):
4259
        return ReferenceTypeAttributes(data)
4260
4261 1
    def _binary_init(self, data):
4262
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4263
        self.DisplayName = LocalizedText.from_binary(data)
4264
        self.Description = LocalizedText.from_binary(data)
4265
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4266
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4267
        self.IsAbstract = uatype_Boolean.unpack(data.read(1))[0]
4268
        self.Symmetric = uatype_Boolean.unpack(data.read(1))[0]
4269
        self.InverseName = LocalizedText.from_binary(data)
4270
4271 1
    def __str__(self):
4272
        return 'ReferenceTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4273
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4274
               'Description:' + str(self.Description) + ', ' + \
4275
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4276
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4277
               'IsAbstract:' + str(self.IsAbstract) + ', ' + \
4278
               'Symmetric:' + str(self.Symmetric) + ', ' + \
4279
               'InverseName:' + str(self.InverseName) + ')'
4280
4281 1
    __repr__ = __str__
4282
4283
4284 1
class DataTypeAttributes(FrozenClass):
4285
    '''
4286
    The attributes for a data type node.
4287
4288
    :ivar SpecifiedAttributes:
4289
    :vartype SpecifiedAttributes: UInt32
4290
    :ivar DisplayName:
4291
    :vartype DisplayName: LocalizedText
4292
    :ivar Description:
4293
    :vartype Description: LocalizedText
4294
    :ivar WriteMask:
4295
    :vartype WriteMask: UInt32
4296
    :ivar UserWriteMask:
4297
    :vartype UserWriteMask: UInt32
4298
    :ivar IsAbstract:
4299
    :vartype IsAbstract: Boolean
4300
    '''
4301 1
    def __init__(self, binary=None):
4302 1
        if binary is not None:
4303
            self._binary_init(binary)
4304
            self._freeze = True
4305
            return
4306 1
        self.SpecifiedAttributes = 0
4307 1
        self.DisplayName = LocalizedText()
4308 1
        self.Description = LocalizedText()
4309 1
        self.WriteMask = 0
4310 1
        self.UserWriteMask = 0
4311 1
        self.IsAbstract = True
4312 1
        self._freeze = True
4313
4314 1
    def to_binary(self):
4315
        packet = []
4316
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4317
        packet.append(self.DisplayName.to_binary())
4318
        packet.append(self.Description.to_binary())
4319
        packet.append(uatype_UInt32.pack(self.WriteMask))
4320
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4321
        packet.append(uatype_Boolean.pack(self.IsAbstract))
4322
        return b''.join(packet)
4323
4324 1
    @staticmethod
4325
    def from_binary(data):
4326
        return DataTypeAttributes(data)
4327
4328 1
    def _binary_init(self, data):
4329
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4330
        self.DisplayName = LocalizedText.from_binary(data)
4331
        self.Description = LocalizedText.from_binary(data)
4332
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4333
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4334
        self.IsAbstract = uatype_Boolean.unpack(data.read(1))[0]
4335
4336 1
    def __str__(self):
4337
        return 'DataTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4338
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4339
               'Description:' + str(self.Description) + ', ' + \
4340
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4341
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4342
               'IsAbstract:' + str(self.IsAbstract) + ')'
4343
4344 1
    __repr__ = __str__
4345
4346
4347 1
class ViewAttributes(FrozenClass):
4348
    '''
4349
    The attributes for a view node.
4350
4351
    :ivar SpecifiedAttributes:
4352
    :vartype SpecifiedAttributes: UInt32
4353
    :ivar DisplayName:
4354
    :vartype DisplayName: LocalizedText
4355
    :ivar Description:
4356
    :vartype Description: LocalizedText
4357
    :ivar WriteMask:
4358
    :vartype WriteMask: UInt32
4359
    :ivar UserWriteMask:
4360
    :vartype UserWriteMask: UInt32
4361
    :ivar ContainsNoLoops:
4362
    :vartype ContainsNoLoops: Boolean
4363
    :ivar EventNotifier:
4364
    :vartype EventNotifier: Byte
4365
    '''
4366 1
    def __init__(self, binary=None):
4367
        if binary is not None:
4368
            self._binary_init(binary)
4369
            self._freeze = True
4370
            return
4371
        self.SpecifiedAttributes = 0
4372
        self.DisplayName = LocalizedText()
4373
        self.Description = LocalizedText()
4374
        self.WriteMask = 0
4375
        self.UserWriteMask = 0
4376
        self.ContainsNoLoops = True
4377
        self.EventNotifier = 0
4378
        self._freeze = True
4379
4380 1
    def to_binary(self):
4381
        packet = []
4382
        packet.append(uatype_UInt32.pack(self.SpecifiedAttributes))
4383
        packet.append(self.DisplayName.to_binary())
4384
        packet.append(self.Description.to_binary())
4385
        packet.append(uatype_UInt32.pack(self.WriteMask))
4386
        packet.append(uatype_UInt32.pack(self.UserWriteMask))
4387
        packet.append(uatype_Boolean.pack(self.ContainsNoLoops))
4388
        packet.append(uatype_Byte.pack(self.EventNotifier))
4389
        return b''.join(packet)
4390
4391 1
    @staticmethod
4392
    def from_binary(data):
4393
        return ViewAttributes(data)
4394
4395 1
    def _binary_init(self, data):
4396
        self.SpecifiedAttributes = uatype_UInt32.unpack(data.read(4))[0]
4397
        self.DisplayName = LocalizedText.from_binary(data)
4398
        self.Description = LocalizedText.from_binary(data)
4399
        self.WriteMask = uatype_UInt32.unpack(data.read(4))[0]
4400
        self.UserWriteMask = uatype_UInt32.unpack(data.read(4))[0]
4401
        self.ContainsNoLoops = uatype_Boolean.unpack(data.read(1))[0]
4402
        self.EventNotifier = uatype_Byte.unpack(data.read(1))[0]
4403
4404 1
    def __str__(self):
4405
        return 'ViewAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4406
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4407
               'Description:' + str(self.Description) + ', ' + \
4408
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4409
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4410
               'ContainsNoLoops:' + str(self.ContainsNoLoops) + ', ' + \
4411
               'EventNotifier:' + str(self.EventNotifier) + ')'
4412
4413 1
    __repr__ = __str__
4414
4415
4416 1
class AddNodesItem(FrozenClass):
4417
    '''
4418
    A request to add a node to the server address space.
4419
4420
    :ivar ParentNodeId:
4421
    :vartype ParentNodeId: ExpandedNodeId
4422
    :ivar ReferenceTypeId:
4423
    :vartype ReferenceTypeId: NodeId
4424
    :ivar RequestedNewNodeId:
4425
    :vartype RequestedNewNodeId: ExpandedNodeId
4426
    :ivar BrowseName:
4427
    :vartype BrowseName: QualifiedName
4428
    :ivar NodeClass:
4429
    :vartype NodeClass: NodeClass
4430
    :ivar NodeAttributes:
4431
    :vartype NodeAttributes: ExtensionObject
4432
    :ivar TypeDefinition:
4433
    :vartype TypeDefinition: ExpandedNodeId
4434
    '''
4435 1
    def __init__(self, binary=None):
4436 1
        if binary is not None:
4437 1
            self._binary_init(binary)
4438 1
            self._freeze = True
4439 1
            return
4440 1
        self.ParentNodeId = ExpandedNodeId()
4441 1
        self.ReferenceTypeId = NodeId()
4442 1
        self.RequestedNewNodeId = ExpandedNodeId()
4443 1
        self.BrowseName = QualifiedName()
4444 1
        self.NodeClass = NodeClass(0)
4445 1
        self.NodeAttributes = None
4446 1
        self.TypeDefinition = ExpandedNodeId()
4447 1
        self._freeze = True
4448
4449 1
    def to_binary(self):
4450 1
        packet = []
4451 1
        packet.append(self.ParentNodeId.to_binary())
4452 1
        packet.append(self.ReferenceTypeId.to_binary())
4453 1
        packet.append(self.RequestedNewNodeId.to_binary())
4454 1
        packet.append(self.BrowseName.to_binary())
4455 1
        packet.append(uatype_UInt32.pack(self.NodeClass.value))
4456 1
        packet.append(extensionobject_to_binary(self.NodeAttributes))
4457 1
        packet.append(self.TypeDefinition.to_binary())
4458 1
        return b''.join(packet)
4459
4460 1
    @staticmethod
4461
    def from_binary(data):
4462 1
        return AddNodesItem(data)
4463
4464 1
    def _binary_init(self, data):
4465 1
        self.ParentNodeId = ExpandedNodeId.from_binary(data)
4466 1
        self.ReferenceTypeId = NodeId.from_binary(data)
4467 1
        self.RequestedNewNodeId = ExpandedNodeId.from_binary(data)
4468 1
        self.BrowseName = QualifiedName.from_binary(data)
4469 1
        self.NodeClass = NodeClass(uatype_UInt32.unpack(data.read(4))[0])
4470 1
        self.NodeAttributes = extensionobject_from_binary(data)
4471 1
        self.TypeDefinition = ExpandedNodeId.from_binary(data)
4472
4473 1
    def __str__(self):
4474
        return 'AddNodesItem(' + 'ParentNodeId:' + str(self.ParentNodeId) + ', ' + \
4475
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4476
               'RequestedNewNodeId:' + str(self.RequestedNewNodeId) + ', ' + \
4477
               'BrowseName:' + str(self.BrowseName) + ', ' + \
4478
               'NodeClass:' + str(self.NodeClass) + ', ' + \
4479
               'NodeAttributes:' + str(self.NodeAttributes) + ', ' + \
4480
               'TypeDefinition:' + str(self.TypeDefinition) + ')'
4481
4482 1
    __repr__ = __str__
4483
4484
4485 1
class AddNodesResult(FrozenClass):
4486
    '''
4487
    A result of an add node operation.
4488
4489
    :ivar StatusCode:
4490
    :vartype StatusCode: StatusCode
4491
    :ivar AddedNodeId:
4492
    :vartype AddedNodeId: NodeId
4493
    '''
4494 1
    def __init__(self, binary=None):
4495 1
        if binary is not None:
4496 1
            self._binary_init(binary)
4497 1
            self._freeze = True
4498 1
            return
4499 1
        self.StatusCode = StatusCode()
4500 1
        self.AddedNodeId = NodeId()
4501 1
        self._freeze = True
4502
4503 1
    def to_binary(self):
4504 1
        packet = []
4505 1
        packet.append(self.StatusCode.to_binary())
4506 1
        packet.append(self.AddedNodeId.to_binary())
4507 1
        return b''.join(packet)
4508
4509 1
    @staticmethod
4510
    def from_binary(data):
4511 1
        return AddNodesResult(data)
4512
4513 1
    def _binary_init(self, data):
4514 1
        self.StatusCode = StatusCode.from_binary(data)
4515 1
        self.AddedNodeId = NodeId.from_binary(data)
4516
4517 1
    def __str__(self):
4518
        return 'AddNodesResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
4519
               'AddedNodeId:' + str(self.AddedNodeId) + ')'
4520
4521 1
    __repr__ = __str__
4522
4523
4524 1
class AddNodesParameters(FrozenClass):
4525
    '''
4526
    :ivar NodesToAdd:
4527
    :vartype NodesToAdd: AddNodesItem
4528
    '''
4529 1
    def __init__(self, binary=None):
4530 1
        if binary is not None:
4531 1
            self._binary_init(binary)
4532 1
            self._freeze = True
4533 1
            return
4534 1
        self.NodesToAdd = []
4535 1
        self._freeze = True
4536
4537 1
    def to_binary(self):
4538 1
        packet = []
4539 1
        packet.append(uatype_Int32.pack(len(self.NodesToAdd)))
4540 1
        for fieldname in self.NodesToAdd:
4541 1
            packet.append(fieldname.to_binary())
4542 1
        return b''.join(packet)
4543
4544 1
    @staticmethod
4545
    def from_binary(data):
4546 1
        return AddNodesParameters(data)
4547
4548 1
    def _binary_init(self, data):
4549 1
        length = uatype_Int32.unpack(data.read(4))[0]
4550 1
        array = []
4551 1
        if length != -1:
4552 1
            for _ in range(0, length):
4553 1
                array.append(AddNodesItem.from_binary(data))
4554 1
        self.NodesToAdd = array
4555
4556 1
    def __str__(self):
4557
        return 'AddNodesParameters(' + 'NodesToAdd:' + str(self.NodesToAdd) + ')'
4558
4559 1
    __repr__ = __str__
4560
4561
4562 1
class AddNodesRequest(FrozenClass):
4563
    '''
4564
    Adds one or more nodes to the server address space.
4565
4566
    :ivar TypeId:
4567
    :vartype TypeId: NodeId
4568
    :ivar RequestHeader:
4569
    :vartype RequestHeader: RequestHeader
4570
    :ivar Parameters:
4571
    :vartype Parameters: AddNodesParameters
4572
    '''
4573 1
    def __init__(self, binary=None):
4574 1
        if binary is not None:
4575
            self._binary_init(binary)
4576
            self._freeze = True
4577
            return
4578 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesRequest_Encoding_DefaultBinary)
4579 1
        self.RequestHeader = RequestHeader()
4580 1
        self.Parameters = AddNodesParameters()
4581 1
        self._freeze = True
4582
4583 1
    def to_binary(self):
4584 1
        packet = []
4585 1
        packet.append(self.TypeId.to_binary())
4586 1
        packet.append(self.RequestHeader.to_binary())
4587 1
        packet.append(self.Parameters.to_binary())
4588 1
        return b''.join(packet)
4589
4590 1
    @staticmethod
4591
    def from_binary(data):
4592
        return AddNodesRequest(data)
4593
4594 1
    def _binary_init(self, data):
4595
        self.TypeId = NodeId.from_binary(data)
4596
        self.RequestHeader = RequestHeader.from_binary(data)
4597
        self.Parameters = AddNodesParameters.from_binary(data)
4598
4599 1
    def __str__(self):
4600
        return 'AddNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4601
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4602
               'Parameters:' + str(self.Parameters) + ')'
4603
4604 1
    __repr__ = __str__
4605
4606
4607 1
class AddNodesResponse(FrozenClass):
4608
    '''
4609
    Adds one or more nodes to the server address space.
4610
4611
    :ivar TypeId:
4612
    :vartype TypeId: NodeId
4613
    :ivar ResponseHeader:
4614
    :vartype ResponseHeader: ResponseHeader
4615
    :ivar Results:
4616
    :vartype Results: AddNodesResult
4617
    :ivar DiagnosticInfos:
4618
    :vartype DiagnosticInfos: DiagnosticInfo
4619
    '''
4620 1
    def __init__(self, binary=None):
4621 1
        if binary is not None:
4622 1
            self._binary_init(binary)
4623 1
            self._freeze = True
4624 1
            return
4625 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesResponse_Encoding_DefaultBinary)
4626 1
        self.ResponseHeader = ResponseHeader()
4627 1
        self.Results = []
4628 1
        self.DiagnosticInfos = []
4629 1
        self._freeze = True
4630
4631 1
    def to_binary(self):
4632 1
        packet = []
4633 1
        packet.append(self.TypeId.to_binary())
4634 1
        packet.append(self.ResponseHeader.to_binary())
4635 1
        packet.append(uatype_Int32.pack(len(self.Results)))
4636 1
        for fieldname in self.Results:
4637 1
            packet.append(fieldname.to_binary())
4638 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
4639 1
        for fieldname in self.DiagnosticInfos:
4640
            packet.append(fieldname.to_binary())
4641 1
        return b''.join(packet)
4642
4643 1
    @staticmethod
4644
    def from_binary(data):
4645 1
        return AddNodesResponse(data)
4646
4647 1
    def _binary_init(self, data):
4648 1
        self.TypeId = NodeId.from_binary(data)
4649 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
4650 1
        length = uatype_Int32.unpack(data.read(4))[0]
4651 1
        array = []
4652 1
        if length != -1:
4653 1
            for _ in range(0, length):
4654 1
                array.append(AddNodesResult.from_binary(data))
4655 1
        self.Results = array
4656 1
        length = uatype_Int32.unpack(data.read(4))[0]
4657 1
        array = []
4658 1
        if length != -1:
4659 1
            for _ in range(0, length):
4660
                array.append(DiagnosticInfo.from_binary(data))
4661 1
        self.DiagnosticInfos = array
4662
4663 1
    def __str__(self):
4664
        return 'AddNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4665
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4666
               'Results:' + str(self.Results) + ', ' + \
4667
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4668
4669 1
    __repr__ = __str__
4670
4671
4672 1
class AddReferencesItem(FrozenClass):
4673
    '''
4674
    A request to add a reference to the server address space.
4675
4676
    :ivar SourceNodeId:
4677
    :vartype SourceNodeId: NodeId
4678
    :ivar ReferenceTypeId:
4679
    :vartype ReferenceTypeId: NodeId
4680
    :ivar IsForward:
4681
    :vartype IsForward: Boolean
4682
    :ivar TargetServerUri:
4683
    :vartype TargetServerUri: String
4684
    :ivar TargetNodeId:
4685
    :vartype TargetNodeId: ExpandedNodeId
4686
    :ivar TargetNodeClass:
4687
    :vartype TargetNodeClass: NodeClass
4688
    '''
4689 1
    def __init__(self, binary=None):
4690 1
        if binary is not None:
4691
            self._binary_init(binary)
4692
            self._freeze = True
4693
            return
4694 1
        self.SourceNodeId = NodeId()
4695 1
        self.ReferenceTypeId = NodeId()
4696 1
        self.IsForward = True
4697 1
        self.TargetServerUri = ''
4698 1
        self.TargetNodeId = ExpandedNodeId()
4699 1
        self.TargetNodeClass = NodeClass(0)
4700 1
        self._freeze = True
4701
4702 1
    def to_binary(self):
4703
        packet = []
4704
        packet.append(self.SourceNodeId.to_binary())
4705
        packet.append(self.ReferenceTypeId.to_binary())
4706
        packet.append(uatype_Boolean.pack(self.IsForward))
4707
        packet.append(pack_string(self.TargetServerUri))
4708
        packet.append(self.TargetNodeId.to_binary())
4709
        packet.append(uatype_UInt32.pack(self.TargetNodeClass.value))
4710
        return b''.join(packet)
4711
4712 1
    @staticmethod
4713
    def from_binary(data):
4714
        return AddReferencesItem(data)
4715
4716 1
    def _binary_init(self, data):
4717
        self.SourceNodeId = NodeId.from_binary(data)
4718
        self.ReferenceTypeId = NodeId.from_binary(data)
4719
        self.IsForward = uatype_Boolean.unpack(data.read(1))[0]
4720
        self.TargetServerUri = unpack_string(data)
4721
        self.TargetNodeId = ExpandedNodeId.from_binary(data)
4722
        self.TargetNodeClass = NodeClass(uatype_UInt32.unpack(data.read(4))[0])
4723
4724 1
    def __str__(self):
4725
        return 'AddReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', ' + \
4726
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4727
               'IsForward:' + str(self.IsForward) + ', ' + \
4728
               'TargetServerUri:' + str(self.TargetServerUri) + ', ' + \
4729
               'TargetNodeId:' + str(self.TargetNodeId) + ', ' + \
4730
               'TargetNodeClass:' + str(self.TargetNodeClass) + ')'
4731
4732 1
    __repr__ = __str__
4733
4734
4735 1
class AddReferencesRequest(FrozenClass):
4736
    '''
4737
    Adds one or more references to the server address space.
4738
4739
    :ivar TypeId:
4740
    :vartype TypeId: NodeId
4741
    :ivar RequestHeader:
4742
    :vartype RequestHeader: RequestHeader
4743
    :ivar ReferencesToAdd:
4744
    :vartype ReferencesToAdd: AddReferencesItem
4745
    '''
4746 1
    def __init__(self, binary=None):
4747
        if binary is not None:
4748
            self._binary_init(binary)
4749
            self._freeze = True
4750
            return
4751
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesRequest_Encoding_DefaultBinary)
4752
        self.RequestHeader = RequestHeader()
4753
        self.ReferencesToAdd = []
4754
        self._freeze = True
4755
4756 1
    def to_binary(self):
4757
        packet = []
4758
        packet.append(self.TypeId.to_binary())
4759
        packet.append(self.RequestHeader.to_binary())
4760
        packet.append(uatype_Int32.pack(len(self.ReferencesToAdd)))
4761
        for fieldname in self.ReferencesToAdd:
4762
            packet.append(fieldname.to_binary())
4763
        return b''.join(packet)
4764
4765 1
    @staticmethod
4766
    def from_binary(data):
4767
        return AddReferencesRequest(data)
4768
4769 1
    def _binary_init(self, data):
4770
        self.TypeId = NodeId.from_binary(data)
4771
        self.RequestHeader = RequestHeader.from_binary(data)
4772
        length = uatype_Int32.unpack(data.read(4))[0]
4773
        array = []
4774
        if length != -1:
4775
            for _ in range(0, length):
4776
                array.append(AddReferencesItem.from_binary(data))
4777
        self.ReferencesToAdd = array
4778
4779 1
    def __str__(self):
4780
        return 'AddReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4781
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4782
               'ReferencesToAdd:' + str(self.ReferencesToAdd) + ')'
4783
4784 1
    __repr__ = __str__
4785
4786
4787 1
class AddReferencesResponse(FrozenClass):
4788
    '''
4789
    Adds one or more references to the server address space.
4790
4791
    :ivar TypeId:
4792
    :vartype TypeId: NodeId
4793
    :ivar ResponseHeader:
4794
    :vartype ResponseHeader: ResponseHeader
4795
    :ivar Results:
4796
    :vartype Results: StatusCode
4797
    :ivar DiagnosticInfos:
4798
    :vartype DiagnosticInfos: DiagnosticInfo
4799
    '''
4800 1
    def __init__(self, binary=None):
4801
        if binary is not None:
4802
            self._binary_init(binary)
4803
            self._freeze = True
4804
            return
4805
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesResponse_Encoding_DefaultBinary)
4806
        self.ResponseHeader = ResponseHeader()
4807
        self.Results = []
4808
        self.DiagnosticInfos = []
4809
        self._freeze = True
4810
4811 1
    def to_binary(self):
4812
        packet = []
4813
        packet.append(self.TypeId.to_binary())
4814
        packet.append(self.ResponseHeader.to_binary())
4815
        packet.append(uatype_Int32.pack(len(self.Results)))
4816
        for fieldname in self.Results:
4817
            packet.append(fieldname.to_binary())
4818
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
4819
        for fieldname in self.DiagnosticInfos:
4820
            packet.append(fieldname.to_binary())
4821
        return b''.join(packet)
4822
4823 1
    @staticmethod
4824
    def from_binary(data):
4825
        return AddReferencesResponse(data)
4826
4827 1
    def _binary_init(self, data):
4828
        self.TypeId = NodeId.from_binary(data)
4829
        self.ResponseHeader = ResponseHeader.from_binary(data)
4830
        length = uatype_Int32.unpack(data.read(4))[0]
4831
        array = []
4832
        if length != -1:
4833
            for _ in range(0, length):
4834
                array.append(StatusCode.from_binary(data))
4835
        self.Results = array
4836
        length = uatype_Int32.unpack(data.read(4))[0]
4837
        array = []
4838
        if length != -1:
4839
            for _ in range(0, length):
4840
                array.append(DiagnosticInfo.from_binary(data))
4841
        self.DiagnosticInfos = array
4842
4843 1
    def __str__(self):
4844
        return 'AddReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4845
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4846
               'Results:' + str(self.Results) + ', ' + \
4847
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4848
4849 1
    __repr__ = __str__
4850
4851
4852 1
class DeleteNodesItem(FrozenClass):
4853
    '''
4854
    A request to delete a node to the server address space.
4855
4856
    :ivar NodeId:
4857
    :vartype NodeId: NodeId
4858
    :ivar DeleteTargetReferences:
4859
    :vartype DeleteTargetReferences: Boolean
4860
    '''
4861 1
    def __init__(self, binary=None):
4862
        if binary is not None:
4863
            self._binary_init(binary)
4864
            self._freeze = True
4865
            return
4866
        self.NodeId = NodeId()
4867
        self.DeleteTargetReferences = True
4868
        self._freeze = True
4869
4870 1
    def to_binary(self):
4871
        packet = []
4872
        packet.append(self.NodeId.to_binary())
4873
        packet.append(uatype_Boolean.pack(self.DeleteTargetReferences))
4874
        return b''.join(packet)
4875
4876 1
    @staticmethod
4877
    def from_binary(data):
4878
        return DeleteNodesItem(data)
4879
4880 1
    def _binary_init(self, data):
4881
        self.NodeId = NodeId.from_binary(data)
4882
        self.DeleteTargetReferences = uatype_Boolean.unpack(data.read(1))[0]
4883
4884 1
    def __str__(self):
4885
        return 'DeleteNodesItem(' + 'NodeId:' + str(self.NodeId) + ', ' + \
4886
               'DeleteTargetReferences:' + str(self.DeleteTargetReferences) + ')'
4887
4888 1
    __repr__ = __str__
4889
4890
4891 1
class DeleteNodesParameters(FrozenClass):
4892
    '''
4893
    :ivar NodesToDelete:
4894
    :vartype NodesToDelete: DeleteNodesItem
4895
    '''
4896 1
    def __init__(self, binary=None):
4897
        if binary is not None:
4898
            self._binary_init(binary)
4899
            self._freeze = True
4900
            return
4901
        self.NodesToDelete = []
4902
        self._freeze = True
4903
4904 1
    def to_binary(self):
4905
        packet = []
4906
        packet.append(uatype_Int32.pack(len(self.NodesToDelete)))
4907
        for fieldname in self.NodesToDelete:
4908
            packet.append(fieldname.to_binary())
4909
        return b''.join(packet)
4910
4911 1
    @staticmethod
4912
    def from_binary(data):
4913
        return DeleteNodesParameters(data)
4914
4915 1
    def _binary_init(self, data):
4916
        length = uatype_Int32.unpack(data.read(4))[0]
4917
        array = []
4918
        if length != -1:
4919
            for _ in range(0, length):
4920
                array.append(DeleteNodesItem.from_binary(data))
4921
        self.NodesToDelete = array
4922
4923 1
    def __str__(self):
4924
        return 'DeleteNodesParameters(' + 'NodesToDelete:' + str(self.NodesToDelete) + ')'
4925
4926 1
    __repr__ = __str__
4927
4928
4929 1
class DeleteNodesRequest(FrozenClass):
4930
    '''
4931
    Delete one or more nodes from the server address space.
4932
4933
    :ivar TypeId:
4934
    :vartype TypeId: NodeId
4935
    :ivar RequestHeader:
4936
    :vartype RequestHeader: RequestHeader
4937
    :ivar Parameters:
4938
    :vartype Parameters: DeleteNodesParameters
4939
    '''
4940 1
    def __init__(self, binary=None):
4941
        if binary is not None:
4942
            self._binary_init(binary)
4943
            self._freeze = True
4944
            return
4945
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary)
4946
        self.RequestHeader = RequestHeader()
4947
        self.Parameters = DeleteNodesParameters()
4948
        self._freeze = True
4949
4950 1
    def to_binary(self):
4951
        packet = []
4952
        packet.append(self.TypeId.to_binary())
4953
        packet.append(self.RequestHeader.to_binary())
4954
        packet.append(self.Parameters.to_binary())
4955
        return b''.join(packet)
4956
4957 1
    @staticmethod
4958
    def from_binary(data):
4959
        return DeleteNodesRequest(data)
4960
4961 1
    def _binary_init(self, data):
4962
        self.TypeId = NodeId.from_binary(data)
4963
        self.RequestHeader = RequestHeader.from_binary(data)
4964
        self.Parameters = DeleteNodesParameters.from_binary(data)
4965
4966 1
    def __str__(self):
4967
        return 'DeleteNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4968
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4969
               'Parameters:' + str(self.Parameters) + ')'
4970
4971 1
    __repr__ = __str__
4972
4973
4974 1
class DeleteNodesResult(FrozenClass):
4975
    '''
4976
    :ivar Results:
4977
    :vartype Results: StatusCode
4978
    :ivar DiagnosticInfos:
4979
    :vartype DiagnosticInfos: DiagnosticInfo
4980
    '''
4981 1
    def __init__(self, binary=None):
4982
        if binary is not None:
4983
            self._binary_init(binary)
4984
            self._freeze = True
4985
            return
4986
        self.Results = []
4987
        self.DiagnosticInfos = []
4988
        self._freeze = True
4989
4990 1
    def to_binary(self):
4991
        packet = []
4992
        packet.append(uatype_Int32.pack(len(self.Results)))
4993
        for fieldname in self.Results:
4994
            packet.append(fieldname.to_binary())
4995
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
4996
        for fieldname in self.DiagnosticInfos:
4997
            packet.append(fieldname.to_binary())
4998
        return b''.join(packet)
4999
5000 1
    @staticmethod
5001
    def from_binary(data):
5002
        return DeleteNodesResult(data)
5003
5004 1
    def _binary_init(self, data):
5005
        length = uatype_Int32.unpack(data.read(4))[0]
5006
        array = []
5007
        if length != -1:
5008
            for _ in range(0, length):
5009
                array.append(StatusCode.from_binary(data))
5010
        self.Results = array
5011
        length = uatype_Int32.unpack(data.read(4))[0]
5012
        array = []
5013
        if length != -1:
5014
            for _ in range(0, length):
5015
                array.append(DiagnosticInfo.from_binary(data))
5016
        self.DiagnosticInfos = array
5017
5018 1
    def __str__(self):
5019
        return 'DeleteNodesResult(' + 'Results:' + str(self.Results) + ', ' + \
5020
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5021
5022 1
    __repr__ = __str__
5023
5024
5025 1
class DeleteNodesResponse(FrozenClass):
5026
    '''
5027
    Delete one or more nodes from the server address space.
5028
5029
    :ivar TypeId:
5030
    :vartype TypeId: NodeId
5031
    :ivar ResponseHeader:
5032
    :vartype ResponseHeader: ResponseHeader
5033
    :ivar Parameters:
5034
    :vartype Parameters: DeleteNodesResult
5035
    '''
5036 1
    def __init__(self, binary=None):
5037
        if binary is not None:
5038
            self._binary_init(binary)
5039
            self._freeze = True
5040
            return
5041
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary)
5042
        self.ResponseHeader = ResponseHeader()
5043
        self.Parameters = DeleteNodesResult()
5044
        self._freeze = True
5045
5046 1
    def to_binary(self):
5047
        packet = []
5048
        packet.append(self.TypeId.to_binary())
5049
        packet.append(self.ResponseHeader.to_binary())
5050
        packet.append(self.Parameters.to_binary())
5051
        return b''.join(packet)
5052
5053 1
    @staticmethod
5054
    def from_binary(data):
5055
        return DeleteNodesResponse(data)
5056
5057 1
    def _binary_init(self, data):
5058
        self.TypeId = NodeId.from_binary(data)
5059
        self.ResponseHeader = ResponseHeader.from_binary(data)
5060
        self.Parameters = DeleteNodesResult.from_binary(data)
5061
5062 1
    def __str__(self):
5063
        return 'DeleteNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5064
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5065
               'Parameters:' + str(self.Parameters) + ')'
5066
5067 1
    __repr__ = __str__
5068
5069
5070 1
class DeleteReferencesItem(FrozenClass):
5071
    '''
5072
    A request to delete a node from the server address space.
5073
5074
    :ivar SourceNodeId:
5075
    :vartype SourceNodeId: NodeId
5076
    :ivar ReferenceTypeId:
5077
    :vartype ReferenceTypeId: NodeId
5078
    :ivar IsForward:
5079
    :vartype IsForward: Boolean
5080
    :ivar TargetNodeId:
5081
    :vartype TargetNodeId: ExpandedNodeId
5082
    :ivar DeleteBidirectional:
5083
    :vartype DeleteBidirectional: Boolean
5084
    '''
5085 1
    def __init__(self, binary=None):
5086
        if binary is not None:
5087
            self._binary_init(binary)
5088
            self._freeze = True
5089
            return
5090
        self.SourceNodeId = NodeId()
5091
        self.ReferenceTypeId = NodeId()
5092
        self.IsForward = True
5093
        self.TargetNodeId = ExpandedNodeId()
5094
        self.DeleteBidirectional = True
5095
        self._freeze = True
5096
5097 1
    def to_binary(self):
5098
        packet = []
5099
        packet.append(self.SourceNodeId.to_binary())
5100
        packet.append(self.ReferenceTypeId.to_binary())
5101
        packet.append(uatype_Boolean.pack(self.IsForward))
5102
        packet.append(self.TargetNodeId.to_binary())
5103
        packet.append(uatype_Boolean.pack(self.DeleteBidirectional))
5104
        return b''.join(packet)
5105
5106 1
    @staticmethod
5107
    def from_binary(data):
5108
        return DeleteReferencesItem(data)
5109
5110 1
    def _binary_init(self, data):
5111
        self.SourceNodeId = NodeId.from_binary(data)
5112
        self.ReferenceTypeId = NodeId.from_binary(data)
5113
        self.IsForward = uatype_Boolean.unpack(data.read(1))[0]
5114
        self.TargetNodeId = ExpandedNodeId.from_binary(data)
5115
        self.DeleteBidirectional = uatype_Boolean.unpack(data.read(1))[0]
5116
5117 1
    def __str__(self):
5118
        return 'DeleteReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', ' + \
5119
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
5120
               'IsForward:' + str(self.IsForward) + ', ' + \
5121
               'TargetNodeId:' + str(self.TargetNodeId) + ', ' + \
5122
               'DeleteBidirectional:' + str(self.DeleteBidirectional) + ')'
5123
5124 1
    __repr__ = __str__
5125
5126
5127 1
class DeleteReferencesParameters(FrozenClass):
5128
    '''
5129
    :ivar ReferencesToDelete:
5130
    :vartype ReferencesToDelete: DeleteReferencesItem
5131
    '''
5132 1
    def __init__(self, binary=None):
5133
        if binary is not None:
5134
            self._binary_init(binary)
5135
            self._freeze = True
5136
            return
5137
        self.ReferencesToDelete = []
5138
        self._freeze = True
5139
5140 1
    def to_binary(self):
5141
        packet = []
5142
        packet.append(uatype_Int32.pack(len(self.ReferencesToDelete)))
5143
        for fieldname in self.ReferencesToDelete:
5144
            packet.append(fieldname.to_binary())
5145
        return b''.join(packet)
5146
5147 1
    @staticmethod
5148
    def from_binary(data):
5149
        return DeleteReferencesParameters(data)
5150
5151 1
    def _binary_init(self, data):
5152
        length = uatype_Int32.unpack(data.read(4))[0]
5153
        array = []
5154
        if length != -1:
5155
            for _ in range(0, length):
5156
                array.append(DeleteReferencesItem.from_binary(data))
5157
        self.ReferencesToDelete = array
5158
5159 1
    def __str__(self):
5160
        return 'DeleteReferencesParameters(' + 'ReferencesToDelete:' + str(self.ReferencesToDelete) + ')'
5161
5162 1
    __repr__ = __str__
5163
5164
5165 1
class DeleteReferencesRequest(FrozenClass):
5166
    '''
5167
    Delete one or more references from the server address space.
5168
5169
    :ivar TypeId:
5170
    :vartype TypeId: NodeId
5171
    :ivar RequestHeader:
5172
    :vartype RequestHeader: RequestHeader
5173
    :ivar Parameters:
5174
    :vartype Parameters: DeleteReferencesParameters
5175
    '''
5176 1
    def __init__(self, binary=None):
5177
        if binary is not None:
5178
            self._binary_init(binary)
5179
            self._freeze = True
5180
            return
5181
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary)
5182
        self.RequestHeader = RequestHeader()
5183
        self.Parameters = DeleteReferencesParameters()
5184
        self._freeze = True
5185
5186 1
    def to_binary(self):
5187
        packet = []
5188
        packet.append(self.TypeId.to_binary())
5189
        packet.append(self.RequestHeader.to_binary())
5190
        packet.append(self.Parameters.to_binary())
5191
        return b''.join(packet)
5192
5193 1
    @staticmethod
5194
    def from_binary(data):
5195
        return DeleteReferencesRequest(data)
5196
5197 1
    def _binary_init(self, data):
5198
        self.TypeId = NodeId.from_binary(data)
5199
        self.RequestHeader = RequestHeader.from_binary(data)
5200
        self.Parameters = DeleteReferencesParameters.from_binary(data)
5201
5202 1
    def __str__(self):
5203
        return 'DeleteReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5204
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5205
               'Parameters:' + str(self.Parameters) + ')'
5206
5207 1
    __repr__ = __str__
5208
5209
5210 1
class DeleteReferencesResult(FrozenClass):
5211
    '''
5212
    :ivar Results:
5213
    :vartype Results: StatusCode
5214
    :ivar DiagnosticInfos:
5215
    :vartype DiagnosticInfos: DiagnosticInfo
5216
    '''
5217 1
    def __init__(self, binary=None):
5218
        if binary is not None:
5219
            self._binary_init(binary)
5220
            self._freeze = True
5221
            return
5222
        self.Results = []
5223
        self.DiagnosticInfos = []
5224
        self._freeze = True
5225
5226 1
    def to_binary(self):
5227
        packet = []
5228
        packet.append(uatype_Int32.pack(len(self.Results)))
5229
        for fieldname in self.Results:
5230
            packet.append(fieldname.to_binary())
5231
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
5232
        for fieldname in self.DiagnosticInfos:
5233
            packet.append(fieldname.to_binary())
5234
        return b''.join(packet)
5235
5236 1
    @staticmethod
5237
    def from_binary(data):
5238
        return DeleteReferencesResult(data)
5239
5240 1
    def _binary_init(self, data):
5241
        length = uatype_Int32.unpack(data.read(4))[0]
5242
        array = []
5243
        if length != -1:
5244
            for _ in range(0, length):
5245
                array.append(StatusCode.from_binary(data))
5246
        self.Results = array
5247
        length = uatype_Int32.unpack(data.read(4))[0]
5248
        array = []
5249
        if length != -1:
5250
            for _ in range(0, length):
5251
                array.append(DiagnosticInfo.from_binary(data))
5252
        self.DiagnosticInfos = array
5253
5254 1
    def __str__(self):
5255
        return 'DeleteReferencesResult(' + 'Results:' + str(self.Results) + ', ' + \
5256
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5257
5258 1
    __repr__ = __str__
5259
5260
5261 1
class DeleteReferencesResponse(FrozenClass):
5262
    '''
5263
    Delete one or more references from the server address space.
5264
5265
    :ivar TypeId:
5266
    :vartype TypeId: NodeId
5267
    :ivar ResponseHeader:
5268
    :vartype ResponseHeader: ResponseHeader
5269
    :ivar Parameters:
5270
    :vartype Parameters: DeleteReferencesResult
5271
    '''
5272 1
    def __init__(self, binary=None):
5273
        if binary is not None:
5274
            self._binary_init(binary)
5275
            self._freeze = True
5276
            return
5277
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary)
5278
        self.ResponseHeader = ResponseHeader()
5279
        self.Parameters = DeleteReferencesResult()
5280
        self._freeze = True
5281
5282 1
    def to_binary(self):
5283
        packet = []
5284
        packet.append(self.TypeId.to_binary())
5285
        packet.append(self.ResponseHeader.to_binary())
5286
        packet.append(self.Parameters.to_binary())
5287
        return b''.join(packet)
5288
5289 1
    @staticmethod
5290
    def from_binary(data):
5291
        return DeleteReferencesResponse(data)
5292
5293 1
    def _binary_init(self, data):
5294
        self.TypeId = NodeId.from_binary(data)
5295
        self.ResponseHeader = ResponseHeader.from_binary(data)
5296
        self.Parameters = DeleteReferencesResult.from_binary(data)
5297
5298 1
    def __str__(self):
5299
        return 'DeleteReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5300
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5301
               'Parameters:' + str(self.Parameters) + ')'
5302
5303 1
    __repr__ = __str__
5304
5305
5306 1
class ViewDescription(FrozenClass):
5307
    '''
5308
    The view to browse.
5309
5310
    :ivar ViewId:
5311
    :vartype ViewId: NodeId
5312
    :ivar Timestamp:
5313
    :vartype Timestamp: DateTime
5314
    :ivar ViewVersion:
5315
    :vartype ViewVersion: UInt32
5316
    '''
5317 1
    def __init__(self, binary=None):
5318 1
        if binary is not None:
5319 1
            self._binary_init(binary)
5320 1
            self._freeze = True
5321 1
            return
5322 1
        self.ViewId = NodeId()
5323 1
        self.Timestamp = datetime.now()
5324 1
        self.ViewVersion = 0
5325 1
        self._freeze = True
5326
5327 1
    def to_binary(self):
5328 1
        packet = []
5329 1
        packet.append(self.ViewId.to_binary())
5330 1
        packet.append(pack_datetime(self.Timestamp))
5331 1
        packet.append(uatype_UInt32.pack(self.ViewVersion))
5332 1
        return b''.join(packet)
5333
5334 1
    @staticmethod
5335
    def from_binary(data):
5336 1
        return ViewDescription(data)
5337
5338 1
    def _binary_init(self, data):
5339 1
        self.ViewId = NodeId.from_binary(data)
5340 1
        self.Timestamp = unpack_datetime(data)
5341 1
        self.ViewVersion = uatype_UInt32.unpack(data.read(4))[0]
5342
5343 1
    def __str__(self):
5344
        return 'ViewDescription(' + 'ViewId:' + str(self.ViewId) + ', ' + \
5345
               'Timestamp:' + str(self.Timestamp) + ', ' + \
5346
               'ViewVersion:' + str(self.ViewVersion) + ')'
5347
5348 1
    __repr__ = __str__
5349
5350
5351 1
class BrowseDescription(FrozenClass):
5352
    '''
5353
    A request to browse the the references from a node.
5354
5355
    :ivar NodeId:
5356
    :vartype NodeId: NodeId
5357
    :ivar BrowseDirection:
5358
    :vartype BrowseDirection: BrowseDirection
5359
    :ivar ReferenceTypeId:
5360
    :vartype ReferenceTypeId: NodeId
5361
    :ivar IncludeSubtypes:
5362
    :vartype IncludeSubtypes: Boolean
5363
    :ivar NodeClassMask:
5364
    :vartype NodeClassMask: UInt32
5365
    :ivar ResultMask:
5366
    :vartype ResultMask: UInt32
5367
    '''
5368 1
    def __init__(self, binary=None):
5369 1
        if binary is not None:
5370 1
            self._binary_init(binary)
5371 1
            self._freeze = True
5372 1
            return
5373 1
        self.NodeId = NodeId()
5374 1
        self.BrowseDirection = BrowseDirection(0)
5375 1
        self.ReferenceTypeId = NodeId()
5376 1
        self.IncludeSubtypes = True
5377 1
        self.NodeClassMask = 0
5378 1
        self.ResultMask = 0
5379 1
        self._freeze = True
5380
5381 1
    def to_binary(self):
5382 1
        packet = []
5383 1
        packet.append(self.NodeId.to_binary())
5384 1
        packet.append(uatype_UInt32.pack(self.BrowseDirection.value))
5385 1
        packet.append(self.ReferenceTypeId.to_binary())
5386 1
        packet.append(uatype_Boolean.pack(self.IncludeSubtypes))
5387 1
        packet.append(uatype_UInt32.pack(self.NodeClassMask))
5388 1
        packet.append(uatype_UInt32.pack(self.ResultMask))
5389 1
        return b''.join(packet)
5390
5391 1
    @staticmethod
5392
    def from_binary(data):
5393 1
        return BrowseDescription(data)
5394
5395 1
    def _binary_init(self, data):
5396 1
        self.NodeId = NodeId.from_binary(data)
5397 1
        self.BrowseDirection = BrowseDirection(uatype_UInt32.unpack(data.read(4))[0])
5398 1
        self.ReferenceTypeId = NodeId.from_binary(data)
5399 1
        self.IncludeSubtypes = uatype_Boolean.unpack(data.read(1))[0]
5400 1
        self.NodeClassMask = uatype_UInt32.unpack(data.read(4))[0]
5401 1
        self.ResultMask = uatype_UInt32.unpack(data.read(4))[0]
5402
5403 1
    def __str__(self):
5404
        return 'BrowseDescription(' + 'NodeId:' + str(self.NodeId) + ', ' + \
5405
               'BrowseDirection:' + str(self.BrowseDirection) + ', ' + \
5406
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
5407
               'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', ' + \
5408
               'NodeClassMask:' + str(self.NodeClassMask) + ', ' + \
5409
               'ResultMask:' + str(self.ResultMask) + ')'
5410
5411 1
    __repr__ = __str__
5412
5413
5414 1
class ReferenceDescription(FrozenClass):
5415
    '''
5416
    The description of a reference.
5417
5418
    :ivar ReferenceTypeId:
5419
    :vartype ReferenceTypeId: NodeId
5420
    :ivar IsForward:
5421
    :vartype IsForward: Boolean
5422
    :ivar NodeId:
5423
    :vartype NodeId: ExpandedNodeId
5424
    :ivar BrowseName:
5425
    :vartype BrowseName: QualifiedName
5426
    :ivar DisplayName:
5427
    :vartype DisplayName: LocalizedText
5428
    :ivar NodeClass:
5429
    :vartype NodeClass: NodeClass
5430
    :ivar TypeDefinition:
5431
    :vartype TypeDefinition: ExpandedNodeId
5432
    '''
5433 1
    def __init__(self, binary=None):
5434 1
        if binary is not None:
5435 1
            self._binary_init(binary)
5436 1
            self._freeze = True
5437 1
            return
5438 1
        self.ReferenceTypeId = NodeId()
5439 1
        self.IsForward = True
5440 1
        self.NodeId = ExpandedNodeId()
5441 1
        self.BrowseName = QualifiedName()
5442 1
        self.DisplayName = LocalizedText()
5443 1
        self.NodeClass = NodeClass(0)
5444 1
        self.TypeDefinition = ExpandedNodeId()
5445 1
        self._freeze = True
5446
5447 1
    def to_binary(self):
5448 1
        packet = []
5449 1
        packet.append(self.ReferenceTypeId.to_binary())
5450 1
        packet.append(uatype_Boolean.pack(self.IsForward))
5451 1
        packet.append(self.NodeId.to_binary())
5452 1
        packet.append(self.BrowseName.to_binary())
5453 1
        packet.append(self.DisplayName.to_binary())
5454 1
        packet.append(uatype_UInt32.pack(self.NodeClass.value))
5455 1
        packet.append(self.TypeDefinition.to_binary())
5456 1
        return b''.join(packet)
5457
5458 1
    @staticmethod
5459
    def from_binary(data):
5460 1
        return ReferenceDescription(data)
5461
5462 1
    def _binary_init(self, data):
5463 1
        self.ReferenceTypeId = NodeId.from_binary(data)
5464 1
        self.IsForward = uatype_Boolean.unpack(data.read(1))[0]
5465 1
        self.NodeId = ExpandedNodeId.from_binary(data)
5466 1
        self.BrowseName = QualifiedName.from_binary(data)
5467 1
        self.DisplayName = LocalizedText.from_binary(data)
5468 1
        self.NodeClass = NodeClass(uatype_UInt32.unpack(data.read(4))[0])
5469 1
        self.TypeDefinition = ExpandedNodeId.from_binary(data)
5470
5471 1
    def __str__(self):
5472
        return 'ReferenceDescription(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
5473
               'IsForward:' + str(self.IsForward) + ', ' + \
5474
               'NodeId:' + str(self.NodeId) + ', ' + \
5475
               'BrowseName:' + str(self.BrowseName) + ', ' + \
5476
               'DisplayName:' + str(self.DisplayName) + ', ' + \
5477
               'NodeClass:' + str(self.NodeClass) + ', ' + \
5478
               'TypeDefinition:' + str(self.TypeDefinition) + ')'
5479
5480 1
    __repr__ = __str__
5481
5482
5483 1
class BrowseResult(FrozenClass):
5484
    '''
5485
    The result of a browse operation.
5486
5487
    :ivar StatusCode:
5488
    :vartype StatusCode: StatusCode
5489
    :ivar ContinuationPoint:
5490
    :vartype ContinuationPoint: ByteString
5491
    :ivar References:
5492
    :vartype References: ReferenceDescription
5493
    '''
5494 1
    def __init__(self, binary=None):
5495 1
        if binary is not None:
5496 1
            self._binary_init(binary)
5497 1
            self._freeze = True
5498 1
            return
5499 1
        self.StatusCode = StatusCode()
5500 1
        self.ContinuationPoint = b''
5501 1
        self.References = []
5502 1
        self._freeze = True
5503
5504 1
    def to_binary(self):
5505 1
        packet = []
5506 1
        packet.append(self.StatusCode.to_binary())
5507 1
        packet.append(pack_bytes(self.ContinuationPoint))
5508 1
        packet.append(uatype_Int32.pack(len(self.References)))
5509 1
        for fieldname in self.References:
5510 1
            packet.append(fieldname.to_binary())
5511 1
        return b''.join(packet)
5512
5513 1
    @staticmethod
5514
    def from_binary(data):
5515 1
        return BrowseResult(data)
5516
5517 1
    def _binary_init(self, data):
5518 1
        self.StatusCode = StatusCode.from_binary(data)
5519 1
        self.ContinuationPoint = unpack_bytes(data)
5520 1
        length = uatype_Int32.unpack(data.read(4))[0]
5521 1
        array = []
5522 1
        if length != -1:
5523 1
            for _ in range(0, length):
5524 1
                array.append(ReferenceDescription.from_binary(data))
5525 1
        self.References = array
5526
5527 1
    def __str__(self):
5528
        return 'BrowseResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
5529
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
5530
               'References:' + str(self.References) + ')'
5531
5532 1
    __repr__ = __str__
5533
5534
5535 1
class BrowseParameters(FrozenClass):
5536
    '''
5537
    :ivar View:
5538
    :vartype View: ViewDescription
5539
    :ivar RequestedMaxReferencesPerNode:
5540
    :vartype RequestedMaxReferencesPerNode: UInt32
5541
    :ivar NodesToBrowse:
5542
    :vartype NodesToBrowse: BrowseDescription
5543
    '''
5544 1
    def __init__(self, binary=None):
5545 1
        if binary is not None:
5546 1
            self._binary_init(binary)
5547 1
            self._freeze = True
5548 1
            return
5549 1
        self.View = ViewDescription()
5550 1
        self.RequestedMaxReferencesPerNode = 0
5551 1
        self.NodesToBrowse = []
5552 1
        self._freeze = True
5553
5554 1
    def to_binary(self):
5555 1
        packet = []
5556 1
        packet.append(self.View.to_binary())
5557 1
        packet.append(uatype_UInt32.pack(self.RequestedMaxReferencesPerNode))
5558 1
        packet.append(uatype_Int32.pack(len(self.NodesToBrowse)))
5559 1
        for fieldname in self.NodesToBrowse:
5560 1
            packet.append(fieldname.to_binary())
5561 1
        return b''.join(packet)
5562
5563 1
    @staticmethod
5564
    def from_binary(data):
5565 1
        return BrowseParameters(data)
5566
5567 1
    def _binary_init(self, data):
5568 1
        self.View = ViewDescription.from_binary(data)
5569 1
        self.RequestedMaxReferencesPerNode = uatype_UInt32.unpack(data.read(4))[0]
5570 1
        length = uatype_Int32.unpack(data.read(4))[0]
5571 1
        array = []
5572 1
        if length != -1:
5573 1
            for _ in range(0, length):
5574 1
                array.append(BrowseDescription.from_binary(data))
5575 1
        self.NodesToBrowse = array
5576
5577 1
    def __str__(self):
5578
        return 'BrowseParameters(' + 'View:' + str(self.View) + ', ' + \
5579
               'RequestedMaxReferencesPerNode:' + str(self.RequestedMaxReferencesPerNode) + ', ' + \
5580
               'NodesToBrowse:' + str(self.NodesToBrowse) + ')'
5581
5582 1
    __repr__ = __str__
5583
5584
5585 1
class BrowseRequest(FrozenClass):
5586
    '''
5587
    Browse the references for one or more nodes from the server address space.
5588
5589
    :ivar TypeId:
5590
    :vartype TypeId: NodeId
5591
    :ivar RequestHeader:
5592
    :vartype RequestHeader: RequestHeader
5593
    :ivar Parameters:
5594
    :vartype Parameters: BrowseParameters
5595
    '''
5596 1
    def __init__(self, binary=None):
5597 1
        if binary is not None:
5598
            self._binary_init(binary)
5599
            self._freeze = True
5600
            return
5601 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseRequest_Encoding_DefaultBinary)
5602 1
        self.RequestHeader = RequestHeader()
5603 1
        self.Parameters = BrowseParameters()
5604 1
        self._freeze = True
5605
5606 1
    def to_binary(self):
5607 1
        packet = []
5608 1
        packet.append(self.TypeId.to_binary())
5609 1
        packet.append(self.RequestHeader.to_binary())
5610 1
        packet.append(self.Parameters.to_binary())
5611 1
        return b''.join(packet)
5612
5613 1
    @staticmethod
5614
    def from_binary(data):
5615
        return BrowseRequest(data)
5616
5617 1
    def _binary_init(self, data):
5618
        self.TypeId = NodeId.from_binary(data)
5619
        self.RequestHeader = RequestHeader.from_binary(data)
5620
        self.Parameters = BrowseParameters.from_binary(data)
5621
5622 1
    def __str__(self):
5623
        return 'BrowseRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5624
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5625
               'Parameters:' + str(self.Parameters) + ')'
5626
5627 1
    __repr__ = __str__
5628
5629
5630 1
class BrowseResponse(FrozenClass):
5631
    '''
5632
    Browse the references for one or more nodes from the server address space.
5633
5634
    :ivar TypeId:
5635
    :vartype TypeId: NodeId
5636
    :ivar ResponseHeader:
5637
    :vartype ResponseHeader: ResponseHeader
5638
    :ivar Results:
5639
    :vartype Results: BrowseResult
5640
    :ivar DiagnosticInfos:
5641
    :vartype DiagnosticInfos: DiagnosticInfo
5642
    '''
5643 1
    def __init__(self, binary=None):
5644 1
        if binary is not None:
5645 1
            self._binary_init(binary)
5646 1
            self._freeze = True
5647 1
            return
5648 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseResponse_Encoding_DefaultBinary)
5649 1
        self.ResponseHeader = ResponseHeader()
5650 1
        self.Results = []
5651 1
        self.DiagnosticInfos = []
5652 1
        self._freeze = True
5653
5654 1
    def to_binary(self):
5655 1
        packet = []
5656 1
        packet.append(self.TypeId.to_binary())
5657 1
        packet.append(self.ResponseHeader.to_binary())
5658 1
        packet.append(uatype_Int32.pack(len(self.Results)))
5659 1
        for fieldname in self.Results:
5660 1
            packet.append(fieldname.to_binary())
5661 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
5662 1
        for fieldname in self.DiagnosticInfos:
5663
            packet.append(fieldname.to_binary())
5664 1
        return b''.join(packet)
5665
5666 1
    @staticmethod
5667
    def from_binary(data):
5668 1
        return BrowseResponse(data)
5669
5670 1
    def _binary_init(self, data):
5671 1
        self.TypeId = NodeId.from_binary(data)
5672 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
5673 1
        length = uatype_Int32.unpack(data.read(4))[0]
5674 1
        array = []
5675 1
        if length != -1:
5676 1
            for _ in range(0, length):
5677 1
                array.append(BrowseResult.from_binary(data))
5678 1
        self.Results = array
5679 1
        length = uatype_Int32.unpack(data.read(4))[0]
5680 1
        array = []
5681 1
        if length != -1:
5682 1
            for _ in range(0, length):
5683
                array.append(DiagnosticInfo.from_binary(data))
5684 1
        self.DiagnosticInfos = array
5685
5686 1
    def __str__(self):
5687
        return 'BrowseResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5688
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5689
               'Results:' + str(self.Results) + ', ' + \
5690
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5691
5692 1
    __repr__ = __str__
5693
5694
5695 1
class BrowseNextParameters(FrozenClass):
5696
    '''
5697
    :ivar ReleaseContinuationPoints:
5698
    :vartype ReleaseContinuationPoints: Boolean
5699
    :ivar ContinuationPoints:
5700
    :vartype ContinuationPoints: ByteString
5701
    '''
5702 1
    def __init__(self, binary=None):
5703
        if binary is not None:
5704
            self._binary_init(binary)
5705
            self._freeze = True
5706
            return
5707
        self.ReleaseContinuationPoints = True
5708
        self.ContinuationPoints = []
5709
        self._freeze = True
5710
5711 1
    def to_binary(self):
5712
        packet = []
5713
        packet.append(uatype_Boolean.pack(self.ReleaseContinuationPoints))
5714
        packet.append(uatype_Int32.pack(len(self.ContinuationPoints)))
5715
        for fieldname in self.ContinuationPoints:
5716
            packet.append(pack_bytes(fieldname))
5717
        return b''.join(packet)
5718
5719 1
    @staticmethod
5720
    def from_binary(data):
5721
        return BrowseNextParameters(data)
5722
5723 1
    def _binary_init(self, data):
5724
        self.ReleaseContinuationPoints = uatype_Boolean.unpack(data.read(1))[0]
5725
        self.ContinuationPoints = unpack_uatype_array('ByteString', data)
5726
5727 1
    def __str__(self):
5728
        return 'BrowseNextParameters(' + 'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', ' + \
5729
               'ContinuationPoints:' + str(self.ContinuationPoints) + ')'
5730
5731 1
    __repr__ = __str__
5732
5733
5734 1
class BrowseNextRequest(FrozenClass):
5735
    '''
5736
    Continues one or more browse operations.
5737
5738
    :ivar TypeId:
5739
    :vartype TypeId: NodeId
5740
    :ivar RequestHeader:
5741
    :vartype RequestHeader: RequestHeader
5742
    :ivar Parameters:
5743
    :vartype Parameters: BrowseNextParameters
5744
    '''
5745 1
    def __init__(self, binary=None):
5746
        if binary is not None:
5747
            self._binary_init(binary)
5748
            self._freeze = True
5749
            return
5750
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextRequest_Encoding_DefaultBinary)
5751
        self.RequestHeader = RequestHeader()
5752
        self.Parameters = BrowseNextParameters()
5753
        self._freeze = True
5754
5755 1
    def to_binary(self):
5756
        packet = []
5757
        packet.append(self.TypeId.to_binary())
5758
        packet.append(self.RequestHeader.to_binary())
5759
        packet.append(self.Parameters.to_binary())
5760
        return b''.join(packet)
5761
5762 1
    @staticmethod
5763
    def from_binary(data):
5764
        return BrowseNextRequest(data)
5765
5766 1
    def _binary_init(self, data):
5767
        self.TypeId = NodeId.from_binary(data)
5768
        self.RequestHeader = RequestHeader.from_binary(data)
5769
        self.Parameters = BrowseNextParameters.from_binary(data)
5770
5771 1
    def __str__(self):
5772
        return 'BrowseNextRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5773
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5774
               'Parameters:' + str(self.Parameters) + ')'
5775
5776 1
    __repr__ = __str__
5777
5778
5779 1
class BrowseNextResult(FrozenClass):
5780
    '''
5781
    :ivar Results:
5782
    :vartype Results: BrowseResult
5783
    :ivar DiagnosticInfos:
5784
    :vartype DiagnosticInfos: DiagnosticInfo
5785
    '''
5786 1
    def __init__(self, binary=None):
5787
        if binary is not None:
5788
            self._binary_init(binary)
5789
            self._freeze = True
5790
            return
5791
        self.Results = []
5792
        self.DiagnosticInfos = []
5793
        self._freeze = True
5794
5795 1
    def to_binary(self):
5796
        packet = []
5797
        packet.append(uatype_Int32.pack(len(self.Results)))
5798
        for fieldname in self.Results:
5799
            packet.append(fieldname.to_binary())
5800
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
5801
        for fieldname in self.DiagnosticInfos:
5802
            packet.append(fieldname.to_binary())
5803
        return b''.join(packet)
5804
5805 1
    @staticmethod
5806
    def from_binary(data):
5807
        return BrowseNextResult(data)
5808
5809 1
    def _binary_init(self, data):
5810
        length = uatype_Int32.unpack(data.read(4))[0]
5811
        array = []
5812
        if length != -1:
5813
            for _ in range(0, length):
5814
                array.append(BrowseResult.from_binary(data))
5815
        self.Results = array
5816
        length = uatype_Int32.unpack(data.read(4))[0]
5817
        array = []
5818
        if length != -1:
5819
            for _ in range(0, length):
5820
                array.append(DiagnosticInfo.from_binary(data))
5821
        self.DiagnosticInfos = array
5822
5823 1
    def __str__(self):
5824
        return 'BrowseNextResult(' + 'Results:' + str(self.Results) + ', ' + \
5825
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5826
5827 1
    __repr__ = __str__
5828
5829
5830 1
class BrowseNextResponse(FrozenClass):
5831
    '''
5832
    Continues one or more browse operations.
5833
5834
    :ivar TypeId:
5835
    :vartype TypeId: NodeId
5836
    :ivar ResponseHeader:
5837
    :vartype ResponseHeader: ResponseHeader
5838
    :ivar Parameters:
5839
    :vartype Parameters: BrowseNextResult
5840
    '''
5841 1
    def __init__(self, binary=None):
5842
        if binary is not None:
5843
            self._binary_init(binary)
5844
            self._freeze = True
5845
            return
5846
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextResponse_Encoding_DefaultBinary)
5847
        self.ResponseHeader = ResponseHeader()
5848
        self.Parameters = BrowseNextResult()
5849
        self._freeze = True
5850
5851 1
    def to_binary(self):
5852
        packet = []
5853
        packet.append(self.TypeId.to_binary())
5854
        packet.append(self.ResponseHeader.to_binary())
5855
        packet.append(self.Parameters.to_binary())
5856
        return b''.join(packet)
5857
5858 1
    @staticmethod
5859
    def from_binary(data):
5860
        return BrowseNextResponse(data)
5861
5862 1
    def _binary_init(self, data):
5863
        self.TypeId = NodeId.from_binary(data)
5864
        self.ResponseHeader = ResponseHeader.from_binary(data)
5865
        self.Parameters = BrowseNextResult.from_binary(data)
5866
5867 1
    def __str__(self):
5868
        return 'BrowseNextResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5869
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5870
               'Parameters:' + str(self.Parameters) + ')'
5871
5872 1
    __repr__ = __str__
5873
5874
5875 1
class RelativePathElement(FrozenClass):
5876
    '''
5877
    An element in a relative path.
5878
5879
    :ivar ReferenceTypeId:
5880
    :vartype ReferenceTypeId: NodeId
5881
    :ivar IsInverse:
5882
    :vartype IsInverse: Boolean
5883
    :ivar IncludeSubtypes:
5884
    :vartype IncludeSubtypes: Boolean
5885
    :ivar TargetName:
5886
    :vartype TargetName: QualifiedName
5887
    '''
5888 1
    def __init__(self, binary=None):
5889 1
        if binary is not None:
5890 1
            self._binary_init(binary)
5891 1
            self._freeze = True
5892 1
            return
5893 1
        self.ReferenceTypeId = NodeId()
5894 1
        self.IsInverse = True
5895 1
        self.IncludeSubtypes = True
5896 1
        self.TargetName = QualifiedName()
5897 1
        self._freeze = True
5898
5899 1
    def to_binary(self):
5900 1
        packet = []
5901 1
        packet.append(self.ReferenceTypeId.to_binary())
5902 1
        packet.append(uatype_Boolean.pack(self.IsInverse))
5903 1
        packet.append(uatype_Boolean.pack(self.IncludeSubtypes))
5904 1
        packet.append(self.TargetName.to_binary())
5905 1
        return b''.join(packet)
5906
5907 1
    @staticmethod
5908
    def from_binary(data):
5909 1
        return RelativePathElement(data)
5910
5911 1
    def _binary_init(self, data):
5912 1
        self.ReferenceTypeId = NodeId.from_binary(data)
5913 1
        self.IsInverse = uatype_Boolean.unpack(data.read(1))[0]
5914 1
        self.IncludeSubtypes = uatype_Boolean.unpack(data.read(1))[0]
5915 1
        self.TargetName = QualifiedName.from_binary(data)
5916
5917 1
    def __str__(self):
5918
        return 'RelativePathElement(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
5919
               'IsInverse:' + str(self.IsInverse) + ', ' + \
5920
               'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', ' + \
5921
               'TargetName:' + str(self.TargetName) + ')'
5922
5923 1
    __repr__ = __str__
5924
5925
5926 1
class RelativePath(FrozenClass):
5927
    '''
5928
    A relative path constructed from reference types and browse names.
5929
5930
    :ivar Elements:
5931
    :vartype Elements: RelativePathElement
5932
    '''
5933 1
    def __init__(self, binary=None):
5934 1
        if binary is not None:
5935 1
            self._binary_init(binary)
5936 1
            self._freeze = True
5937 1
            return
5938 1
        self.Elements = []
5939 1
        self._freeze = True
5940
5941 1
    def to_binary(self):
5942 1
        packet = []
5943 1
        packet.append(uatype_Int32.pack(len(self.Elements)))
5944 1
        for fieldname in self.Elements:
5945 1
            packet.append(fieldname.to_binary())
5946 1
        return b''.join(packet)
5947
5948 1
    @staticmethod
5949
    def from_binary(data):
5950 1
        return RelativePath(data)
5951
5952 1
    def _binary_init(self, data):
5953 1
        length = uatype_Int32.unpack(data.read(4))[0]
5954 1
        array = []
5955 1
        if length != -1:
5956 1
            for _ in range(0, length):
5957 1
                array.append(RelativePathElement.from_binary(data))
5958 1
        self.Elements = array
5959
5960 1
    def __str__(self):
5961
        return 'RelativePath(' + 'Elements:' + str(self.Elements) + ')'
5962
5963 1
    __repr__ = __str__
5964
5965
5966 1
class BrowsePath(FrozenClass):
5967
    '''
5968
    A request to translate a path into a node id.
5969
5970
    :ivar StartingNode:
5971
    :vartype StartingNode: NodeId
5972
    :ivar RelativePath:
5973
    :vartype RelativePath: RelativePath
5974
    '''
5975 1
    def __init__(self, binary=None):
5976 1
        if binary is not None:
5977 1
            self._binary_init(binary)
5978 1
            self._freeze = True
5979 1
            return
5980 1
        self.StartingNode = NodeId()
5981 1
        self.RelativePath = RelativePath()
5982 1
        self._freeze = True
5983
5984 1
    def to_binary(self):
5985 1
        packet = []
5986 1
        packet.append(self.StartingNode.to_binary())
5987 1
        packet.append(self.RelativePath.to_binary())
5988 1
        return b''.join(packet)
5989
5990 1
    @staticmethod
5991
    def from_binary(data):
5992 1
        return BrowsePath(data)
5993
5994 1
    def _binary_init(self, data):
5995 1
        self.StartingNode = NodeId.from_binary(data)
5996 1
        self.RelativePath = RelativePath.from_binary(data)
5997
5998 1
    def __str__(self):
5999
        return 'BrowsePath(' + 'StartingNode:' + str(self.StartingNode) + ', ' + \
6000
               'RelativePath:' + str(self.RelativePath) + ')'
6001
6002 1
    __repr__ = __str__
6003
6004
6005 1
class BrowsePathTarget(FrozenClass):
6006
    '''
6007
    The target of the translated path.
6008
6009
    :ivar TargetId:
6010
    :vartype TargetId: ExpandedNodeId
6011
    :ivar RemainingPathIndex:
6012
    :vartype RemainingPathIndex: UInt32
6013
    '''
6014 1
    def __init__(self, binary=None):
6015 1
        if binary is not None:
6016 1
            self._binary_init(binary)
6017 1
            self._freeze = True
6018 1
            return
6019 1
        self.TargetId = ExpandedNodeId()
6020 1
        self.RemainingPathIndex = 0
6021 1
        self._freeze = True
6022
6023 1
    def to_binary(self):
6024 1
        packet = []
6025 1
        packet.append(self.TargetId.to_binary())
6026 1
        packet.append(uatype_UInt32.pack(self.RemainingPathIndex))
6027 1
        return b''.join(packet)
6028
6029 1
    @staticmethod
6030
    def from_binary(data):
6031 1
        return BrowsePathTarget(data)
6032
6033 1
    def _binary_init(self, data):
6034 1
        self.TargetId = ExpandedNodeId.from_binary(data)
6035 1
        self.RemainingPathIndex = uatype_UInt32.unpack(data.read(4))[0]
6036
6037 1
    def __str__(self):
6038
        return 'BrowsePathTarget(' + 'TargetId:' + str(self.TargetId) + ', ' + \
6039
               'RemainingPathIndex:' + str(self.RemainingPathIndex) + ')'
6040
6041 1
    __repr__ = __str__
6042
6043
6044 1
class BrowsePathResult(FrozenClass):
6045
    '''
6046
    The result of a translate opearation.
6047
6048
    :ivar StatusCode:
6049
    :vartype StatusCode: StatusCode
6050
    :ivar Targets:
6051
    :vartype Targets: BrowsePathTarget
6052
    '''
6053 1
    def __init__(self, binary=None):
6054 1
        if binary is not None:
6055 1
            self._binary_init(binary)
6056 1
            self._freeze = True
6057 1
            return
6058 1
        self.StatusCode = StatusCode()
6059 1
        self.Targets = []
6060 1
        self._freeze = True
6061
6062 1
    def to_binary(self):
6063 1
        packet = []
6064 1
        packet.append(self.StatusCode.to_binary())
6065 1
        packet.append(uatype_Int32.pack(len(self.Targets)))
6066 1
        for fieldname in self.Targets:
6067 1
            packet.append(fieldname.to_binary())
6068 1
        return b''.join(packet)
6069
6070 1
    @staticmethod
6071
    def from_binary(data):
6072 1
        return BrowsePathResult(data)
6073
6074 1
    def _binary_init(self, data):
6075 1
        self.StatusCode = StatusCode.from_binary(data)
6076 1
        length = uatype_Int32.unpack(data.read(4))[0]
6077 1
        array = []
6078 1
        if length != -1:
6079 1
            for _ in range(0, length):
6080 1
                array.append(BrowsePathTarget.from_binary(data))
6081 1
        self.Targets = array
6082
6083 1
    def __str__(self):
6084
        return 'BrowsePathResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
6085
               'Targets:' + str(self.Targets) + ')'
6086
6087 1
    __repr__ = __str__
6088
6089
6090 1
class TranslateBrowsePathsToNodeIdsParameters(FrozenClass):
6091
    '''
6092
    :ivar BrowsePaths:
6093
    :vartype BrowsePaths: BrowsePath
6094
    '''
6095 1
    def __init__(self, binary=None):
6096 1
        if binary is not None:
6097 1
            self._binary_init(binary)
6098 1
            self._freeze = True
6099 1
            return
6100 1
        self.BrowsePaths = []
6101 1
        self._freeze = True
6102
6103 1
    def to_binary(self):
6104 1
        packet = []
6105 1
        packet.append(uatype_Int32.pack(len(self.BrowsePaths)))
6106 1
        for fieldname in self.BrowsePaths:
6107 1
            packet.append(fieldname.to_binary())
6108 1
        return b''.join(packet)
6109
6110 1
    @staticmethod
6111
    def from_binary(data):
6112 1
        return TranslateBrowsePathsToNodeIdsParameters(data)
6113
6114 1
    def _binary_init(self, data):
6115 1
        length = uatype_Int32.unpack(data.read(4))[0]
6116 1
        array = []
6117 1
        if length != -1:
6118 1
            for _ in range(0, length):
6119 1
                array.append(BrowsePath.from_binary(data))
6120 1
        self.BrowsePaths = array
6121
6122 1
    def __str__(self):
6123
        return 'TranslateBrowsePathsToNodeIdsParameters(' + 'BrowsePaths:' + str(self.BrowsePaths) + ')'
6124
6125 1
    __repr__ = __str__
6126
6127
6128 1
class TranslateBrowsePathsToNodeIdsRequest(FrozenClass):
6129
    '''
6130
    Translates one or more paths in the server address space.
6131
6132
    :ivar TypeId:
6133
    :vartype TypeId: NodeId
6134
    :ivar RequestHeader:
6135
    :vartype RequestHeader: RequestHeader
6136
    :ivar Parameters:
6137
    :vartype Parameters: TranslateBrowsePathsToNodeIdsParameters
6138
    '''
6139 1
    def __init__(self, binary=None):
6140 1
        if binary is not None:
6141
            self._binary_init(binary)
6142
            self._freeze = True
6143
            return
6144 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary)
6145 1
        self.RequestHeader = RequestHeader()
6146 1
        self.Parameters = TranslateBrowsePathsToNodeIdsParameters()
6147 1
        self._freeze = True
6148
6149 1
    def to_binary(self):
6150 1
        packet = []
6151 1
        packet.append(self.TypeId.to_binary())
6152 1
        packet.append(self.RequestHeader.to_binary())
6153 1
        packet.append(self.Parameters.to_binary())
6154 1
        return b''.join(packet)
6155
6156 1
    @staticmethod
6157
    def from_binary(data):
6158
        return TranslateBrowsePathsToNodeIdsRequest(data)
6159
6160 1
    def _binary_init(self, data):
6161
        self.TypeId = NodeId.from_binary(data)
6162
        self.RequestHeader = RequestHeader.from_binary(data)
6163
        self.Parameters = TranslateBrowsePathsToNodeIdsParameters.from_binary(data)
6164
6165 1
    def __str__(self):
6166
        return 'TranslateBrowsePathsToNodeIdsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6167
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
6168
               'Parameters:' + str(self.Parameters) + ')'
6169
6170 1
    __repr__ = __str__
6171
6172
6173 1
class TranslateBrowsePathsToNodeIdsResponse(FrozenClass):
6174
    '''
6175
    Translates one or more paths in the server address space.
6176
6177
    :ivar TypeId:
6178
    :vartype TypeId: NodeId
6179
    :ivar ResponseHeader:
6180
    :vartype ResponseHeader: ResponseHeader
6181
    :ivar Results:
6182
    :vartype Results: BrowsePathResult
6183
    :ivar DiagnosticInfos:
6184
    :vartype DiagnosticInfos: DiagnosticInfo
6185
    '''
6186 1
    def __init__(self, binary=None):
6187 1
        if binary is not None:
6188 1
            self._binary_init(binary)
6189 1
            self._freeze = True
6190 1
            return
6191 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary)
6192 1
        self.ResponseHeader = ResponseHeader()
6193 1
        self.Results = []
6194 1
        self.DiagnosticInfos = []
6195 1
        self._freeze = True
6196
6197 1
    def to_binary(self):
6198 1
        packet = []
6199 1
        packet.append(self.TypeId.to_binary())
6200 1
        packet.append(self.ResponseHeader.to_binary())
6201 1
        packet.append(uatype_Int32.pack(len(self.Results)))
6202 1
        for fieldname in self.Results:
6203 1
            packet.append(fieldname.to_binary())
6204 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
6205 1
        for fieldname in self.DiagnosticInfos:
6206
            packet.append(fieldname.to_binary())
6207 1
        return b''.join(packet)
6208
6209 1
    @staticmethod
6210
    def from_binary(data):
6211 1
        return TranslateBrowsePathsToNodeIdsResponse(data)
6212
6213 1
    def _binary_init(self, data):
6214 1
        self.TypeId = NodeId.from_binary(data)
6215 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
6216 1
        length = uatype_Int32.unpack(data.read(4))[0]
6217 1
        array = []
6218 1
        if length != -1:
6219 1
            for _ in range(0, length):
6220 1
                array.append(BrowsePathResult.from_binary(data))
6221 1
        self.Results = array
6222 1
        length = uatype_Int32.unpack(data.read(4))[0]
6223 1
        array = []
6224 1
        if length != -1:
6225 1
            for _ in range(0, length):
6226
                array.append(DiagnosticInfo.from_binary(data))
6227 1
        self.DiagnosticInfos = array
6228
6229 1
    def __str__(self):
6230
        return 'TranslateBrowsePathsToNodeIdsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6231
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
6232
               'Results:' + str(self.Results) + ', ' + \
6233
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
6234
6235 1
    __repr__ = __str__
6236
6237
6238 1
class RegisterNodesParameters(FrozenClass):
6239
    '''
6240
    :ivar NodesToRegister:
6241
    :vartype NodesToRegister: NodeId
6242
    '''
6243 1
    def __init__(self, binary=None):
6244
        if binary is not None:
6245
            self._binary_init(binary)
6246
            self._freeze = True
6247
            return
6248
        self.NodesToRegister = []
6249
        self._freeze = True
6250
6251 1
    def to_binary(self):
6252
        packet = []
6253
        packet.append(uatype_Int32.pack(len(self.NodesToRegister)))
6254
        for fieldname in self.NodesToRegister:
6255
            packet.append(fieldname.to_binary())
6256
        return b''.join(packet)
6257
6258 1
    @staticmethod
6259
    def from_binary(data):
6260
        return RegisterNodesParameters(data)
6261
6262 1
    def _binary_init(self, data):
6263
        length = uatype_Int32.unpack(data.read(4))[0]
6264
        array = []
6265
        if length != -1:
6266
            for _ in range(0, length):
6267
                array.append(NodeId.from_binary(data))
6268
        self.NodesToRegister = array
6269
6270 1
    def __str__(self):
6271
        return 'RegisterNodesParameters(' + 'NodesToRegister:' + str(self.NodesToRegister) + ')'
6272
6273 1
    __repr__ = __str__
6274
6275
6276 1
class RegisterNodesRequest(FrozenClass):
6277
    '''
6278
    Registers one or more nodes for repeated use within a session.
6279
6280
    :ivar TypeId:
6281
    :vartype TypeId: NodeId
6282
    :ivar RequestHeader:
6283
    :vartype RequestHeader: RequestHeader
6284
    :ivar Parameters:
6285
    :vartype Parameters: RegisterNodesParameters
6286
    '''
6287 1
    def __init__(self, binary=None):
6288
        if binary is not None:
6289
            self._binary_init(binary)
6290
            self._freeze = True
6291
            return
6292
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary)
6293
        self.RequestHeader = RequestHeader()
6294
        self.Parameters = RegisterNodesParameters()
6295
        self._freeze = True
6296
6297 1
    def to_binary(self):
6298
        packet = []
6299
        packet.append(self.TypeId.to_binary())
6300
        packet.append(self.RequestHeader.to_binary())
6301
        packet.append(self.Parameters.to_binary())
6302
        return b''.join(packet)
6303
6304 1
    @staticmethod
6305
    def from_binary(data):
6306
        return RegisterNodesRequest(data)
6307
6308 1
    def _binary_init(self, data):
6309
        self.TypeId = NodeId.from_binary(data)
6310
        self.RequestHeader = RequestHeader.from_binary(data)
6311
        self.Parameters = RegisterNodesParameters.from_binary(data)
6312
6313 1
    def __str__(self):
6314
        return 'RegisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6315
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
6316
               'Parameters:' + str(self.Parameters) + ')'
6317
6318 1
    __repr__ = __str__
6319
6320
6321 1
class RegisterNodesResult(FrozenClass):
6322
    '''
6323
    :ivar RegisteredNodeIds:
6324
    :vartype RegisteredNodeIds: NodeId
6325
    '''
6326 1
    def __init__(self, binary=None):
6327
        if binary is not None:
6328
            self._binary_init(binary)
6329
            self._freeze = True
6330
            return
6331
        self.RegisteredNodeIds = []
6332
        self._freeze = True
6333
6334 1
    def to_binary(self):
6335
        packet = []
6336
        packet.append(uatype_Int32.pack(len(self.RegisteredNodeIds)))
6337
        for fieldname in self.RegisteredNodeIds:
6338
            packet.append(fieldname.to_binary())
6339
        return b''.join(packet)
6340
6341 1
    @staticmethod
6342
    def from_binary(data):
6343
        return RegisterNodesResult(data)
6344
6345 1
    def _binary_init(self, data):
6346
        length = uatype_Int32.unpack(data.read(4))[0]
6347
        array = []
6348
        if length != -1:
6349
            for _ in range(0, length):
6350
                array.append(NodeId.from_binary(data))
6351
        self.RegisteredNodeIds = array
6352
6353 1
    def __str__(self):
6354
        return 'RegisterNodesResult(' + 'RegisteredNodeIds:' + str(self.RegisteredNodeIds) + ')'
6355
6356 1
    __repr__ = __str__
6357
6358
6359 1
class RegisterNodesResponse(FrozenClass):
6360
    '''
6361
    Registers one or more nodes for repeated use within a session.
6362
6363
    :ivar TypeId:
6364
    :vartype TypeId: NodeId
6365
    :ivar ResponseHeader:
6366
    :vartype ResponseHeader: ResponseHeader
6367
    :ivar Parameters:
6368
    :vartype Parameters: RegisterNodesResult
6369
    '''
6370 1
    def __init__(self, binary=None):
6371
        if binary is not None:
6372
            self._binary_init(binary)
6373
            self._freeze = True
6374
            return
6375
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary)
6376
        self.ResponseHeader = ResponseHeader()
6377
        self.Parameters = RegisterNodesResult()
6378
        self._freeze = True
6379
6380 1
    def to_binary(self):
6381
        packet = []
6382
        packet.append(self.TypeId.to_binary())
6383
        packet.append(self.ResponseHeader.to_binary())
6384
        packet.append(self.Parameters.to_binary())
6385
        return b''.join(packet)
6386
6387 1
    @staticmethod
6388
    def from_binary(data):
6389
        return RegisterNodesResponse(data)
6390
6391 1
    def _binary_init(self, data):
6392
        self.TypeId = NodeId.from_binary(data)
6393
        self.ResponseHeader = ResponseHeader.from_binary(data)
6394
        self.Parameters = RegisterNodesResult.from_binary(data)
6395
6396 1
    def __str__(self):
6397
        return 'RegisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6398
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
6399
               'Parameters:' + str(self.Parameters) + ')'
6400
6401 1
    __repr__ = __str__
6402
6403
6404 1
class UnregisterNodesParameters(FrozenClass):
6405
    '''
6406
    :ivar NodesToUnregister:
6407
    :vartype NodesToUnregister: NodeId
6408
    '''
6409 1
    def __init__(self, binary=None):
6410
        if binary is not None:
6411
            self._binary_init(binary)
6412
            self._freeze = True
6413
            return
6414
        self.NodesToUnregister = []
6415
        self._freeze = True
6416
6417 1
    def to_binary(self):
6418
        packet = []
6419
        packet.append(uatype_Int32.pack(len(self.NodesToUnregister)))
6420
        for fieldname in self.NodesToUnregister:
6421
            packet.append(fieldname.to_binary())
6422
        return b''.join(packet)
6423
6424 1
    @staticmethod
6425
    def from_binary(data):
6426
        return UnregisterNodesParameters(data)
6427
6428 1
    def _binary_init(self, data):
6429
        length = uatype_Int32.unpack(data.read(4))[0]
6430
        array = []
6431
        if length != -1:
6432
            for _ in range(0, length):
6433
                array.append(NodeId.from_binary(data))
6434
        self.NodesToUnregister = array
6435
6436 1
    def __str__(self):
6437
        return 'UnregisterNodesParameters(' + 'NodesToUnregister:' + str(self.NodesToUnregister) + ')'
6438
6439 1
    __repr__ = __str__
6440
6441
6442 1
class UnregisterNodesRequest(FrozenClass):
6443
    '''
6444
    Unregisters one or more previously registered nodes.
6445
6446
    :ivar TypeId:
6447
    :vartype TypeId: NodeId
6448
    :ivar RequestHeader:
6449
    :vartype RequestHeader: RequestHeader
6450
    :ivar Parameters:
6451
    :vartype Parameters: UnregisterNodesParameters
6452
    '''
6453 1
    def __init__(self, binary=None):
6454
        if binary is not None:
6455
            self._binary_init(binary)
6456
            self._freeze = True
6457
            return
6458
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary)
6459
        self.RequestHeader = RequestHeader()
6460
        self.Parameters = UnregisterNodesParameters()
6461
        self._freeze = True
6462
6463 1
    def to_binary(self):
6464
        packet = []
6465
        packet.append(self.TypeId.to_binary())
6466
        packet.append(self.RequestHeader.to_binary())
6467
        packet.append(self.Parameters.to_binary())
6468
        return b''.join(packet)
6469
6470 1
    @staticmethod
6471
    def from_binary(data):
6472
        return UnregisterNodesRequest(data)
6473
6474 1
    def _binary_init(self, data):
6475
        self.TypeId = NodeId.from_binary(data)
6476
        self.RequestHeader = RequestHeader.from_binary(data)
6477
        self.Parameters = UnregisterNodesParameters.from_binary(data)
6478
6479 1
    def __str__(self):
6480
        return 'UnregisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6481
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
6482
               'Parameters:' + str(self.Parameters) + ')'
6483
6484 1
    __repr__ = __str__
6485
6486
6487 1
class UnregisterNodesResponse(FrozenClass):
6488
    '''
6489
    Unregisters one or more previously registered nodes.
6490
6491
    :ivar TypeId:
6492
    :vartype TypeId: NodeId
6493
    :ivar ResponseHeader:
6494
    :vartype ResponseHeader: ResponseHeader
6495
    '''
6496 1
    def __init__(self, binary=None):
6497
        if binary is not None:
6498
            self._binary_init(binary)
6499
            self._freeze = True
6500
            return
6501
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary)
6502
        self.ResponseHeader = ResponseHeader()
6503
        self._freeze = True
6504
6505 1
    def to_binary(self):
6506
        packet = []
6507
        packet.append(self.TypeId.to_binary())
6508
        packet.append(self.ResponseHeader.to_binary())
6509
        return b''.join(packet)
6510
6511 1
    @staticmethod
6512
    def from_binary(data):
6513
        return UnregisterNodesResponse(data)
6514
6515 1
    def _binary_init(self, data):
6516
        self.TypeId = NodeId.from_binary(data)
6517
        self.ResponseHeader = ResponseHeader.from_binary(data)
6518
6519 1
    def __str__(self):
6520
        return 'UnregisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6521
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
6522
6523 1
    __repr__ = __str__
6524
6525
6526 1
class EndpointConfiguration(FrozenClass):
6527
    '''
6528
    :ivar OperationTimeout:
6529
    :vartype OperationTimeout: Int32
6530
    :ivar UseBinaryEncoding:
6531
    :vartype UseBinaryEncoding: Boolean
6532
    :ivar MaxStringLength:
6533
    :vartype MaxStringLength: Int32
6534
    :ivar MaxByteStringLength:
6535
    :vartype MaxByteStringLength: Int32
6536
    :ivar MaxArrayLength:
6537
    :vartype MaxArrayLength: Int32
6538
    :ivar MaxMessageSize:
6539
    :vartype MaxMessageSize: Int32
6540
    :ivar MaxBufferSize:
6541
    :vartype MaxBufferSize: Int32
6542
    :ivar ChannelLifetime:
6543
    :vartype ChannelLifetime: Int32
6544
    :ivar SecurityTokenLifetime:
6545
    :vartype SecurityTokenLifetime: Int32
6546
    '''
6547 1
    def __init__(self, binary=None):
6548
        if binary is not None:
6549
            self._binary_init(binary)
6550
            self._freeze = True
6551
            return
6552
        self.OperationTimeout = 0
6553
        self.UseBinaryEncoding = True
6554
        self.MaxStringLength = 0
6555
        self.MaxByteStringLength = 0
6556
        self.MaxArrayLength = 0
6557
        self.MaxMessageSize = 0
6558
        self.MaxBufferSize = 0
6559
        self.ChannelLifetime = 0
6560
        self.SecurityTokenLifetime = 0
6561
        self._freeze = True
6562
6563 1
    def to_binary(self):
6564
        packet = []
6565
        packet.append(uatype_Int32.pack(self.OperationTimeout))
6566
        packet.append(uatype_Boolean.pack(self.UseBinaryEncoding))
6567
        packet.append(uatype_Int32.pack(self.MaxStringLength))
6568
        packet.append(uatype_Int32.pack(self.MaxByteStringLength))
6569
        packet.append(uatype_Int32.pack(self.MaxArrayLength))
6570
        packet.append(uatype_Int32.pack(self.MaxMessageSize))
6571
        packet.append(uatype_Int32.pack(self.MaxBufferSize))
6572
        packet.append(uatype_Int32.pack(self.ChannelLifetime))
6573
        packet.append(uatype_Int32.pack(self.SecurityTokenLifetime))
6574
        return b''.join(packet)
6575
6576 1
    @staticmethod
6577
    def from_binary(data):
6578
        return EndpointConfiguration(data)
6579
6580 1
    def _binary_init(self, data):
6581
        self.OperationTimeout = uatype_Int32.unpack(data.read(4))[0]
6582
        self.UseBinaryEncoding = uatype_Boolean.unpack(data.read(1))[0]
6583
        self.MaxStringLength = uatype_Int32.unpack(data.read(4))[0]
6584
        self.MaxByteStringLength = uatype_Int32.unpack(data.read(4))[0]
6585
        self.MaxArrayLength = uatype_Int32.unpack(data.read(4))[0]
6586
        self.MaxMessageSize = uatype_Int32.unpack(data.read(4))[0]
6587
        self.MaxBufferSize = uatype_Int32.unpack(data.read(4))[0]
6588
        self.ChannelLifetime = uatype_Int32.unpack(data.read(4))[0]
6589
        self.SecurityTokenLifetime = uatype_Int32.unpack(data.read(4))[0]
6590
6591 1
    def __str__(self):
6592
        return 'EndpointConfiguration(' + 'OperationTimeout:' + str(self.OperationTimeout) + ', ' + \
6593
               'UseBinaryEncoding:' + str(self.UseBinaryEncoding) + ', ' + \
6594
               'MaxStringLength:' + str(self.MaxStringLength) + ', ' + \
6595
               'MaxByteStringLength:' + str(self.MaxByteStringLength) + ', ' + \
6596
               'MaxArrayLength:' + str(self.MaxArrayLength) + ', ' + \
6597
               'MaxMessageSize:' + str(self.MaxMessageSize) + ', ' + \
6598
               'MaxBufferSize:' + str(self.MaxBufferSize) + ', ' + \
6599
               'ChannelLifetime:' + str(self.ChannelLifetime) + ', ' + \
6600
               'SecurityTokenLifetime:' + str(self.SecurityTokenLifetime) + ')'
6601
6602 1
    __repr__ = __str__
6603
6604
6605 1
class SupportedProfile(FrozenClass):
6606
    '''
6607
    :ivar OrganizationUri:
6608
    :vartype OrganizationUri: String
6609
    :ivar ProfileId:
6610
    :vartype ProfileId: String
6611
    :ivar ComplianceTool:
6612
    :vartype ComplianceTool: String
6613
    :ivar ComplianceDate:
6614
    :vartype ComplianceDate: DateTime
6615
    :ivar ComplianceLevel:
6616
    :vartype ComplianceLevel: ComplianceLevel
6617
    :ivar UnsupportedUnitIds:
6618
    :vartype UnsupportedUnitIds: String
6619
    '''
6620 1
    def __init__(self, binary=None):
6621
        if binary is not None:
6622
            self._binary_init(binary)
6623
            self._freeze = True
6624
            return
6625
        self.OrganizationUri = ''
6626
        self.ProfileId = ''
6627
        self.ComplianceTool = ''
6628
        self.ComplianceDate = datetime.now()
6629
        self.ComplianceLevel = ComplianceLevel(0)
6630
        self.UnsupportedUnitIds = []
6631
        self._freeze = True
6632
6633 1
    def to_binary(self):
6634
        packet = []
6635
        packet.append(pack_string(self.OrganizationUri))
6636
        packet.append(pack_string(self.ProfileId))
6637
        packet.append(pack_string(self.ComplianceTool))
6638
        packet.append(pack_datetime(self.ComplianceDate))
6639
        packet.append(uatype_UInt32.pack(self.ComplianceLevel.value))
6640
        packet.append(uatype_Int32.pack(len(self.UnsupportedUnitIds)))
6641
        for fieldname in self.UnsupportedUnitIds:
6642
            packet.append(pack_string(fieldname))
6643
        return b''.join(packet)
6644
6645 1
    @staticmethod
6646
    def from_binary(data):
6647
        return SupportedProfile(data)
6648
6649 1
    def _binary_init(self, data):
6650
        self.OrganizationUri = unpack_string(data)
6651
        self.ProfileId = unpack_string(data)
6652
        self.ComplianceTool = unpack_string(data)
6653
        self.ComplianceDate = unpack_datetime(data)
6654
        self.ComplianceLevel = ComplianceLevel(uatype_UInt32.unpack(data.read(4))[0])
6655
        self.UnsupportedUnitIds = unpack_uatype_array('String', data)
6656
6657 1
    def __str__(self):
6658
        return 'SupportedProfile(' + 'OrganizationUri:' + str(self.OrganizationUri) + ', ' + \
6659
               'ProfileId:' + str(self.ProfileId) + ', ' + \
6660
               'ComplianceTool:' + str(self.ComplianceTool) + ', ' + \
6661
               'ComplianceDate:' + str(self.ComplianceDate) + ', ' + \
6662
               'ComplianceLevel:' + str(self.ComplianceLevel) + ', ' + \
6663
               'UnsupportedUnitIds:' + str(self.UnsupportedUnitIds) + ')'
6664
6665 1
    __repr__ = __str__
6666
6667
6668 1
class SoftwareCertificate(FrozenClass):
6669
    '''
6670
    :ivar ProductName:
6671
    :vartype ProductName: String
6672
    :ivar ProductUri:
6673
    :vartype ProductUri: String
6674
    :ivar VendorName:
6675
    :vartype VendorName: String
6676
    :ivar VendorProductCertificate:
6677
    :vartype VendorProductCertificate: ByteString
6678
    :ivar SoftwareVersion:
6679
    :vartype SoftwareVersion: String
6680
    :ivar BuildNumber:
6681
    :vartype BuildNumber: String
6682
    :ivar BuildDate:
6683
    :vartype BuildDate: DateTime
6684
    :ivar IssuedBy:
6685
    :vartype IssuedBy: String
6686
    :ivar IssueDate:
6687
    :vartype IssueDate: DateTime
6688
    :ivar SupportedProfiles:
6689
    :vartype SupportedProfiles: SupportedProfile
6690
    '''
6691 1
    def __init__(self, binary=None):
6692
        if binary is not None:
6693
            self._binary_init(binary)
6694
            self._freeze = True
6695
            return
6696
        self.ProductName = ''
6697
        self.ProductUri = ''
6698
        self.VendorName = ''
6699
        self.VendorProductCertificate = b''
6700
        self.SoftwareVersion = ''
6701
        self.BuildNumber = ''
6702
        self.BuildDate = datetime.now()
6703
        self.IssuedBy = ''
6704
        self.IssueDate = datetime.now()
6705
        self.SupportedProfiles = []
6706
        self._freeze = True
6707
6708 1
    def to_binary(self):
6709
        packet = []
6710
        packet.append(pack_string(self.ProductName))
6711
        packet.append(pack_string(self.ProductUri))
6712
        packet.append(pack_string(self.VendorName))
6713
        packet.append(pack_bytes(self.VendorProductCertificate))
6714
        packet.append(pack_string(self.SoftwareVersion))
6715
        packet.append(pack_string(self.BuildNumber))
6716
        packet.append(pack_datetime(self.BuildDate))
6717
        packet.append(pack_string(self.IssuedBy))
6718
        packet.append(pack_datetime(self.IssueDate))
6719
        packet.append(uatype_Int32.pack(len(self.SupportedProfiles)))
6720
        for fieldname in self.SupportedProfiles:
6721
            packet.append(fieldname.to_binary())
6722
        return b''.join(packet)
6723
6724 1
    @staticmethod
6725
    def from_binary(data):
6726
        return SoftwareCertificate(data)
6727
6728 1
    def _binary_init(self, data):
6729
        self.ProductName = unpack_string(data)
6730
        self.ProductUri = unpack_string(data)
6731
        self.VendorName = unpack_string(data)
6732
        self.VendorProductCertificate = unpack_bytes(data)
6733
        self.SoftwareVersion = unpack_string(data)
6734
        self.BuildNumber = unpack_string(data)
6735
        self.BuildDate = unpack_datetime(data)
6736
        self.IssuedBy = unpack_string(data)
6737
        self.IssueDate = unpack_datetime(data)
6738
        length = uatype_Int32.unpack(data.read(4))[0]
6739
        array = []
6740
        if length != -1:
6741
            for _ in range(0, length):
6742
                array.append(SupportedProfile.from_binary(data))
6743
        self.SupportedProfiles = array
6744
6745 1
    def __str__(self):
6746
        return 'SoftwareCertificate(' + 'ProductName:' + str(self.ProductName) + ', ' + \
6747
               'ProductUri:' + str(self.ProductUri) + ', ' + \
6748
               'VendorName:' + str(self.VendorName) + ', ' + \
6749
               'VendorProductCertificate:' + str(self.VendorProductCertificate) + ', ' + \
6750
               'SoftwareVersion:' + str(self.SoftwareVersion) + ', ' + \
6751
               'BuildNumber:' + str(self.BuildNumber) + ', ' + \
6752
               'BuildDate:' + str(self.BuildDate) + ', ' + \
6753
               'IssuedBy:' + str(self.IssuedBy) + ', ' + \
6754
               'IssueDate:' + str(self.IssueDate) + ', ' + \
6755
               'SupportedProfiles:' + str(self.SupportedProfiles) + ')'
6756
6757 1
    __repr__ = __str__
6758
6759
6760 1
class QueryDataDescription(FrozenClass):
6761
    '''
6762
    :ivar RelativePath:
6763
    :vartype RelativePath: RelativePath
6764
    :ivar AttributeId:
6765
    :vartype AttributeId: UInt32
6766
    :ivar IndexRange:
6767
    :vartype IndexRange: String
6768
    '''
6769 1
    def __init__(self, binary=None):
6770
        if binary is not None:
6771
            self._binary_init(binary)
6772
            self._freeze = True
6773
            return
6774
        self.RelativePath = RelativePath()
6775
        self.AttributeId = 0
6776
        self.IndexRange = ''
6777
        self._freeze = True
6778
6779 1
    def to_binary(self):
6780
        packet = []
6781
        packet.append(self.RelativePath.to_binary())
6782
        packet.append(uatype_UInt32.pack(self.AttributeId))
6783
        packet.append(pack_string(self.IndexRange))
6784
        return b''.join(packet)
6785
6786 1
    @staticmethod
6787
    def from_binary(data):
6788
        return QueryDataDescription(data)
6789
6790 1
    def _binary_init(self, data):
6791
        self.RelativePath = RelativePath.from_binary(data)
6792
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
6793
        self.IndexRange = unpack_string(data)
6794
6795 1
    def __str__(self):
6796
        return 'QueryDataDescription(' + 'RelativePath:' + str(self.RelativePath) + ', ' + \
6797
               'AttributeId:' + str(self.AttributeId) + ', ' + \
6798
               'IndexRange:' + str(self.IndexRange) + ')'
6799
6800 1
    __repr__ = __str__
6801
6802
6803 1
class NodeTypeDescription(FrozenClass):
6804
    '''
6805
    :ivar TypeDefinitionNode:
6806
    :vartype TypeDefinitionNode: ExpandedNodeId
6807
    :ivar IncludeSubTypes:
6808
    :vartype IncludeSubTypes: Boolean
6809
    :ivar DataToReturn:
6810
    :vartype DataToReturn: QueryDataDescription
6811
    '''
6812 1
    def __init__(self, binary=None):
6813
        if binary is not None:
6814
            self._binary_init(binary)
6815
            self._freeze = True
6816
            return
6817
        self.TypeDefinitionNode = ExpandedNodeId()
6818
        self.IncludeSubTypes = True
6819
        self.DataToReturn = []
6820
        self._freeze = True
6821
6822 1
    def to_binary(self):
6823
        packet = []
6824
        packet.append(self.TypeDefinitionNode.to_binary())
6825
        packet.append(uatype_Boolean.pack(self.IncludeSubTypes))
6826
        packet.append(uatype_Int32.pack(len(self.DataToReturn)))
6827
        for fieldname in self.DataToReturn:
6828
            packet.append(fieldname.to_binary())
6829
        return b''.join(packet)
6830
6831 1
    @staticmethod
6832
    def from_binary(data):
6833
        return NodeTypeDescription(data)
6834
6835 1
    def _binary_init(self, data):
6836
        self.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6837
        self.IncludeSubTypes = uatype_Boolean.unpack(data.read(1))[0]
6838
        length = uatype_Int32.unpack(data.read(4))[0]
6839
        array = []
6840
        if length != -1:
6841
            for _ in range(0, length):
6842
                array.append(QueryDataDescription.from_binary(data))
6843
        self.DataToReturn = array
6844
6845 1
    def __str__(self):
6846
        return 'NodeTypeDescription(' + 'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', ' + \
6847
               'IncludeSubTypes:' + str(self.IncludeSubTypes) + ', ' + \
6848
               'DataToReturn:' + str(self.DataToReturn) + ')'
6849
6850 1
    __repr__ = __str__
6851
6852
6853 1
class QueryDataSet(FrozenClass):
6854
    '''
6855
    :ivar NodeId:
6856
    :vartype NodeId: ExpandedNodeId
6857
    :ivar TypeDefinitionNode:
6858
    :vartype TypeDefinitionNode: ExpandedNodeId
6859
    :ivar Values:
6860
    :vartype Values: Variant
6861
    '''
6862 1
    def __init__(self, binary=None):
6863
        if binary is not None:
6864
            self._binary_init(binary)
6865
            self._freeze = True
6866
            return
6867
        self.NodeId = ExpandedNodeId()
6868
        self.TypeDefinitionNode = ExpandedNodeId()
6869
        self.Values = []
6870
        self._freeze = True
6871
6872 1
    def to_binary(self):
6873
        packet = []
6874
        packet.append(self.NodeId.to_binary())
6875
        packet.append(self.TypeDefinitionNode.to_binary())
6876
        packet.append(uatype_Int32.pack(len(self.Values)))
6877
        for fieldname in self.Values:
6878
            packet.append(fieldname.to_binary())
6879
        return b''.join(packet)
6880
6881 1
    @staticmethod
6882
    def from_binary(data):
6883
        return QueryDataSet(data)
6884
6885 1
    def _binary_init(self, data):
6886
        self.NodeId = ExpandedNodeId.from_binary(data)
6887
        self.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6888
        length = uatype_Int32.unpack(data.read(4))[0]
6889
        array = []
6890
        if length != -1:
6891
            for _ in range(0, length):
6892
                array.append(Variant.from_binary(data))
6893
        self.Values = array
6894
6895 1
    def __str__(self):
6896
        return 'QueryDataSet(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6897
               'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', ' + \
6898
               'Values:' + str(self.Values) + ')'
6899
6900 1
    __repr__ = __str__
6901
6902
6903 1
class NodeReference(FrozenClass):
6904
    '''
6905
    :ivar NodeId:
6906
    :vartype NodeId: NodeId
6907
    :ivar ReferenceTypeId:
6908
    :vartype ReferenceTypeId: NodeId
6909
    :ivar IsForward:
6910
    :vartype IsForward: Boolean
6911
    :ivar ReferencedNodeIds:
6912
    :vartype ReferencedNodeIds: NodeId
6913
    '''
6914 1
    def __init__(self, binary=None):
6915
        if binary is not None:
6916
            self._binary_init(binary)
6917
            self._freeze = True
6918
            return
6919
        self.NodeId = NodeId()
6920
        self.ReferenceTypeId = NodeId()
6921
        self.IsForward = True
6922
        self.ReferencedNodeIds = []
6923
        self._freeze = True
6924
6925 1
    def to_binary(self):
6926
        packet = []
6927
        packet.append(self.NodeId.to_binary())
6928
        packet.append(self.ReferenceTypeId.to_binary())
6929
        packet.append(uatype_Boolean.pack(self.IsForward))
6930
        packet.append(uatype_Int32.pack(len(self.ReferencedNodeIds)))
6931
        for fieldname in self.ReferencedNodeIds:
6932
            packet.append(fieldname.to_binary())
6933
        return b''.join(packet)
6934
6935 1
    @staticmethod
6936
    def from_binary(data):
6937
        return NodeReference(data)
6938
6939 1
    def _binary_init(self, data):
6940
        self.NodeId = NodeId.from_binary(data)
6941
        self.ReferenceTypeId = NodeId.from_binary(data)
6942
        self.IsForward = uatype_Boolean.unpack(data.read(1))[0]
6943
        length = uatype_Int32.unpack(data.read(4))[0]
6944
        array = []
6945
        if length != -1:
6946
            for _ in range(0, length):
6947
                array.append(NodeId.from_binary(data))
6948
        self.ReferencedNodeIds = array
6949
6950 1
    def __str__(self):
6951
        return 'NodeReference(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6952
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
6953
               'IsForward:' + str(self.IsForward) + ', ' + \
6954
               'ReferencedNodeIds:' + str(self.ReferencedNodeIds) + ')'
6955
6956 1
    __repr__ = __str__
6957
6958
6959 1
class ContentFilterElement(FrozenClass):
6960
    '''
6961
    :ivar FilterOperator:
6962
    :vartype FilterOperator: FilterOperator
6963
    :ivar FilterOperands:
6964
    :vartype FilterOperands: ExtensionObject
6965
    '''
6966 1
    def __init__(self, binary=None):
6967
        if binary is not None:
6968
            self._binary_init(binary)
6969
            self._freeze = True
6970
            return
6971
        self.FilterOperator = FilterOperator(0)
6972
        self.FilterOperands = []
6973
        self._freeze = True
6974
6975 1
    def to_binary(self):
6976
        packet = []
6977
        packet.append(uatype_UInt32.pack(self.FilterOperator.value))
6978
        packet.append(uatype_Int32.pack(len(self.FilterOperands)))
6979
        for fieldname in self.FilterOperands:
6980
            packet.append(extensionobject_to_binary(fieldname))
6981
        return b''.join(packet)
6982
6983 1
    @staticmethod
6984
    def from_binary(data):
6985
        return ContentFilterElement(data)
6986
6987 1
    def _binary_init(self, data):
6988
        self.FilterOperator = FilterOperator(uatype_UInt32.unpack(data.read(4))[0])
6989
        length = uatype_Int32.unpack(data.read(4))[0]
6990
        array = []
6991
        if length != -1:
6992
            for _ in range(0, length):
6993
                array.append(extensionobject_from_binary(data))
6994
        self.FilterOperands = array
6995
6996 1
    def __str__(self):
6997
        return 'ContentFilterElement(' + 'FilterOperator:' + str(self.FilterOperator) + ', ' + \
6998
               'FilterOperands:' + str(self.FilterOperands) + ')'
6999
7000 1
    __repr__ = __str__
7001
7002
7003 1
class ContentFilter(FrozenClass):
7004
    '''
7005
    :ivar Elements:
7006
    :vartype Elements: ContentFilterElement
7007
    '''
7008 1
    def __init__(self, binary=None):
7009 1
        if binary is not None:
7010 1
            self._binary_init(binary)
7011 1
            self._freeze = True
7012 1
            return
7013 1
        self.Elements = []
7014 1
        self._freeze = True
7015
7016 1
    def to_binary(self):
7017 1
        packet = []
7018 1
        packet.append(uatype_Int32.pack(len(self.Elements)))
7019 1
        for fieldname in self.Elements:
7020
            packet.append(fieldname.to_binary())
7021 1
        return b''.join(packet)
7022
7023 1
    @staticmethod
7024
    def from_binary(data):
7025 1
        return ContentFilter(data)
7026
7027 1
    def _binary_init(self, data):
7028 1
        length = uatype_Int32.unpack(data.read(4))[0]
7029 1
        array = []
7030 1
        if length != -1:
7031 1
            for _ in range(0, length):
7032
                array.append(ContentFilterElement.from_binary(data))
7033 1
        self.Elements = array
7034
7035 1
    def __str__(self):
7036
        return 'ContentFilter(' + 'Elements:' + str(self.Elements) + ')'
7037
7038 1
    __repr__ = __str__
7039
7040
7041 1
class ElementOperand(FrozenClass):
7042
    '''
7043
    :ivar Index:
7044
    :vartype Index: UInt32
7045
    '''
7046 1
    def __init__(self, binary=None):
7047
        if binary is not None:
7048
            self._binary_init(binary)
7049
            self._freeze = True
7050
            return
7051
        self.Index = 0
7052
        self._freeze = True
7053
7054 1
    def to_binary(self):
7055
        packet = []
7056
        packet.append(uatype_UInt32.pack(self.Index))
7057
        return b''.join(packet)
7058
7059 1
    @staticmethod
7060
    def from_binary(data):
7061
        return ElementOperand(data)
7062
7063 1
    def _binary_init(self, data):
7064
        self.Index = uatype_UInt32.unpack(data.read(4))[0]
7065
7066 1
    def __str__(self):
7067
        return 'ElementOperand(' + 'Index:' + str(self.Index) + ')'
7068
7069 1
    __repr__ = __str__
7070
7071
7072 1
class LiteralOperand(FrozenClass):
7073
    '''
7074
    :ivar Value:
7075
    :vartype Value: Variant
7076
    '''
7077 1
    def __init__(self, binary=None):
7078
        if binary is not None:
7079
            self._binary_init(binary)
7080
            self._freeze = True
7081
            return
7082
        self.Value = Variant()
7083
        self._freeze = True
7084
7085 1
    def to_binary(self):
7086
        packet = []
7087
        packet.append(self.Value.to_binary())
7088
        return b''.join(packet)
7089
7090 1
    @staticmethod
7091
    def from_binary(data):
7092
        return LiteralOperand(data)
7093
7094 1
    def _binary_init(self, data):
7095
        self.Value = Variant.from_binary(data)
7096
7097 1
    def __str__(self):
7098
        return 'LiteralOperand(' + 'Value:' + str(self.Value) + ')'
7099
7100 1
    __repr__ = __str__
7101
7102
7103 1
class AttributeOperand(FrozenClass):
7104
    '''
7105
    :ivar NodeId:
7106
    :vartype NodeId: NodeId
7107
    :ivar Alias:
7108
    :vartype Alias: String
7109
    :ivar BrowsePath:
7110
    :vartype BrowsePath: RelativePath
7111
    :ivar AttributeId:
7112
    :vartype AttributeId: UInt32
7113
    :ivar IndexRange:
7114
    :vartype IndexRange: String
7115
    '''
7116 1
    def __init__(self, binary=None):
7117
        if binary is not None:
7118
            self._binary_init(binary)
7119
            self._freeze = True
7120
            return
7121
        self.NodeId = NodeId()
7122
        self.Alias = ''
7123
        self.BrowsePath = RelativePath()
7124
        self.AttributeId = 0
7125
        self.IndexRange = ''
7126
        self._freeze = True
7127
7128 1
    def to_binary(self):
7129
        packet = []
7130
        packet.append(self.NodeId.to_binary())
7131
        packet.append(pack_string(self.Alias))
7132
        packet.append(self.BrowsePath.to_binary())
7133
        packet.append(uatype_UInt32.pack(self.AttributeId))
7134
        packet.append(pack_string(self.IndexRange))
7135
        return b''.join(packet)
7136
7137 1
    @staticmethod
7138
    def from_binary(data):
7139
        return AttributeOperand(data)
7140
7141 1
    def _binary_init(self, data):
7142
        self.NodeId = NodeId.from_binary(data)
7143
        self.Alias = unpack_string(data)
7144
        self.BrowsePath = RelativePath.from_binary(data)
7145
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
7146
        self.IndexRange = unpack_string(data)
7147
7148 1
    def __str__(self):
7149
        return 'AttributeOperand(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7150
               'Alias:' + str(self.Alias) + ', ' + \
7151
               'BrowsePath:' + str(self.BrowsePath) + ', ' + \
7152
               'AttributeId:' + str(self.AttributeId) + ', ' + \
7153
               'IndexRange:' + str(self.IndexRange) + ')'
7154
7155 1
    __repr__ = __str__
7156
7157
7158 1
class SimpleAttributeOperand(FrozenClass):
7159
    '''
7160
    :ivar TypeDefinitionId:
7161
    :vartype TypeDefinitionId: NodeId
7162
    :ivar BrowsePath:
7163
    :vartype BrowsePath: QualifiedName
7164
    :ivar AttributeId:
7165
    :vartype AttributeId: UInt32
7166
    :ivar IndexRange:
7167
    :vartype IndexRange: String
7168
    '''
7169 1
    def __init__(self, binary=None):
7170 1
        if binary is not None:
7171 1
            self._binary_init(binary)
7172 1
            self._freeze = True
7173 1
            return
7174 1
        self.TypeDefinitionId = NodeId()
7175 1
        self.BrowsePath = []
7176 1
        self.AttributeId = 0
7177 1
        self.IndexRange = ''
7178 1
        self._freeze = True
7179
7180 1
    def to_binary(self):
7181 1
        packet = []
7182 1
        packet.append(self.TypeDefinitionId.to_binary())
7183 1
        packet.append(uatype_Int32.pack(len(self.BrowsePath)))
7184 1
        for fieldname in self.BrowsePath:
7185 1
            packet.append(fieldname.to_binary())
7186 1
        packet.append(uatype_UInt32.pack(self.AttributeId))
7187 1
        packet.append(pack_string(self.IndexRange))
7188 1
        return b''.join(packet)
7189
7190 1
    @staticmethod
7191
    def from_binary(data):
7192 1
        return SimpleAttributeOperand(data)
7193
7194 1
    def _binary_init(self, data):
7195 1
        self.TypeDefinitionId = NodeId.from_binary(data)
7196 1
        length = uatype_Int32.unpack(data.read(4))[0]
7197 1
        array = []
7198 1
        if length != -1:
7199 1
            for _ in range(0, length):
7200 1
                array.append(QualifiedName.from_binary(data))
7201 1
        self.BrowsePath = array
7202 1
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
7203 1
        self.IndexRange = unpack_string(data)
7204
7205 1
    def __str__(self):
7206
        return 'SimpleAttributeOperand(' + 'TypeDefinitionId:' + str(self.TypeDefinitionId) + ', ' + \
7207
               'BrowsePath:' + str(self.BrowsePath) + ', ' + \
7208
               'AttributeId:' + str(self.AttributeId) + ', ' + \
7209
               'IndexRange:' + str(self.IndexRange) + ')'
7210
7211 1
    __repr__ = __str__
7212
7213
7214 1
class ContentFilterElementResult(FrozenClass):
7215
    '''
7216
    :ivar StatusCode:
7217
    :vartype StatusCode: StatusCode
7218
    :ivar OperandStatusCodes:
7219
    :vartype OperandStatusCodes: StatusCode
7220
    :ivar OperandDiagnosticInfos:
7221
    :vartype OperandDiagnosticInfos: DiagnosticInfo
7222
    '''
7223 1
    def __init__(self, binary=None):
7224
        if binary is not None:
7225
            self._binary_init(binary)
7226
            self._freeze = True
7227
            return
7228
        self.StatusCode = StatusCode()
7229
        self.OperandStatusCodes = []
7230
        self.OperandDiagnosticInfos = []
7231
        self._freeze = True
7232
7233 1
    def to_binary(self):
7234
        packet = []
7235
        packet.append(self.StatusCode.to_binary())
7236
        packet.append(uatype_Int32.pack(len(self.OperandStatusCodes)))
7237
        for fieldname in self.OperandStatusCodes:
7238
            packet.append(fieldname.to_binary())
7239
        packet.append(uatype_Int32.pack(len(self.OperandDiagnosticInfos)))
7240
        for fieldname in self.OperandDiagnosticInfos:
7241
            packet.append(fieldname.to_binary())
7242
        return b''.join(packet)
7243
7244 1
    @staticmethod
7245
    def from_binary(data):
7246
        return ContentFilterElementResult(data)
7247
7248 1
    def _binary_init(self, data):
7249
        self.StatusCode = StatusCode.from_binary(data)
7250
        length = uatype_Int32.unpack(data.read(4))[0]
7251
        array = []
7252
        if length != -1:
7253
            for _ in range(0, length):
7254
                array.append(StatusCode.from_binary(data))
7255
        self.OperandStatusCodes = array
7256
        length = uatype_Int32.unpack(data.read(4))[0]
7257
        array = []
7258
        if length != -1:
7259
            for _ in range(0, length):
7260
                array.append(DiagnosticInfo.from_binary(data))
7261
        self.OperandDiagnosticInfos = array
7262
7263 1
    def __str__(self):
7264
        return 'ContentFilterElementResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
7265
               'OperandStatusCodes:' + str(self.OperandStatusCodes) + ', ' + \
7266
               'OperandDiagnosticInfos:' + str(self.OperandDiagnosticInfos) + ')'
7267
7268 1
    __repr__ = __str__
7269
7270
7271 1
class ContentFilterResult(FrozenClass):
7272
    '''
7273
    :ivar ElementResults:
7274
    :vartype ElementResults: ContentFilterElementResult
7275
    :ivar ElementDiagnosticInfos:
7276
    :vartype ElementDiagnosticInfos: DiagnosticInfo
7277
    '''
7278 1
    def __init__(self, binary=None):
7279 1
        if binary is not None:
7280 1
            self._binary_init(binary)
7281 1
            self._freeze = True
7282 1
            return
7283 1
        self.ElementResults = []
7284 1
        self.ElementDiagnosticInfos = []
7285 1
        self._freeze = True
7286
7287 1
    def to_binary(self):
7288 1
        packet = []
7289 1
        packet.append(uatype_Int32.pack(len(self.ElementResults)))
7290 1
        for fieldname in self.ElementResults:
7291
            packet.append(fieldname.to_binary())
7292 1
        packet.append(uatype_Int32.pack(len(self.ElementDiagnosticInfos)))
7293 1
        for fieldname in self.ElementDiagnosticInfos:
7294
            packet.append(fieldname.to_binary())
7295 1
        return b''.join(packet)
7296
7297 1
    @staticmethod
7298
    def from_binary(data):
7299 1
        return ContentFilterResult(data)
7300
7301 1
    def _binary_init(self, data):
7302 1
        length = uatype_Int32.unpack(data.read(4))[0]
7303 1
        array = []
7304 1
        if length != -1:
7305 1
            for _ in range(0, length):
7306
                array.append(ContentFilterElementResult.from_binary(data))
7307 1
        self.ElementResults = array
7308 1
        length = uatype_Int32.unpack(data.read(4))[0]
7309 1
        array = []
7310 1
        if length != -1:
7311 1
            for _ in range(0, length):
7312
                array.append(DiagnosticInfo.from_binary(data))
7313 1
        self.ElementDiagnosticInfos = array
7314
7315 1
    def __str__(self):
7316
        return 'ContentFilterResult(' + 'ElementResults:' + str(self.ElementResults) + ', ' + \
7317
               'ElementDiagnosticInfos:' + str(self.ElementDiagnosticInfos) + ')'
7318
7319 1
    __repr__ = __str__
7320
7321
7322 1
class ParsingResult(FrozenClass):
7323
    '''
7324
    :ivar StatusCode:
7325
    :vartype StatusCode: StatusCode
7326
    :ivar DataStatusCodes:
7327
    :vartype DataStatusCodes: StatusCode
7328
    :ivar DataDiagnosticInfos:
7329
    :vartype DataDiagnosticInfos: DiagnosticInfo
7330
    '''
7331 1
    def __init__(self, binary=None):
7332
        if binary is not None:
7333
            self._binary_init(binary)
7334
            self._freeze = True
7335
            return
7336
        self.StatusCode = StatusCode()
7337
        self.DataStatusCodes = []
7338
        self.DataDiagnosticInfos = []
7339
        self._freeze = True
7340
7341 1
    def to_binary(self):
7342
        packet = []
7343
        packet.append(self.StatusCode.to_binary())
7344
        packet.append(uatype_Int32.pack(len(self.DataStatusCodes)))
7345
        for fieldname in self.DataStatusCodes:
7346
            packet.append(fieldname.to_binary())
7347
        packet.append(uatype_Int32.pack(len(self.DataDiagnosticInfos)))
7348
        for fieldname in self.DataDiagnosticInfos:
7349
            packet.append(fieldname.to_binary())
7350
        return b''.join(packet)
7351
7352 1
    @staticmethod
7353
    def from_binary(data):
7354
        return ParsingResult(data)
7355
7356 1
    def _binary_init(self, data):
7357
        self.StatusCode = StatusCode.from_binary(data)
7358
        length = uatype_Int32.unpack(data.read(4))[0]
7359
        array = []
7360
        if length != -1:
7361
            for _ in range(0, length):
7362
                array.append(StatusCode.from_binary(data))
7363
        self.DataStatusCodes = array
7364
        length = uatype_Int32.unpack(data.read(4))[0]
7365
        array = []
7366
        if length != -1:
7367
            for _ in range(0, length):
7368
                array.append(DiagnosticInfo.from_binary(data))
7369
        self.DataDiagnosticInfos = array
7370
7371 1
    def __str__(self):
7372
        return 'ParsingResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
7373
               'DataStatusCodes:' + str(self.DataStatusCodes) + ', ' + \
7374
               'DataDiagnosticInfos:' + str(self.DataDiagnosticInfos) + ')'
7375
7376 1
    __repr__ = __str__
7377
7378
7379 1
class QueryFirstParameters(FrozenClass):
7380
    '''
7381
    :ivar View:
7382
    :vartype View: ViewDescription
7383
    :ivar NodeTypes:
7384
    :vartype NodeTypes: NodeTypeDescription
7385
    :ivar Filter:
7386
    :vartype Filter: ContentFilter
7387
    :ivar MaxDataSetsToReturn:
7388
    :vartype MaxDataSetsToReturn: UInt32
7389
    :ivar MaxReferencesToReturn:
7390
    :vartype MaxReferencesToReturn: UInt32
7391
    '''
7392 1
    def __init__(self, binary=None):
7393
        if binary is not None:
7394
            self._binary_init(binary)
7395
            self._freeze = True
7396
            return
7397
        self.View = ViewDescription()
7398
        self.NodeTypes = []
7399
        self.Filter = ContentFilter()
7400
        self.MaxDataSetsToReturn = 0
7401
        self.MaxReferencesToReturn = 0
7402
        self._freeze = True
7403
7404 1
    def to_binary(self):
7405
        packet = []
7406
        packet.append(self.View.to_binary())
7407
        packet.append(uatype_Int32.pack(len(self.NodeTypes)))
7408
        for fieldname in self.NodeTypes:
7409
            packet.append(fieldname.to_binary())
7410
        packet.append(self.Filter.to_binary())
7411
        packet.append(uatype_UInt32.pack(self.MaxDataSetsToReturn))
7412
        packet.append(uatype_UInt32.pack(self.MaxReferencesToReturn))
7413
        return b''.join(packet)
7414
7415 1
    @staticmethod
7416
    def from_binary(data):
7417
        return QueryFirstParameters(data)
7418
7419 1
    def _binary_init(self, data):
7420
        self.View = ViewDescription.from_binary(data)
7421
        length = uatype_Int32.unpack(data.read(4))[0]
7422
        array = []
7423
        if length != -1:
7424
            for _ in range(0, length):
7425
                array.append(NodeTypeDescription.from_binary(data))
7426
        self.NodeTypes = array
7427
        self.Filter = ContentFilter.from_binary(data)
7428
        self.MaxDataSetsToReturn = uatype_UInt32.unpack(data.read(4))[0]
7429
        self.MaxReferencesToReturn = uatype_UInt32.unpack(data.read(4))[0]
7430
7431 1
    def __str__(self):
7432
        return 'QueryFirstParameters(' + 'View:' + str(self.View) + ', ' + \
7433
               'NodeTypes:' + str(self.NodeTypes) + ', ' + \
7434
               'Filter:' + str(self.Filter) + ', ' + \
7435
               'MaxDataSetsToReturn:' + str(self.MaxDataSetsToReturn) + ', ' + \
7436
               'MaxReferencesToReturn:' + str(self.MaxReferencesToReturn) + ')'
7437
7438 1
    __repr__ = __str__
7439
7440
7441 1
class QueryFirstRequest(FrozenClass):
7442
    '''
7443
    :ivar TypeId:
7444
    :vartype TypeId: NodeId
7445
    :ivar RequestHeader:
7446
    :vartype RequestHeader: RequestHeader
7447
    :ivar Parameters:
7448
    :vartype Parameters: QueryFirstParameters
7449
    '''
7450 1
    def __init__(self, binary=None):
7451
        if binary is not None:
7452
            self._binary_init(binary)
7453
            self._freeze = True
7454
            return
7455
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstRequest_Encoding_DefaultBinary)
7456
        self.RequestHeader = RequestHeader()
7457
        self.Parameters = QueryFirstParameters()
7458
        self._freeze = True
7459
7460 1
    def to_binary(self):
7461
        packet = []
7462
        packet.append(self.TypeId.to_binary())
7463
        packet.append(self.RequestHeader.to_binary())
7464
        packet.append(self.Parameters.to_binary())
7465
        return b''.join(packet)
7466
7467 1
    @staticmethod
7468
    def from_binary(data):
7469
        return QueryFirstRequest(data)
7470
7471 1
    def _binary_init(self, data):
7472
        self.TypeId = NodeId.from_binary(data)
7473
        self.RequestHeader = RequestHeader.from_binary(data)
7474
        self.Parameters = QueryFirstParameters.from_binary(data)
7475
7476 1
    def __str__(self):
7477
        return 'QueryFirstRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7478
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7479
               'Parameters:' + str(self.Parameters) + ')'
7480
7481 1
    __repr__ = __str__
7482
7483
7484 1
class QueryFirstResult(FrozenClass):
7485
    '''
7486
    :ivar QueryDataSets:
7487
    :vartype QueryDataSets: QueryDataSet
7488
    :ivar ContinuationPoint:
7489
    :vartype ContinuationPoint: ByteString
7490
    :ivar ParsingResults:
7491
    :vartype ParsingResults: ParsingResult
7492
    :ivar DiagnosticInfos:
7493
    :vartype DiagnosticInfos: DiagnosticInfo
7494
    :ivar FilterResult:
7495
    :vartype FilterResult: ContentFilterResult
7496
    '''
7497 1
    def __init__(self, binary=None):
7498
        if binary is not None:
7499
            self._binary_init(binary)
7500
            self._freeze = True
7501
            return
7502
        self.QueryDataSets = []
7503
        self.ContinuationPoint = b''
7504
        self.ParsingResults = []
7505
        self.DiagnosticInfos = []
7506
        self.FilterResult = ContentFilterResult()
7507
        self._freeze = True
7508
7509 1
    def to_binary(self):
7510
        packet = []
7511
        packet.append(uatype_Int32.pack(len(self.QueryDataSets)))
7512
        for fieldname in self.QueryDataSets:
7513
            packet.append(fieldname.to_binary())
7514
        packet.append(pack_bytes(self.ContinuationPoint))
7515
        packet.append(uatype_Int32.pack(len(self.ParsingResults)))
7516
        for fieldname in self.ParsingResults:
7517
            packet.append(fieldname.to_binary())
7518
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
7519
        for fieldname in self.DiagnosticInfos:
7520
            packet.append(fieldname.to_binary())
7521
        packet.append(self.FilterResult.to_binary())
7522
        return b''.join(packet)
7523
7524 1
    @staticmethod
7525
    def from_binary(data):
7526
        return QueryFirstResult(data)
7527
7528 1
    def _binary_init(self, data):
7529
        length = uatype_Int32.unpack(data.read(4))[0]
7530
        array = []
7531
        if length != -1:
7532
            for _ in range(0, length):
7533
                array.append(QueryDataSet.from_binary(data))
7534
        self.QueryDataSets = array
7535
        self.ContinuationPoint = unpack_bytes(data)
7536
        length = uatype_Int32.unpack(data.read(4))[0]
7537
        array = []
7538
        if length != -1:
7539
            for _ in range(0, length):
7540
                array.append(ParsingResult.from_binary(data))
7541
        self.ParsingResults = array
7542
        length = uatype_Int32.unpack(data.read(4))[0]
7543
        array = []
7544
        if length != -1:
7545
            for _ in range(0, length):
7546
                array.append(DiagnosticInfo.from_binary(data))
7547
        self.DiagnosticInfos = array
7548
        self.FilterResult = ContentFilterResult.from_binary(data)
7549
7550 1
    def __str__(self):
7551
        return 'QueryFirstResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', ' + \
7552
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
7553
               'ParsingResults:' + str(self.ParsingResults) + ', ' + \
7554
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ', ' + \
7555
               'FilterResult:' + str(self.FilterResult) + ')'
7556
7557 1
    __repr__ = __str__
7558
7559
7560 1
class QueryFirstResponse(FrozenClass):
7561
    '''
7562
    :ivar TypeId:
7563
    :vartype TypeId: NodeId
7564
    :ivar ResponseHeader:
7565
    :vartype ResponseHeader: ResponseHeader
7566
    :ivar Parameters:
7567
    :vartype Parameters: QueryFirstResult
7568
    '''
7569 1
    def __init__(self, binary=None):
7570
        if binary is not None:
7571
            self._binary_init(binary)
7572
            self._freeze = True
7573
            return
7574
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstResponse_Encoding_DefaultBinary)
7575
        self.ResponseHeader = ResponseHeader()
7576
        self.Parameters = QueryFirstResult()
7577
        self._freeze = True
7578
7579 1
    def to_binary(self):
7580
        packet = []
7581
        packet.append(self.TypeId.to_binary())
7582
        packet.append(self.ResponseHeader.to_binary())
7583
        packet.append(self.Parameters.to_binary())
7584
        return b''.join(packet)
7585
7586 1
    @staticmethod
7587
    def from_binary(data):
7588
        return QueryFirstResponse(data)
7589
7590 1
    def _binary_init(self, data):
7591
        self.TypeId = NodeId.from_binary(data)
7592
        self.ResponseHeader = ResponseHeader.from_binary(data)
7593
        self.Parameters = QueryFirstResult.from_binary(data)
7594
7595 1
    def __str__(self):
7596
        return 'QueryFirstResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7597
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7598
               'Parameters:' + str(self.Parameters) + ')'
7599
7600 1
    __repr__ = __str__
7601
7602
7603 1
class QueryNextParameters(FrozenClass):
7604
    '''
7605
    :ivar ReleaseContinuationPoint:
7606
    :vartype ReleaseContinuationPoint: Boolean
7607
    :ivar ContinuationPoint:
7608
    :vartype ContinuationPoint: ByteString
7609
    '''
7610 1
    def __init__(self, binary=None):
7611
        if binary is not None:
7612
            self._binary_init(binary)
7613
            self._freeze = True
7614
            return
7615
        self.ReleaseContinuationPoint = True
7616
        self.ContinuationPoint = b''
7617
        self._freeze = True
7618
7619 1
    def to_binary(self):
7620
        packet = []
7621
        packet.append(uatype_Boolean.pack(self.ReleaseContinuationPoint))
7622
        packet.append(pack_bytes(self.ContinuationPoint))
7623
        return b''.join(packet)
7624
7625 1
    @staticmethod
7626
    def from_binary(data):
7627
        return QueryNextParameters(data)
7628
7629 1
    def _binary_init(self, data):
7630
        self.ReleaseContinuationPoint = uatype_Boolean.unpack(data.read(1))[0]
7631
        self.ContinuationPoint = unpack_bytes(data)
7632
7633 1
    def __str__(self):
7634
        return 'QueryNextParameters(' + 'ReleaseContinuationPoint:' + str(self.ReleaseContinuationPoint) + ', ' + \
7635
               'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
7636
7637 1
    __repr__ = __str__
7638
7639
7640 1
class QueryNextRequest(FrozenClass):
7641
    '''
7642
    :ivar TypeId:
7643
    :vartype TypeId: NodeId
7644
    :ivar RequestHeader:
7645
    :vartype RequestHeader: RequestHeader
7646
    :ivar Parameters:
7647
    :vartype Parameters: QueryNextParameters
7648
    '''
7649 1
    def __init__(self, binary=None):
7650
        if binary is not None:
7651
            self._binary_init(binary)
7652
            self._freeze = True
7653
            return
7654
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextRequest_Encoding_DefaultBinary)
7655
        self.RequestHeader = RequestHeader()
7656
        self.Parameters = QueryNextParameters()
7657
        self._freeze = True
7658
7659 1
    def to_binary(self):
7660
        packet = []
7661
        packet.append(self.TypeId.to_binary())
7662
        packet.append(self.RequestHeader.to_binary())
7663
        packet.append(self.Parameters.to_binary())
7664
        return b''.join(packet)
7665
7666 1
    @staticmethod
7667
    def from_binary(data):
7668
        return QueryNextRequest(data)
7669
7670 1
    def _binary_init(self, data):
7671
        self.TypeId = NodeId.from_binary(data)
7672
        self.RequestHeader = RequestHeader.from_binary(data)
7673
        self.Parameters = QueryNextParameters.from_binary(data)
7674
7675 1
    def __str__(self):
7676
        return 'QueryNextRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7677
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7678
               'Parameters:' + str(self.Parameters) + ')'
7679
7680 1
    __repr__ = __str__
7681
7682
7683 1
class QueryNextResult(FrozenClass):
7684
    '''
7685
    :ivar QueryDataSets:
7686
    :vartype QueryDataSets: QueryDataSet
7687
    :ivar RevisedContinuationPoint:
7688
    :vartype RevisedContinuationPoint: ByteString
7689
    '''
7690 1
    def __init__(self, binary=None):
7691
        if binary is not None:
7692
            self._binary_init(binary)
7693
            self._freeze = True
7694
            return
7695
        self.QueryDataSets = []
7696
        self.RevisedContinuationPoint = b''
7697
        self._freeze = True
7698
7699 1
    def to_binary(self):
7700
        packet = []
7701
        packet.append(uatype_Int32.pack(len(self.QueryDataSets)))
7702
        for fieldname in self.QueryDataSets:
7703
            packet.append(fieldname.to_binary())
7704
        packet.append(pack_bytes(self.RevisedContinuationPoint))
7705
        return b''.join(packet)
7706
7707 1
    @staticmethod
7708
    def from_binary(data):
7709
        return QueryNextResult(data)
7710
7711 1
    def _binary_init(self, data):
7712
        length = uatype_Int32.unpack(data.read(4))[0]
7713
        array = []
7714
        if length != -1:
7715
            for _ in range(0, length):
7716
                array.append(QueryDataSet.from_binary(data))
7717
        self.QueryDataSets = array
7718
        self.RevisedContinuationPoint = unpack_bytes(data)
7719
7720 1
    def __str__(self):
7721
        return 'QueryNextResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', ' + \
7722
               'RevisedContinuationPoint:' + str(self.RevisedContinuationPoint) + ')'
7723
7724 1
    __repr__ = __str__
7725
7726
7727 1
class QueryNextResponse(FrozenClass):
7728
    '''
7729
    :ivar TypeId:
7730
    :vartype TypeId: NodeId
7731
    :ivar ResponseHeader:
7732
    :vartype ResponseHeader: ResponseHeader
7733
    :ivar Parameters:
7734
    :vartype Parameters: QueryNextResult
7735
    '''
7736 1
    def __init__(self, binary=None):
7737
        if binary is not None:
7738
            self._binary_init(binary)
7739
            self._freeze = True
7740
            return
7741
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextResponse_Encoding_DefaultBinary)
7742
        self.ResponseHeader = ResponseHeader()
7743
        self.Parameters = QueryNextResult()
7744
        self._freeze = True
7745
7746 1
    def to_binary(self):
7747
        packet = []
7748
        packet.append(self.TypeId.to_binary())
7749
        packet.append(self.ResponseHeader.to_binary())
7750
        packet.append(self.Parameters.to_binary())
7751
        return b''.join(packet)
7752
7753 1
    @staticmethod
7754
    def from_binary(data):
7755
        return QueryNextResponse(data)
7756
7757 1
    def _binary_init(self, data):
7758
        self.TypeId = NodeId.from_binary(data)
7759
        self.ResponseHeader = ResponseHeader.from_binary(data)
7760
        self.Parameters = QueryNextResult.from_binary(data)
7761
7762 1
    def __str__(self):
7763
        return 'QueryNextResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7764
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7765
               'Parameters:' + str(self.Parameters) + ')'
7766
7767 1
    __repr__ = __str__
7768
7769
7770 1
class ReadValueId(FrozenClass):
7771
    '''
7772
    :ivar NodeId:
7773
    :vartype NodeId: NodeId
7774
    :ivar AttributeId:
7775
    :vartype AttributeId: UInt32
7776
    :ivar IndexRange:
7777
    :vartype IndexRange: String
7778
    :ivar DataEncoding:
7779
    :vartype DataEncoding: QualifiedName
7780
    '''
7781 1
    def __init__(self, binary=None):
7782 1
        if binary is not None:
7783 1
            self._binary_init(binary)
7784 1
            self._freeze = True
7785 1
            return
7786 1
        self.NodeId = NodeId()
7787 1
        self.AttributeId = 0
7788 1
        self.IndexRange = ''
7789 1
        self.DataEncoding = QualifiedName()
7790 1
        self._freeze = True
7791
7792 1
    def to_binary(self):
7793 1
        packet = []
7794 1
        packet.append(self.NodeId.to_binary())
7795 1
        packet.append(uatype_UInt32.pack(self.AttributeId))
7796 1
        packet.append(pack_string(self.IndexRange))
7797 1
        packet.append(self.DataEncoding.to_binary())
7798 1
        return b''.join(packet)
7799
7800 1
    @staticmethod
7801
    def from_binary(data):
7802 1
        return ReadValueId(data)
7803
7804 1
    def _binary_init(self, data):
7805 1
        self.NodeId = NodeId.from_binary(data)
7806 1
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
7807 1
        self.IndexRange = unpack_string(data)
7808 1
        self.DataEncoding = QualifiedName.from_binary(data)
7809
7810 1
    def __str__(self):
7811
        return 'ReadValueId(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7812
               'AttributeId:' + str(self.AttributeId) + ', ' + \
7813
               'IndexRange:' + str(self.IndexRange) + ', ' + \
7814
               'DataEncoding:' + str(self.DataEncoding) + ')'
7815
7816 1
    __repr__ = __str__
7817
7818
7819 1
class ReadParameters(FrozenClass):
7820
    '''
7821
    :ivar MaxAge:
7822
    :vartype MaxAge: Double
7823
    :ivar TimestampsToReturn:
7824
    :vartype TimestampsToReturn: TimestampsToReturn
7825
    :ivar NodesToRead:
7826
    :vartype NodesToRead: ReadValueId
7827
    '''
7828 1
    def __init__(self, binary=None):
7829 1
        if binary is not None:
7830 1
            self._binary_init(binary)
7831 1
            self._freeze = True
7832 1
            return
7833 1
        self.MaxAge = 0
7834 1
        self.TimestampsToReturn = TimestampsToReturn(0)
7835 1
        self.NodesToRead = []
7836 1
        self._freeze = True
7837
7838 1
    def to_binary(self):
7839 1
        packet = []
7840 1
        packet.append(uatype_Double.pack(self.MaxAge))
7841 1
        packet.append(uatype_UInt32.pack(self.TimestampsToReturn.value))
7842 1
        packet.append(uatype_Int32.pack(len(self.NodesToRead)))
7843 1
        for fieldname in self.NodesToRead:
7844 1
            packet.append(fieldname.to_binary())
7845 1
        return b''.join(packet)
7846
7847 1
    @staticmethod
7848
    def from_binary(data):
7849 1
        return ReadParameters(data)
7850
7851 1
    def _binary_init(self, data):
7852 1
        self.MaxAge = uatype_Double.unpack(data.read(8))[0]
7853 1
        self.TimestampsToReturn = TimestampsToReturn(uatype_UInt32.unpack(data.read(4))[0])
7854 1
        length = uatype_Int32.unpack(data.read(4))[0]
7855 1
        array = []
7856 1
        if length != -1:
7857 1
            for _ in range(0, length):
7858 1
                array.append(ReadValueId.from_binary(data))
7859 1
        self.NodesToRead = array
7860
7861 1
    def __str__(self):
7862
        return 'ReadParameters(' + 'MaxAge:' + str(self.MaxAge) + ', ' + \
7863
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
7864
               'NodesToRead:' + str(self.NodesToRead) + ')'
7865
7866 1
    __repr__ = __str__
7867
7868
7869 1
class ReadRequest(FrozenClass):
7870
    '''
7871
    :ivar TypeId:
7872
    :vartype TypeId: NodeId
7873
    :ivar RequestHeader:
7874
    :vartype RequestHeader: RequestHeader
7875
    :ivar Parameters:
7876
    :vartype Parameters: ReadParameters
7877
    '''
7878 1
    def __init__(self, binary=None):
7879 1
        if binary is not None:
7880
            self._binary_init(binary)
7881
            self._freeze = True
7882
            return
7883 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadRequest_Encoding_DefaultBinary)
7884 1
        self.RequestHeader = RequestHeader()
7885 1
        self.Parameters = ReadParameters()
7886 1
        self._freeze = True
7887
7888 1
    def to_binary(self):
7889 1
        packet = []
7890 1
        packet.append(self.TypeId.to_binary())
7891 1
        packet.append(self.RequestHeader.to_binary())
7892 1
        packet.append(self.Parameters.to_binary())
7893 1
        return b''.join(packet)
7894
7895 1
    @staticmethod
7896
    def from_binary(data):
7897
        return ReadRequest(data)
7898
7899 1
    def _binary_init(self, data):
7900
        self.TypeId = NodeId.from_binary(data)
7901
        self.RequestHeader = RequestHeader.from_binary(data)
7902
        self.Parameters = ReadParameters.from_binary(data)
7903
7904 1
    def __str__(self):
7905
        return 'ReadRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7906
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7907
               'Parameters:' + str(self.Parameters) + ')'
7908
7909 1
    __repr__ = __str__
7910
7911
7912 1
class ReadResponse(FrozenClass):
7913
    '''
7914
    :ivar TypeId:
7915
    :vartype TypeId: NodeId
7916
    :ivar ResponseHeader:
7917
    :vartype ResponseHeader: ResponseHeader
7918
    :ivar Results:
7919
    :vartype Results: DataValue
7920
    :ivar DiagnosticInfos:
7921
    :vartype DiagnosticInfos: DiagnosticInfo
7922
    '''
7923 1
    def __init__(self, binary=None):
7924 1
        if binary is not None:
7925 1
            self._binary_init(binary)
7926 1
            self._freeze = True
7927 1
            return
7928 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadResponse_Encoding_DefaultBinary)
7929 1
        self.ResponseHeader = ResponseHeader()
7930 1
        self.Results = []
7931 1
        self.DiagnosticInfos = []
7932 1
        self._freeze = True
7933
7934 1
    def to_binary(self):
7935 1
        packet = []
7936 1
        packet.append(self.TypeId.to_binary())
7937 1
        packet.append(self.ResponseHeader.to_binary())
7938 1
        packet.append(uatype_Int32.pack(len(self.Results)))
7939 1
        for fieldname in self.Results:
7940 1
            packet.append(fieldname.to_binary())
7941 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
7942 1
        for fieldname in self.DiagnosticInfos:
7943
            packet.append(fieldname.to_binary())
7944 1
        return b''.join(packet)
7945
7946 1
    @staticmethod
7947
    def from_binary(data):
7948 1
        return ReadResponse(data)
7949
7950 1
    def _binary_init(self, data):
7951 1
        self.TypeId = NodeId.from_binary(data)
7952 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
7953 1
        length = uatype_Int32.unpack(data.read(4))[0]
7954 1
        array = []
7955 1
        if length != -1:
7956 1
            for _ in range(0, length):
7957 1
                array.append(DataValue.from_binary(data))
7958 1
        self.Results = array
7959 1
        length = uatype_Int32.unpack(data.read(4))[0]
7960 1
        array = []
7961 1
        if length != -1:
7962 1
            for _ in range(0, length):
7963
                array.append(DiagnosticInfo.from_binary(data))
7964 1
        self.DiagnosticInfos = array
7965
7966 1
    def __str__(self):
7967
        return 'ReadResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7968
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7969
               'Results:' + str(self.Results) + ', ' + \
7970
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7971
7972 1
    __repr__ = __str__
7973
7974
7975 1
class HistoryReadValueId(FrozenClass):
7976
    '''
7977
    :ivar NodeId:
7978
    :vartype NodeId: NodeId
7979
    :ivar IndexRange:
7980
    :vartype IndexRange: String
7981
    :ivar DataEncoding:
7982
    :vartype DataEncoding: QualifiedName
7983
    :ivar ContinuationPoint:
7984
    :vartype ContinuationPoint: ByteString
7985
    '''
7986 1
    def __init__(self, binary=None):
7987
        if binary is not None:
7988
            self._binary_init(binary)
7989
            self._freeze = True
7990
            return
7991
        self.NodeId = NodeId()
7992
        self.IndexRange = ''
7993
        self.DataEncoding = QualifiedName()
7994
        self.ContinuationPoint = b''
7995
        self._freeze = True
7996
7997 1
    def to_binary(self):
7998
        packet = []
7999
        packet.append(self.NodeId.to_binary())
8000
        packet.append(pack_string(self.IndexRange))
8001
        packet.append(self.DataEncoding.to_binary())
8002
        packet.append(pack_bytes(self.ContinuationPoint))
8003
        return b''.join(packet)
8004
8005 1
    @staticmethod
8006
    def from_binary(data):
8007
        return HistoryReadValueId(data)
8008
8009 1
    def _binary_init(self, data):
8010
        self.NodeId = NodeId.from_binary(data)
8011
        self.IndexRange = unpack_string(data)
8012
        self.DataEncoding = QualifiedName.from_binary(data)
8013
        self.ContinuationPoint = unpack_bytes(data)
8014
8015 1
    def __str__(self):
8016
        return 'HistoryReadValueId(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8017
               'IndexRange:' + str(self.IndexRange) + ', ' + \
8018
               'DataEncoding:' + str(self.DataEncoding) + ', ' + \
8019
               'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
8020
8021 1
    __repr__ = __str__
8022
8023
8024 1
class HistoryReadResult(FrozenClass):
8025
    '''
8026
    :ivar StatusCode:
8027
    :vartype StatusCode: StatusCode
8028
    :ivar ContinuationPoint:
8029
    :vartype ContinuationPoint: ByteString
8030
    :ivar HistoryData:
8031
    :vartype HistoryData: ExtensionObject
8032
    '''
8033 1
    def __init__(self, binary=None):
8034
        if binary is not None:
8035
            self._binary_init(binary)
8036
            self._freeze = True
8037
            return
8038
        self.StatusCode = StatusCode()
8039
        self.ContinuationPoint = b''
8040
        self.HistoryData = None
8041
        self._freeze = True
8042
8043 1
    def to_binary(self):
8044
        packet = []
8045
        packet.append(self.StatusCode.to_binary())
8046
        packet.append(pack_bytes(self.ContinuationPoint))
8047
        packet.append(extensionobject_to_binary(self.HistoryData))
8048
        return b''.join(packet)
8049
8050 1
    @staticmethod
8051
    def from_binary(data):
8052
        return HistoryReadResult(data)
8053
8054 1
    def _binary_init(self, data):
8055
        self.StatusCode = StatusCode.from_binary(data)
8056
        self.ContinuationPoint = unpack_bytes(data)
8057
        self.HistoryData = extensionobject_from_binary(data)
8058
8059 1
    def __str__(self):
8060
        return 'HistoryReadResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
8061
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
8062
               'HistoryData:' + str(self.HistoryData) + ')'
8063
8064 1
    __repr__ = __str__
8065
8066
8067 1
class HistoryReadDetails(FrozenClass):
8068
    '''
8069
    '''
8070 1
    def __init__(self, binary=None):
8071
        if binary is not None:
8072
            self._binary_init(binary)
8073
            self._freeze = True
8074
            return
8075
        self._freeze = True
8076
8077 1
    def to_binary(self):
8078
        packet = []
8079
        return b''.join(packet)
8080
8081 1
    @staticmethod
8082
    def from_binary(data):
8083
        return HistoryReadDetails(data)
8084
8085 1
    def _binary_init(self, data):
8086
        pass
8087
8088 1
    def __str__(self):
8089
        return 'HistoryReadDetails(' +  + ')'
8090
8091 1
    __repr__ = __str__
8092
8093
8094 1
class ReadEventDetails(FrozenClass):
8095
    '''
8096
    :ivar NumValuesPerNode:
8097
    :vartype NumValuesPerNode: UInt32
8098
    :ivar StartTime:
8099
    :vartype StartTime: DateTime
8100
    :ivar EndTime:
8101
    :vartype EndTime: DateTime
8102
    :ivar Filter:
8103
    :vartype Filter: EventFilter
8104
    '''
8105 1
    def __init__(self, binary=None):
8106
        if binary is not None:
8107
            self._binary_init(binary)
8108
            self._freeze = True
8109
            return
8110
        self.NumValuesPerNode = 0
8111
        self.StartTime = datetime.now()
8112
        self.EndTime = datetime.now()
8113
        self.Filter = EventFilter()
8114
        self._freeze = True
8115
8116 1
    def to_binary(self):
8117
        packet = []
8118
        packet.append(uatype_UInt32.pack(self.NumValuesPerNode))
8119
        packet.append(pack_datetime(self.StartTime))
8120
        packet.append(pack_datetime(self.EndTime))
8121
        packet.append(self.Filter.to_binary())
8122
        return b''.join(packet)
8123
8124 1
    @staticmethod
8125
    def from_binary(data):
8126
        return ReadEventDetails(data)
8127
8128 1
    def _binary_init(self, data):
8129
        self.NumValuesPerNode = uatype_UInt32.unpack(data.read(4))[0]
8130
        self.StartTime = unpack_datetime(data)
8131
        self.EndTime = unpack_datetime(data)
8132
        self.Filter = EventFilter.from_binary(data)
8133
8134 1
    def __str__(self):
8135
        return 'ReadEventDetails(' + 'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', ' + \
8136
               'StartTime:' + str(self.StartTime) + ', ' + \
8137
               'EndTime:' + str(self.EndTime) + ', ' + \
8138
               'Filter:' + str(self.Filter) + ')'
8139
8140 1
    __repr__ = __str__
8141
8142
8143 1
class ReadRawModifiedDetails(FrozenClass):
8144
    '''
8145
    :ivar IsReadModified:
8146
    :vartype IsReadModified: Boolean
8147
    :ivar StartTime:
8148
    :vartype StartTime: DateTime
8149
    :ivar EndTime:
8150
    :vartype EndTime: DateTime
8151
    :ivar NumValuesPerNode:
8152
    :vartype NumValuesPerNode: UInt32
8153
    :ivar ReturnBounds:
8154
    :vartype ReturnBounds: Boolean
8155
    '''
8156 1
    def __init__(self, binary=None):
8157
        if binary is not None:
8158
            self._binary_init(binary)
8159
            self._freeze = True
8160
            return
8161
        self.IsReadModified = True
8162
        self.StartTime = datetime.now()
8163
        self.EndTime = datetime.now()
8164
        self.NumValuesPerNode = 0
8165
        self.ReturnBounds = True
8166
        self._freeze = True
8167
8168 1
    def to_binary(self):
8169
        packet = []
8170
        packet.append(uatype_Boolean.pack(self.IsReadModified))
8171
        packet.append(pack_datetime(self.StartTime))
8172
        packet.append(pack_datetime(self.EndTime))
8173
        packet.append(uatype_UInt32.pack(self.NumValuesPerNode))
8174
        packet.append(uatype_Boolean.pack(self.ReturnBounds))
8175
        return b''.join(packet)
8176
8177 1
    @staticmethod
8178
    def from_binary(data):
8179
        return ReadRawModifiedDetails(data)
8180
8181 1
    def _binary_init(self, data):
8182
        self.IsReadModified = uatype_Boolean.unpack(data.read(1))[0]
8183
        self.StartTime = unpack_datetime(data)
8184
        self.EndTime = unpack_datetime(data)
8185
        self.NumValuesPerNode = uatype_UInt32.unpack(data.read(4))[0]
8186
        self.ReturnBounds = uatype_Boolean.unpack(data.read(1))[0]
8187
8188 1
    def __str__(self):
8189
        return 'ReadRawModifiedDetails(' + 'IsReadModified:' + str(self.IsReadModified) + ', ' + \
8190
               'StartTime:' + str(self.StartTime) + ', ' + \
8191
               'EndTime:' + str(self.EndTime) + ', ' + \
8192
               'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', ' + \
8193
               'ReturnBounds:' + str(self.ReturnBounds) + ')'
8194
8195 1
    __repr__ = __str__
8196
8197
8198 1
class ReadProcessedDetails(FrozenClass):
8199
    '''
8200
    :ivar StartTime:
8201
    :vartype StartTime: DateTime
8202
    :ivar EndTime:
8203
    :vartype EndTime: DateTime
8204
    :ivar ProcessingInterval:
8205
    :vartype ProcessingInterval: Double
8206
    :ivar AggregateType:
8207
    :vartype AggregateType: NodeId
8208
    :ivar AggregateConfiguration:
8209
    :vartype AggregateConfiguration: AggregateConfiguration
8210
    '''
8211 1
    def __init__(self, binary=None):
8212
        if binary is not None:
8213
            self._binary_init(binary)
8214
            self._freeze = True
8215
            return
8216
        self.StartTime = datetime.now()
8217
        self.EndTime = datetime.now()
8218
        self.ProcessingInterval = 0
8219
        self.AggregateType = []
8220
        self.AggregateConfiguration = AggregateConfiguration()
8221
        self._freeze = True
8222
8223 1
    def to_binary(self):
8224
        packet = []
8225
        packet.append(pack_datetime(self.StartTime))
8226
        packet.append(pack_datetime(self.EndTime))
8227
        packet.append(uatype_Double.pack(self.ProcessingInterval))
8228
        packet.append(uatype_Int32.pack(len(self.AggregateType)))
8229
        for fieldname in self.AggregateType:
8230
            packet.append(fieldname.to_binary())
8231
        packet.append(self.AggregateConfiguration.to_binary())
8232
        return b''.join(packet)
8233
8234 1
    @staticmethod
8235
    def from_binary(data):
8236
        return ReadProcessedDetails(data)
8237
8238 1
    def _binary_init(self, data):
8239
        self.StartTime = unpack_datetime(data)
8240
        self.EndTime = unpack_datetime(data)
8241
        self.ProcessingInterval = uatype_Double.unpack(data.read(8))[0]
8242
        length = uatype_Int32.unpack(data.read(4))[0]
8243
        array = []
8244
        if length != -1:
8245
            for _ in range(0, length):
8246
                array.append(NodeId.from_binary(data))
8247
        self.AggregateType = array
8248
        self.AggregateConfiguration = AggregateConfiguration.from_binary(data)
8249
8250 1
    def __str__(self):
8251
        return 'ReadProcessedDetails(' + 'StartTime:' + str(self.StartTime) + ', ' + \
8252
               'EndTime:' + str(self.EndTime) + ', ' + \
8253
               'ProcessingInterval:' + str(self.ProcessingInterval) + ', ' + \
8254
               'AggregateType:' + str(self.AggregateType) + ', ' + \
8255
               'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
8256
8257 1
    __repr__ = __str__
8258
8259
8260 1
class ReadAtTimeDetails(FrozenClass):
8261
    '''
8262
    :ivar ReqTimes:
8263
    :vartype ReqTimes: DateTime
8264
    :ivar UseSimpleBounds:
8265
    :vartype UseSimpleBounds: Boolean
8266
    '''
8267 1
    def __init__(self, binary=None):
8268
        if binary is not None:
8269
            self._binary_init(binary)
8270
            self._freeze = True
8271
            return
8272
        self.ReqTimes = []
8273
        self.UseSimpleBounds = True
8274
        self._freeze = True
8275
8276 1
    def to_binary(self):
8277
        packet = []
8278
        packet.append(uatype_Int32.pack(len(self.ReqTimes)))
8279
        for fieldname in self.ReqTimes:
8280
            packet.append(pack_datetime(fieldname))
8281
        packet.append(uatype_Boolean.pack(self.UseSimpleBounds))
8282
        return b''.join(packet)
8283
8284 1
    @staticmethod
8285
    def from_binary(data):
8286
        return ReadAtTimeDetails(data)
8287
8288 1
    def _binary_init(self, data):
8289
        self.ReqTimes = unpack_uatype_array('DateTime', data)
8290
        self.UseSimpleBounds = uatype_Boolean.unpack(data.read(1))[0]
8291
8292 1
    def __str__(self):
8293
        return 'ReadAtTimeDetails(' + 'ReqTimes:' + str(self.ReqTimes) + ', ' + \
8294
               'UseSimpleBounds:' + str(self.UseSimpleBounds) + ')'
8295
8296 1
    __repr__ = __str__
8297
8298
8299 1
class HistoryData(FrozenClass):
8300
    '''
8301
    :ivar DataValues:
8302
    :vartype DataValues: DataValue
8303
    '''
8304 1
    def __init__(self, binary=None):
8305
        if binary is not None:
8306
            self._binary_init(binary)
8307
            self._freeze = True
8308
            return
8309
        self.DataValues = []
8310
        self._freeze = True
8311
8312 1
    def to_binary(self):
8313
        packet = []
8314
        packet.append(uatype_Int32.pack(len(self.DataValues)))
8315
        for fieldname in self.DataValues:
8316
            packet.append(fieldname.to_binary())
8317
        return b''.join(packet)
8318
8319 1
    @staticmethod
8320
    def from_binary(data):
8321
        return HistoryData(data)
8322
8323 1
    def _binary_init(self, data):
8324
        length = uatype_Int32.unpack(data.read(4))[0]
8325
        array = []
8326
        if length != -1:
8327
            for _ in range(0, length):
8328
                array.append(DataValue.from_binary(data))
8329
        self.DataValues = array
8330
8331 1
    def __str__(self):
8332
        return 'HistoryData(' + 'DataValues:' + str(self.DataValues) + ')'
8333
8334 1
    __repr__ = __str__
8335
8336
8337 1
class ModificationInfo(FrozenClass):
8338
    '''
8339
    :ivar ModificationTime:
8340
    :vartype ModificationTime: DateTime
8341
    :ivar UpdateType:
8342
    :vartype UpdateType: HistoryUpdateType
8343
    :ivar UserName:
8344
    :vartype UserName: String
8345
    '''
8346 1
    def __init__(self, binary=None):
8347
        if binary is not None:
8348
            self._binary_init(binary)
8349
            self._freeze = True
8350
            return
8351
        self.ModificationTime = datetime.now()
8352
        self.UpdateType = HistoryUpdateType(0)
8353
        self.UserName = ''
8354
        self._freeze = True
8355
8356 1
    def to_binary(self):
8357
        packet = []
8358
        packet.append(pack_datetime(self.ModificationTime))
8359
        packet.append(uatype_UInt32.pack(self.UpdateType.value))
8360
        packet.append(pack_string(self.UserName))
8361
        return b''.join(packet)
8362
8363 1
    @staticmethod
8364
    def from_binary(data):
8365
        return ModificationInfo(data)
8366
8367 1
    def _binary_init(self, data):
8368
        self.ModificationTime = unpack_datetime(data)
8369
        self.UpdateType = HistoryUpdateType(uatype_UInt32.unpack(data.read(4))[0])
8370
        self.UserName = unpack_string(data)
8371
8372 1
    def __str__(self):
8373
        return 'ModificationInfo(' + 'ModificationTime:' + str(self.ModificationTime) + ', ' + \
8374
               'UpdateType:' + str(self.UpdateType) + ', ' + \
8375
               'UserName:' + str(self.UserName) + ')'
8376
8377 1
    __repr__ = __str__
8378
8379
8380 1
class HistoryModifiedData(FrozenClass):
8381
    '''
8382
    :ivar DataValues:
8383
    :vartype DataValues: DataValue
8384
    :ivar ModificationInfos:
8385
    :vartype ModificationInfos: ModificationInfo
8386
    '''
8387 1
    def __init__(self, binary=None):
8388
        if binary is not None:
8389
            self._binary_init(binary)
8390
            self._freeze = True
8391
            return
8392
        self.DataValues = []
8393
        self.ModificationInfos = []
8394
        self._freeze = True
8395
8396 1
    def to_binary(self):
8397
        packet = []
8398
        packet.append(uatype_Int32.pack(len(self.DataValues)))
8399
        for fieldname in self.DataValues:
8400
            packet.append(fieldname.to_binary())
8401
        packet.append(uatype_Int32.pack(len(self.ModificationInfos)))
8402
        for fieldname in self.ModificationInfos:
8403
            packet.append(fieldname.to_binary())
8404
        return b''.join(packet)
8405
8406 1
    @staticmethod
8407
    def from_binary(data):
8408
        return HistoryModifiedData(data)
8409
8410 1
    def _binary_init(self, data):
8411
        length = uatype_Int32.unpack(data.read(4))[0]
8412
        array = []
8413
        if length != -1:
8414
            for _ in range(0, length):
8415
                array.append(DataValue.from_binary(data))
8416
        self.DataValues = array
8417
        length = uatype_Int32.unpack(data.read(4))[0]
8418
        array = []
8419
        if length != -1:
8420
            for _ in range(0, length):
8421
                array.append(ModificationInfo.from_binary(data))
8422
        self.ModificationInfos = array
8423
8424 1
    def __str__(self):
8425
        return 'HistoryModifiedData(' + 'DataValues:' + str(self.DataValues) + ', ' + \
8426
               'ModificationInfos:' + str(self.ModificationInfos) + ')'
8427
8428 1
    __repr__ = __str__
8429
8430
8431 1
class HistoryEvent(FrozenClass):
8432
    '''
8433
    :ivar Events:
8434
    :vartype Events: HistoryEventFieldList
8435
    '''
8436 1
    def __init__(self, binary=None):
8437
        if binary is not None:
8438
            self._binary_init(binary)
8439
            self._freeze = True
8440
            return
8441
        self.Events = []
8442
        self._freeze = True
8443
8444 1
    def to_binary(self):
8445
        packet = []
8446
        packet.append(uatype_Int32.pack(len(self.Events)))
8447
        for fieldname in self.Events:
8448
            packet.append(fieldname.to_binary())
8449
        return b''.join(packet)
8450
8451 1
    @staticmethod
8452
    def from_binary(data):
8453
        return HistoryEvent(data)
8454
8455 1
    def _binary_init(self, data):
8456
        length = uatype_Int32.unpack(data.read(4))[0]
8457
        array = []
8458
        if length != -1:
8459
            for _ in range(0, length):
8460
                array.append(HistoryEventFieldList.from_binary(data))
8461
        self.Events = array
8462
8463 1
    def __str__(self):
8464
        return 'HistoryEvent(' + 'Events:' + str(self.Events) + ')'
8465
8466 1
    __repr__ = __str__
8467
8468
8469 1
class HistoryReadParameters(FrozenClass):
8470
    '''
8471
    :ivar HistoryReadDetails:
8472
    :vartype HistoryReadDetails: ExtensionObject
8473
    :ivar TimestampsToReturn:
8474
    :vartype TimestampsToReturn: TimestampsToReturn
8475
    :ivar ReleaseContinuationPoints:
8476
    :vartype ReleaseContinuationPoints: Boolean
8477
    :ivar NodesToRead:
8478
    :vartype NodesToRead: HistoryReadValueId
8479
    '''
8480 1
    def __init__(self, binary=None):
8481
        if binary is not None:
8482
            self._binary_init(binary)
8483
            self._freeze = True
8484
            return
8485
        self.HistoryReadDetails = None
8486
        self.TimestampsToReturn = TimestampsToReturn(0)
8487
        self.ReleaseContinuationPoints = True
8488
        self.NodesToRead = []
8489
        self._freeze = True
8490
8491 1
    def to_binary(self):
8492
        packet = []
8493
        packet.append(extensionobject_to_binary(self.HistoryReadDetails))
8494
        packet.append(uatype_UInt32.pack(self.TimestampsToReturn.value))
8495
        packet.append(uatype_Boolean.pack(self.ReleaseContinuationPoints))
8496
        packet.append(uatype_Int32.pack(len(self.NodesToRead)))
8497
        for fieldname in self.NodesToRead:
8498
            packet.append(fieldname.to_binary())
8499
        return b''.join(packet)
8500
8501 1
    @staticmethod
8502
    def from_binary(data):
8503
        return HistoryReadParameters(data)
8504
8505 1
    def _binary_init(self, data):
8506
        self.HistoryReadDetails = extensionobject_from_binary(data)
8507
        self.TimestampsToReturn = TimestampsToReturn(uatype_UInt32.unpack(data.read(4))[0])
8508
        self.ReleaseContinuationPoints = uatype_Boolean.unpack(data.read(1))[0]
8509
        length = uatype_Int32.unpack(data.read(4))[0]
8510
        array = []
8511
        if length != -1:
8512
            for _ in range(0, length):
8513
                array.append(HistoryReadValueId.from_binary(data))
8514
        self.NodesToRead = array
8515
8516 1
    def __str__(self):
8517
        return 'HistoryReadParameters(' + 'HistoryReadDetails:' + str(self.HistoryReadDetails) + ', ' + \
8518
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
8519
               'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', ' + \
8520
               'NodesToRead:' + str(self.NodesToRead) + ')'
8521
8522 1
    __repr__ = __str__
8523
8524
8525 1
class HistoryReadRequest(FrozenClass):
8526
    '''
8527
    :ivar TypeId:
8528
    :vartype TypeId: NodeId
8529
    :ivar RequestHeader:
8530
    :vartype RequestHeader: RequestHeader
8531
    :ivar Parameters:
8532
    :vartype Parameters: HistoryReadParameters
8533
    '''
8534 1
    def __init__(self, binary=None):
8535
        if binary is not None:
8536
            self._binary_init(binary)
8537
            self._freeze = True
8538
            return
8539
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadRequest_Encoding_DefaultBinary)
8540
        self.RequestHeader = RequestHeader()
8541
        self.Parameters = HistoryReadParameters()
8542
        self._freeze = True
8543
8544 1
    def to_binary(self):
8545
        packet = []
8546
        packet.append(self.TypeId.to_binary())
8547
        packet.append(self.RequestHeader.to_binary())
8548
        packet.append(self.Parameters.to_binary())
8549
        return b''.join(packet)
8550
8551 1
    @staticmethod
8552
    def from_binary(data):
8553
        return HistoryReadRequest(data)
8554
8555 1
    def _binary_init(self, data):
8556
        self.TypeId = NodeId.from_binary(data)
8557
        self.RequestHeader = RequestHeader.from_binary(data)
8558
        self.Parameters = HistoryReadParameters.from_binary(data)
8559
8560 1
    def __str__(self):
8561
        return 'HistoryReadRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8562
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
8563
               'Parameters:' + str(self.Parameters) + ')'
8564
8565 1
    __repr__ = __str__
8566
8567
8568 1
class HistoryReadResponse(FrozenClass):
8569
    '''
8570
    :ivar TypeId:
8571
    :vartype TypeId: NodeId
8572
    :ivar ResponseHeader:
8573
    :vartype ResponseHeader: ResponseHeader
8574
    :ivar Results:
8575
    :vartype Results: HistoryReadResult
8576
    :ivar DiagnosticInfos:
8577
    :vartype DiagnosticInfos: DiagnosticInfo
8578
    '''
8579 1
    def __init__(self, binary=None):
8580
        if binary is not None:
8581
            self._binary_init(binary)
8582
            self._freeze = True
8583
            return
8584
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadResponse_Encoding_DefaultBinary)
8585
        self.ResponseHeader = ResponseHeader()
8586
        self.Results = []
8587
        self.DiagnosticInfos = []
8588
        self._freeze = True
8589
8590 1
    def to_binary(self):
8591
        packet = []
8592
        packet.append(self.TypeId.to_binary())
8593
        packet.append(self.ResponseHeader.to_binary())
8594
        packet.append(uatype_Int32.pack(len(self.Results)))
8595
        for fieldname in self.Results:
8596
            packet.append(fieldname.to_binary())
8597
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
8598
        for fieldname in self.DiagnosticInfos:
8599
            packet.append(fieldname.to_binary())
8600
        return b''.join(packet)
8601
8602 1
    @staticmethod
8603
    def from_binary(data):
8604
        return HistoryReadResponse(data)
8605
8606 1
    def _binary_init(self, data):
8607
        self.TypeId = NodeId.from_binary(data)
8608
        self.ResponseHeader = ResponseHeader.from_binary(data)
8609
        length = uatype_Int32.unpack(data.read(4))[0]
8610
        array = []
8611
        if length != -1:
8612
            for _ in range(0, length):
8613
                array.append(HistoryReadResult.from_binary(data))
8614
        self.Results = array
8615
        length = uatype_Int32.unpack(data.read(4))[0]
8616
        array = []
8617
        if length != -1:
8618
            for _ in range(0, length):
8619
                array.append(DiagnosticInfo.from_binary(data))
8620
        self.DiagnosticInfos = array
8621
8622 1
    def __str__(self):
8623
        return 'HistoryReadResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8624
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
8625
               'Results:' + str(self.Results) + ', ' + \
8626
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8627
8628 1
    __repr__ = __str__
8629
8630
8631 1
class WriteValue(FrozenClass):
8632
    '''
8633
    :ivar NodeId:
8634
    :vartype NodeId: NodeId
8635
    :ivar AttributeId:
8636
    :vartype AttributeId: UInt32
8637
    :ivar IndexRange:
8638
    :vartype IndexRange: String
8639
    :ivar Value:
8640
    :vartype Value: DataValue
8641
    '''
8642 1
    def __init__(self, binary=None):
8643 1
        if binary is not None:
8644 1
            self._binary_init(binary)
8645 1
            self._freeze = True
8646 1
            return
8647 1
        self.NodeId = NodeId()
8648 1
        self.AttributeId = 0
8649 1
        self.IndexRange = ''
8650 1
        self.Value = DataValue()
8651 1
        self._freeze = True
8652
8653 1
    def to_binary(self):
8654 1
        packet = []
8655 1
        packet.append(self.NodeId.to_binary())
8656 1
        packet.append(uatype_UInt32.pack(self.AttributeId))
8657 1
        packet.append(pack_string(self.IndexRange))
8658 1
        packet.append(self.Value.to_binary())
8659 1
        return b''.join(packet)
8660
8661 1
    @staticmethod
8662
    def from_binary(data):
8663 1
        return WriteValue(data)
8664
8665 1
    def _binary_init(self, data):
8666 1
        self.NodeId = NodeId.from_binary(data)
8667 1
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
8668 1
        self.IndexRange = unpack_string(data)
8669 1
        self.Value = DataValue.from_binary(data)
8670
8671 1
    def __str__(self):
8672
        return 'WriteValue(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8673
               'AttributeId:' + str(self.AttributeId) + ', ' + \
8674
               'IndexRange:' + str(self.IndexRange) + ', ' + \
8675
               'Value:' + str(self.Value) + ')'
8676
8677 1
    __repr__ = __str__
8678
8679
8680 1
class WriteParameters(FrozenClass):
8681
    '''
8682
    :ivar NodesToWrite:
8683
    :vartype NodesToWrite: WriteValue
8684
    '''
8685 1
    def __init__(self, binary=None):
8686 1
        if binary is not None:
8687 1
            self._binary_init(binary)
8688 1
            self._freeze = True
8689 1
            return
8690 1
        self.NodesToWrite = []
8691 1
        self._freeze = True
8692
8693 1
    def to_binary(self):
8694 1
        packet = []
8695 1
        packet.append(uatype_Int32.pack(len(self.NodesToWrite)))
8696 1
        for fieldname in self.NodesToWrite:
8697 1
            packet.append(fieldname.to_binary())
8698 1
        return b''.join(packet)
8699
8700 1
    @staticmethod
8701
    def from_binary(data):
8702 1
        return WriteParameters(data)
8703
8704 1
    def _binary_init(self, data):
8705 1
        length = uatype_Int32.unpack(data.read(4))[0]
8706 1
        array = []
8707 1
        if length != -1:
8708 1
            for _ in range(0, length):
8709 1
                array.append(WriteValue.from_binary(data))
8710 1
        self.NodesToWrite = array
8711
8712 1
    def __str__(self):
8713
        return 'WriteParameters(' + 'NodesToWrite:' + str(self.NodesToWrite) + ')'
8714
8715 1
    __repr__ = __str__
8716
8717
8718 1
class WriteRequest(FrozenClass):
8719
    '''
8720
    :ivar TypeId:
8721
    :vartype TypeId: NodeId
8722
    :ivar RequestHeader:
8723
    :vartype RequestHeader: RequestHeader
8724
    :ivar Parameters:
8725
    :vartype Parameters: WriteParameters
8726
    '''
8727 1
    def __init__(self, binary=None):
8728 1
        if binary is not None:
8729
            self._binary_init(binary)
8730
            self._freeze = True
8731
            return
8732 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteRequest_Encoding_DefaultBinary)
8733 1
        self.RequestHeader = RequestHeader()
8734 1
        self.Parameters = WriteParameters()
8735 1
        self._freeze = True
8736
8737 1
    def to_binary(self):
8738 1
        packet = []
8739 1
        packet.append(self.TypeId.to_binary())
8740 1
        packet.append(self.RequestHeader.to_binary())
8741 1
        packet.append(self.Parameters.to_binary())
8742 1
        return b''.join(packet)
8743
8744 1
    @staticmethod
8745
    def from_binary(data):
8746
        return WriteRequest(data)
8747
8748 1
    def _binary_init(self, data):
8749
        self.TypeId = NodeId.from_binary(data)
8750
        self.RequestHeader = RequestHeader.from_binary(data)
8751
        self.Parameters = WriteParameters.from_binary(data)
8752
8753 1
    def __str__(self):
8754
        return 'WriteRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8755
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
8756
               'Parameters:' + str(self.Parameters) + ')'
8757
8758 1
    __repr__ = __str__
8759
8760
8761 1
class WriteResponse(FrozenClass):
8762
    '''
8763
    :ivar TypeId:
8764
    :vartype TypeId: NodeId
8765
    :ivar ResponseHeader:
8766
    :vartype ResponseHeader: ResponseHeader
8767
    :ivar Results:
8768
    :vartype Results: StatusCode
8769
    :ivar DiagnosticInfos:
8770
    :vartype DiagnosticInfos: DiagnosticInfo
8771
    '''
8772 1
    def __init__(self, binary=None):
8773 1
        if binary is not None:
8774 1
            self._binary_init(binary)
8775 1
            self._freeze = True
8776 1
            return
8777 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteResponse_Encoding_DefaultBinary)
8778 1
        self.ResponseHeader = ResponseHeader()
8779 1
        self.Results = []
8780 1
        self.DiagnosticInfos = []
8781 1
        self._freeze = True
8782
8783 1
    def to_binary(self):
8784 1
        packet = []
8785 1
        packet.append(self.TypeId.to_binary())
8786 1
        packet.append(self.ResponseHeader.to_binary())
8787 1
        packet.append(uatype_Int32.pack(len(self.Results)))
8788 1
        for fieldname in self.Results:
8789 1
            packet.append(fieldname.to_binary())
8790 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
8791 1
        for fieldname in self.DiagnosticInfos:
8792
            packet.append(fieldname.to_binary())
8793 1
        return b''.join(packet)
8794
8795 1
    @staticmethod
8796
    def from_binary(data):
8797 1
        return WriteResponse(data)
8798
8799 1
    def _binary_init(self, data):
8800 1
        self.TypeId = NodeId.from_binary(data)
8801 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
8802 1
        length = uatype_Int32.unpack(data.read(4))[0]
8803 1
        array = []
8804 1
        if length != -1:
8805 1
            for _ in range(0, length):
8806 1
                array.append(StatusCode.from_binary(data))
8807 1
        self.Results = array
8808 1
        length = uatype_Int32.unpack(data.read(4))[0]
8809 1
        array = []
8810 1
        if length != -1:
8811 1
            for _ in range(0, length):
8812
                array.append(DiagnosticInfo.from_binary(data))
8813 1
        self.DiagnosticInfos = array
8814
8815 1
    def __str__(self):
8816
        return 'WriteResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8817
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
8818
               'Results:' + str(self.Results) + ', ' + \
8819
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8820
8821 1
    __repr__ = __str__
8822
8823
8824 1
class HistoryUpdateDetails(FrozenClass):
8825
    '''
8826
    :ivar NodeId:
8827
    :vartype NodeId: NodeId
8828
    '''
8829 1
    def __init__(self, binary=None):
8830
        if binary is not None:
8831
            self._binary_init(binary)
8832
            self._freeze = True
8833
            return
8834
        self.NodeId = NodeId()
8835
        self._freeze = True
8836
8837 1
    def to_binary(self):
8838
        packet = []
8839
        packet.append(self.NodeId.to_binary())
8840
        return b''.join(packet)
8841
8842 1
    @staticmethod
8843
    def from_binary(data):
8844
        return HistoryUpdateDetails(data)
8845
8846 1
    def _binary_init(self, data):
8847
        self.NodeId = NodeId.from_binary(data)
8848
8849 1
    def __str__(self):
8850
        return 'HistoryUpdateDetails(' + 'NodeId:' + str(self.NodeId) + ')'
8851
8852 1
    __repr__ = __str__
8853
8854
8855 1
class UpdateDataDetails(FrozenClass):
8856
    '''
8857
    :ivar NodeId:
8858
    :vartype NodeId: NodeId
8859
    :ivar PerformInsertReplace:
8860
    :vartype PerformInsertReplace: PerformUpdateType
8861
    :ivar UpdateValues:
8862
    :vartype UpdateValues: DataValue
8863
    '''
8864 1
    def __init__(self, binary=None):
8865
        if binary is not None:
8866
            self._binary_init(binary)
8867
            self._freeze = True
8868
            return
8869
        self.NodeId = NodeId()
8870
        self.PerformInsertReplace = PerformUpdateType(0)
8871
        self.UpdateValues = []
8872
        self._freeze = True
8873
8874 1
    def to_binary(self):
8875
        packet = []
8876
        packet.append(self.NodeId.to_binary())
8877
        packet.append(uatype_UInt32.pack(self.PerformInsertReplace.value))
8878
        packet.append(uatype_Int32.pack(len(self.UpdateValues)))
8879
        for fieldname in self.UpdateValues:
8880
            packet.append(fieldname.to_binary())
8881
        return b''.join(packet)
8882
8883 1
    @staticmethod
8884
    def from_binary(data):
8885
        return UpdateDataDetails(data)
8886
8887 1
    def _binary_init(self, data):
8888
        self.NodeId = NodeId.from_binary(data)
8889
        self.PerformInsertReplace = PerformUpdateType(uatype_UInt32.unpack(data.read(4))[0])
8890
        length = uatype_Int32.unpack(data.read(4))[0]
8891
        array = []
8892
        if length != -1:
8893
            for _ in range(0, length):
8894
                array.append(DataValue.from_binary(data))
8895
        self.UpdateValues = array
8896
8897 1
    def __str__(self):
8898
        return 'UpdateDataDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8899
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
8900
               'UpdateValues:' + str(self.UpdateValues) + ')'
8901
8902 1
    __repr__ = __str__
8903
8904
8905 1
class UpdateStructureDataDetails(FrozenClass):
8906
    '''
8907
    :ivar NodeId:
8908
    :vartype NodeId: NodeId
8909
    :ivar PerformInsertReplace:
8910
    :vartype PerformInsertReplace: PerformUpdateType
8911
    :ivar UpdateValues:
8912
    :vartype UpdateValues: DataValue
8913
    '''
8914 1
    def __init__(self, binary=None):
8915
        if binary is not None:
8916
            self._binary_init(binary)
8917
            self._freeze = True
8918
            return
8919
        self.NodeId = NodeId()
8920
        self.PerformInsertReplace = PerformUpdateType(0)
8921
        self.UpdateValues = []
8922
        self._freeze = True
8923
8924 1
    def to_binary(self):
8925
        packet = []
8926
        packet.append(self.NodeId.to_binary())
8927
        packet.append(uatype_UInt32.pack(self.PerformInsertReplace.value))
8928
        packet.append(uatype_Int32.pack(len(self.UpdateValues)))
8929
        for fieldname in self.UpdateValues:
8930
            packet.append(fieldname.to_binary())
8931
        return b''.join(packet)
8932
8933 1
    @staticmethod
8934
    def from_binary(data):
8935
        return UpdateStructureDataDetails(data)
8936
8937 1
    def _binary_init(self, data):
8938
        self.NodeId = NodeId.from_binary(data)
8939
        self.PerformInsertReplace = PerformUpdateType(uatype_UInt32.unpack(data.read(4))[0])
8940
        length = uatype_Int32.unpack(data.read(4))[0]
8941
        array = []
8942
        if length != -1:
8943
            for _ in range(0, length):
8944
                array.append(DataValue.from_binary(data))
8945
        self.UpdateValues = array
8946
8947 1
    def __str__(self):
8948
        return 'UpdateStructureDataDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8949
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
8950
               'UpdateValues:' + str(self.UpdateValues) + ')'
8951
8952 1
    __repr__ = __str__
8953
8954
8955 1
class UpdateEventDetails(FrozenClass):
8956
    '''
8957
    :ivar NodeId:
8958
    :vartype NodeId: NodeId
8959
    :ivar PerformInsertReplace:
8960
    :vartype PerformInsertReplace: PerformUpdateType
8961
    :ivar Filter:
8962
    :vartype Filter: EventFilter
8963
    :ivar EventData:
8964
    :vartype EventData: HistoryEventFieldList
8965
    '''
8966 1
    def __init__(self, binary=None):
8967
        if binary is not None:
8968
            self._binary_init(binary)
8969
            self._freeze = True
8970
            return
8971
        self.NodeId = NodeId()
8972
        self.PerformInsertReplace = PerformUpdateType(0)
8973
        self.Filter = EventFilter()
8974
        self.EventData = []
8975
        self._freeze = True
8976
8977 1
    def to_binary(self):
8978
        packet = []
8979
        packet.append(self.NodeId.to_binary())
8980
        packet.append(uatype_UInt32.pack(self.PerformInsertReplace.value))
8981
        packet.append(self.Filter.to_binary())
8982
        packet.append(uatype_Int32.pack(len(self.EventData)))
8983
        for fieldname in self.EventData:
8984
            packet.append(fieldname.to_binary())
8985
        return b''.join(packet)
8986
8987 1
    @staticmethod
8988
    def from_binary(data):
8989
        return UpdateEventDetails(data)
8990
8991 1
    def _binary_init(self, data):
8992
        self.NodeId = NodeId.from_binary(data)
8993
        self.PerformInsertReplace = PerformUpdateType(uatype_UInt32.unpack(data.read(4))[0])
8994
        self.Filter = EventFilter.from_binary(data)
8995
        length = uatype_Int32.unpack(data.read(4))[0]
8996
        array = []
8997
        if length != -1:
8998
            for _ in range(0, length):
8999
                array.append(HistoryEventFieldList.from_binary(data))
9000
        self.EventData = array
9001
9002 1
    def __str__(self):
9003
        return 'UpdateEventDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
9004
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
9005
               'Filter:' + str(self.Filter) + ', ' + \
9006
               'EventData:' + str(self.EventData) + ')'
9007
9008 1
    __repr__ = __str__
9009
9010
9011 1
class DeleteRawModifiedDetails(FrozenClass):
9012
    '''
9013
    :ivar NodeId:
9014
    :vartype NodeId: NodeId
9015
    :ivar IsDeleteModified:
9016
    :vartype IsDeleteModified: Boolean
9017
    :ivar StartTime:
9018
    :vartype StartTime: DateTime
9019
    :ivar EndTime:
9020
    :vartype EndTime: DateTime
9021
    '''
9022 1
    def __init__(self, binary=None):
9023
        if binary is not None:
9024
            self._binary_init(binary)
9025
            self._freeze = True
9026
            return
9027
        self.NodeId = NodeId()
9028
        self.IsDeleteModified = True
9029
        self.StartTime = datetime.now()
9030
        self.EndTime = datetime.now()
9031
        self._freeze = True
9032
9033 1
    def to_binary(self):
9034
        packet = []
9035
        packet.append(self.NodeId.to_binary())
9036
        packet.append(uatype_Boolean.pack(self.IsDeleteModified))
9037
        packet.append(pack_datetime(self.StartTime))
9038
        packet.append(pack_datetime(self.EndTime))
9039
        return b''.join(packet)
9040
9041 1
    @staticmethod
9042
    def from_binary(data):
9043
        return DeleteRawModifiedDetails(data)
9044
9045 1
    def _binary_init(self, data):
9046
        self.NodeId = NodeId.from_binary(data)
9047
        self.IsDeleteModified = uatype_Boolean.unpack(data.read(1))[0]
9048
        self.StartTime = unpack_datetime(data)
9049
        self.EndTime = unpack_datetime(data)
9050
9051 1
    def __str__(self):
9052
        return 'DeleteRawModifiedDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
9053
               'IsDeleteModified:' + str(self.IsDeleteModified) + ', ' + \
9054
               'StartTime:' + str(self.StartTime) + ', ' + \
9055
               'EndTime:' + str(self.EndTime) + ')'
9056
9057 1
    __repr__ = __str__
9058
9059
9060 1
class DeleteAtTimeDetails(FrozenClass):
9061
    '''
9062
    :ivar NodeId:
9063
    :vartype NodeId: NodeId
9064
    :ivar ReqTimes:
9065
    :vartype ReqTimes: DateTime
9066
    '''
9067 1
    def __init__(self, binary=None):
9068
        if binary is not None:
9069
            self._binary_init(binary)
9070
            self._freeze = True
9071
            return
9072
        self.NodeId = NodeId()
9073
        self.ReqTimes = []
9074
        self._freeze = True
9075
9076 1
    def to_binary(self):
9077
        packet = []
9078
        packet.append(self.NodeId.to_binary())
9079
        packet.append(uatype_Int32.pack(len(self.ReqTimes)))
9080
        for fieldname in self.ReqTimes:
9081
            packet.append(pack_datetime(fieldname))
9082
        return b''.join(packet)
9083
9084 1
    @staticmethod
9085
    def from_binary(data):
9086
        return DeleteAtTimeDetails(data)
9087
9088 1
    def _binary_init(self, data):
9089
        self.NodeId = NodeId.from_binary(data)
9090
        self.ReqTimes = unpack_uatype_array('DateTime', data)
9091
9092 1
    def __str__(self):
9093
        return 'DeleteAtTimeDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
9094
               'ReqTimes:' + str(self.ReqTimes) + ')'
9095
9096 1
    __repr__ = __str__
9097
9098
9099 1
class DeleteEventDetails(FrozenClass):
9100
    '''
9101
    :ivar NodeId:
9102
    :vartype NodeId: NodeId
9103
    :ivar EventIds:
9104
    :vartype EventIds: ByteString
9105
    '''
9106 1
    def __init__(self, binary=None):
9107
        if binary is not None:
9108
            self._binary_init(binary)
9109
            self._freeze = True
9110
            return
9111
        self.NodeId = NodeId()
9112
        self.EventIds = []
9113
        self._freeze = True
9114
9115 1
    def to_binary(self):
9116
        packet = []
9117
        packet.append(self.NodeId.to_binary())
9118
        packet.append(uatype_Int32.pack(len(self.EventIds)))
9119
        for fieldname in self.EventIds:
9120
            packet.append(pack_bytes(fieldname))
9121
        return b''.join(packet)
9122
9123 1
    @staticmethod
9124
    def from_binary(data):
9125
        return DeleteEventDetails(data)
9126
9127 1
    def _binary_init(self, data):
9128
        self.NodeId = NodeId.from_binary(data)
9129
        self.EventIds = unpack_uatype_array('ByteString', data)
9130
9131 1
    def __str__(self):
9132
        return 'DeleteEventDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
9133
               'EventIds:' + str(self.EventIds) + ')'
9134
9135 1
    __repr__ = __str__
9136
9137
9138 1
class HistoryUpdateResult(FrozenClass):
9139
    '''
9140
    :ivar StatusCode:
9141
    :vartype StatusCode: StatusCode
9142
    :ivar OperationResults:
9143
    :vartype OperationResults: StatusCode
9144
    :ivar DiagnosticInfos:
9145
    :vartype DiagnosticInfos: DiagnosticInfo
9146
    '''
9147 1
    def __init__(self, binary=None):
9148
        if binary is not None:
9149
            self._binary_init(binary)
9150
            self._freeze = True
9151
            return
9152
        self.StatusCode = StatusCode()
9153
        self.OperationResults = []
9154
        self.DiagnosticInfos = []
9155
        self._freeze = True
9156
9157 1
    def to_binary(self):
9158
        packet = []
9159
        packet.append(self.StatusCode.to_binary())
9160
        packet.append(uatype_Int32.pack(len(self.OperationResults)))
9161
        for fieldname in self.OperationResults:
9162
            packet.append(fieldname.to_binary())
9163
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
9164
        for fieldname in self.DiagnosticInfos:
9165
            packet.append(fieldname.to_binary())
9166
        return b''.join(packet)
9167
9168 1
    @staticmethod
9169
    def from_binary(data):
9170
        return HistoryUpdateResult(data)
9171
9172 1
    def _binary_init(self, data):
9173
        self.StatusCode = StatusCode.from_binary(data)
9174
        length = uatype_Int32.unpack(data.read(4))[0]
9175
        array = []
9176
        if length != -1:
9177
            for _ in range(0, length):
9178
                array.append(StatusCode.from_binary(data))
9179
        self.OperationResults = array
9180
        length = uatype_Int32.unpack(data.read(4))[0]
9181
        array = []
9182
        if length != -1:
9183
            for _ in range(0, length):
9184
                array.append(DiagnosticInfo.from_binary(data))
9185
        self.DiagnosticInfos = array
9186
9187 1
    def __str__(self):
9188
        return 'HistoryUpdateResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
9189
               'OperationResults:' + str(self.OperationResults) + ', ' + \
9190
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9191
9192 1
    __repr__ = __str__
9193
9194
9195 1
class HistoryUpdateParameters(FrozenClass):
9196
    '''
9197
    :ivar HistoryUpdateDetails:
9198
    :vartype HistoryUpdateDetails: ExtensionObject
9199
    '''
9200 1
    def __init__(self, binary=None):
9201
        if binary is not None:
9202
            self._binary_init(binary)
9203
            self._freeze = True
9204
            return
9205
        self.HistoryUpdateDetails = []
9206
        self._freeze = True
9207
9208 1
    def to_binary(self):
9209
        packet = []
9210
        packet.append(uatype_Int32.pack(len(self.HistoryUpdateDetails)))
9211
        for fieldname in self.HistoryUpdateDetails:
9212
            packet.append(extensionobject_to_binary(fieldname))
9213
        return b''.join(packet)
9214
9215 1
    @staticmethod
9216
    def from_binary(data):
9217
        return HistoryUpdateParameters(data)
9218
9219 1
    def _binary_init(self, data):
9220
        length = uatype_Int32.unpack(data.read(4))[0]
9221
        array = []
9222
        if length != -1:
9223
            for _ in range(0, length):
9224
                array.append(extensionobject_from_binary(data))
9225
        self.HistoryUpdateDetails = array
9226
9227 1
    def __str__(self):
9228
        return 'HistoryUpdateParameters(' + 'HistoryUpdateDetails:' + str(self.HistoryUpdateDetails) + ')'
9229
9230 1
    __repr__ = __str__
9231
9232
9233 1
class HistoryUpdateRequest(FrozenClass):
9234
    '''
9235
    :ivar TypeId:
9236
    :vartype TypeId: NodeId
9237
    :ivar RequestHeader:
9238
    :vartype RequestHeader: RequestHeader
9239
    :ivar Parameters:
9240
    :vartype Parameters: HistoryUpdateParameters
9241
    '''
9242 1
    def __init__(self, binary=None):
9243
        if binary is not None:
9244
            self._binary_init(binary)
9245
            self._freeze = True
9246
            return
9247
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary)
9248
        self.RequestHeader = RequestHeader()
9249
        self.Parameters = HistoryUpdateParameters()
9250
        self._freeze = True
9251
9252 1
    def to_binary(self):
9253
        packet = []
9254
        packet.append(self.TypeId.to_binary())
9255
        packet.append(self.RequestHeader.to_binary())
9256
        packet.append(self.Parameters.to_binary())
9257
        return b''.join(packet)
9258
9259 1
    @staticmethod
9260
    def from_binary(data):
9261
        return HistoryUpdateRequest(data)
9262
9263 1
    def _binary_init(self, data):
9264
        self.TypeId = NodeId.from_binary(data)
9265
        self.RequestHeader = RequestHeader.from_binary(data)
9266
        self.Parameters = HistoryUpdateParameters.from_binary(data)
9267
9268 1
    def __str__(self):
9269
        return 'HistoryUpdateRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9270
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9271
               'Parameters:' + str(self.Parameters) + ')'
9272
9273 1
    __repr__ = __str__
9274
9275
9276 1
class HistoryUpdateResponse(FrozenClass):
9277
    '''
9278
    :ivar TypeId:
9279
    :vartype TypeId: NodeId
9280
    :ivar ResponseHeader:
9281
    :vartype ResponseHeader: ResponseHeader
9282
    :ivar Results:
9283
    :vartype Results: HistoryUpdateResult
9284
    :ivar DiagnosticInfos:
9285
    :vartype DiagnosticInfos: DiagnosticInfo
9286
    '''
9287 1
    def __init__(self, binary=None):
9288
        if binary is not None:
9289
            self._binary_init(binary)
9290
            self._freeze = True
9291
            return
9292
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary)
9293
        self.ResponseHeader = ResponseHeader()
9294
        self.Results = []
9295
        self.DiagnosticInfos = []
9296
        self._freeze = True
9297
9298 1
    def to_binary(self):
9299
        packet = []
9300
        packet.append(self.TypeId.to_binary())
9301
        packet.append(self.ResponseHeader.to_binary())
9302
        packet.append(uatype_Int32.pack(len(self.Results)))
9303
        for fieldname in self.Results:
9304
            packet.append(fieldname.to_binary())
9305
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
9306
        for fieldname in self.DiagnosticInfos:
9307
            packet.append(fieldname.to_binary())
9308
        return b''.join(packet)
9309
9310 1
    @staticmethod
9311
    def from_binary(data):
9312
        return HistoryUpdateResponse(data)
9313
9314 1
    def _binary_init(self, data):
9315
        self.TypeId = NodeId.from_binary(data)
9316
        self.ResponseHeader = ResponseHeader.from_binary(data)
9317
        length = uatype_Int32.unpack(data.read(4))[0]
9318
        array = []
9319
        if length != -1:
9320
            for _ in range(0, length):
9321
                array.append(HistoryUpdateResult.from_binary(data))
9322
        self.Results = array
9323
        length = uatype_Int32.unpack(data.read(4))[0]
9324
        array = []
9325
        if length != -1:
9326
            for _ in range(0, length):
9327
                array.append(DiagnosticInfo.from_binary(data))
9328
        self.DiagnosticInfos = array
9329
9330 1
    def __str__(self):
9331
        return 'HistoryUpdateResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9332
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9333
               'Results:' + str(self.Results) + ', ' + \
9334
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9335
9336 1
    __repr__ = __str__
9337
9338
9339 1
class CallMethodRequest(FrozenClass):
9340
    '''
9341
    :ivar ObjectId:
9342
    :vartype ObjectId: NodeId
9343
    :ivar MethodId:
9344
    :vartype MethodId: NodeId
9345
    :ivar InputArguments:
9346
    :vartype InputArguments: Variant
9347
    '''
9348 1
    def __init__(self, binary=None):
9349 1
        if binary is not None:
9350 1
            self._binary_init(binary)
9351 1
            self._freeze = True
9352 1
            return
9353 1
        self.ObjectId = NodeId()
9354 1
        self.MethodId = NodeId()
9355 1
        self.InputArguments = []
9356 1
        self._freeze = True
9357
9358 1
    def to_binary(self):
9359 1
        packet = []
9360 1
        packet.append(self.ObjectId.to_binary())
9361 1
        packet.append(self.MethodId.to_binary())
9362 1
        packet.append(uatype_Int32.pack(len(self.InputArguments)))
9363 1
        for fieldname in self.InputArguments:
9364 1
            packet.append(fieldname.to_binary())
9365 1
        return b''.join(packet)
9366
9367 1
    @staticmethod
9368
    def from_binary(data):
9369 1
        return CallMethodRequest(data)
9370
9371 1
    def _binary_init(self, data):
9372 1
        self.ObjectId = NodeId.from_binary(data)
9373 1
        self.MethodId = NodeId.from_binary(data)
9374 1
        length = uatype_Int32.unpack(data.read(4))[0]
9375 1
        array = []
9376 1
        if length != -1:
9377 1
            for _ in range(0, length):
9378 1
                array.append(Variant.from_binary(data))
9379 1
        self.InputArguments = array
9380
9381 1
    def __str__(self):
9382 1
        return 'CallMethodRequest(' + 'ObjectId:' + str(self.ObjectId) + ', ' + \
9383
               'MethodId:' + str(self.MethodId) + ', ' + \
9384
               'InputArguments:' + str(self.InputArguments) + ')'
9385
9386 1
    __repr__ = __str__
9387
9388
9389 1
class CallMethodResult(FrozenClass):
9390
    '''
9391
    :ivar StatusCode:
9392
    :vartype StatusCode: StatusCode
9393
    :ivar InputArgumentResults:
9394
    :vartype InputArgumentResults: StatusCode
9395
    :ivar InputArgumentDiagnosticInfos:
9396
    :vartype InputArgumentDiagnosticInfos: DiagnosticInfo
9397
    :ivar OutputArguments:
9398
    :vartype OutputArguments: Variant
9399
    '''
9400 1
    def __init__(self, binary=None):
9401 1
        if binary is not None:
9402 1
            self._binary_init(binary)
9403 1
            self._freeze = True
9404 1
            return
9405 1
        self.StatusCode = StatusCode()
9406 1
        self.InputArgumentResults = []
9407 1
        self.InputArgumentDiagnosticInfos = []
9408 1
        self.OutputArguments = []
9409 1
        self._freeze = True
9410
9411 1
    def to_binary(self):
9412 1
        packet = []
9413 1
        packet.append(self.StatusCode.to_binary())
9414 1
        packet.append(uatype_Int32.pack(len(self.InputArgumentResults)))
9415 1
        for fieldname in self.InputArgumentResults:
9416 1
            packet.append(fieldname.to_binary())
9417 1
        packet.append(uatype_Int32.pack(len(self.InputArgumentDiagnosticInfos)))
9418 1
        for fieldname in self.InputArgumentDiagnosticInfos:
9419
            packet.append(fieldname.to_binary())
9420 1
        packet.append(uatype_Int32.pack(len(self.OutputArguments)))
9421 1
        for fieldname in self.OutputArguments:
9422 1
            packet.append(fieldname.to_binary())
9423 1
        return b''.join(packet)
9424
9425 1
    @staticmethod
9426
    def from_binary(data):
9427 1
        return CallMethodResult(data)
9428
9429 1
    def _binary_init(self, data):
9430 1
        self.StatusCode = StatusCode.from_binary(data)
9431 1
        length = uatype_Int32.unpack(data.read(4))[0]
9432 1
        array = []
9433 1
        if length != -1:
9434 1
            for _ in range(0, length):
9435 1
                array.append(StatusCode.from_binary(data))
9436 1
        self.InputArgumentResults = array
9437 1
        length = uatype_Int32.unpack(data.read(4))[0]
9438 1
        array = []
9439 1
        if length != -1:
9440 1
            for _ in range(0, length):
9441
                array.append(DiagnosticInfo.from_binary(data))
9442 1
        self.InputArgumentDiagnosticInfos = array
9443 1
        length = uatype_Int32.unpack(data.read(4))[0]
9444 1
        array = []
9445 1
        if length != -1:
9446 1
            for _ in range(0, length):
9447 1
                array.append(Variant.from_binary(data))
9448 1
        self.OutputArguments = array
9449
9450 1
    def __str__(self):
9451
        return 'CallMethodResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
9452
               'InputArgumentResults:' + str(self.InputArgumentResults) + ', ' + \
9453
               'InputArgumentDiagnosticInfos:' + str(self.InputArgumentDiagnosticInfos) + ', ' + \
9454
               'OutputArguments:' + str(self.OutputArguments) + ')'
9455
9456 1
    __repr__ = __str__
9457
9458
9459 1
class CallParameters(FrozenClass):
9460
    '''
9461
    :ivar MethodsToCall:
9462
    :vartype MethodsToCall: CallMethodRequest
9463
    '''
9464 1
    def __init__(self, binary=None):
9465 1
        if binary is not None:
9466 1
            self._binary_init(binary)
9467 1
            self._freeze = True
9468 1
            return
9469 1
        self.MethodsToCall = []
9470 1
        self._freeze = True
9471
9472 1
    def to_binary(self):
9473 1
        packet = []
9474 1
        packet.append(uatype_Int32.pack(len(self.MethodsToCall)))
9475 1
        for fieldname in self.MethodsToCall:
9476 1
            packet.append(fieldname.to_binary())
9477 1
        return b''.join(packet)
9478
9479 1
    @staticmethod
9480
    def from_binary(data):
9481 1
        return CallParameters(data)
9482
9483 1
    def _binary_init(self, data):
9484 1
        length = uatype_Int32.unpack(data.read(4))[0]
9485 1
        array = []
9486 1
        if length != -1:
9487 1
            for _ in range(0, length):
9488 1
                array.append(CallMethodRequest.from_binary(data))
9489 1
        self.MethodsToCall = array
9490
9491 1
    def __str__(self):
9492
        return 'CallParameters(' + 'MethodsToCall:' + str(self.MethodsToCall) + ')'
9493
9494 1
    __repr__ = __str__
9495
9496
9497 1
class CallRequest(FrozenClass):
9498
    '''
9499
    :ivar TypeId:
9500
    :vartype TypeId: NodeId
9501
    :ivar RequestHeader:
9502
    :vartype RequestHeader: RequestHeader
9503
    :ivar Parameters:
9504
    :vartype Parameters: CallParameters
9505
    '''
9506 1
    def __init__(self, binary=None):
9507 1
        if binary is not None:
9508
            self._binary_init(binary)
9509
            self._freeze = True
9510
            return
9511 1
        self.TypeId = FourByteNodeId(ObjectIds.CallRequest_Encoding_DefaultBinary)
9512 1
        self.RequestHeader = RequestHeader()
9513 1
        self.Parameters = CallParameters()
9514 1
        self._freeze = True
9515
9516 1
    def to_binary(self):
9517 1
        packet = []
9518 1
        packet.append(self.TypeId.to_binary())
9519 1
        packet.append(self.RequestHeader.to_binary())
9520 1
        packet.append(self.Parameters.to_binary())
9521 1
        return b''.join(packet)
9522
9523 1
    @staticmethod
9524
    def from_binary(data):
9525
        return CallRequest(data)
9526
9527 1
    def _binary_init(self, data):
9528
        self.TypeId = NodeId.from_binary(data)
9529
        self.RequestHeader = RequestHeader.from_binary(data)
9530
        self.Parameters = CallParameters.from_binary(data)
9531
9532 1
    def __str__(self):
9533
        return 'CallRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9534
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9535
               'Parameters:' + str(self.Parameters) + ')'
9536
9537 1
    __repr__ = __str__
9538
9539
9540 1
class CallResponse(FrozenClass):
9541
    '''
9542
    :ivar TypeId:
9543
    :vartype TypeId: NodeId
9544
    :ivar ResponseHeader:
9545
    :vartype ResponseHeader: ResponseHeader
9546
    :ivar Results:
9547
    :vartype Results: CallMethodResult
9548
    :ivar DiagnosticInfos:
9549
    :vartype DiagnosticInfos: DiagnosticInfo
9550
    '''
9551 1
    def __init__(self, binary=None):
9552 1
        if binary is not None:
9553 1
            self._binary_init(binary)
9554 1
            self._freeze = True
9555 1
            return
9556 1
        self.TypeId = FourByteNodeId(ObjectIds.CallResponse_Encoding_DefaultBinary)
9557 1
        self.ResponseHeader = ResponseHeader()
9558 1
        self.Results = []
9559 1
        self.DiagnosticInfos = []
9560 1
        self._freeze = True
9561
9562 1
    def to_binary(self):
9563 1
        packet = []
9564 1
        packet.append(self.TypeId.to_binary())
9565 1
        packet.append(self.ResponseHeader.to_binary())
9566 1
        packet.append(uatype_Int32.pack(len(self.Results)))
9567 1
        for fieldname in self.Results:
9568 1
            packet.append(fieldname.to_binary())
9569 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
9570 1
        for fieldname in self.DiagnosticInfos:
9571
            packet.append(fieldname.to_binary())
9572 1
        return b''.join(packet)
9573
9574 1
    @staticmethod
9575
    def from_binary(data):
9576 1
        return CallResponse(data)
9577
9578 1
    def _binary_init(self, data):
9579 1
        self.TypeId = NodeId.from_binary(data)
9580 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
9581 1
        length = uatype_Int32.unpack(data.read(4))[0]
9582 1
        array = []
9583 1
        if length != -1:
9584 1
            for _ in range(0, length):
9585 1
                array.append(CallMethodResult.from_binary(data))
9586 1
        self.Results = array
9587 1
        length = uatype_Int32.unpack(data.read(4))[0]
9588 1
        array = []
9589 1
        if length != -1:
9590 1
            for _ in range(0, length):
9591
                array.append(DiagnosticInfo.from_binary(data))
9592 1
        self.DiagnosticInfos = array
9593
9594 1
    def __str__(self):
9595
        return 'CallResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9596
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9597
               'Results:' + str(self.Results) + ', ' + \
9598
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9599
9600 1
    __repr__ = __str__
9601
9602
9603 1
class MonitoringFilter(FrozenClass):
9604
    '''
9605
    '''
9606 1
    def __init__(self, binary=None):
9607
        if binary is not None:
9608
            self._binary_init(binary)
9609
            self._freeze = True
9610
            return
9611
        self._freeze = True
9612
9613 1
    def to_binary(self):
9614
        packet = []
9615
        return b''.join(packet)
9616
9617 1
    @staticmethod
9618
    def from_binary(data):
9619
        return MonitoringFilter(data)
9620
9621 1
    def _binary_init(self, data):
9622
        pass
9623
9624 1
    def __str__(self):
9625
        return 'MonitoringFilter(' +  + ')'
9626
9627 1
    __repr__ = __str__
9628
9629
9630 1
class DataChangeFilter(FrozenClass):
9631
    '''
9632
    :ivar Trigger:
9633
    :vartype Trigger: DataChangeTrigger
9634
    :ivar DeadbandType:
9635
    :vartype DeadbandType: UInt32
9636
    :ivar DeadbandValue:
9637
    :vartype DeadbandValue: Double
9638
    '''
9639 1
    def __init__(self, binary=None):
9640
        if binary is not None:
9641
            self._binary_init(binary)
9642
            self._freeze = True
9643
            return
9644
        self.Trigger = DataChangeTrigger(0)
9645
        self.DeadbandType = 0
9646
        self.DeadbandValue = 0
9647
        self._freeze = True
9648
9649 1
    def to_binary(self):
9650
        packet = []
9651
        packet.append(uatype_UInt32.pack(self.Trigger.value))
9652
        packet.append(uatype_UInt32.pack(self.DeadbandType))
9653
        packet.append(uatype_Double.pack(self.DeadbandValue))
9654
        return b''.join(packet)
9655
9656 1
    @staticmethod
9657
    def from_binary(data):
9658
        return DataChangeFilter(data)
9659
9660 1
    def _binary_init(self, data):
9661
        self.Trigger = DataChangeTrigger(uatype_UInt32.unpack(data.read(4))[0])
9662
        self.DeadbandType = uatype_UInt32.unpack(data.read(4))[0]
9663
        self.DeadbandValue = uatype_Double.unpack(data.read(8))[0]
9664
9665 1
    def __str__(self):
9666
        return 'DataChangeFilter(' + 'Trigger:' + str(self.Trigger) + ', ' + \
9667
               'DeadbandType:' + str(self.DeadbandType) + ', ' + \
9668
               'DeadbandValue:' + str(self.DeadbandValue) + ')'
9669
9670 1
    __repr__ = __str__
9671
9672
9673 1
class EventFilter(FrozenClass):
9674
    '''
9675
    :ivar SelectClauses:
9676
    :vartype SelectClauses: SimpleAttributeOperand
9677
    :ivar WhereClause:
9678
    :vartype WhereClause: ContentFilter
9679
    '''
9680 1
    def __init__(self, binary=None):
9681 1
        if binary is not None:
9682 1
            self._binary_init(binary)
9683 1
            self._freeze = True
9684 1
            return
9685 1
        self.SelectClauses = []
9686 1
        self.WhereClause = ContentFilter()
9687 1
        self._freeze = True
9688
9689 1
    def to_binary(self):
9690 1
        packet = []
9691 1
        packet.append(uatype_Int32.pack(len(self.SelectClauses)))
9692 1
        for fieldname in self.SelectClauses:
9693 1
            packet.append(fieldname.to_binary())
9694 1
        packet.append(self.WhereClause.to_binary())
9695 1
        return b''.join(packet)
9696
9697 1
    @staticmethod
9698
    def from_binary(data):
9699 1
        return EventFilter(data)
9700
9701 1
    def _binary_init(self, data):
9702 1
        length = uatype_Int32.unpack(data.read(4))[0]
9703 1
        array = []
9704 1
        if length != -1:
9705 1
            for _ in range(0, length):
9706 1
                array.append(SimpleAttributeOperand.from_binary(data))
9707 1
        self.SelectClauses = array
9708 1
        self.WhereClause = ContentFilter.from_binary(data)
9709
9710 1
    def __str__(self):
9711
        return 'EventFilter(' + 'SelectClauses:' + str(self.SelectClauses) + ', ' + \
9712
               'WhereClause:' + str(self.WhereClause) + ')'
9713
9714 1
    __repr__ = __str__
9715
9716
9717 1
class AggregateConfiguration(FrozenClass):
9718
    '''
9719
    :ivar UseServerCapabilitiesDefaults:
9720
    :vartype UseServerCapabilitiesDefaults: Boolean
9721
    :ivar TreatUncertainAsBad:
9722
    :vartype TreatUncertainAsBad: Boolean
9723
    :ivar PercentDataBad:
9724
    :vartype PercentDataBad: Byte
9725
    :ivar PercentDataGood:
9726
    :vartype PercentDataGood: Byte
9727
    :ivar UseSlopedExtrapolation:
9728
    :vartype UseSlopedExtrapolation: Boolean
9729
    '''
9730 1
    def __init__(self, binary=None):
9731
        if binary is not None:
9732
            self._binary_init(binary)
9733
            self._freeze = True
9734
            return
9735
        self.UseServerCapabilitiesDefaults = True
9736
        self.TreatUncertainAsBad = True
9737
        self.PercentDataBad = 0
9738
        self.PercentDataGood = 0
9739
        self.UseSlopedExtrapolation = True
9740
        self._freeze = True
9741
9742 1
    def to_binary(self):
9743
        packet = []
9744
        packet.append(uatype_Boolean.pack(self.UseServerCapabilitiesDefaults))
9745
        packet.append(uatype_Boolean.pack(self.TreatUncertainAsBad))
9746
        packet.append(uatype_Byte.pack(self.PercentDataBad))
9747
        packet.append(uatype_Byte.pack(self.PercentDataGood))
9748
        packet.append(uatype_Boolean.pack(self.UseSlopedExtrapolation))
9749
        return b''.join(packet)
9750
9751 1
    @staticmethod
9752
    def from_binary(data):
9753
        return AggregateConfiguration(data)
9754
9755 1
    def _binary_init(self, data):
9756
        self.UseServerCapabilitiesDefaults = uatype_Boolean.unpack(data.read(1))[0]
9757
        self.TreatUncertainAsBad = uatype_Boolean.unpack(data.read(1))[0]
9758
        self.PercentDataBad = uatype_Byte.unpack(data.read(1))[0]
9759
        self.PercentDataGood = uatype_Byte.unpack(data.read(1))[0]
9760
        self.UseSlopedExtrapolation = uatype_Boolean.unpack(data.read(1))[0]
9761
9762 1
    def __str__(self):
9763
        return 'AggregateConfiguration(' + 'UseServerCapabilitiesDefaults:' + str(self.UseServerCapabilitiesDefaults) + ', ' + \
9764
               'TreatUncertainAsBad:' + str(self.TreatUncertainAsBad) + ', ' + \
9765
               'PercentDataBad:' + str(self.PercentDataBad) + ', ' + \
9766
               'PercentDataGood:' + str(self.PercentDataGood) + ', ' + \
9767
               'UseSlopedExtrapolation:' + str(self.UseSlopedExtrapolation) + ')'
9768
9769 1
    __repr__ = __str__
9770
9771
9772 1
class AggregateFilter(FrozenClass):
9773
    '''
9774
    :ivar StartTime:
9775
    :vartype StartTime: DateTime
9776
    :ivar AggregateType:
9777
    :vartype AggregateType: NodeId
9778
    :ivar ProcessingInterval:
9779
    :vartype ProcessingInterval: Double
9780
    :ivar AggregateConfiguration:
9781
    :vartype AggregateConfiguration: AggregateConfiguration
9782
    '''
9783 1
    def __init__(self, binary=None):
9784
        if binary is not None:
9785
            self._binary_init(binary)
9786
            self._freeze = True
9787
            return
9788
        self.StartTime = datetime.now()
9789
        self.AggregateType = NodeId()
9790
        self.ProcessingInterval = 0
9791
        self.AggregateConfiguration = AggregateConfiguration()
9792
        self._freeze = True
9793
9794 1
    def to_binary(self):
9795
        packet = []
9796
        packet.append(pack_datetime(self.StartTime))
9797
        packet.append(self.AggregateType.to_binary())
9798
        packet.append(uatype_Double.pack(self.ProcessingInterval))
9799
        packet.append(self.AggregateConfiguration.to_binary())
9800
        return b''.join(packet)
9801
9802 1
    @staticmethod
9803
    def from_binary(data):
9804
        return AggregateFilter(data)
9805
9806 1
    def _binary_init(self, data):
9807
        self.StartTime = unpack_datetime(data)
9808
        self.AggregateType = NodeId.from_binary(data)
9809
        self.ProcessingInterval = uatype_Double.unpack(data.read(8))[0]
9810
        self.AggregateConfiguration = AggregateConfiguration.from_binary(data)
9811
9812 1
    def __str__(self):
9813
        return 'AggregateFilter(' + 'StartTime:' + str(self.StartTime) + ', ' + \
9814
               'AggregateType:' + str(self.AggregateType) + ', ' + \
9815
               'ProcessingInterval:' + str(self.ProcessingInterval) + ', ' + \
9816
               'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
9817
9818 1
    __repr__ = __str__
9819
9820
9821 1
class MonitoringFilterResult(FrozenClass):
9822
    '''
9823
    '''
9824 1
    def __init__(self, binary=None):
9825
        if binary is not None:
9826
            self._binary_init(binary)
9827
            self._freeze = True
9828
            return
9829
        self._freeze = True
9830
9831 1
    def to_binary(self):
9832
        packet = []
9833
        return b''.join(packet)
9834
9835 1
    @staticmethod
9836
    def from_binary(data):
9837
        return MonitoringFilterResult(data)
9838
9839 1
    def _binary_init(self, data):
9840
        pass
9841
9842 1
    def __str__(self):
9843
        return 'MonitoringFilterResult(' +  + ')'
9844
9845 1
    __repr__ = __str__
9846
9847
9848 1
class EventFilterResult(FrozenClass):
9849
    '''
9850
    :ivar SelectClauseResults:
9851
    :vartype SelectClauseResults: StatusCode
9852
    :ivar SelectClauseDiagnosticInfos:
9853
    :vartype SelectClauseDiagnosticInfos: DiagnosticInfo
9854
    :ivar WhereClauseResult:
9855
    :vartype WhereClauseResult: ContentFilterResult
9856
    '''
9857 1
    def __init__(self, binary=None):
9858 1
        if binary is not None:
9859 1
            self._binary_init(binary)
9860 1
            self._freeze = True
9861 1
            return
9862 1
        self.SelectClauseResults = []
9863 1
        self.SelectClauseDiagnosticInfos = []
9864 1
        self.WhereClauseResult = ContentFilterResult()
9865 1
        self._freeze = True
9866
9867 1
    def to_binary(self):
9868 1
        packet = []
9869 1
        packet.append(uatype_Int32.pack(len(self.SelectClauseResults)))
9870 1
        for fieldname in self.SelectClauseResults:
9871 1
            packet.append(fieldname.to_binary())
9872 1
        packet.append(uatype_Int32.pack(len(self.SelectClauseDiagnosticInfos)))
9873 1
        for fieldname in self.SelectClauseDiagnosticInfos:
9874
            packet.append(fieldname.to_binary())
9875 1
        packet.append(self.WhereClauseResult.to_binary())
9876 1
        return b''.join(packet)
9877
9878 1
    @staticmethod
9879
    def from_binary(data):
9880 1
        return EventFilterResult(data)
9881
9882 1
    def _binary_init(self, data):
9883 1
        length = uatype_Int32.unpack(data.read(4))[0]
9884 1
        array = []
9885 1
        if length != -1:
9886 1
            for _ in range(0, length):
9887 1
                array.append(StatusCode.from_binary(data))
9888 1
        self.SelectClauseResults = array
9889 1
        length = uatype_Int32.unpack(data.read(4))[0]
9890 1
        array = []
9891 1
        if length != -1:
9892 1
            for _ in range(0, length):
9893
                array.append(DiagnosticInfo.from_binary(data))
9894 1
        self.SelectClauseDiagnosticInfos = array
9895 1
        self.WhereClauseResult = ContentFilterResult.from_binary(data)
9896
9897 1
    def __str__(self):
9898
        return 'EventFilterResult(' + 'SelectClauseResults:' + str(self.SelectClauseResults) + ', ' + \
9899
               'SelectClauseDiagnosticInfos:' + str(self.SelectClauseDiagnosticInfos) + ', ' + \
9900
               'WhereClauseResult:' + str(self.WhereClauseResult) + ')'
9901
9902 1
    __repr__ = __str__
9903
9904
9905 1
class AggregateFilterResult(FrozenClass):
9906
    '''
9907
    :ivar RevisedStartTime:
9908
    :vartype RevisedStartTime: DateTime
9909
    :ivar RevisedProcessingInterval:
9910
    :vartype RevisedProcessingInterval: Double
9911
    :ivar RevisedAggregateConfiguration:
9912
    :vartype RevisedAggregateConfiguration: AggregateConfiguration
9913
    '''
9914 1
    def __init__(self, binary=None):
9915
        if binary is not None:
9916
            self._binary_init(binary)
9917
            self._freeze = True
9918
            return
9919
        self.RevisedStartTime = datetime.now()
9920
        self.RevisedProcessingInterval = 0
9921
        self.RevisedAggregateConfiguration = AggregateConfiguration()
9922
        self._freeze = True
9923
9924 1
    def to_binary(self):
9925
        packet = []
9926
        packet.append(pack_datetime(self.RevisedStartTime))
9927
        packet.append(uatype_Double.pack(self.RevisedProcessingInterval))
9928
        packet.append(self.RevisedAggregateConfiguration.to_binary())
9929
        return b''.join(packet)
9930
9931 1
    @staticmethod
9932
    def from_binary(data):
9933
        return AggregateFilterResult(data)
9934
9935 1
    def _binary_init(self, data):
9936
        self.RevisedStartTime = unpack_datetime(data)
9937
        self.RevisedProcessingInterval = uatype_Double.unpack(data.read(8))[0]
9938
        self.RevisedAggregateConfiguration = AggregateConfiguration.from_binary(data)
9939
9940 1
    def __str__(self):
9941
        return 'AggregateFilterResult(' + 'RevisedStartTime:' + str(self.RevisedStartTime) + ', ' + \
9942
               'RevisedProcessingInterval:' + str(self.RevisedProcessingInterval) + ', ' + \
9943
               'RevisedAggregateConfiguration:' + str(self.RevisedAggregateConfiguration) + ')'
9944
9945 1
    __repr__ = __str__
9946
9947
9948 1
class MonitoringParameters(FrozenClass):
9949
    '''
9950
    :ivar ClientHandle:
9951
    :vartype ClientHandle: UInt32
9952
    :ivar SamplingInterval:
9953
    :vartype SamplingInterval: Double
9954
    :ivar Filter:
9955
    :vartype Filter: ExtensionObject
9956
    :ivar QueueSize:
9957
    :vartype QueueSize: UInt32
9958
    :ivar DiscardOldest:
9959
    :vartype DiscardOldest: Boolean
9960
    '''
9961 1
    def __init__(self, binary=None):
9962 1
        if binary is not None:
9963 1
            self._binary_init(binary)
9964 1
            self._freeze = True
9965 1
            return
9966 1
        self.ClientHandle = 0
9967 1
        self.SamplingInterval = 0
9968 1
        self.Filter = None
9969 1
        self.QueueSize = 0
9970 1
        self.DiscardOldest = True
9971 1
        self._freeze = True
9972
9973 1
    def to_binary(self):
9974 1
        packet = []
9975 1
        packet.append(uatype_UInt32.pack(self.ClientHandle))
9976 1
        packet.append(uatype_Double.pack(self.SamplingInterval))
9977 1
        packet.append(extensionobject_to_binary(self.Filter))
9978 1
        packet.append(uatype_UInt32.pack(self.QueueSize))
9979 1
        packet.append(uatype_Boolean.pack(self.DiscardOldest))
9980 1
        return b''.join(packet)
9981
9982 1
    @staticmethod
9983
    def from_binary(data):
9984 1
        return MonitoringParameters(data)
9985
9986 1
    def _binary_init(self, data):
9987 1
        self.ClientHandle = uatype_UInt32.unpack(data.read(4))[0]
9988 1
        self.SamplingInterval = uatype_Double.unpack(data.read(8))[0]
9989 1
        self.Filter = extensionobject_from_binary(data)
9990 1
        self.QueueSize = uatype_UInt32.unpack(data.read(4))[0]
9991 1
        self.DiscardOldest = uatype_Boolean.unpack(data.read(1))[0]
9992
9993 1
    def __str__(self):
9994
        return 'MonitoringParameters(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
9995
               'SamplingInterval:' + str(self.SamplingInterval) + ', ' + \
9996
               'Filter:' + str(self.Filter) + ', ' + \
9997
               'QueueSize:' + str(self.QueueSize) + ', ' + \
9998
               'DiscardOldest:' + str(self.DiscardOldest) + ')'
9999
10000 1
    __repr__ = __str__
10001
10002
10003 1
class MonitoredItemCreateRequest(FrozenClass):
10004
    '''
10005
    :ivar ItemToMonitor:
10006
    :vartype ItemToMonitor: ReadValueId
10007
    :ivar MonitoringMode:
10008
    :vartype MonitoringMode: MonitoringMode
10009
    :ivar RequestedParameters:
10010
    :vartype RequestedParameters: MonitoringParameters
10011
    '''
10012 1
    def __init__(self, binary=None):
10013 1
        if binary is not None:
10014 1
            self._binary_init(binary)
10015 1
            self._freeze = True
10016 1
            return
10017 1
        self.ItemToMonitor = ReadValueId()
10018 1
        self.MonitoringMode = MonitoringMode(0)
10019 1
        self.RequestedParameters = MonitoringParameters()
10020 1
        self._freeze = True
10021
10022 1
    def to_binary(self):
10023 1
        packet = []
10024 1
        packet.append(self.ItemToMonitor.to_binary())
10025 1
        packet.append(uatype_UInt32.pack(self.MonitoringMode.value))
10026 1
        packet.append(self.RequestedParameters.to_binary())
10027 1
        return b''.join(packet)
10028
10029 1
    @staticmethod
10030
    def from_binary(data):
10031 1
        return MonitoredItemCreateRequest(data)
10032
10033 1
    def _binary_init(self, data):
10034 1
        self.ItemToMonitor = ReadValueId.from_binary(data)
10035 1
        self.MonitoringMode = MonitoringMode(uatype_UInt32.unpack(data.read(4))[0])
10036 1
        self.RequestedParameters = MonitoringParameters.from_binary(data)
10037
10038 1
    def __str__(self):
10039
        return 'MonitoredItemCreateRequest(' + 'ItemToMonitor:' + str(self.ItemToMonitor) + ', ' + \
10040
               'MonitoringMode:' + str(self.MonitoringMode) + ', ' + \
10041
               'RequestedParameters:' + str(self.RequestedParameters) + ')'
10042
10043 1
    __repr__ = __str__
10044
10045
10046 1
class MonitoredItemCreateResult(FrozenClass):
10047
    '''
10048
    :ivar StatusCode:
10049
    :vartype StatusCode: StatusCode
10050
    :ivar MonitoredItemId:
10051
    :vartype MonitoredItemId: UInt32
10052
    :ivar RevisedSamplingInterval:
10053
    :vartype RevisedSamplingInterval: Double
10054
    :ivar RevisedQueueSize:
10055
    :vartype RevisedQueueSize: UInt32
10056
    :ivar FilterResult:
10057
    :vartype FilterResult: ExtensionObject
10058
    '''
10059 1
    def __init__(self, binary=None):
10060 1
        if binary is not None:
10061 1
            self._binary_init(binary)
10062 1
            self._freeze = True
10063 1
            return
10064 1
        self.StatusCode = StatusCode()
10065 1
        self.MonitoredItemId = 0
10066 1
        self.RevisedSamplingInterval = 0
10067 1
        self.RevisedQueueSize = 0
10068 1
        self.FilterResult = None
10069 1
        self._freeze = True
10070
10071 1
    def to_binary(self):
10072 1
        packet = []
10073 1
        packet.append(self.StatusCode.to_binary())
10074 1
        packet.append(uatype_UInt32.pack(self.MonitoredItemId))
10075 1
        packet.append(uatype_Double.pack(self.RevisedSamplingInterval))
10076 1
        packet.append(uatype_UInt32.pack(self.RevisedQueueSize))
10077 1
        packet.append(extensionobject_to_binary(self.FilterResult))
10078 1
        return b''.join(packet)
10079
10080 1
    @staticmethod
10081
    def from_binary(data):
10082 1
        return MonitoredItemCreateResult(data)
10083
10084 1
    def _binary_init(self, data):
10085 1
        self.StatusCode = StatusCode.from_binary(data)
10086 1
        self.MonitoredItemId = uatype_UInt32.unpack(data.read(4))[0]
10087 1
        self.RevisedSamplingInterval = uatype_Double.unpack(data.read(8))[0]
10088 1
        self.RevisedQueueSize = uatype_UInt32.unpack(data.read(4))[0]
10089 1
        self.FilterResult = extensionobject_from_binary(data)
10090
10091 1
    def __str__(self):
10092
        return 'MonitoredItemCreateResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
10093
               'MonitoredItemId:' + str(self.MonitoredItemId) + ', ' + \
10094
               'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', ' + \
10095
               'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', ' + \
10096
               'FilterResult:' + str(self.FilterResult) + ')'
10097
10098 1
    __repr__ = __str__
10099
10100
10101 1
class CreateMonitoredItemsParameters(FrozenClass):
10102
    '''
10103
    :ivar SubscriptionId:
10104
    :vartype SubscriptionId: UInt32
10105
    :ivar TimestampsToReturn:
10106
    :vartype TimestampsToReturn: TimestampsToReturn
10107
    :ivar ItemsToCreate:
10108
    :vartype ItemsToCreate: MonitoredItemCreateRequest
10109
    '''
10110 1
    def __init__(self, binary=None):
10111 1
        if binary is not None:
10112 1
            self._binary_init(binary)
10113 1
            self._freeze = True
10114 1
            return
10115 1
        self.SubscriptionId = 0
10116 1
        self.TimestampsToReturn = TimestampsToReturn(0)
10117 1
        self.ItemsToCreate = []
10118 1
        self._freeze = True
10119
10120 1
    def to_binary(self):
10121 1
        packet = []
10122 1
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
10123 1
        packet.append(uatype_UInt32.pack(self.TimestampsToReturn.value))
10124 1
        packet.append(uatype_Int32.pack(len(self.ItemsToCreate)))
10125 1
        for fieldname in self.ItemsToCreate:
10126 1
            packet.append(fieldname.to_binary())
10127 1
        return b''.join(packet)
10128
10129 1
    @staticmethod
10130
    def from_binary(data):
10131 1
        return CreateMonitoredItemsParameters(data)
10132
10133 1
    def _binary_init(self, data):
10134 1
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
10135 1
        self.TimestampsToReturn = TimestampsToReturn(uatype_UInt32.unpack(data.read(4))[0])
10136 1
        length = uatype_Int32.unpack(data.read(4))[0]
10137 1
        array = []
10138 1
        if length != -1:
10139 1
            for _ in range(0, length):
10140 1
                array.append(MonitoredItemCreateRequest.from_binary(data))
10141 1
        self.ItemsToCreate = array
10142
10143 1
    def __str__(self):
10144
        return 'CreateMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10145
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
10146
               'ItemsToCreate:' + str(self.ItemsToCreate) + ')'
10147
10148 1
    __repr__ = __str__
10149
10150
10151 1
class CreateMonitoredItemsRequest(FrozenClass):
10152
    '''
10153
    :ivar TypeId:
10154
    :vartype TypeId: NodeId
10155
    :ivar RequestHeader:
10156
    :vartype RequestHeader: RequestHeader
10157
    :ivar Parameters:
10158
    :vartype Parameters: CreateMonitoredItemsParameters
10159
    '''
10160 1
    def __init__(self, binary=None):
10161 1
        if binary is not None:
10162
            self._binary_init(binary)
10163
            self._freeze = True
10164
            return
10165 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary)
10166 1
        self.RequestHeader = RequestHeader()
10167 1
        self.Parameters = CreateMonitoredItemsParameters()
10168 1
        self._freeze = True
10169
10170 1
    def to_binary(self):
10171 1
        packet = []
10172 1
        packet.append(self.TypeId.to_binary())
10173 1
        packet.append(self.RequestHeader.to_binary())
10174 1
        packet.append(self.Parameters.to_binary())
10175 1
        return b''.join(packet)
10176
10177 1
    @staticmethod
10178
    def from_binary(data):
10179
        return CreateMonitoredItemsRequest(data)
10180
10181 1
    def _binary_init(self, data):
10182
        self.TypeId = NodeId.from_binary(data)
10183
        self.RequestHeader = RequestHeader.from_binary(data)
10184
        self.Parameters = CreateMonitoredItemsParameters.from_binary(data)
10185
10186 1
    def __str__(self):
10187
        return 'CreateMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10188
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10189
               'Parameters:' + str(self.Parameters) + ')'
10190
10191 1
    __repr__ = __str__
10192
10193
10194 1
class CreateMonitoredItemsResponse(FrozenClass):
10195
    '''
10196
    :ivar TypeId:
10197
    :vartype TypeId: NodeId
10198
    :ivar ResponseHeader:
10199
    :vartype ResponseHeader: ResponseHeader
10200
    :ivar Results:
10201
    :vartype Results: MonitoredItemCreateResult
10202
    :ivar DiagnosticInfos:
10203
    :vartype DiagnosticInfos: DiagnosticInfo
10204
    '''
10205 1
    def __init__(self, binary=None):
10206 1
        if binary is not None:
10207 1
            self._binary_init(binary)
10208 1
            self._freeze = True
10209 1
            return
10210 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary)
10211 1
        self.ResponseHeader = ResponseHeader()
10212 1
        self.Results = []
10213 1
        self.DiagnosticInfos = []
10214 1
        self._freeze = True
10215
10216 1
    def to_binary(self):
10217 1
        packet = []
10218 1
        packet.append(self.TypeId.to_binary())
10219 1
        packet.append(self.ResponseHeader.to_binary())
10220 1
        packet.append(uatype_Int32.pack(len(self.Results)))
10221 1
        for fieldname in self.Results:
10222 1
            packet.append(fieldname.to_binary())
10223 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
10224 1
        for fieldname in self.DiagnosticInfos:
10225
            packet.append(fieldname.to_binary())
10226 1
        return b''.join(packet)
10227
10228 1
    @staticmethod
10229
    def from_binary(data):
10230 1
        return CreateMonitoredItemsResponse(data)
10231
10232 1
    def _binary_init(self, data):
10233 1
        self.TypeId = NodeId.from_binary(data)
10234 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
10235 1
        length = uatype_Int32.unpack(data.read(4))[0]
10236 1
        array = []
10237 1
        if length != -1:
10238 1
            for _ in range(0, length):
10239 1
                array.append(MonitoredItemCreateResult.from_binary(data))
10240 1
        self.Results = array
10241 1
        length = uatype_Int32.unpack(data.read(4))[0]
10242 1
        array = []
10243 1
        if length != -1:
10244 1
            for _ in range(0, length):
10245
                array.append(DiagnosticInfo.from_binary(data))
10246 1
        self.DiagnosticInfos = array
10247
10248 1
    def __str__(self):
10249
        return 'CreateMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10250
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10251
               'Results:' + str(self.Results) + ', ' + \
10252
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10253
10254 1
    __repr__ = __str__
10255
10256
10257 1
class MonitoredItemModifyRequest(FrozenClass):
10258
    '''
10259
    :ivar MonitoredItemId:
10260
    :vartype MonitoredItemId: UInt32
10261
    :ivar RequestedParameters:
10262
    :vartype RequestedParameters: MonitoringParameters
10263
    '''
10264 1
    def __init__(self, binary=None):
10265
        if binary is not None:
10266
            self._binary_init(binary)
10267
            self._freeze = True
10268
            return
10269
        self.MonitoredItemId = 0
10270
        self.RequestedParameters = MonitoringParameters()
10271
        self._freeze = True
10272
10273 1
    def to_binary(self):
10274
        packet = []
10275
        packet.append(uatype_UInt32.pack(self.MonitoredItemId))
10276
        packet.append(self.RequestedParameters.to_binary())
10277
        return b''.join(packet)
10278
10279 1
    @staticmethod
10280
    def from_binary(data):
10281
        return MonitoredItemModifyRequest(data)
10282
10283 1
    def _binary_init(self, data):
10284
        self.MonitoredItemId = uatype_UInt32.unpack(data.read(4))[0]
10285
        self.RequestedParameters = MonitoringParameters.from_binary(data)
10286
10287 1
    def __str__(self):
10288
        return 'MonitoredItemModifyRequest(' + 'MonitoredItemId:' + str(self.MonitoredItemId) + ', ' + \
10289
               'RequestedParameters:' + str(self.RequestedParameters) + ')'
10290
10291 1
    __repr__ = __str__
10292
10293
10294 1
class MonitoredItemModifyResult(FrozenClass):
10295
    '''
10296
    :ivar StatusCode:
10297
    :vartype StatusCode: StatusCode
10298
    :ivar RevisedSamplingInterval:
10299
    :vartype RevisedSamplingInterval: Double
10300
    :ivar RevisedQueueSize:
10301
    :vartype RevisedQueueSize: UInt32
10302
    :ivar FilterResult:
10303
    :vartype FilterResult: ExtensionObject
10304
    '''
10305 1
    def __init__(self, binary=None):
10306
        if binary is not None:
10307
            self._binary_init(binary)
10308
            self._freeze = True
10309
            return
10310
        self.StatusCode = StatusCode()
10311
        self.RevisedSamplingInterval = 0
10312
        self.RevisedQueueSize = 0
10313
        self.FilterResult = None
10314
        self._freeze = True
10315
10316 1
    def to_binary(self):
10317
        packet = []
10318
        packet.append(self.StatusCode.to_binary())
10319
        packet.append(uatype_Double.pack(self.RevisedSamplingInterval))
10320
        packet.append(uatype_UInt32.pack(self.RevisedQueueSize))
10321
        packet.append(extensionobject_to_binary(self.FilterResult))
10322
        return b''.join(packet)
10323
10324 1
    @staticmethod
10325
    def from_binary(data):
10326
        return MonitoredItemModifyResult(data)
10327
10328 1
    def _binary_init(self, data):
10329
        self.StatusCode = StatusCode.from_binary(data)
10330
        self.RevisedSamplingInterval = uatype_Double.unpack(data.read(8))[0]
10331
        self.RevisedQueueSize = uatype_UInt32.unpack(data.read(4))[0]
10332
        self.FilterResult = extensionobject_from_binary(data)
10333
10334 1
    def __str__(self):
10335
        return 'MonitoredItemModifyResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
10336
               'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', ' + \
10337
               'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', ' + \
10338
               'FilterResult:' + str(self.FilterResult) + ')'
10339
10340 1
    __repr__ = __str__
10341
10342
10343 1
class ModifyMonitoredItemsParameters(FrozenClass):
10344
    '''
10345
    :ivar SubscriptionId:
10346
    :vartype SubscriptionId: UInt32
10347
    :ivar TimestampsToReturn:
10348
    :vartype TimestampsToReturn: TimestampsToReturn
10349
    :ivar ItemsToModify:
10350
    :vartype ItemsToModify: MonitoredItemModifyRequest
10351
    '''
10352 1
    def __init__(self, binary=None):
10353
        if binary is not None:
10354
            self._binary_init(binary)
10355
            self._freeze = True
10356
            return
10357
        self.SubscriptionId = 0
10358
        self.TimestampsToReturn = TimestampsToReturn(0)
10359
        self.ItemsToModify = []
10360
        self._freeze = True
10361
10362 1
    def to_binary(self):
10363
        packet = []
10364
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
10365
        packet.append(uatype_UInt32.pack(self.TimestampsToReturn.value))
10366
        packet.append(uatype_Int32.pack(len(self.ItemsToModify)))
10367
        for fieldname in self.ItemsToModify:
10368
            packet.append(fieldname.to_binary())
10369
        return b''.join(packet)
10370
10371 1
    @staticmethod
10372
    def from_binary(data):
10373
        return ModifyMonitoredItemsParameters(data)
10374
10375 1
    def _binary_init(self, data):
10376
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
10377
        self.TimestampsToReturn = TimestampsToReturn(uatype_UInt32.unpack(data.read(4))[0])
10378
        length = uatype_Int32.unpack(data.read(4))[0]
10379
        array = []
10380
        if length != -1:
10381
            for _ in range(0, length):
10382
                array.append(MonitoredItemModifyRequest.from_binary(data))
10383
        self.ItemsToModify = array
10384
10385 1
    def __str__(self):
10386
        return 'ModifyMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10387
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
10388
               'ItemsToModify:' + str(self.ItemsToModify) + ')'
10389
10390 1
    __repr__ = __str__
10391
10392
10393 1
class ModifyMonitoredItemsRequest(FrozenClass):
10394
    '''
10395
    :ivar TypeId:
10396
    :vartype TypeId: NodeId
10397
    :ivar RequestHeader:
10398
    :vartype RequestHeader: RequestHeader
10399
    :ivar Parameters:
10400
    :vartype Parameters: ModifyMonitoredItemsParameters
10401
    '''
10402 1
    def __init__(self, binary=None):
10403
        if binary is not None:
10404
            self._binary_init(binary)
10405
            self._freeze = True
10406
            return
10407
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary)
10408
        self.RequestHeader = RequestHeader()
10409
        self.Parameters = ModifyMonitoredItemsParameters()
10410
        self._freeze = True
10411
10412 1
    def to_binary(self):
10413
        packet = []
10414
        packet.append(self.TypeId.to_binary())
10415
        packet.append(self.RequestHeader.to_binary())
10416
        packet.append(self.Parameters.to_binary())
10417
        return b''.join(packet)
10418
10419 1
    @staticmethod
10420
    def from_binary(data):
10421
        return ModifyMonitoredItemsRequest(data)
10422
10423 1
    def _binary_init(self, data):
10424
        self.TypeId = NodeId.from_binary(data)
10425
        self.RequestHeader = RequestHeader.from_binary(data)
10426
        self.Parameters = ModifyMonitoredItemsParameters.from_binary(data)
10427
10428 1
    def __str__(self):
10429
        return 'ModifyMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10430
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10431
               'Parameters:' + str(self.Parameters) + ')'
10432
10433 1
    __repr__ = __str__
10434
10435
10436 1
class ModifyMonitoredItemsResponse(FrozenClass):
10437
    '''
10438
    :ivar TypeId:
10439
    :vartype TypeId: NodeId
10440
    :ivar ResponseHeader:
10441
    :vartype ResponseHeader: ResponseHeader
10442
    :ivar Results:
10443
    :vartype Results: MonitoredItemModifyResult
10444
    :ivar DiagnosticInfos:
10445
    :vartype DiagnosticInfos: DiagnosticInfo
10446
    '''
10447 1
    def __init__(self, binary=None):
10448
        if binary is not None:
10449
            self._binary_init(binary)
10450
            self._freeze = True
10451
            return
10452
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary)
10453
        self.ResponseHeader = ResponseHeader()
10454
        self.Results = []
10455
        self.DiagnosticInfos = []
10456
        self._freeze = True
10457
10458 1
    def to_binary(self):
10459
        packet = []
10460
        packet.append(self.TypeId.to_binary())
10461
        packet.append(self.ResponseHeader.to_binary())
10462
        packet.append(uatype_Int32.pack(len(self.Results)))
10463
        for fieldname in self.Results:
10464
            packet.append(fieldname.to_binary())
10465
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
10466
        for fieldname in self.DiagnosticInfos:
10467
            packet.append(fieldname.to_binary())
10468
        return b''.join(packet)
10469
10470 1
    @staticmethod
10471
    def from_binary(data):
10472
        return ModifyMonitoredItemsResponse(data)
10473
10474 1
    def _binary_init(self, data):
10475
        self.TypeId = NodeId.from_binary(data)
10476
        self.ResponseHeader = ResponseHeader.from_binary(data)
10477
        length = uatype_Int32.unpack(data.read(4))[0]
10478
        array = []
10479
        if length != -1:
10480
            for _ in range(0, length):
10481
                array.append(MonitoredItemModifyResult.from_binary(data))
10482
        self.Results = array
10483
        length = uatype_Int32.unpack(data.read(4))[0]
10484
        array = []
10485
        if length != -1:
10486
            for _ in range(0, length):
10487
                array.append(DiagnosticInfo.from_binary(data))
10488
        self.DiagnosticInfos = array
10489
10490 1
    def __str__(self):
10491
        return 'ModifyMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10492
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10493
               'Results:' + str(self.Results) + ', ' + \
10494
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10495
10496 1
    __repr__ = __str__
10497
10498
10499 1
class SetMonitoringModeParameters(FrozenClass):
10500
    '''
10501
    :ivar SubscriptionId:
10502
    :vartype SubscriptionId: UInt32
10503
    :ivar MonitoringMode:
10504
    :vartype MonitoringMode: MonitoringMode
10505
    :ivar MonitoredItemIds:
10506
    :vartype MonitoredItemIds: UInt32
10507
    '''
10508 1
    def __init__(self, binary=None):
10509
        if binary is not None:
10510
            self._binary_init(binary)
10511
            self._freeze = True
10512
            return
10513
        self.SubscriptionId = 0
10514
        self.MonitoringMode = MonitoringMode(0)
10515
        self.MonitoredItemIds = []
10516
        self._freeze = True
10517
10518 1
    def to_binary(self):
10519
        packet = []
10520
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
10521
        packet.append(uatype_UInt32.pack(self.MonitoringMode.value))
10522
        packet.append(uatype_Int32.pack(len(self.MonitoredItemIds)))
10523
        for fieldname in self.MonitoredItemIds:
10524
            packet.append(uatype_UInt32.pack(fieldname))
10525
        return b''.join(packet)
10526
10527 1
    @staticmethod
10528
    def from_binary(data):
10529
        return SetMonitoringModeParameters(data)
10530
10531 1
    def _binary_init(self, data):
10532
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
10533
        self.MonitoringMode = MonitoringMode(uatype_UInt32.unpack(data.read(4))[0])
10534
        self.MonitoredItemIds = unpack_uatype_array('UInt32', data)
10535
10536 1
    def __str__(self):
10537
        return 'SetMonitoringModeParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10538
               'MonitoringMode:' + str(self.MonitoringMode) + ', ' + \
10539
               'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
10540
10541 1
    __repr__ = __str__
10542
10543
10544 1
class SetMonitoringModeRequest(FrozenClass):
10545
    '''
10546
    :ivar TypeId:
10547
    :vartype TypeId: NodeId
10548
    :ivar RequestHeader:
10549
    :vartype RequestHeader: RequestHeader
10550
    :ivar Parameters:
10551
    :vartype Parameters: SetMonitoringModeParameters
10552
    '''
10553 1
    def __init__(self, binary=None):
10554
        if binary is not None:
10555
            self._binary_init(binary)
10556
            self._freeze = True
10557
            return
10558
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary)
10559
        self.RequestHeader = RequestHeader()
10560
        self.Parameters = SetMonitoringModeParameters()
10561
        self._freeze = True
10562
10563 1
    def to_binary(self):
10564
        packet = []
10565
        packet.append(self.TypeId.to_binary())
10566
        packet.append(self.RequestHeader.to_binary())
10567
        packet.append(self.Parameters.to_binary())
10568
        return b''.join(packet)
10569
10570 1
    @staticmethod
10571
    def from_binary(data):
10572
        return SetMonitoringModeRequest(data)
10573
10574 1
    def _binary_init(self, data):
10575
        self.TypeId = NodeId.from_binary(data)
10576
        self.RequestHeader = RequestHeader.from_binary(data)
10577
        self.Parameters = SetMonitoringModeParameters.from_binary(data)
10578
10579 1
    def __str__(self):
10580
        return 'SetMonitoringModeRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10581
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10582
               'Parameters:' + str(self.Parameters) + ')'
10583
10584 1
    __repr__ = __str__
10585
10586
10587 1
class SetMonitoringModeResult(FrozenClass):
10588
    '''
10589
    :ivar Results:
10590
    :vartype Results: StatusCode
10591
    :ivar DiagnosticInfos:
10592
    :vartype DiagnosticInfos: DiagnosticInfo
10593
    '''
10594 1
    def __init__(self, binary=None):
10595
        if binary is not None:
10596
            self._binary_init(binary)
10597
            self._freeze = True
10598
            return
10599
        self.Results = []
10600
        self.DiagnosticInfos = []
10601
        self._freeze = True
10602
10603 1
    def to_binary(self):
10604
        packet = []
10605
        packet.append(uatype_Int32.pack(len(self.Results)))
10606
        for fieldname in self.Results:
10607
            packet.append(fieldname.to_binary())
10608
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
10609
        for fieldname in self.DiagnosticInfos:
10610
            packet.append(fieldname.to_binary())
10611
        return b''.join(packet)
10612
10613 1
    @staticmethod
10614
    def from_binary(data):
10615
        return SetMonitoringModeResult(data)
10616
10617 1
    def _binary_init(self, data):
10618
        length = uatype_Int32.unpack(data.read(4))[0]
10619
        array = []
10620
        if length != -1:
10621
            for _ in range(0, length):
10622
                array.append(StatusCode.from_binary(data))
10623
        self.Results = array
10624
        length = uatype_Int32.unpack(data.read(4))[0]
10625
        array = []
10626
        if length != -1:
10627
            for _ in range(0, length):
10628
                array.append(DiagnosticInfo.from_binary(data))
10629
        self.DiagnosticInfos = array
10630
10631 1
    def __str__(self):
10632
        return 'SetMonitoringModeResult(' + 'Results:' + str(self.Results) + ', ' + \
10633
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10634
10635 1
    __repr__ = __str__
10636
10637
10638 1
class SetMonitoringModeResponse(FrozenClass):
10639
    '''
10640
    :ivar TypeId:
10641
    :vartype TypeId: NodeId
10642
    :ivar ResponseHeader:
10643
    :vartype ResponseHeader: ResponseHeader
10644
    :ivar Parameters:
10645
    :vartype Parameters: SetMonitoringModeResult
10646
    '''
10647 1
    def __init__(self, binary=None):
10648
        if binary is not None:
10649
            self._binary_init(binary)
10650
            self._freeze = True
10651
            return
10652
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary)
10653
        self.ResponseHeader = ResponseHeader()
10654
        self.Parameters = SetMonitoringModeResult()
10655
        self._freeze = True
10656
10657 1
    def to_binary(self):
10658
        packet = []
10659
        packet.append(self.TypeId.to_binary())
10660
        packet.append(self.ResponseHeader.to_binary())
10661
        packet.append(self.Parameters.to_binary())
10662
        return b''.join(packet)
10663
10664 1
    @staticmethod
10665
    def from_binary(data):
10666
        return SetMonitoringModeResponse(data)
10667
10668 1
    def _binary_init(self, data):
10669
        self.TypeId = NodeId.from_binary(data)
10670
        self.ResponseHeader = ResponseHeader.from_binary(data)
10671
        self.Parameters = SetMonitoringModeResult.from_binary(data)
10672
10673 1
    def __str__(self):
10674
        return 'SetMonitoringModeResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10675
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10676
               'Parameters:' + str(self.Parameters) + ')'
10677
10678 1
    __repr__ = __str__
10679
10680
10681 1
class SetTriggeringParameters(FrozenClass):
10682
    '''
10683
    :ivar SubscriptionId:
10684
    :vartype SubscriptionId: UInt32
10685
    :ivar TriggeringItemId:
10686
    :vartype TriggeringItemId: UInt32
10687
    :ivar LinksToAdd:
10688
    :vartype LinksToAdd: UInt32
10689
    :ivar LinksToRemove:
10690
    :vartype LinksToRemove: UInt32
10691
    '''
10692 1
    def __init__(self, binary=None):
10693
        if binary is not None:
10694
            self._binary_init(binary)
10695
            self._freeze = True
10696
            return
10697
        self.SubscriptionId = 0
10698
        self.TriggeringItemId = 0
10699
        self.LinksToAdd = []
10700
        self.LinksToRemove = []
10701
        self._freeze = True
10702
10703 1
    def to_binary(self):
10704
        packet = []
10705
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
10706
        packet.append(uatype_UInt32.pack(self.TriggeringItemId))
10707
        packet.append(uatype_Int32.pack(len(self.LinksToAdd)))
10708
        for fieldname in self.LinksToAdd:
10709
            packet.append(uatype_UInt32.pack(fieldname))
10710
        packet.append(uatype_Int32.pack(len(self.LinksToRemove)))
10711
        for fieldname in self.LinksToRemove:
10712
            packet.append(uatype_UInt32.pack(fieldname))
10713
        return b''.join(packet)
10714
10715 1
    @staticmethod
10716
    def from_binary(data):
10717
        return SetTriggeringParameters(data)
10718
10719 1
    def _binary_init(self, data):
10720
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
10721
        self.TriggeringItemId = uatype_UInt32.unpack(data.read(4))[0]
10722
        self.LinksToAdd = unpack_uatype_array('UInt32', data)
10723
        self.LinksToRemove = unpack_uatype_array('UInt32', data)
10724
10725 1
    def __str__(self):
10726
        return 'SetTriggeringParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10727
               'TriggeringItemId:' + str(self.TriggeringItemId) + ', ' + \
10728
               'LinksToAdd:' + str(self.LinksToAdd) + ', ' + \
10729
               'LinksToRemove:' + str(self.LinksToRemove) + ')'
10730
10731 1
    __repr__ = __str__
10732
10733
10734 1
class SetTriggeringRequest(FrozenClass):
10735
    '''
10736
    :ivar TypeId:
10737
    :vartype TypeId: NodeId
10738
    :ivar RequestHeader:
10739
    :vartype RequestHeader: RequestHeader
10740
    :ivar Parameters:
10741
    :vartype Parameters: SetTriggeringParameters
10742
    '''
10743 1
    def __init__(self, binary=None):
10744
        if binary is not None:
10745
            self._binary_init(binary)
10746
            self._freeze = True
10747
            return
10748
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary)
10749
        self.RequestHeader = RequestHeader()
10750
        self.Parameters = SetTriggeringParameters()
10751
        self._freeze = True
10752
10753 1
    def to_binary(self):
10754
        packet = []
10755
        packet.append(self.TypeId.to_binary())
10756
        packet.append(self.RequestHeader.to_binary())
10757
        packet.append(self.Parameters.to_binary())
10758
        return b''.join(packet)
10759
10760 1
    @staticmethod
10761
    def from_binary(data):
10762
        return SetTriggeringRequest(data)
10763
10764 1
    def _binary_init(self, data):
10765
        self.TypeId = NodeId.from_binary(data)
10766
        self.RequestHeader = RequestHeader.from_binary(data)
10767
        self.Parameters = SetTriggeringParameters.from_binary(data)
10768
10769 1
    def __str__(self):
10770
        return 'SetTriggeringRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10771
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10772
               'Parameters:' + str(self.Parameters) + ')'
10773
10774 1
    __repr__ = __str__
10775
10776
10777 1
class SetTriggeringResult(FrozenClass):
10778
    '''
10779
    :ivar AddResults:
10780
    :vartype AddResults: StatusCode
10781
    :ivar AddDiagnosticInfos:
10782
    :vartype AddDiagnosticInfos: DiagnosticInfo
10783
    :ivar RemoveResults:
10784
    :vartype RemoveResults: StatusCode
10785
    :ivar RemoveDiagnosticInfos:
10786
    :vartype RemoveDiagnosticInfos: DiagnosticInfo
10787
    '''
10788 1
    def __init__(self, binary=None):
10789
        if binary is not None:
10790
            self._binary_init(binary)
10791
            self._freeze = True
10792
            return
10793
        self.AddResults = []
10794
        self.AddDiagnosticInfos = []
10795
        self.RemoveResults = []
10796
        self.RemoveDiagnosticInfos = []
10797
        self._freeze = True
10798
10799 1
    def to_binary(self):
10800
        packet = []
10801
        packet.append(uatype_Int32.pack(len(self.AddResults)))
10802
        for fieldname in self.AddResults:
10803
            packet.append(fieldname.to_binary())
10804
        packet.append(uatype_Int32.pack(len(self.AddDiagnosticInfos)))
10805
        for fieldname in self.AddDiagnosticInfos:
10806
            packet.append(fieldname.to_binary())
10807
        packet.append(uatype_Int32.pack(len(self.RemoveResults)))
10808
        for fieldname in self.RemoveResults:
10809
            packet.append(fieldname.to_binary())
10810
        packet.append(uatype_Int32.pack(len(self.RemoveDiagnosticInfos)))
10811
        for fieldname in self.RemoveDiagnosticInfos:
10812
            packet.append(fieldname.to_binary())
10813
        return b''.join(packet)
10814
10815 1
    @staticmethod
10816
    def from_binary(data):
10817
        return SetTriggeringResult(data)
10818
10819 1
    def _binary_init(self, data):
10820
        length = uatype_Int32.unpack(data.read(4))[0]
10821
        array = []
10822
        if length != -1:
10823
            for _ in range(0, length):
10824
                array.append(StatusCode.from_binary(data))
10825
        self.AddResults = array
10826
        length = uatype_Int32.unpack(data.read(4))[0]
10827
        array = []
10828
        if length != -1:
10829
            for _ in range(0, length):
10830
                array.append(DiagnosticInfo.from_binary(data))
10831
        self.AddDiagnosticInfos = array
10832
        length = uatype_Int32.unpack(data.read(4))[0]
10833
        array = []
10834
        if length != -1:
10835
            for _ in range(0, length):
10836
                array.append(StatusCode.from_binary(data))
10837
        self.RemoveResults = array
10838
        length = uatype_Int32.unpack(data.read(4))[0]
10839
        array = []
10840
        if length != -1:
10841
            for _ in range(0, length):
10842
                array.append(DiagnosticInfo.from_binary(data))
10843
        self.RemoveDiagnosticInfos = array
10844
10845 1
    def __str__(self):
10846
        return 'SetTriggeringResult(' + 'AddResults:' + str(self.AddResults) + ', ' + \
10847
               'AddDiagnosticInfos:' + str(self.AddDiagnosticInfos) + ', ' + \
10848
               'RemoveResults:' + str(self.RemoveResults) + ', ' + \
10849
               'RemoveDiagnosticInfos:' + str(self.RemoveDiagnosticInfos) + ')'
10850
10851 1
    __repr__ = __str__
10852
10853
10854 1
class SetTriggeringResponse(FrozenClass):
10855
    '''
10856
    :ivar TypeId:
10857
    :vartype TypeId: NodeId
10858
    :ivar ResponseHeader:
10859
    :vartype ResponseHeader: ResponseHeader
10860
    :ivar Parameters:
10861
    :vartype Parameters: SetTriggeringResult
10862
    '''
10863 1
    def __init__(self, binary=None):
10864
        if binary is not None:
10865
            self._binary_init(binary)
10866
            self._freeze = True
10867
            return
10868
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary)
10869
        self.ResponseHeader = ResponseHeader()
10870
        self.Parameters = SetTriggeringResult()
10871
        self._freeze = True
10872
10873 1
    def to_binary(self):
10874
        packet = []
10875
        packet.append(self.TypeId.to_binary())
10876
        packet.append(self.ResponseHeader.to_binary())
10877
        packet.append(self.Parameters.to_binary())
10878
        return b''.join(packet)
10879
10880 1
    @staticmethod
10881
    def from_binary(data):
10882
        return SetTriggeringResponse(data)
10883
10884 1
    def _binary_init(self, data):
10885
        self.TypeId = NodeId.from_binary(data)
10886
        self.ResponseHeader = ResponseHeader.from_binary(data)
10887
        self.Parameters = SetTriggeringResult.from_binary(data)
10888
10889 1
    def __str__(self):
10890
        return 'SetTriggeringResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10891
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10892
               'Parameters:' + str(self.Parameters) + ')'
10893
10894 1
    __repr__ = __str__
10895
10896
10897 1
class DeleteMonitoredItemsParameters(FrozenClass):
10898
    '''
10899
    :ivar SubscriptionId:
10900
    :vartype SubscriptionId: UInt32
10901
    :ivar MonitoredItemIds:
10902
    :vartype MonitoredItemIds: UInt32
10903
    '''
10904 1
    def __init__(self, binary=None):
10905 1
        if binary is not None:
10906 1
            self._binary_init(binary)
10907 1
            self._freeze = True
10908 1
            return
10909 1
        self.SubscriptionId = 0
10910 1
        self.MonitoredItemIds = []
10911 1
        self._freeze = True
10912
10913 1
    def to_binary(self):
10914 1
        packet = []
10915 1
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
10916 1
        packet.append(uatype_Int32.pack(len(self.MonitoredItemIds)))
10917 1
        for fieldname in self.MonitoredItemIds:
10918 1
            packet.append(uatype_UInt32.pack(fieldname))
10919 1
        return b''.join(packet)
10920
10921 1
    @staticmethod
10922
    def from_binary(data):
10923 1
        return DeleteMonitoredItemsParameters(data)
10924
10925 1
    def _binary_init(self, data):
10926 1
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
10927 1
        self.MonitoredItemIds = unpack_uatype_array('UInt32', data)
10928
10929 1
    def __str__(self):
10930
        return 'DeleteMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10931
               'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
10932
10933 1
    __repr__ = __str__
10934
10935
10936 1
class DeleteMonitoredItemsRequest(FrozenClass):
10937
    '''
10938
    :ivar TypeId:
10939
    :vartype TypeId: NodeId
10940
    :ivar RequestHeader:
10941
    :vartype RequestHeader: RequestHeader
10942
    :ivar Parameters:
10943
    :vartype Parameters: DeleteMonitoredItemsParameters
10944
    '''
10945 1
    def __init__(self, binary=None):
10946 1
        if binary is not None:
10947
            self._binary_init(binary)
10948
            self._freeze = True
10949
            return
10950 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary)
10951 1
        self.RequestHeader = RequestHeader()
10952 1
        self.Parameters = DeleteMonitoredItemsParameters()
10953 1
        self._freeze = True
10954
10955 1
    def to_binary(self):
10956 1
        packet = []
10957 1
        packet.append(self.TypeId.to_binary())
10958 1
        packet.append(self.RequestHeader.to_binary())
10959 1
        packet.append(self.Parameters.to_binary())
10960 1
        return b''.join(packet)
10961
10962 1
    @staticmethod
10963
    def from_binary(data):
10964
        return DeleteMonitoredItemsRequest(data)
10965
10966 1
    def _binary_init(self, data):
10967
        self.TypeId = NodeId.from_binary(data)
10968
        self.RequestHeader = RequestHeader.from_binary(data)
10969
        self.Parameters = DeleteMonitoredItemsParameters.from_binary(data)
10970
10971 1
    def __str__(self):
10972
        return 'DeleteMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10973
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10974
               'Parameters:' + str(self.Parameters) + ')'
10975
10976 1
    __repr__ = __str__
10977
10978
10979 1
class DeleteMonitoredItemsResponse(FrozenClass):
10980
    '''
10981
    :ivar TypeId:
10982
    :vartype TypeId: NodeId
10983
    :ivar ResponseHeader:
10984
    :vartype ResponseHeader: ResponseHeader
10985
    :ivar Results:
10986
    :vartype Results: StatusCode
10987
    :ivar DiagnosticInfos:
10988
    :vartype DiagnosticInfos: DiagnosticInfo
10989
    '''
10990 1
    def __init__(self, binary=None):
10991 1
        if binary is not None:
10992 1
            self._binary_init(binary)
10993 1
            self._freeze = True
10994 1
            return
10995 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary)
10996 1
        self.ResponseHeader = ResponseHeader()
10997 1
        self.Results = []
10998 1
        self.DiagnosticInfos = []
10999 1
        self._freeze = True
11000
11001 1
    def to_binary(self):
11002 1
        packet = []
11003 1
        packet.append(self.TypeId.to_binary())
11004 1
        packet.append(self.ResponseHeader.to_binary())
11005 1
        packet.append(uatype_Int32.pack(len(self.Results)))
11006 1
        for fieldname in self.Results:
11007 1
            packet.append(fieldname.to_binary())
11008 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
11009 1
        for fieldname in self.DiagnosticInfos:
11010
            packet.append(fieldname.to_binary())
11011 1
        return b''.join(packet)
11012
11013 1
    @staticmethod
11014
    def from_binary(data):
11015 1
        return DeleteMonitoredItemsResponse(data)
11016
11017 1
    def _binary_init(self, data):
11018 1
        self.TypeId = NodeId.from_binary(data)
11019 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
11020 1
        length = uatype_Int32.unpack(data.read(4))[0]
11021 1
        array = []
11022 1
        if length != -1:
11023 1
            for _ in range(0, length):
11024 1
                array.append(StatusCode.from_binary(data))
11025 1
        self.Results = array
11026 1
        length = uatype_Int32.unpack(data.read(4))[0]
11027 1
        array = []
11028 1
        if length != -1:
11029 1
            for _ in range(0, length):
11030
                array.append(DiagnosticInfo.from_binary(data))
11031 1
        self.DiagnosticInfos = array
11032
11033 1
    def __str__(self):
11034
        return 'DeleteMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11035
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11036
               'Results:' + str(self.Results) + ', ' + \
11037
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
11038
11039 1
    __repr__ = __str__
11040
11041
11042 1
class CreateSubscriptionParameters(FrozenClass):
11043
    '''
11044
    :ivar RequestedPublishingInterval:
11045
    :vartype RequestedPublishingInterval: Double
11046
    :ivar RequestedLifetimeCount:
11047
    :vartype RequestedLifetimeCount: UInt32
11048
    :ivar RequestedMaxKeepAliveCount:
11049
    :vartype RequestedMaxKeepAliveCount: UInt32
11050
    :ivar MaxNotificationsPerPublish:
11051
    :vartype MaxNotificationsPerPublish: UInt32
11052
    :ivar PublishingEnabled:
11053
    :vartype PublishingEnabled: Boolean
11054
    :ivar Priority:
11055
    :vartype Priority: Byte
11056
    '''
11057 1
    def __init__(self, binary=None):
11058 1
        if binary is not None:
11059 1
            self._binary_init(binary)
11060 1
            self._freeze = True
11061 1
            return
11062 1
        self.RequestedPublishingInterval = 0
11063 1
        self.RequestedLifetimeCount = 0
11064 1
        self.RequestedMaxKeepAliveCount = 0
11065 1
        self.MaxNotificationsPerPublish = 0
11066 1
        self.PublishingEnabled = True
11067 1
        self.Priority = 0
11068 1
        self._freeze = True
11069
11070 1
    def to_binary(self):
11071 1
        packet = []
11072 1
        packet.append(uatype_Double.pack(self.RequestedPublishingInterval))
11073 1
        packet.append(uatype_UInt32.pack(self.RequestedLifetimeCount))
11074 1
        packet.append(uatype_UInt32.pack(self.RequestedMaxKeepAliveCount))
11075 1
        packet.append(uatype_UInt32.pack(self.MaxNotificationsPerPublish))
11076 1
        packet.append(uatype_Boolean.pack(self.PublishingEnabled))
11077 1
        packet.append(uatype_Byte.pack(self.Priority))
11078 1
        return b''.join(packet)
11079
11080 1
    @staticmethod
11081
    def from_binary(data):
11082 1
        return CreateSubscriptionParameters(data)
11083
11084 1
    def _binary_init(self, data):
11085 1
        self.RequestedPublishingInterval = uatype_Double.unpack(data.read(8))[0]
11086 1
        self.RequestedLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
11087 1
        self.RequestedMaxKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
11088 1
        self.MaxNotificationsPerPublish = uatype_UInt32.unpack(data.read(4))[0]
11089 1
        self.PublishingEnabled = uatype_Boolean.unpack(data.read(1))[0]
11090 1
        self.Priority = uatype_Byte.unpack(data.read(1))[0]
11091
11092 1
    def __str__(self):
11093
        return 'CreateSubscriptionParameters(' + 'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', ' + \
11094
               'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', ' + \
11095
               'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', ' + \
11096
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
11097
               'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
11098
               'Priority:' + str(self.Priority) + ')'
11099
11100 1
    __repr__ = __str__
11101
11102
11103 1
class CreateSubscriptionRequest(FrozenClass):
11104
    '''
11105
    :ivar TypeId:
11106
    :vartype TypeId: NodeId
11107
    :ivar RequestHeader:
11108
    :vartype RequestHeader: RequestHeader
11109
    :ivar Parameters:
11110
    :vartype Parameters: CreateSubscriptionParameters
11111
    '''
11112 1
    def __init__(self, binary=None):
11113 1
        if binary is not None:
11114
            self._binary_init(binary)
11115
            self._freeze = True
11116
            return
11117 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary)
11118 1
        self.RequestHeader = RequestHeader()
11119 1
        self.Parameters = CreateSubscriptionParameters()
11120 1
        self._freeze = True
11121
11122 1
    def to_binary(self):
11123 1
        packet = []
11124 1
        packet.append(self.TypeId.to_binary())
11125 1
        packet.append(self.RequestHeader.to_binary())
11126 1
        packet.append(self.Parameters.to_binary())
11127 1
        return b''.join(packet)
11128
11129 1
    @staticmethod
11130
    def from_binary(data):
11131
        return CreateSubscriptionRequest(data)
11132
11133 1
    def _binary_init(self, data):
11134
        self.TypeId = NodeId.from_binary(data)
11135
        self.RequestHeader = RequestHeader.from_binary(data)
11136
        self.Parameters = CreateSubscriptionParameters.from_binary(data)
11137
11138 1
    def __str__(self):
11139
        return 'CreateSubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11140
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
11141
               'Parameters:' + str(self.Parameters) + ')'
11142
11143 1
    __repr__ = __str__
11144
11145
11146 1
class CreateSubscriptionResult(FrozenClass):
11147
    '''
11148
    :ivar SubscriptionId:
11149
    :vartype SubscriptionId: UInt32
11150
    :ivar RevisedPublishingInterval:
11151
    :vartype RevisedPublishingInterval: Double
11152
    :ivar RevisedLifetimeCount:
11153
    :vartype RevisedLifetimeCount: UInt32
11154
    :ivar RevisedMaxKeepAliveCount:
11155
    :vartype RevisedMaxKeepAliveCount: UInt32
11156
    '''
11157 1
    def __init__(self, binary=None):
11158 1
        if binary is not None:
11159 1
            self._binary_init(binary)
11160 1
            self._freeze = True
11161 1
            return
11162 1
        self.SubscriptionId = 0
11163 1
        self.RevisedPublishingInterval = 0
11164 1
        self.RevisedLifetimeCount = 0
11165 1
        self.RevisedMaxKeepAliveCount = 0
11166 1
        self._freeze = True
11167
11168 1
    def to_binary(self):
11169 1
        packet = []
11170 1
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
11171 1
        packet.append(uatype_Double.pack(self.RevisedPublishingInterval))
11172 1
        packet.append(uatype_UInt32.pack(self.RevisedLifetimeCount))
11173 1
        packet.append(uatype_UInt32.pack(self.RevisedMaxKeepAliveCount))
11174 1
        return b''.join(packet)
11175
11176 1
    @staticmethod
11177
    def from_binary(data):
11178 1
        return CreateSubscriptionResult(data)
11179
11180 1
    def _binary_init(self, data):
11181 1
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
11182 1
        self.RevisedPublishingInterval = uatype_Double.unpack(data.read(8))[0]
11183 1
        self.RevisedLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
11184 1
        self.RevisedMaxKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
11185
11186 1
    def __str__(self):
11187
        return 'CreateSubscriptionResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
11188
               'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', ' + \
11189
               'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', ' + \
11190
               'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
11191
11192 1
    __repr__ = __str__
11193
11194
11195 1
class CreateSubscriptionResponse(FrozenClass):
11196
    '''
11197
    :ivar TypeId:
11198
    :vartype TypeId: NodeId
11199
    :ivar ResponseHeader:
11200
    :vartype ResponseHeader: ResponseHeader
11201
    :ivar Parameters:
11202
    :vartype Parameters: CreateSubscriptionResult
11203
    '''
11204 1
    def __init__(self, binary=None):
11205 1
        if binary is not None:
11206 1
            self._binary_init(binary)
11207 1
            self._freeze = True
11208 1
            return
11209 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary)
11210 1
        self.ResponseHeader = ResponseHeader()
11211 1
        self.Parameters = CreateSubscriptionResult()
11212 1
        self._freeze = True
11213
11214 1
    def to_binary(self):
11215 1
        packet = []
11216 1
        packet.append(self.TypeId.to_binary())
11217 1
        packet.append(self.ResponseHeader.to_binary())
11218 1
        packet.append(self.Parameters.to_binary())
11219 1
        return b''.join(packet)
11220
11221 1
    @staticmethod
11222
    def from_binary(data):
11223 1
        return CreateSubscriptionResponse(data)
11224
11225 1
    def _binary_init(self, data):
11226 1
        self.TypeId = NodeId.from_binary(data)
11227 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
11228 1
        self.Parameters = CreateSubscriptionResult.from_binary(data)
11229
11230 1
    def __str__(self):
11231
        return 'CreateSubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11232
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11233
               'Parameters:' + str(self.Parameters) + ')'
11234
11235 1
    __repr__ = __str__
11236
11237
11238 1
class ModifySubscriptionParameters(FrozenClass):
11239
    '''
11240
    :ivar SubscriptionId:
11241
    :vartype SubscriptionId: UInt32
11242
    :ivar RequestedPublishingInterval:
11243
    :vartype RequestedPublishingInterval: Double
11244
    :ivar RequestedLifetimeCount:
11245
    :vartype RequestedLifetimeCount: UInt32
11246
    :ivar RequestedMaxKeepAliveCount:
11247
    :vartype RequestedMaxKeepAliveCount: UInt32
11248
    :ivar MaxNotificationsPerPublish:
11249
    :vartype MaxNotificationsPerPublish: UInt32
11250
    :ivar Priority:
11251
    :vartype Priority: Byte
11252
    '''
11253 1
    def __init__(self, binary=None):
11254
        if binary is not None:
11255
            self._binary_init(binary)
11256
            self._freeze = True
11257
            return
11258
        self.SubscriptionId = 0
11259
        self.RequestedPublishingInterval = 0
11260
        self.RequestedLifetimeCount = 0
11261
        self.RequestedMaxKeepAliveCount = 0
11262
        self.MaxNotificationsPerPublish = 0
11263
        self.Priority = 0
11264
        self._freeze = True
11265
11266 1
    def to_binary(self):
11267
        packet = []
11268
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
11269
        packet.append(uatype_Double.pack(self.RequestedPublishingInterval))
11270
        packet.append(uatype_UInt32.pack(self.RequestedLifetimeCount))
11271
        packet.append(uatype_UInt32.pack(self.RequestedMaxKeepAliveCount))
11272
        packet.append(uatype_UInt32.pack(self.MaxNotificationsPerPublish))
11273
        packet.append(uatype_Byte.pack(self.Priority))
11274
        return b''.join(packet)
11275
11276 1
    @staticmethod
11277
    def from_binary(data):
11278
        return ModifySubscriptionParameters(data)
11279
11280 1
    def _binary_init(self, data):
11281
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
11282
        self.RequestedPublishingInterval = uatype_Double.unpack(data.read(8))[0]
11283
        self.RequestedLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
11284
        self.RequestedMaxKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
11285
        self.MaxNotificationsPerPublish = uatype_UInt32.unpack(data.read(4))[0]
11286
        self.Priority = uatype_Byte.unpack(data.read(1))[0]
11287
11288 1
    def __str__(self):
11289
        return 'ModifySubscriptionParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
11290
               'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', ' + \
11291
               'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', ' + \
11292
               'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', ' + \
11293
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
11294
               'Priority:' + str(self.Priority) + ')'
11295
11296 1
    __repr__ = __str__
11297
11298
11299 1
class ModifySubscriptionRequest(FrozenClass):
11300
    '''
11301
    :ivar TypeId:
11302
    :vartype TypeId: NodeId
11303
    :ivar RequestHeader:
11304
    :vartype RequestHeader: RequestHeader
11305
    :ivar Parameters:
11306
    :vartype Parameters: ModifySubscriptionParameters
11307
    '''
11308 1
    def __init__(self, binary=None):
11309
        if binary is not None:
11310
            self._binary_init(binary)
11311
            self._freeze = True
11312
            return
11313
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary)
11314
        self.RequestHeader = RequestHeader()
11315
        self.Parameters = ModifySubscriptionParameters()
11316
        self._freeze = True
11317
11318 1
    def to_binary(self):
11319
        packet = []
11320
        packet.append(self.TypeId.to_binary())
11321
        packet.append(self.RequestHeader.to_binary())
11322
        packet.append(self.Parameters.to_binary())
11323
        return b''.join(packet)
11324
11325 1
    @staticmethod
11326
    def from_binary(data):
11327
        return ModifySubscriptionRequest(data)
11328
11329 1
    def _binary_init(self, data):
11330
        self.TypeId = NodeId.from_binary(data)
11331
        self.RequestHeader = RequestHeader.from_binary(data)
11332
        self.Parameters = ModifySubscriptionParameters.from_binary(data)
11333
11334 1
    def __str__(self):
11335
        return 'ModifySubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11336
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
11337
               'Parameters:' + str(self.Parameters) + ')'
11338
11339 1
    __repr__ = __str__
11340
11341
11342 1
class ModifySubscriptionResult(FrozenClass):
11343
    '''
11344
    :ivar RevisedPublishingInterval:
11345
    :vartype RevisedPublishingInterval: Double
11346
    :ivar RevisedLifetimeCount:
11347
    :vartype RevisedLifetimeCount: UInt32
11348
    :ivar RevisedMaxKeepAliveCount:
11349
    :vartype RevisedMaxKeepAliveCount: UInt32
11350
    '''
11351 1
    def __init__(self, binary=None):
11352
        if binary is not None:
11353
            self._binary_init(binary)
11354
            self._freeze = True
11355
            return
11356
        self.RevisedPublishingInterval = 0
11357
        self.RevisedLifetimeCount = 0
11358
        self.RevisedMaxKeepAliveCount = 0
11359
        self._freeze = True
11360
11361 1
    def to_binary(self):
11362
        packet = []
11363
        packet.append(uatype_Double.pack(self.RevisedPublishingInterval))
11364
        packet.append(uatype_UInt32.pack(self.RevisedLifetimeCount))
11365
        packet.append(uatype_UInt32.pack(self.RevisedMaxKeepAliveCount))
11366
        return b''.join(packet)
11367
11368 1
    @staticmethod
11369
    def from_binary(data):
11370
        return ModifySubscriptionResult(data)
11371
11372 1
    def _binary_init(self, data):
11373
        self.RevisedPublishingInterval = uatype_Double.unpack(data.read(8))[0]
11374
        self.RevisedLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
11375
        self.RevisedMaxKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
11376
11377 1
    def __str__(self):
11378
        return 'ModifySubscriptionResult(' + 'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', ' + \
11379
               'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', ' + \
11380
               'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
11381
11382 1
    __repr__ = __str__
11383
11384
11385 1
class ModifySubscriptionResponse(FrozenClass):
11386
    '''
11387
    :ivar TypeId:
11388
    :vartype TypeId: NodeId
11389
    :ivar ResponseHeader:
11390
    :vartype ResponseHeader: ResponseHeader
11391
    :ivar Parameters:
11392
    :vartype Parameters: ModifySubscriptionResult
11393
    '''
11394 1
    def __init__(self, binary=None):
11395
        if binary is not None:
11396
            self._binary_init(binary)
11397
            self._freeze = True
11398
            return
11399
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary)
11400
        self.ResponseHeader = ResponseHeader()
11401
        self.Parameters = ModifySubscriptionResult()
11402
        self._freeze = True
11403
11404 1
    def to_binary(self):
11405
        packet = []
11406
        packet.append(self.TypeId.to_binary())
11407
        packet.append(self.ResponseHeader.to_binary())
11408
        packet.append(self.Parameters.to_binary())
11409
        return b''.join(packet)
11410
11411 1
    @staticmethod
11412
    def from_binary(data):
11413
        return ModifySubscriptionResponse(data)
11414
11415 1
    def _binary_init(self, data):
11416
        self.TypeId = NodeId.from_binary(data)
11417
        self.ResponseHeader = ResponseHeader.from_binary(data)
11418
        self.Parameters = ModifySubscriptionResult.from_binary(data)
11419
11420 1
    def __str__(self):
11421
        return 'ModifySubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11422
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11423
               'Parameters:' + str(self.Parameters) + ')'
11424
11425 1
    __repr__ = __str__
11426
11427
11428 1
class SetPublishingModeParameters(FrozenClass):
11429
    '''
11430
    :ivar PublishingEnabled:
11431
    :vartype PublishingEnabled: Boolean
11432
    :ivar SubscriptionIds:
11433
    :vartype SubscriptionIds: UInt32
11434
    '''
11435 1
    def __init__(self, binary=None):
11436
        if binary is not None:
11437
            self._binary_init(binary)
11438
            self._freeze = True
11439
            return
11440
        self.PublishingEnabled = True
11441
        self.SubscriptionIds = []
11442
        self._freeze = True
11443
11444 1
    def to_binary(self):
11445
        packet = []
11446
        packet.append(uatype_Boolean.pack(self.PublishingEnabled))
11447
        packet.append(uatype_Int32.pack(len(self.SubscriptionIds)))
11448
        for fieldname in self.SubscriptionIds:
11449
            packet.append(uatype_UInt32.pack(fieldname))
11450
        return b''.join(packet)
11451
11452 1
    @staticmethod
11453
    def from_binary(data):
11454
        return SetPublishingModeParameters(data)
11455
11456 1
    def _binary_init(self, data):
11457
        self.PublishingEnabled = uatype_Boolean.unpack(data.read(1))[0]
11458
        self.SubscriptionIds = unpack_uatype_array('UInt32', data)
11459
11460 1
    def __str__(self):
11461
        return 'SetPublishingModeParameters(' + 'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
11462
               'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
11463
11464 1
    __repr__ = __str__
11465
11466
11467 1
class SetPublishingModeRequest(FrozenClass):
11468
    '''
11469
    :ivar TypeId:
11470
    :vartype TypeId: NodeId
11471
    :ivar RequestHeader:
11472
    :vartype RequestHeader: RequestHeader
11473
    :ivar Parameters:
11474
    :vartype Parameters: SetPublishingModeParameters
11475
    '''
11476 1
    def __init__(self, binary=None):
11477
        if binary is not None:
11478
            self._binary_init(binary)
11479
            self._freeze = True
11480
            return
11481
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary)
11482
        self.RequestHeader = RequestHeader()
11483
        self.Parameters = SetPublishingModeParameters()
11484
        self._freeze = True
11485
11486 1
    def to_binary(self):
11487
        packet = []
11488
        packet.append(self.TypeId.to_binary())
11489
        packet.append(self.RequestHeader.to_binary())
11490
        packet.append(self.Parameters.to_binary())
11491
        return b''.join(packet)
11492
11493 1
    @staticmethod
11494
    def from_binary(data):
11495
        return SetPublishingModeRequest(data)
11496
11497 1
    def _binary_init(self, data):
11498
        self.TypeId = NodeId.from_binary(data)
11499
        self.RequestHeader = RequestHeader.from_binary(data)
11500
        self.Parameters = SetPublishingModeParameters.from_binary(data)
11501
11502 1
    def __str__(self):
11503
        return 'SetPublishingModeRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11504
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
11505
               'Parameters:' + str(self.Parameters) + ')'
11506
11507 1
    __repr__ = __str__
11508
11509
11510 1
class SetPublishingModeResult(FrozenClass):
11511
    '''
11512
    :ivar Results:
11513
    :vartype Results: StatusCode
11514
    :ivar DiagnosticInfos:
11515
    :vartype DiagnosticInfos: DiagnosticInfo
11516
    '''
11517 1
    def __init__(self, binary=None):
11518
        if binary is not None:
11519
            self._binary_init(binary)
11520
            self._freeze = True
11521
            return
11522
        self.Results = []
11523
        self.DiagnosticInfos = []
11524
        self._freeze = True
11525
11526 1
    def to_binary(self):
11527
        packet = []
11528
        packet.append(uatype_Int32.pack(len(self.Results)))
11529
        for fieldname in self.Results:
11530
            packet.append(fieldname.to_binary())
11531
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
11532
        for fieldname in self.DiagnosticInfos:
11533
            packet.append(fieldname.to_binary())
11534
        return b''.join(packet)
11535
11536 1
    @staticmethod
11537
    def from_binary(data):
11538
        return SetPublishingModeResult(data)
11539
11540 1
    def _binary_init(self, data):
11541
        length = uatype_Int32.unpack(data.read(4))[0]
11542
        array = []
11543
        if length != -1:
11544
            for _ in range(0, length):
11545
                array.append(StatusCode.from_binary(data))
11546
        self.Results = array
11547
        length = uatype_Int32.unpack(data.read(4))[0]
11548
        array = []
11549
        if length != -1:
11550
            for _ in range(0, length):
11551
                array.append(DiagnosticInfo.from_binary(data))
11552
        self.DiagnosticInfos = array
11553
11554 1
    def __str__(self):
11555
        return 'SetPublishingModeResult(' + 'Results:' + str(self.Results) + ', ' + \
11556
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
11557
11558 1
    __repr__ = __str__
11559
11560
11561 1
class SetPublishingModeResponse(FrozenClass):
11562
    '''
11563
    :ivar TypeId:
11564
    :vartype TypeId: NodeId
11565
    :ivar ResponseHeader:
11566
    :vartype ResponseHeader: ResponseHeader
11567
    :ivar Parameters:
11568
    :vartype Parameters: SetPublishingModeResult
11569
    '''
11570 1
    def __init__(self, binary=None):
11571
        if binary is not None:
11572
            self._binary_init(binary)
11573
            self._freeze = True
11574
            return
11575
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary)
11576
        self.ResponseHeader = ResponseHeader()
11577
        self.Parameters = SetPublishingModeResult()
11578
        self._freeze = True
11579
11580 1
    def to_binary(self):
11581
        packet = []
11582
        packet.append(self.TypeId.to_binary())
11583
        packet.append(self.ResponseHeader.to_binary())
11584
        packet.append(self.Parameters.to_binary())
11585
        return b''.join(packet)
11586
11587 1
    @staticmethod
11588
    def from_binary(data):
11589
        return SetPublishingModeResponse(data)
11590
11591 1
    def _binary_init(self, data):
11592
        self.TypeId = NodeId.from_binary(data)
11593
        self.ResponseHeader = ResponseHeader.from_binary(data)
11594
        self.Parameters = SetPublishingModeResult.from_binary(data)
11595
11596 1
    def __str__(self):
11597
        return 'SetPublishingModeResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11598
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11599
               'Parameters:' + str(self.Parameters) + ')'
11600
11601 1
    __repr__ = __str__
11602
11603
11604 1
class NotificationMessage(FrozenClass):
11605
    '''
11606
    :ivar SequenceNumber:
11607
    :vartype SequenceNumber: UInt32
11608
    :ivar PublishTime:
11609
    :vartype PublishTime: DateTime
11610
    :ivar NotificationData:
11611
    :vartype NotificationData: ExtensionObject
11612
    '''
11613 1
    def __init__(self, binary=None):
11614 1
        if binary is not None:
11615 1
            self._binary_init(binary)
11616 1
            self._freeze = True
11617 1
            return
11618 1
        self.SequenceNumber = 0
11619 1
        self.PublishTime = datetime.now()
11620 1
        self.NotificationData = []
11621 1
        self._freeze = True
11622
11623 1
    def to_binary(self):
11624 1
        packet = []
11625 1
        packet.append(uatype_UInt32.pack(self.SequenceNumber))
11626 1
        packet.append(pack_datetime(self.PublishTime))
11627 1
        packet.append(uatype_Int32.pack(len(self.NotificationData)))
11628 1
        for fieldname in self.NotificationData:
11629 1
            packet.append(extensionobject_to_binary(fieldname))
11630 1
        return b''.join(packet)
11631
11632 1
    @staticmethod
11633
    def from_binary(data):
11634 1
        return NotificationMessage(data)
11635
11636 1
    def _binary_init(self, data):
11637 1
        self.SequenceNumber = uatype_UInt32.unpack(data.read(4))[0]
11638 1
        self.PublishTime = unpack_datetime(data)
11639 1
        length = uatype_Int32.unpack(data.read(4))[0]
11640 1
        array = []
11641 1
        if length != -1:
11642 1
            for _ in range(0, length):
11643 1
                array.append(extensionobject_from_binary(data))
11644 1
        self.NotificationData = array
11645
11646 1
    def __str__(self):
11647
        return 'NotificationMessage(' + 'SequenceNumber:' + str(self.SequenceNumber) + ', ' + \
11648
               'PublishTime:' + str(self.PublishTime) + ', ' + \
11649
               'NotificationData:' + str(self.NotificationData) + ')'
11650
11651 1
    __repr__ = __str__
11652
11653
11654 1
class NotificationData(FrozenClass):
11655
    '''
11656
    '''
11657 1
    def __init__(self, binary=None):
11658
        if binary is not None:
11659
            self._binary_init(binary)
11660
            self._freeze = True
11661
            return
11662
        self._freeze = True
11663
11664 1
    def to_binary(self):
11665
        packet = []
11666
        return b''.join(packet)
11667
11668 1
    @staticmethod
11669
    def from_binary(data):
11670
        return NotificationData(data)
11671
11672 1
    def _binary_init(self, data):
11673
        pass
11674
11675 1
    def __str__(self):
11676
        return 'NotificationData(' +  + ')'
11677
11678 1
    __repr__ = __str__
11679
11680
11681 1
class DataChangeNotification(FrozenClass):
11682
    '''
11683
    :ivar MonitoredItems:
11684
    :vartype MonitoredItems: MonitoredItemNotification
11685
    :ivar DiagnosticInfos:
11686
    :vartype DiagnosticInfos: DiagnosticInfo
11687
    '''
11688 1
    def __init__(self, binary=None):
11689 1
        if binary is not None:
11690 1
            self._binary_init(binary)
11691 1
            self._freeze = True
11692 1
            return
11693 1
        self.MonitoredItems = []
11694 1
        self.DiagnosticInfos = []
11695 1
        self._freeze = True
11696
11697 1
    def to_binary(self):
11698 1
        packet = []
11699 1
        packet.append(uatype_Int32.pack(len(self.MonitoredItems)))
11700 1
        for fieldname in self.MonitoredItems:
11701 1
            packet.append(fieldname.to_binary())
11702 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
11703 1
        for fieldname in self.DiagnosticInfos:
11704
            packet.append(fieldname.to_binary())
11705 1
        return b''.join(packet)
11706
11707 1
    @staticmethod
11708
    def from_binary(data):
11709 1
        return DataChangeNotification(data)
11710
11711 1
    def _binary_init(self, data):
11712 1
        length = uatype_Int32.unpack(data.read(4))[0]
11713 1
        array = []
11714 1
        if length != -1:
11715 1
            for _ in range(0, length):
11716 1
                array.append(MonitoredItemNotification.from_binary(data))
11717 1
        self.MonitoredItems = array
11718 1
        length = uatype_Int32.unpack(data.read(4))[0]
11719 1
        array = []
11720 1
        if length != -1:
11721 1
            for _ in range(0, length):
11722
                array.append(DiagnosticInfo.from_binary(data))
11723 1
        self.DiagnosticInfos = array
11724
11725 1
    def __str__(self):
11726
        return 'DataChangeNotification(' + 'MonitoredItems:' + str(self.MonitoredItems) + ', ' + \
11727
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
11728
11729 1
    __repr__ = __str__
11730
11731
11732 1
class MonitoredItemNotification(FrozenClass):
11733
    '''
11734
    :ivar ClientHandle:
11735
    :vartype ClientHandle: UInt32
11736
    :ivar Value:
11737
    :vartype Value: DataValue
11738
    '''
11739 1
    def __init__(self, binary=None):
11740 1
        if binary is not None:
11741 1
            self._binary_init(binary)
11742 1
            self._freeze = True
11743 1
            return
11744 1
        self.ClientHandle = 0
11745 1
        self.Value = DataValue()
11746 1
        self._freeze = True
11747
11748 1
    def to_binary(self):
11749 1
        packet = []
11750 1
        packet.append(uatype_UInt32.pack(self.ClientHandle))
11751 1
        packet.append(self.Value.to_binary())
11752 1
        return b''.join(packet)
11753
11754 1
    @staticmethod
11755
    def from_binary(data):
11756 1
        return MonitoredItemNotification(data)
11757
11758 1
    def _binary_init(self, data):
11759 1
        self.ClientHandle = uatype_UInt32.unpack(data.read(4))[0]
11760 1
        self.Value = DataValue.from_binary(data)
11761
11762 1
    def __str__(self):
11763
        return 'MonitoredItemNotification(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
11764
               'Value:' + str(self.Value) + ')'
11765
11766 1
    __repr__ = __str__
11767
11768
11769 1
class EventNotificationList(FrozenClass):
11770
    '''
11771
    :ivar Events:
11772
    :vartype Events: EventFieldList
11773
    '''
11774 1
    def __init__(self, binary=None):
11775 1
        if binary is not None:
11776 1
            self._binary_init(binary)
11777 1
            self._freeze = True
11778 1
            return
11779 1
        self.Events = []
11780 1
        self._freeze = True
11781
11782 1
    def to_binary(self):
11783 1
        packet = []
11784 1
        packet.append(uatype_Int32.pack(len(self.Events)))
11785 1
        for fieldname in self.Events:
11786 1
            packet.append(fieldname.to_binary())
11787 1
        return b''.join(packet)
11788
11789 1
    @staticmethod
11790
    def from_binary(data):
11791 1
        return EventNotificationList(data)
11792
11793 1
    def _binary_init(self, data):
11794 1
        length = uatype_Int32.unpack(data.read(4))[0]
11795 1
        array = []
11796 1
        if length != -1:
11797 1
            for _ in range(0, length):
11798 1
                array.append(EventFieldList.from_binary(data))
11799 1
        self.Events = array
11800
11801 1
    def __str__(self):
11802
        return 'EventNotificationList(' + 'Events:' + str(self.Events) + ')'
11803
11804 1
    __repr__ = __str__
11805
11806
11807 1
class EventFieldList(FrozenClass):
11808
    '''
11809
    :ivar ClientHandle:
11810
    :vartype ClientHandle: UInt32
11811
    :ivar EventFields:
11812
    :vartype EventFields: Variant
11813
    '''
11814 1
    def __init__(self, binary=None):
11815 1
        if binary is not None:
11816 1
            self._binary_init(binary)
11817 1
            self._freeze = True
11818 1
            return
11819 1
        self.ClientHandle = 0
11820 1
        self.EventFields = []
11821 1
        self._freeze = True
11822
11823 1
    def to_binary(self):
11824 1
        packet = []
11825 1
        packet.append(uatype_UInt32.pack(self.ClientHandle))
11826 1
        packet.append(uatype_Int32.pack(len(self.EventFields)))
11827 1
        for fieldname in self.EventFields:
11828 1
            packet.append(fieldname.to_binary())
11829 1
        return b''.join(packet)
11830
11831 1
    @staticmethod
11832
    def from_binary(data):
11833 1
        return EventFieldList(data)
11834
11835 1
    def _binary_init(self, data):
11836 1
        self.ClientHandle = uatype_UInt32.unpack(data.read(4))[0]
11837 1
        length = uatype_Int32.unpack(data.read(4))[0]
11838 1
        array = []
11839 1
        if length != -1:
11840 1
            for _ in range(0, length):
11841 1
                array.append(Variant.from_binary(data))
11842 1
        self.EventFields = array
11843
11844 1
    def __str__(self):
11845
        return 'EventFieldList(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
11846
               'EventFields:' + str(self.EventFields) + ')'
11847
11848 1
    __repr__ = __str__
11849
11850
11851 1
class HistoryEventFieldList(FrozenClass):
11852
    '''
11853
    :ivar EventFields:
11854
    :vartype EventFields: Variant
11855
    '''
11856 1
    def __init__(self, binary=None):
11857
        if binary is not None:
11858
            self._binary_init(binary)
11859
            self._freeze = True
11860
            return
11861
        self.EventFields = []
11862
        self._freeze = True
11863
11864 1
    def to_binary(self):
11865
        packet = []
11866
        packet.append(uatype_Int32.pack(len(self.EventFields)))
11867
        for fieldname in self.EventFields:
11868
            packet.append(fieldname.to_binary())
11869
        return b''.join(packet)
11870
11871 1
    @staticmethod
11872
    def from_binary(data):
11873
        return HistoryEventFieldList(data)
11874
11875 1
    def _binary_init(self, data):
11876
        length = uatype_Int32.unpack(data.read(4))[0]
11877
        array = []
11878
        if length != -1:
11879
            for _ in range(0, length):
11880
                array.append(Variant.from_binary(data))
11881
        self.EventFields = array
11882
11883 1
    def __str__(self):
11884
        return 'HistoryEventFieldList(' + 'EventFields:' + str(self.EventFields) + ')'
11885
11886 1
    __repr__ = __str__
11887
11888
11889 1
class StatusChangeNotification(FrozenClass):
11890
    '''
11891
    :ivar Status:
11892
    :vartype Status: StatusCode
11893
    :ivar DiagnosticInfo:
11894
    :vartype DiagnosticInfo: DiagnosticInfo
11895
    '''
11896 1
    def __init__(self, binary=None):
11897
        if binary is not None:
11898
            self._binary_init(binary)
11899
            self._freeze = True
11900
            return
11901
        self.Status = StatusCode()
11902
        self.DiagnosticInfo = DiagnosticInfo()
11903
        self._freeze = True
11904
11905 1
    def to_binary(self):
11906
        packet = []
11907
        packet.append(self.Status.to_binary())
11908
        packet.append(self.DiagnosticInfo.to_binary())
11909
        return b''.join(packet)
11910
11911 1
    @staticmethod
11912
    def from_binary(data):
11913
        return StatusChangeNotification(data)
11914
11915 1
    def _binary_init(self, data):
11916
        self.Status = StatusCode.from_binary(data)
11917
        self.DiagnosticInfo = DiagnosticInfo.from_binary(data)
11918
11919 1
    def __str__(self):
11920
        return 'StatusChangeNotification(' + 'Status:' + str(self.Status) + ', ' + \
11921
               'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
11922
11923 1
    __repr__ = __str__
11924
11925
11926 1
class SubscriptionAcknowledgement(FrozenClass):
11927
    '''
11928
    :ivar SubscriptionId:
11929
    :vartype SubscriptionId: UInt32
11930
    :ivar SequenceNumber:
11931
    :vartype SequenceNumber: UInt32
11932
    '''
11933 1
    def __init__(self, binary=None):
11934 1
        if binary is not None:
11935 1
            self._binary_init(binary)
11936 1
            self._freeze = True
11937 1
            return
11938 1
        self.SubscriptionId = 0
11939 1
        self.SequenceNumber = 0
11940 1
        self._freeze = True
11941
11942 1
    def to_binary(self):
11943 1
        packet = []
11944 1
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
11945 1
        packet.append(uatype_UInt32.pack(self.SequenceNumber))
11946 1
        return b''.join(packet)
11947
11948 1
    @staticmethod
11949
    def from_binary(data):
11950 1
        return SubscriptionAcknowledgement(data)
11951
11952 1
    def _binary_init(self, data):
11953 1
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
11954 1
        self.SequenceNumber = uatype_UInt32.unpack(data.read(4))[0]
11955
11956 1
    def __str__(self):
11957
        return 'SubscriptionAcknowledgement(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
11958
               'SequenceNumber:' + str(self.SequenceNumber) + ')'
11959
11960 1
    __repr__ = __str__
11961
11962
11963 1
class PublishParameters(FrozenClass):
11964
    '''
11965
    :ivar SubscriptionAcknowledgements:
11966
    :vartype SubscriptionAcknowledgements: SubscriptionAcknowledgement
11967
    '''
11968 1
    def __init__(self, binary=None):
11969 1
        if binary is not None:
11970 1
            self._binary_init(binary)
11971 1
            self._freeze = True
11972 1
            return
11973 1
        self.SubscriptionAcknowledgements = []
11974 1
        self._freeze = True
11975
11976 1
    def to_binary(self):
11977 1
        packet = []
11978 1
        packet.append(uatype_Int32.pack(len(self.SubscriptionAcknowledgements)))
11979 1
        for fieldname in self.SubscriptionAcknowledgements:
11980 1
            packet.append(fieldname.to_binary())
11981 1
        return b''.join(packet)
11982
11983 1
    @staticmethod
11984
    def from_binary(data):
11985 1
        return PublishParameters(data)
11986
11987 1
    def _binary_init(self, data):
11988 1
        length = uatype_Int32.unpack(data.read(4))[0]
11989 1
        array = []
11990 1
        if length != -1:
11991 1
            for _ in range(0, length):
11992 1
                array.append(SubscriptionAcknowledgement.from_binary(data))
11993 1
        self.SubscriptionAcknowledgements = array
11994
11995 1
    def __str__(self):
11996
        return 'PublishParameters(' + 'SubscriptionAcknowledgements:' + str(self.SubscriptionAcknowledgements) + ')'
11997
11998 1
    __repr__ = __str__
11999
12000
12001 1
class PublishRequest(FrozenClass):
12002
    '''
12003
    :ivar TypeId:
12004
    :vartype TypeId: NodeId
12005
    :ivar RequestHeader:
12006
    :vartype RequestHeader: RequestHeader
12007
    :ivar Parameters:
12008
    :vartype Parameters: PublishParameters
12009
    '''
12010 1
    def __init__(self, binary=None):
12011 1
        if binary is not None:
12012
            self._binary_init(binary)
12013
            self._freeze = True
12014
            return
12015 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishRequest_Encoding_DefaultBinary)
12016 1
        self.RequestHeader = RequestHeader()
12017 1
        self.Parameters = PublishParameters()
12018 1
        self._freeze = True
12019
12020 1
    def to_binary(self):
12021 1
        packet = []
12022 1
        packet.append(self.TypeId.to_binary())
12023 1
        packet.append(self.RequestHeader.to_binary())
12024 1
        packet.append(self.Parameters.to_binary())
12025 1
        return b''.join(packet)
12026
12027 1
    @staticmethod
12028
    def from_binary(data):
12029
        return PublishRequest(data)
12030
12031 1
    def _binary_init(self, data):
12032
        self.TypeId = NodeId.from_binary(data)
12033
        self.RequestHeader = RequestHeader.from_binary(data)
12034
        self.Parameters = PublishParameters.from_binary(data)
12035
12036 1
    def __str__(self):
12037
        return 'PublishRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12038
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
12039
               'Parameters:' + str(self.Parameters) + ')'
12040
12041 1
    __repr__ = __str__
12042
12043
12044 1
class PublishResult(FrozenClass):
12045
    '''
12046
    :ivar SubscriptionId:
12047
    :vartype SubscriptionId: UInt32
12048
    :ivar AvailableSequenceNumbers:
12049
    :vartype AvailableSequenceNumbers: UInt32
12050
    :ivar MoreNotifications:
12051
    :vartype MoreNotifications: Boolean
12052
    :ivar NotificationMessage:
12053
    :vartype NotificationMessage: NotificationMessage
12054
    :ivar Results:
12055
    :vartype Results: StatusCode
12056
    :ivar DiagnosticInfos:
12057
    :vartype DiagnosticInfos: DiagnosticInfo
12058
    '''
12059 1
    def __init__(self, binary=None):
12060 1
        if binary is not None:
12061 1
            self._binary_init(binary)
12062 1
            self._freeze = True
12063 1
            return
12064 1
        self.SubscriptionId = 0
12065 1
        self.AvailableSequenceNumbers = []
12066 1
        self.MoreNotifications = True
12067 1
        self.NotificationMessage = NotificationMessage()
12068 1
        self.Results = []
12069 1
        self.DiagnosticInfos = []
12070 1
        self._freeze = True
12071
12072 1
    def to_binary(self):
12073 1
        packet = []
12074 1
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
12075 1
        packet.append(uatype_Int32.pack(len(self.AvailableSequenceNumbers)))
12076 1
        for fieldname in self.AvailableSequenceNumbers:
12077 1
            packet.append(uatype_UInt32.pack(fieldname))
12078 1
        packet.append(uatype_Boolean.pack(self.MoreNotifications))
12079 1
        packet.append(self.NotificationMessage.to_binary())
12080 1
        packet.append(uatype_Int32.pack(len(self.Results)))
12081 1
        for fieldname in self.Results:
12082
            packet.append(fieldname.to_binary())
12083 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
12084 1
        for fieldname in self.DiagnosticInfos:
12085
            packet.append(fieldname.to_binary())
12086 1
        return b''.join(packet)
12087
12088 1
    @staticmethod
12089
    def from_binary(data):
12090 1
        return PublishResult(data)
12091
12092 1
    def _binary_init(self, data):
12093 1
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
12094 1
        self.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
12095 1
        self.MoreNotifications = uatype_Boolean.unpack(data.read(1))[0]
12096 1
        self.NotificationMessage = NotificationMessage.from_binary(data)
12097 1
        length = uatype_Int32.unpack(data.read(4))[0]
12098 1
        array = []
12099 1
        if length != -1:
12100 1
            for _ in range(0, length):
12101
                array.append(StatusCode.from_binary(data))
12102 1
        self.Results = array
12103 1
        length = uatype_Int32.unpack(data.read(4))[0]
12104 1
        array = []
12105 1
        if length != -1:
12106 1
            for _ in range(0, length):
12107
                array.append(DiagnosticInfo.from_binary(data))
12108 1
        self.DiagnosticInfos = array
12109
12110 1
    def __str__(self):
12111
        return 'PublishResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
12112
               'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ', ' + \
12113
               'MoreNotifications:' + str(self.MoreNotifications) + ', ' + \
12114
               'NotificationMessage:' + str(self.NotificationMessage) + ', ' + \
12115
               'Results:' + str(self.Results) + ', ' + \
12116
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
12117
12118 1
    __repr__ = __str__
12119
12120
12121 1
class PublishResponse(FrozenClass):
12122
    '''
12123
    :ivar TypeId:
12124
    :vartype TypeId: NodeId
12125
    :ivar ResponseHeader:
12126
    :vartype ResponseHeader: ResponseHeader
12127
    :ivar Parameters:
12128
    :vartype Parameters: PublishResult
12129
    '''
12130 1
    def __init__(self, binary=None):
12131 1
        if binary is not None:
12132 1
            self._binary_init(binary)
12133 1
            self._freeze = True
12134 1
            return
12135 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishResponse_Encoding_DefaultBinary)
12136 1
        self.ResponseHeader = ResponseHeader()
12137 1
        self.Parameters = PublishResult()
12138 1
        self._freeze = True
12139
12140 1
    def to_binary(self):
12141 1
        packet = []
12142 1
        packet.append(self.TypeId.to_binary())
12143 1
        packet.append(self.ResponseHeader.to_binary())
12144 1
        packet.append(self.Parameters.to_binary())
12145 1
        return b''.join(packet)
12146
12147 1
    @staticmethod
12148
    def from_binary(data):
12149 1
        return PublishResponse(data)
12150
12151 1
    def _binary_init(self, data):
12152 1
        self.TypeId = NodeId.from_binary(data)
12153 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
12154 1
        self.Parameters = PublishResult.from_binary(data)
12155
12156 1
    def __str__(self):
12157
        return 'PublishResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12158
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
12159
               'Parameters:' + str(self.Parameters) + ')'
12160
12161 1
    __repr__ = __str__
12162
12163
12164 1
class RepublishParameters(FrozenClass):
12165
    '''
12166
    :ivar SubscriptionId:
12167
    :vartype SubscriptionId: UInt32
12168
    :ivar RetransmitSequenceNumber:
12169
    :vartype RetransmitSequenceNumber: UInt32
12170
    '''
12171 1
    def __init__(self, binary=None):
12172
        if binary is not None:
12173
            self._binary_init(binary)
12174
            self._freeze = True
12175
            return
12176
        self.SubscriptionId = 0
12177
        self.RetransmitSequenceNumber = 0
12178
        self._freeze = True
12179
12180 1
    def to_binary(self):
12181
        packet = []
12182
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
12183
        packet.append(uatype_UInt32.pack(self.RetransmitSequenceNumber))
12184
        return b''.join(packet)
12185
12186 1
    @staticmethod
12187
    def from_binary(data):
12188
        return RepublishParameters(data)
12189
12190 1
    def _binary_init(self, data):
12191
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
12192
        self.RetransmitSequenceNumber = uatype_UInt32.unpack(data.read(4))[0]
12193
12194 1
    def __str__(self):
12195
        return 'RepublishParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
12196
               'RetransmitSequenceNumber:' + str(self.RetransmitSequenceNumber) + ')'
12197
12198 1
    __repr__ = __str__
12199
12200
12201 1
class RepublishRequest(FrozenClass):
12202
    '''
12203
    :ivar TypeId:
12204
    :vartype TypeId: NodeId
12205
    :ivar RequestHeader:
12206
    :vartype RequestHeader: RequestHeader
12207
    :ivar Parameters:
12208
    :vartype Parameters: RepublishParameters
12209
    '''
12210 1
    def __init__(self, binary=None):
12211
        if binary is not None:
12212
            self._binary_init(binary)
12213
            self._freeze = True
12214
            return
12215
        self.TypeId = FourByteNodeId(ObjectIds.RepublishRequest_Encoding_DefaultBinary)
12216
        self.RequestHeader = RequestHeader()
12217
        self.Parameters = RepublishParameters()
12218
        self._freeze = True
12219
12220 1
    def to_binary(self):
12221
        packet = []
12222
        packet.append(self.TypeId.to_binary())
12223
        packet.append(self.RequestHeader.to_binary())
12224
        packet.append(self.Parameters.to_binary())
12225
        return b''.join(packet)
12226
12227 1
    @staticmethod
12228
    def from_binary(data):
12229
        return RepublishRequest(data)
12230
12231 1
    def _binary_init(self, data):
12232
        self.TypeId = NodeId.from_binary(data)
12233
        self.RequestHeader = RequestHeader.from_binary(data)
12234
        self.Parameters = RepublishParameters.from_binary(data)
12235
12236 1
    def __str__(self):
12237
        return 'RepublishRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12238
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
12239
               'Parameters:' + str(self.Parameters) + ')'
12240
12241 1
    __repr__ = __str__
12242
12243
12244 1
class RepublishResponse(FrozenClass):
12245
    '''
12246
    :ivar TypeId:
12247
    :vartype TypeId: NodeId
12248
    :ivar ResponseHeader:
12249
    :vartype ResponseHeader: ResponseHeader
12250
    :ivar NotificationMessage:
12251
    :vartype NotificationMessage: NotificationMessage
12252
    '''
12253 1
    def __init__(self, binary=None):
12254
        if binary is not None:
12255
            self._binary_init(binary)
12256
            self._freeze = True
12257
            return
12258
        self.TypeId = FourByteNodeId(ObjectIds.RepublishResponse_Encoding_DefaultBinary)
12259
        self.ResponseHeader = ResponseHeader()
12260
        self.NotificationMessage = NotificationMessage()
12261
        self._freeze = True
12262
12263 1
    def to_binary(self):
12264
        packet = []
12265
        packet.append(self.TypeId.to_binary())
12266
        packet.append(self.ResponseHeader.to_binary())
12267
        packet.append(self.NotificationMessage.to_binary())
12268
        return b''.join(packet)
12269
12270 1
    @staticmethod
12271
    def from_binary(data):
12272
        return RepublishResponse(data)
12273
12274 1
    def _binary_init(self, data):
12275
        self.TypeId = NodeId.from_binary(data)
12276
        self.ResponseHeader = ResponseHeader.from_binary(data)
12277
        self.NotificationMessage = NotificationMessage.from_binary(data)
12278
12279 1
    def __str__(self):
12280
        return 'RepublishResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12281
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
12282
               'NotificationMessage:' + str(self.NotificationMessage) + ')'
12283
12284 1
    __repr__ = __str__
12285
12286
12287 1
class TransferResult(FrozenClass):
12288
    '''
12289
    :ivar StatusCode:
12290
    :vartype StatusCode: StatusCode
12291
    :ivar AvailableSequenceNumbers:
12292
    :vartype AvailableSequenceNumbers: UInt32
12293
    '''
12294 1
    def __init__(self, binary=None):
12295
        if binary is not None:
12296
            self._binary_init(binary)
12297
            self._freeze = True
12298
            return
12299
        self.StatusCode = StatusCode()
12300
        self.AvailableSequenceNumbers = []
12301
        self._freeze = True
12302
12303 1
    def to_binary(self):
12304
        packet = []
12305
        packet.append(self.StatusCode.to_binary())
12306
        packet.append(uatype_Int32.pack(len(self.AvailableSequenceNumbers)))
12307
        for fieldname in self.AvailableSequenceNumbers:
12308
            packet.append(uatype_UInt32.pack(fieldname))
12309
        return b''.join(packet)
12310
12311 1
    @staticmethod
12312
    def from_binary(data):
12313
        return TransferResult(data)
12314
12315 1
    def _binary_init(self, data):
12316
        self.StatusCode = StatusCode.from_binary(data)
12317
        self.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
12318
12319 1
    def __str__(self):
12320
        return 'TransferResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
12321
               'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ')'
12322
12323 1
    __repr__ = __str__
12324
12325
12326 1
class TransferSubscriptionsParameters(FrozenClass):
12327
    '''
12328
    :ivar SubscriptionIds:
12329
    :vartype SubscriptionIds: UInt32
12330
    :ivar SendInitialValues:
12331
    :vartype SendInitialValues: Boolean
12332
    '''
12333 1
    def __init__(self, binary=None):
12334
        if binary is not None:
12335
            self._binary_init(binary)
12336
            self._freeze = True
12337
            return
12338
        self.SubscriptionIds = []
12339
        self.SendInitialValues = True
12340
        self._freeze = True
12341
12342 1
    def to_binary(self):
12343
        packet = []
12344
        packet.append(uatype_Int32.pack(len(self.SubscriptionIds)))
12345
        for fieldname in self.SubscriptionIds:
12346
            packet.append(uatype_UInt32.pack(fieldname))
12347
        packet.append(uatype_Boolean.pack(self.SendInitialValues))
12348
        return b''.join(packet)
12349
12350 1
    @staticmethod
12351
    def from_binary(data):
12352
        return TransferSubscriptionsParameters(data)
12353
12354 1
    def _binary_init(self, data):
12355
        self.SubscriptionIds = unpack_uatype_array('UInt32', data)
12356
        self.SendInitialValues = uatype_Boolean.unpack(data.read(1))[0]
12357
12358 1
    def __str__(self):
12359
        return 'TransferSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ', ' + \
12360
               'SendInitialValues:' + str(self.SendInitialValues) + ')'
12361
12362 1
    __repr__ = __str__
12363
12364
12365 1
class TransferSubscriptionsRequest(FrozenClass):
12366
    '''
12367
    :ivar TypeId:
12368
    :vartype TypeId: NodeId
12369
    :ivar RequestHeader:
12370
    :vartype RequestHeader: RequestHeader
12371
    :ivar Parameters:
12372
    :vartype Parameters: TransferSubscriptionsParameters
12373
    '''
12374 1
    def __init__(self, binary=None):
12375
        if binary is not None:
12376
            self._binary_init(binary)
12377
            self._freeze = True
12378
            return
12379
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary)
12380
        self.RequestHeader = RequestHeader()
12381
        self.Parameters = TransferSubscriptionsParameters()
12382
        self._freeze = True
12383
12384 1
    def to_binary(self):
12385
        packet = []
12386
        packet.append(self.TypeId.to_binary())
12387
        packet.append(self.RequestHeader.to_binary())
12388
        packet.append(self.Parameters.to_binary())
12389
        return b''.join(packet)
12390
12391 1
    @staticmethod
12392
    def from_binary(data):
12393
        return TransferSubscriptionsRequest(data)
12394
12395 1
    def _binary_init(self, data):
12396
        self.TypeId = NodeId.from_binary(data)
12397
        self.RequestHeader = RequestHeader.from_binary(data)
12398
        self.Parameters = TransferSubscriptionsParameters.from_binary(data)
12399
12400 1
    def __str__(self):
12401
        return 'TransferSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12402
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
12403
               'Parameters:' + str(self.Parameters) + ')'
12404
12405 1
    __repr__ = __str__
12406
12407
12408 1
class TransferSubscriptionsResult(FrozenClass):
12409
    '''
12410
    :ivar Results:
12411
    :vartype Results: TransferResult
12412
    :ivar DiagnosticInfos:
12413
    :vartype DiagnosticInfos: DiagnosticInfo
12414
    '''
12415 1
    def __init__(self, binary=None):
12416
        if binary is not None:
12417
            self._binary_init(binary)
12418
            self._freeze = True
12419
            return
12420
        self.Results = []
12421
        self.DiagnosticInfos = []
12422
        self._freeze = True
12423
12424 1
    def to_binary(self):
12425
        packet = []
12426
        packet.append(uatype_Int32.pack(len(self.Results)))
12427
        for fieldname in self.Results:
12428
            packet.append(fieldname.to_binary())
12429
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
12430
        for fieldname in self.DiagnosticInfos:
12431
            packet.append(fieldname.to_binary())
12432
        return b''.join(packet)
12433
12434 1
    @staticmethod
12435
    def from_binary(data):
12436
        return TransferSubscriptionsResult(data)
12437
12438 1
    def _binary_init(self, data):
12439
        length = uatype_Int32.unpack(data.read(4))[0]
12440
        array = []
12441
        if length != -1:
12442
            for _ in range(0, length):
12443
                array.append(TransferResult.from_binary(data))
12444
        self.Results = array
12445
        length = uatype_Int32.unpack(data.read(4))[0]
12446
        array = []
12447
        if length != -1:
12448
            for _ in range(0, length):
12449
                array.append(DiagnosticInfo.from_binary(data))
12450
        self.DiagnosticInfos = array
12451
12452 1
    def __str__(self):
12453
        return 'TransferSubscriptionsResult(' + 'Results:' + str(self.Results) + ', ' + \
12454
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
12455
12456 1
    __repr__ = __str__
12457
12458
12459 1
class TransferSubscriptionsResponse(FrozenClass):
12460
    '''
12461
    :ivar TypeId:
12462
    :vartype TypeId: NodeId
12463
    :ivar ResponseHeader:
12464
    :vartype ResponseHeader: ResponseHeader
12465
    :ivar Parameters:
12466
    :vartype Parameters: TransferSubscriptionsResult
12467
    '''
12468 1
    def __init__(self, binary=None):
12469
        if binary is not None:
12470
            self._binary_init(binary)
12471
            self._freeze = True
12472
            return
12473
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary)
12474
        self.ResponseHeader = ResponseHeader()
12475
        self.Parameters = TransferSubscriptionsResult()
12476
        self._freeze = True
12477
12478 1
    def to_binary(self):
12479
        packet = []
12480
        packet.append(self.TypeId.to_binary())
12481
        packet.append(self.ResponseHeader.to_binary())
12482
        packet.append(self.Parameters.to_binary())
12483
        return b''.join(packet)
12484
12485 1
    @staticmethod
12486
    def from_binary(data):
12487
        return TransferSubscriptionsResponse(data)
12488
12489 1
    def _binary_init(self, data):
12490
        self.TypeId = NodeId.from_binary(data)
12491
        self.ResponseHeader = ResponseHeader.from_binary(data)
12492
        self.Parameters = TransferSubscriptionsResult.from_binary(data)
12493
12494 1
    def __str__(self):
12495
        return 'TransferSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12496
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
12497
               'Parameters:' + str(self.Parameters) + ')'
12498
12499 1
    __repr__ = __str__
12500
12501
12502 1
class DeleteSubscriptionsParameters(FrozenClass):
12503
    '''
12504
    :ivar SubscriptionIds:
12505
    :vartype SubscriptionIds: UInt32
12506
    '''
12507 1
    def __init__(self, binary=None):
12508 1
        if binary is not None:
12509 1
            self._binary_init(binary)
12510 1
            self._freeze = True
12511 1
            return
12512 1
        self.SubscriptionIds = []
12513 1
        self._freeze = True
12514
12515 1
    def to_binary(self):
12516 1
        packet = []
12517 1
        packet.append(uatype_Int32.pack(len(self.SubscriptionIds)))
12518 1
        for fieldname in self.SubscriptionIds:
12519 1
            packet.append(uatype_UInt32.pack(fieldname))
12520 1
        return b''.join(packet)
12521
12522 1
    @staticmethod
12523
    def from_binary(data):
12524 1
        return DeleteSubscriptionsParameters(data)
12525
12526 1
    def _binary_init(self, data):
12527 1
        self.SubscriptionIds = unpack_uatype_array('UInt32', data)
12528
12529 1
    def __str__(self):
12530
        return 'DeleteSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
12531
12532 1
    __repr__ = __str__
12533
12534
12535 1
class DeleteSubscriptionsRequest(FrozenClass):
12536
    '''
12537
    :ivar TypeId:
12538
    :vartype TypeId: NodeId
12539
    :ivar RequestHeader:
12540
    :vartype RequestHeader: RequestHeader
12541
    :ivar Parameters:
12542
    :vartype Parameters: DeleteSubscriptionsParameters
12543
    '''
12544 1
    def __init__(self, binary=None):
12545 1
        if binary is not None:
12546
            self._binary_init(binary)
12547
            self._freeze = True
12548
            return
12549 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary)
12550 1
        self.RequestHeader = RequestHeader()
12551 1
        self.Parameters = DeleteSubscriptionsParameters()
12552 1
        self._freeze = True
12553
12554 1
    def to_binary(self):
12555 1
        packet = []
12556 1
        packet.append(self.TypeId.to_binary())
12557 1
        packet.append(self.RequestHeader.to_binary())
12558 1
        packet.append(self.Parameters.to_binary())
12559 1
        return b''.join(packet)
12560
12561 1
    @staticmethod
12562
    def from_binary(data):
12563
        return DeleteSubscriptionsRequest(data)
12564
12565 1
    def _binary_init(self, data):
12566
        self.TypeId = NodeId.from_binary(data)
12567
        self.RequestHeader = RequestHeader.from_binary(data)
12568
        self.Parameters = DeleteSubscriptionsParameters.from_binary(data)
12569
12570 1
    def __str__(self):
12571
        return 'DeleteSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12572
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
12573
               'Parameters:' + str(self.Parameters) + ')'
12574
12575 1
    __repr__ = __str__
12576
12577
12578 1
class DeleteSubscriptionsResponse(FrozenClass):
12579
    '''
12580
    :ivar TypeId:
12581
    :vartype TypeId: NodeId
12582
    :ivar ResponseHeader:
12583
    :vartype ResponseHeader: ResponseHeader
12584
    :ivar Results:
12585
    :vartype Results: StatusCode
12586
    :ivar DiagnosticInfos:
12587
    :vartype DiagnosticInfos: DiagnosticInfo
12588
    '''
12589 1
    def __init__(self, binary=None):
12590 1
        if binary is not None:
12591 1
            self._binary_init(binary)
12592 1
            self._freeze = True
12593 1
            return
12594 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary)
12595 1
        self.ResponseHeader = ResponseHeader()
12596 1
        self.Results = []
12597 1
        self.DiagnosticInfos = []
12598 1
        self._freeze = True
12599
12600 1
    def to_binary(self):
12601 1
        packet = []
12602 1
        packet.append(self.TypeId.to_binary())
12603 1
        packet.append(self.ResponseHeader.to_binary())
12604 1
        packet.append(uatype_Int32.pack(len(self.Results)))
12605 1
        for fieldname in self.Results:
12606 1
            packet.append(fieldname.to_binary())
12607 1
        packet.append(uatype_Int32.pack(len(self.DiagnosticInfos)))
12608 1
        for fieldname in self.DiagnosticInfos:
12609
            packet.append(fieldname.to_binary())
12610 1
        return b''.join(packet)
12611
12612 1
    @staticmethod
12613
    def from_binary(data):
12614 1
        return DeleteSubscriptionsResponse(data)
12615
12616 1
    def _binary_init(self, data):
12617 1
        self.TypeId = NodeId.from_binary(data)
12618 1
        self.ResponseHeader = ResponseHeader.from_binary(data)
12619 1
        length = uatype_Int32.unpack(data.read(4))[0]
12620 1
        array = []
12621 1
        if length != -1:
12622 1
            for _ in range(0, length):
12623 1
                array.append(StatusCode.from_binary(data))
12624 1
        self.Results = array
12625 1
        length = uatype_Int32.unpack(data.read(4))[0]
12626 1
        array = []
12627 1
        if length != -1:
12628 1
            for _ in range(0, length):
12629
                array.append(DiagnosticInfo.from_binary(data))
12630 1
        self.DiagnosticInfos = array
12631
12632 1
    def __str__(self):
12633
        return 'DeleteSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
12634
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
12635
               'Results:' + str(self.Results) + ', ' + \
12636
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
12637
12638 1
    __repr__ = __str__
12639
12640
12641 1
class BuildInfo(FrozenClass):
12642
    '''
12643
    :ivar ProductUri:
12644
    :vartype ProductUri: String
12645
    :ivar ManufacturerName:
12646
    :vartype ManufacturerName: String
12647
    :ivar ProductName:
12648
    :vartype ProductName: String
12649
    :ivar SoftwareVersion:
12650
    :vartype SoftwareVersion: String
12651
    :ivar BuildNumber:
12652
    :vartype BuildNumber: String
12653
    :ivar BuildDate:
12654
    :vartype BuildDate: DateTime
12655
    '''
12656 1
    def __init__(self, binary=None):
12657
        if binary is not None:
12658
            self._binary_init(binary)
12659
            self._freeze = True
12660
            return
12661
        self.ProductUri = ''
12662
        self.ManufacturerName = ''
12663
        self.ProductName = ''
12664
        self.SoftwareVersion = ''
12665
        self.BuildNumber = ''
12666
        self.BuildDate = datetime.now()
12667
        self._freeze = True
12668
12669 1
    def to_binary(self):
12670
        packet = []
12671
        packet.append(pack_string(self.ProductUri))
12672
        packet.append(pack_string(self.ManufacturerName))
12673
        packet.append(pack_string(self.ProductName))
12674
        packet.append(pack_string(self.SoftwareVersion))
12675
        packet.append(pack_string(self.BuildNumber))
12676
        packet.append(pack_datetime(self.BuildDate))
12677
        return b''.join(packet)
12678
12679 1
    @staticmethod
12680
    def from_binary(data):
12681
        return BuildInfo(data)
12682
12683 1
    def _binary_init(self, data):
12684
        self.ProductUri = unpack_string(data)
12685
        self.ManufacturerName = unpack_string(data)
12686
        self.ProductName = unpack_string(data)
12687
        self.SoftwareVersion = unpack_string(data)
12688
        self.BuildNumber = unpack_string(data)
12689
        self.BuildDate = unpack_datetime(data)
12690
12691 1
    def __str__(self):
12692
        return 'BuildInfo(' + 'ProductUri:' + str(self.ProductUri) + ', ' + \
12693
               'ManufacturerName:' + str(self.ManufacturerName) + ', ' + \
12694
               'ProductName:' + str(self.ProductName) + ', ' + \
12695
               'SoftwareVersion:' + str(self.SoftwareVersion) + ', ' + \
12696
               'BuildNumber:' + str(self.BuildNumber) + ', ' + \
12697
               'BuildDate:' + str(self.BuildDate) + ')'
12698
12699 1
    __repr__ = __str__
12700
12701
12702 1
class RedundantServerDataType(FrozenClass):
12703
    '''
12704
    :ivar ServerId:
12705
    :vartype ServerId: String
12706
    :ivar ServiceLevel:
12707
    :vartype ServiceLevel: Byte
12708
    :ivar ServerState:
12709
    :vartype ServerState: ServerState
12710
    '''
12711 1
    def __init__(self, binary=None):
12712
        if binary is not None:
12713
            self._binary_init(binary)
12714
            self._freeze = True
12715
            return
12716
        self.ServerId = ''
12717
        self.ServiceLevel = 0
12718
        self.ServerState = ServerState(0)
12719
        self._freeze = True
12720
12721 1
    def to_binary(self):
12722
        packet = []
12723
        packet.append(pack_string(self.ServerId))
12724
        packet.append(uatype_Byte.pack(self.ServiceLevel))
12725
        packet.append(uatype_UInt32.pack(self.ServerState.value))
12726
        return b''.join(packet)
12727
12728 1
    @staticmethod
12729
    def from_binary(data):
12730
        return RedundantServerDataType(data)
12731
12732 1
    def _binary_init(self, data):
12733
        self.ServerId = unpack_string(data)
12734
        self.ServiceLevel = uatype_Byte.unpack(data.read(1))[0]
12735
        self.ServerState = ServerState(uatype_UInt32.unpack(data.read(4))[0])
12736
12737 1
    def __str__(self):
12738
        return 'RedundantServerDataType(' + 'ServerId:' + str(self.ServerId) + ', ' + \
12739
               'ServiceLevel:' + str(self.ServiceLevel) + ', ' + \
12740
               'ServerState:' + str(self.ServerState) + ')'
12741
12742 1
    __repr__ = __str__
12743
12744
12745 1
class EndpointUrlListDataType(FrozenClass):
12746
    '''
12747
    :ivar EndpointUrlList:
12748
    :vartype EndpointUrlList: String
12749
    '''
12750 1
    def __init__(self, binary=None):
12751
        if binary is not None:
12752
            self._binary_init(binary)
12753
            self._freeze = True
12754
            return
12755
        self.EndpointUrlList = []
12756
        self._freeze = True
12757
12758 1
    def to_binary(self):
12759
        packet = []
12760
        packet.append(uatype_Int32.pack(len(self.EndpointUrlList)))
12761
        for fieldname in self.EndpointUrlList:
12762
            packet.append(pack_string(fieldname))
12763
        return b''.join(packet)
12764
12765 1
    @staticmethod
12766
    def from_binary(data):
12767
        return EndpointUrlListDataType(data)
12768
12769 1
    def _binary_init(self, data):
12770
        self.EndpointUrlList = unpack_uatype_array('String', data)
12771
12772 1
    def __str__(self):
12773
        return 'EndpointUrlListDataType(' + 'EndpointUrlList:' + str(self.EndpointUrlList) + ')'
12774
12775 1
    __repr__ = __str__
12776
12777
12778 1
class NetworkGroupDataType(FrozenClass):
12779
    '''
12780
    :ivar ServerUri:
12781
    :vartype ServerUri: String
12782
    :ivar NetworkPaths:
12783
    :vartype NetworkPaths: EndpointUrlListDataType
12784
    '''
12785 1
    def __init__(self, binary=None):
12786
        if binary is not None:
12787
            self._binary_init(binary)
12788
            self._freeze = True
12789
            return
12790
        self.ServerUri = ''
12791
        self.NetworkPaths = []
12792
        self._freeze = True
12793
12794 1
    def to_binary(self):
12795
        packet = []
12796
        packet.append(pack_string(self.ServerUri))
12797
        packet.append(uatype_Int32.pack(len(self.NetworkPaths)))
12798
        for fieldname in self.NetworkPaths:
12799
            packet.append(fieldname.to_binary())
12800
        return b''.join(packet)
12801
12802 1
    @staticmethod
12803
    def from_binary(data):
12804
        return NetworkGroupDataType(data)
12805
12806 1
    def _binary_init(self, data):
12807
        self.ServerUri = unpack_string(data)
12808
        length = uatype_Int32.unpack(data.read(4))[0]
12809
        array = []
12810
        if length != -1:
12811
            for _ in range(0, length):
12812
                array.append(EndpointUrlListDataType.from_binary(data))
12813
        self.NetworkPaths = array
12814
12815 1
    def __str__(self):
12816
        return 'NetworkGroupDataType(' + 'ServerUri:' + str(self.ServerUri) + ', ' + \
12817
               'NetworkPaths:' + str(self.NetworkPaths) + ')'
12818
12819 1
    __repr__ = __str__
12820
12821
12822 1
class SamplingIntervalDiagnosticsDataType(FrozenClass):
12823
    '''
12824
    :ivar SamplingInterval:
12825
    :vartype SamplingInterval: Double
12826
    :ivar MonitoredItemCount:
12827
    :vartype MonitoredItemCount: UInt32
12828
    :ivar MaxMonitoredItemCount:
12829
    :vartype MaxMonitoredItemCount: UInt32
12830
    :ivar DisabledMonitoredItemCount:
12831
    :vartype DisabledMonitoredItemCount: UInt32
12832
    '''
12833 1
    def __init__(self, binary=None):
12834
        if binary is not None:
12835
            self._binary_init(binary)
12836
            self._freeze = True
12837
            return
12838
        self.SamplingInterval = 0
12839
        self.MonitoredItemCount = 0
12840
        self.MaxMonitoredItemCount = 0
12841
        self.DisabledMonitoredItemCount = 0
12842
        self._freeze = True
12843
12844 1
    def to_binary(self):
12845
        packet = []
12846
        packet.append(uatype_Double.pack(self.SamplingInterval))
12847
        packet.append(uatype_UInt32.pack(self.MonitoredItemCount))
12848
        packet.append(uatype_UInt32.pack(self.MaxMonitoredItemCount))
12849
        packet.append(uatype_UInt32.pack(self.DisabledMonitoredItemCount))
12850
        return b''.join(packet)
12851
12852 1
    @staticmethod
12853
    def from_binary(data):
12854
        return SamplingIntervalDiagnosticsDataType(data)
12855
12856 1
    def _binary_init(self, data):
12857
        self.SamplingInterval = uatype_Double.unpack(data.read(8))[0]
12858
        self.MonitoredItemCount = uatype_UInt32.unpack(data.read(4))[0]
12859
        self.MaxMonitoredItemCount = uatype_UInt32.unpack(data.read(4))[0]
12860
        self.DisabledMonitoredItemCount = uatype_UInt32.unpack(data.read(4))[0]
12861
12862 1
    def __str__(self):
12863
        return 'SamplingIntervalDiagnosticsDataType(' + 'SamplingInterval:' + str(self.SamplingInterval) + ', ' + \
12864
               'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', ' + \
12865
               'MaxMonitoredItemCount:' + str(self.MaxMonitoredItemCount) + ', ' + \
12866
               'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ')'
12867
12868 1
    __repr__ = __str__
12869
12870
12871 1
class ServerDiagnosticsSummaryDataType(FrozenClass):
12872
    '''
12873
    :ivar ServerViewCount:
12874
    :vartype ServerViewCount: UInt32
12875
    :ivar CurrentSessionCount:
12876
    :vartype CurrentSessionCount: UInt32
12877
    :ivar CumulatedSessionCount:
12878
    :vartype CumulatedSessionCount: UInt32
12879
    :ivar SecurityRejectedSessionCount:
12880
    :vartype SecurityRejectedSessionCount: UInt32
12881
    :ivar RejectedSessionCount:
12882
    :vartype RejectedSessionCount: UInt32
12883
    :ivar SessionTimeoutCount:
12884
    :vartype SessionTimeoutCount: UInt32
12885
    :ivar SessionAbortCount:
12886
    :vartype SessionAbortCount: UInt32
12887
    :ivar CurrentSubscriptionCount:
12888
    :vartype CurrentSubscriptionCount: UInt32
12889
    :ivar CumulatedSubscriptionCount:
12890
    :vartype CumulatedSubscriptionCount: UInt32
12891
    :ivar PublishingIntervalCount:
12892
    :vartype PublishingIntervalCount: UInt32
12893
    :ivar SecurityRejectedRequestsCount:
12894
    :vartype SecurityRejectedRequestsCount: UInt32
12895
    :ivar RejectedRequestsCount:
12896
    :vartype RejectedRequestsCount: UInt32
12897
    '''
12898 1
    def __init__(self, binary=None):
12899
        if binary is not None:
12900
            self._binary_init(binary)
12901
            self._freeze = True
12902
            return
12903
        self.ServerViewCount = 0
12904
        self.CurrentSessionCount = 0
12905
        self.CumulatedSessionCount = 0
12906
        self.SecurityRejectedSessionCount = 0
12907
        self.RejectedSessionCount = 0
12908
        self.SessionTimeoutCount = 0
12909
        self.SessionAbortCount = 0
12910
        self.CurrentSubscriptionCount = 0
12911
        self.CumulatedSubscriptionCount = 0
12912
        self.PublishingIntervalCount = 0
12913
        self.SecurityRejectedRequestsCount = 0
12914
        self.RejectedRequestsCount = 0
12915
        self._freeze = True
12916
12917 1
    def to_binary(self):
12918
        packet = []
12919
        packet.append(uatype_UInt32.pack(self.ServerViewCount))
12920
        packet.append(uatype_UInt32.pack(self.CurrentSessionCount))
12921
        packet.append(uatype_UInt32.pack(self.CumulatedSessionCount))
12922
        packet.append(uatype_UInt32.pack(self.SecurityRejectedSessionCount))
12923
        packet.append(uatype_UInt32.pack(self.RejectedSessionCount))
12924
        packet.append(uatype_UInt32.pack(self.SessionTimeoutCount))
12925
        packet.append(uatype_UInt32.pack(self.SessionAbortCount))
12926
        packet.append(uatype_UInt32.pack(self.CurrentSubscriptionCount))
12927
        packet.append(uatype_UInt32.pack(self.CumulatedSubscriptionCount))
12928
        packet.append(uatype_UInt32.pack(self.PublishingIntervalCount))
12929
        packet.append(uatype_UInt32.pack(self.SecurityRejectedRequestsCount))
12930
        packet.append(uatype_UInt32.pack(self.RejectedRequestsCount))
12931
        return b''.join(packet)
12932
12933 1
    @staticmethod
12934
    def from_binary(data):
12935
        return ServerDiagnosticsSummaryDataType(data)
12936
12937 1
    def _binary_init(self, data):
12938
        self.ServerViewCount = uatype_UInt32.unpack(data.read(4))[0]
12939
        self.CurrentSessionCount = uatype_UInt32.unpack(data.read(4))[0]
12940
        self.CumulatedSessionCount = uatype_UInt32.unpack(data.read(4))[0]
12941
        self.SecurityRejectedSessionCount = uatype_UInt32.unpack(data.read(4))[0]
12942
        self.RejectedSessionCount = uatype_UInt32.unpack(data.read(4))[0]
12943
        self.SessionTimeoutCount = uatype_UInt32.unpack(data.read(4))[0]
12944
        self.SessionAbortCount = uatype_UInt32.unpack(data.read(4))[0]
12945
        self.CurrentSubscriptionCount = uatype_UInt32.unpack(data.read(4))[0]
12946
        self.CumulatedSubscriptionCount = uatype_UInt32.unpack(data.read(4))[0]
12947
        self.PublishingIntervalCount = uatype_UInt32.unpack(data.read(4))[0]
12948
        self.SecurityRejectedRequestsCount = uatype_UInt32.unpack(data.read(4))[0]
12949
        self.RejectedRequestsCount = uatype_UInt32.unpack(data.read(4))[0]
12950
12951 1
    def __str__(self):
12952
        return 'ServerDiagnosticsSummaryDataType(' + 'ServerViewCount:' + str(self.ServerViewCount) + ', ' + \
12953
               'CurrentSessionCount:' + str(self.CurrentSessionCount) + ', ' + \
12954
               'CumulatedSessionCount:' + str(self.CumulatedSessionCount) + ', ' + \
12955
               'SecurityRejectedSessionCount:' + str(self.SecurityRejectedSessionCount) + ', ' + \
12956
               'RejectedSessionCount:' + str(self.RejectedSessionCount) + ', ' + \
12957
               'SessionTimeoutCount:' + str(self.SessionTimeoutCount) + ', ' + \
12958
               'SessionAbortCount:' + str(self.SessionAbortCount) + ', ' + \
12959
               'CurrentSubscriptionCount:' + str(self.CurrentSubscriptionCount) + ', ' + \
12960
               'CumulatedSubscriptionCount:' + str(self.CumulatedSubscriptionCount) + ', ' + \
12961
               'PublishingIntervalCount:' + str(self.PublishingIntervalCount) + ', ' + \
12962
               'SecurityRejectedRequestsCount:' + str(self.SecurityRejectedRequestsCount) + ', ' + \
12963
               'RejectedRequestsCount:' + str(self.RejectedRequestsCount) + ')'
12964
12965 1
    __repr__ = __str__
12966
12967
12968 1
class ServerStatusDataType(FrozenClass):
12969
    '''
12970
    :ivar StartTime:
12971
    :vartype StartTime: DateTime
12972
    :ivar CurrentTime:
12973
    :vartype CurrentTime: DateTime
12974
    :ivar State:
12975
    :vartype State: ServerState
12976
    :ivar BuildInfo:
12977
    :vartype BuildInfo: BuildInfo
12978
    :ivar SecondsTillShutdown:
12979
    :vartype SecondsTillShutdown: UInt32
12980
    :ivar ShutdownReason:
12981
    :vartype ShutdownReason: LocalizedText
12982
    '''
12983 1
    def __init__(self, binary=None):
12984
        if binary is not None:
12985
            self._binary_init(binary)
12986
            self._freeze = True
12987
            return
12988
        self.StartTime = datetime.now()
12989
        self.CurrentTime = datetime.now()
12990
        self.State = ServerState(0)
12991
        self.BuildInfo = BuildInfo()
12992
        self.SecondsTillShutdown = 0
12993
        self.ShutdownReason = LocalizedText()
12994
        self._freeze = True
12995
12996 1
    def to_binary(self):
12997
        packet = []
12998
        packet.append(pack_datetime(self.StartTime))
12999
        packet.append(pack_datetime(self.CurrentTime))
13000
        packet.append(uatype_UInt32.pack(self.State.value))
13001
        packet.append(self.BuildInfo.to_binary())
13002
        packet.append(uatype_UInt32.pack(self.SecondsTillShutdown))
13003
        packet.append(self.ShutdownReason.to_binary())
13004
        return b''.join(packet)
13005
13006 1
    @staticmethod
13007
    def from_binary(data):
13008
        return ServerStatusDataType(data)
13009
13010 1
    def _binary_init(self, data):
13011
        self.StartTime = unpack_datetime(data)
13012
        self.CurrentTime = unpack_datetime(data)
13013
        self.State = ServerState(uatype_UInt32.unpack(data.read(4))[0])
13014
        self.BuildInfo = BuildInfo.from_binary(data)
13015
        self.SecondsTillShutdown = uatype_UInt32.unpack(data.read(4))[0]
13016
        self.ShutdownReason = LocalizedText.from_binary(data)
13017
13018 1
    def __str__(self):
13019
        return 'ServerStatusDataType(' + 'StartTime:' + str(self.StartTime) + ', ' + \
13020
               'CurrentTime:' + str(self.CurrentTime) + ', ' + \
13021
               'State:' + str(self.State) + ', ' + \
13022
               'BuildInfo:' + str(self.BuildInfo) + ', ' + \
13023
               'SecondsTillShutdown:' + str(self.SecondsTillShutdown) + ', ' + \
13024
               'ShutdownReason:' + str(self.ShutdownReason) + ')'
13025
13026 1
    __repr__ = __str__
13027
13028
13029 1
class SessionDiagnosticsDataType(FrozenClass):
13030
    '''
13031
    :ivar SessionId:
13032
    :vartype SessionId: NodeId
13033
    :ivar SessionName:
13034
    :vartype SessionName: String
13035
    :ivar ClientDescription:
13036
    :vartype ClientDescription: ApplicationDescription
13037
    :ivar ServerUri:
13038
    :vartype ServerUri: String
13039
    :ivar EndpointUrl:
13040
    :vartype EndpointUrl: String
13041
    :ivar LocaleIds:
13042
    :vartype LocaleIds: String
13043
    :ivar ActualSessionTimeout:
13044
    :vartype ActualSessionTimeout: Double
13045
    :ivar MaxResponseMessageSize:
13046
    :vartype MaxResponseMessageSize: UInt32
13047
    :ivar ClientConnectionTime:
13048
    :vartype ClientConnectionTime: DateTime
13049
    :ivar ClientLastContactTime:
13050
    :vartype ClientLastContactTime: DateTime
13051
    :ivar CurrentSubscriptionsCount:
13052
    :vartype CurrentSubscriptionsCount: UInt32
13053
    :ivar CurrentMonitoredItemsCount:
13054
    :vartype CurrentMonitoredItemsCount: UInt32
13055
    :ivar CurrentPublishRequestsInQueue:
13056
    :vartype CurrentPublishRequestsInQueue: UInt32
13057
    :ivar TotalRequestCount:
13058
    :vartype TotalRequestCount: ServiceCounterDataType
13059
    :ivar UnauthorizedRequestCount:
13060
    :vartype UnauthorizedRequestCount: UInt32
13061
    :ivar ReadCount:
13062
    :vartype ReadCount: ServiceCounterDataType
13063
    :ivar HistoryReadCount:
13064
    :vartype HistoryReadCount: ServiceCounterDataType
13065
    :ivar WriteCount:
13066
    :vartype WriteCount: ServiceCounterDataType
13067
    :ivar HistoryUpdateCount:
13068
    :vartype HistoryUpdateCount: ServiceCounterDataType
13069
    :ivar CallCount:
13070
    :vartype CallCount: ServiceCounterDataType
13071
    :ivar CreateMonitoredItemsCount:
13072
    :vartype CreateMonitoredItemsCount: ServiceCounterDataType
13073
    :ivar ModifyMonitoredItemsCount:
13074
    :vartype ModifyMonitoredItemsCount: ServiceCounterDataType
13075
    :ivar SetMonitoringModeCount:
13076
    :vartype SetMonitoringModeCount: ServiceCounterDataType
13077
    :ivar SetTriggeringCount:
13078
    :vartype SetTriggeringCount: ServiceCounterDataType
13079
    :ivar DeleteMonitoredItemsCount:
13080
    :vartype DeleteMonitoredItemsCount: ServiceCounterDataType
13081
    :ivar CreateSubscriptionCount:
13082
    :vartype CreateSubscriptionCount: ServiceCounterDataType
13083
    :ivar ModifySubscriptionCount:
13084
    :vartype ModifySubscriptionCount: ServiceCounterDataType
13085
    :ivar SetPublishingModeCount:
13086
    :vartype SetPublishingModeCount: ServiceCounterDataType
13087
    :ivar PublishCount:
13088
    :vartype PublishCount: ServiceCounterDataType
13089
    :ivar RepublishCount:
13090
    :vartype RepublishCount: ServiceCounterDataType
13091
    :ivar TransferSubscriptionsCount:
13092
    :vartype TransferSubscriptionsCount: ServiceCounterDataType
13093
    :ivar DeleteSubscriptionsCount:
13094
    :vartype DeleteSubscriptionsCount: ServiceCounterDataType
13095
    :ivar AddNodesCount:
13096
    :vartype AddNodesCount: ServiceCounterDataType
13097
    :ivar AddReferencesCount:
13098
    :vartype AddReferencesCount: ServiceCounterDataType
13099
    :ivar DeleteNodesCount:
13100
    :vartype DeleteNodesCount: ServiceCounterDataType
13101
    :ivar DeleteReferencesCount:
13102
    :vartype DeleteReferencesCount: ServiceCounterDataType
13103
    :ivar BrowseCount:
13104
    :vartype BrowseCount: ServiceCounterDataType
13105
    :ivar BrowseNextCount:
13106
    :vartype BrowseNextCount: ServiceCounterDataType
13107
    :ivar TranslateBrowsePathsToNodeIdsCount:
13108
    :vartype TranslateBrowsePathsToNodeIdsCount: ServiceCounterDataType
13109
    :ivar QueryFirstCount:
13110
    :vartype QueryFirstCount: ServiceCounterDataType
13111
    :ivar QueryNextCount:
13112
    :vartype QueryNextCount: ServiceCounterDataType
13113
    :ivar RegisterNodesCount:
13114
    :vartype RegisterNodesCount: ServiceCounterDataType
13115
    :ivar UnregisterNodesCount:
13116
    :vartype UnregisterNodesCount: ServiceCounterDataType
13117
    '''
13118 1
    def __init__(self, binary=None):
13119
        if binary is not None:
13120
            self._binary_init(binary)
13121
            self._freeze = True
13122
            return
13123
        self.SessionId = NodeId()
13124
        self.SessionName = ''
13125
        self.ClientDescription = ApplicationDescription()
13126
        self.ServerUri = ''
13127
        self.EndpointUrl = ''
13128
        self.LocaleIds = []
13129
        self.ActualSessionTimeout = 0
13130
        self.MaxResponseMessageSize = 0
13131
        self.ClientConnectionTime = datetime.now()
13132
        self.ClientLastContactTime = datetime.now()
13133
        self.CurrentSubscriptionsCount = 0
13134
        self.CurrentMonitoredItemsCount = 0
13135
        self.CurrentPublishRequestsInQueue = 0
13136
        self.TotalRequestCount = ServiceCounterDataType()
13137
        self.UnauthorizedRequestCount = 0
13138
        self.ReadCount = ServiceCounterDataType()
13139
        self.HistoryReadCount = ServiceCounterDataType()
13140
        self.WriteCount = ServiceCounterDataType()
13141
        self.HistoryUpdateCount = ServiceCounterDataType()
13142
        self.CallCount = ServiceCounterDataType()
13143
        self.CreateMonitoredItemsCount = ServiceCounterDataType()
13144
        self.ModifyMonitoredItemsCount = ServiceCounterDataType()
13145
        self.SetMonitoringModeCount = ServiceCounterDataType()
13146
        self.SetTriggeringCount = ServiceCounterDataType()
13147
        self.DeleteMonitoredItemsCount = ServiceCounterDataType()
13148
        self.CreateSubscriptionCount = ServiceCounterDataType()
13149
        self.ModifySubscriptionCount = ServiceCounterDataType()
13150
        self.SetPublishingModeCount = ServiceCounterDataType()
13151
        self.PublishCount = ServiceCounterDataType()
13152
        self.RepublishCount = ServiceCounterDataType()
13153
        self.TransferSubscriptionsCount = ServiceCounterDataType()
13154
        self.DeleteSubscriptionsCount = ServiceCounterDataType()
13155
        self.AddNodesCount = ServiceCounterDataType()
13156
        self.AddReferencesCount = ServiceCounterDataType()
13157
        self.DeleteNodesCount = ServiceCounterDataType()
13158
        self.DeleteReferencesCount = ServiceCounterDataType()
13159
        self.BrowseCount = ServiceCounterDataType()
13160
        self.BrowseNextCount = ServiceCounterDataType()
13161
        self.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType()
13162
        self.QueryFirstCount = ServiceCounterDataType()
13163
        self.QueryNextCount = ServiceCounterDataType()
13164
        self.RegisterNodesCount = ServiceCounterDataType()
13165
        self.UnregisterNodesCount = ServiceCounterDataType()
13166
        self._freeze = True
13167
13168 1
    def to_binary(self):
13169
        packet = []
13170
        packet.append(self.SessionId.to_binary())
13171
        packet.append(pack_string(self.SessionName))
13172
        packet.append(self.ClientDescription.to_binary())
13173
        packet.append(pack_string(self.ServerUri))
13174
        packet.append(pack_string(self.EndpointUrl))
13175
        packet.append(uatype_Int32.pack(len(self.LocaleIds)))
13176
        for fieldname in self.LocaleIds:
13177
            packet.append(pack_string(fieldname))
13178
        packet.append(uatype_Double.pack(self.ActualSessionTimeout))
13179
        packet.append(uatype_UInt32.pack(self.MaxResponseMessageSize))
13180
        packet.append(pack_datetime(self.ClientConnectionTime))
13181
        packet.append(pack_datetime(self.ClientLastContactTime))
13182
        packet.append(uatype_UInt32.pack(self.CurrentSubscriptionsCount))
13183
        packet.append(uatype_UInt32.pack(self.CurrentMonitoredItemsCount))
13184
        packet.append(uatype_UInt32.pack(self.CurrentPublishRequestsInQueue))
13185
        packet.append(self.TotalRequestCount.to_binary())
13186
        packet.append(uatype_UInt32.pack(self.UnauthorizedRequestCount))
13187
        packet.append(self.ReadCount.to_binary())
13188
        packet.append(self.HistoryReadCount.to_binary())
13189
        packet.append(self.WriteCount.to_binary())
13190
        packet.append(self.HistoryUpdateCount.to_binary())
13191
        packet.append(self.CallCount.to_binary())
13192
        packet.append(self.CreateMonitoredItemsCount.to_binary())
13193
        packet.append(self.ModifyMonitoredItemsCount.to_binary())
13194
        packet.append(self.SetMonitoringModeCount.to_binary())
13195
        packet.append(self.SetTriggeringCount.to_binary())
13196
        packet.append(self.DeleteMonitoredItemsCount.to_binary())
13197
        packet.append(self.CreateSubscriptionCount.to_binary())
13198
        packet.append(self.ModifySubscriptionCount.to_binary())
13199
        packet.append(self.SetPublishingModeCount.to_binary())
13200
        packet.append(self.PublishCount.to_binary())
13201
        packet.append(self.RepublishCount.to_binary())
13202
        packet.append(self.TransferSubscriptionsCount.to_binary())
13203
        packet.append(self.DeleteSubscriptionsCount.to_binary())
13204
        packet.append(self.AddNodesCount.to_binary())
13205
        packet.append(self.AddReferencesCount.to_binary())
13206
        packet.append(self.DeleteNodesCount.to_binary())
13207
        packet.append(self.DeleteReferencesCount.to_binary())
13208
        packet.append(self.BrowseCount.to_binary())
13209
        packet.append(self.BrowseNextCount.to_binary())
13210
        packet.append(self.TranslateBrowsePathsToNodeIdsCount.to_binary())
13211
        packet.append(self.QueryFirstCount.to_binary())
13212
        packet.append(self.QueryNextCount.to_binary())
13213
        packet.append(self.RegisterNodesCount.to_binary())
13214
        packet.append(self.UnregisterNodesCount.to_binary())
13215
        return b''.join(packet)
13216
13217 1
    @staticmethod
13218
    def from_binary(data):
13219
        return SessionDiagnosticsDataType(data)
13220
13221 1
    def _binary_init(self, data):
13222
        self.SessionId = NodeId.from_binary(data)
13223
        self.SessionName = unpack_string(data)
13224
        self.ClientDescription = ApplicationDescription.from_binary(data)
13225
        self.ServerUri = unpack_string(data)
13226
        self.EndpointUrl = unpack_string(data)
13227
        self.LocaleIds = unpack_uatype_array('String', data)
13228
        self.ActualSessionTimeout = uatype_Double.unpack(data.read(8))[0]
13229
        self.MaxResponseMessageSize = uatype_UInt32.unpack(data.read(4))[0]
13230
        self.ClientConnectionTime = unpack_datetime(data)
13231
        self.ClientLastContactTime = unpack_datetime(data)
13232
        self.CurrentSubscriptionsCount = uatype_UInt32.unpack(data.read(4))[0]
13233
        self.CurrentMonitoredItemsCount = uatype_UInt32.unpack(data.read(4))[0]
13234
        self.CurrentPublishRequestsInQueue = uatype_UInt32.unpack(data.read(4))[0]
13235
        self.TotalRequestCount = ServiceCounterDataType.from_binary(data)
13236
        self.UnauthorizedRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13237
        self.ReadCount = ServiceCounterDataType.from_binary(data)
13238
        self.HistoryReadCount = ServiceCounterDataType.from_binary(data)
13239
        self.WriteCount = ServiceCounterDataType.from_binary(data)
13240
        self.HistoryUpdateCount = ServiceCounterDataType.from_binary(data)
13241
        self.CallCount = ServiceCounterDataType.from_binary(data)
13242
        self.CreateMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
13243
        self.ModifyMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
13244
        self.SetMonitoringModeCount = ServiceCounterDataType.from_binary(data)
13245
        self.SetTriggeringCount = ServiceCounterDataType.from_binary(data)
13246
        self.DeleteMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
13247
        self.CreateSubscriptionCount = ServiceCounterDataType.from_binary(data)
13248
        self.ModifySubscriptionCount = ServiceCounterDataType.from_binary(data)
13249
        self.SetPublishingModeCount = ServiceCounterDataType.from_binary(data)
13250
        self.PublishCount = ServiceCounterDataType.from_binary(data)
13251
        self.RepublishCount = ServiceCounterDataType.from_binary(data)
13252
        self.TransferSubscriptionsCount = ServiceCounterDataType.from_binary(data)
13253
        self.DeleteSubscriptionsCount = ServiceCounterDataType.from_binary(data)
13254
        self.AddNodesCount = ServiceCounterDataType.from_binary(data)
13255
        self.AddReferencesCount = ServiceCounterDataType.from_binary(data)
13256
        self.DeleteNodesCount = ServiceCounterDataType.from_binary(data)
13257
        self.DeleteReferencesCount = ServiceCounterDataType.from_binary(data)
13258
        self.BrowseCount = ServiceCounterDataType.from_binary(data)
13259
        self.BrowseNextCount = ServiceCounterDataType.from_binary(data)
13260
        self.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType.from_binary(data)
13261
        self.QueryFirstCount = ServiceCounterDataType.from_binary(data)
13262
        self.QueryNextCount = ServiceCounterDataType.from_binary(data)
13263
        self.RegisterNodesCount = ServiceCounterDataType.from_binary(data)
13264
        self.UnregisterNodesCount = ServiceCounterDataType.from_binary(data)
13265
13266 1
    def __str__(self):
13267
        return 'SessionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
13268
               'SessionName:' + str(self.SessionName) + ', ' + \
13269
               'ClientDescription:' + str(self.ClientDescription) + ', ' + \
13270
               'ServerUri:' + str(self.ServerUri) + ', ' + \
13271
               'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
13272
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
13273
               'ActualSessionTimeout:' + str(self.ActualSessionTimeout) + ', ' + \
13274
               'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ', ' + \
13275
               'ClientConnectionTime:' + str(self.ClientConnectionTime) + ', ' + \
13276
               'ClientLastContactTime:' + str(self.ClientLastContactTime) + ', ' + \
13277
               'CurrentSubscriptionsCount:' + str(self.CurrentSubscriptionsCount) + ', ' + \
13278
               'CurrentMonitoredItemsCount:' + str(self.CurrentMonitoredItemsCount) + ', ' + \
13279
               'CurrentPublishRequestsInQueue:' + str(self.CurrentPublishRequestsInQueue) + ', ' + \
13280
               'TotalRequestCount:' + str(self.TotalRequestCount) + ', ' + \
13281
               'UnauthorizedRequestCount:' + str(self.UnauthorizedRequestCount) + ', ' + \
13282
               'ReadCount:' + str(self.ReadCount) + ', ' + \
13283
               'HistoryReadCount:' + str(self.HistoryReadCount) + ', ' + \
13284
               'WriteCount:' + str(self.WriteCount) + ', ' + \
13285
               'HistoryUpdateCount:' + str(self.HistoryUpdateCount) + ', ' + \
13286
               'CallCount:' + str(self.CallCount) + ', ' + \
13287
               'CreateMonitoredItemsCount:' + str(self.CreateMonitoredItemsCount) + ', ' + \
13288
               'ModifyMonitoredItemsCount:' + str(self.ModifyMonitoredItemsCount) + ', ' + \
13289
               'SetMonitoringModeCount:' + str(self.SetMonitoringModeCount) + ', ' + \
13290
               'SetTriggeringCount:' + str(self.SetTriggeringCount) + ', ' + \
13291
               'DeleteMonitoredItemsCount:' + str(self.DeleteMonitoredItemsCount) + ', ' + \
13292
               'CreateSubscriptionCount:' + str(self.CreateSubscriptionCount) + ', ' + \
13293
               'ModifySubscriptionCount:' + str(self.ModifySubscriptionCount) + ', ' + \
13294
               'SetPublishingModeCount:' + str(self.SetPublishingModeCount) + ', ' + \
13295
               'PublishCount:' + str(self.PublishCount) + ', ' + \
13296
               'RepublishCount:' + str(self.RepublishCount) + ', ' + \
13297
               'TransferSubscriptionsCount:' + str(self.TransferSubscriptionsCount) + ', ' + \
13298
               'DeleteSubscriptionsCount:' + str(self.DeleteSubscriptionsCount) + ', ' + \
13299
               'AddNodesCount:' + str(self.AddNodesCount) + ', ' + \
13300
               'AddReferencesCount:' + str(self.AddReferencesCount) + ', ' + \
13301
               'DeleteNodesCount:' + str(self.DeleteNodesCount) + ', ' + \
13302
               'DeleteReferencesCount:' + str(self.DeleteReferencesCount) + ', ' + \
13303
               'BrowseCount:' + str(self.BrowseCount) + ', ' + \
13304
               'BrowseNextCount:' + str(self.BrowseNextCount) + ', ' + \
13305
               'TranslateBrowsePathsToNodeIdsCount:' + str(self.TranslateBrowsePathsToNodeIdsCount) + ', ' + \
13306
               'QueryFirstCount:' + str(self.QueryFirstCount) + ', ' + \
13307
               'QueryNextCount:' + str(self.QueryNextCount) + ', ' + \
13308
               'RegisterNodesCount:' + str(self.RegisterNodesCount) + ', ' + \
13309
               'UnregisterNodesCount:' + str(self.UnregisterNodesCount) + ')'
13310
13311 1
    __repr__ = __str__
13312
13313
13314 1
class SessionSecurityDiagnosticsDataType(FrozenClass):
13315
    '''
13316
    :ivar SessionId:
13317
    :vartype SessionId: NodeId
13318
    :ivar ClientUserIdOfSession:
13319
    :vartype ClientUserIdOfSession: String
13320
    :ivar ClientUserIdHistory:
13321
    :vartype ClientUserIdHistory: String
13322
    :ivar AuthenticationMechanism:
13323
    :vartype AuthenticationMechanism: String
13324
    :ivar Encoding:
13325
    :vartype Encoding: String
13326
    :ivar TransportProtocol:
13327
    :vartype TransportProtocol: String
13328
    :ivar SecurityMode:
13329
    :vartype SecurityMode: MessageSecurityMode
13330
    :ivar SecurityPolicyUri:
13331
    :vartype SecurityPolicyUri: String
13332
    :ivar ClientCertificate:
13333
    :vartype ClientCertificate: ByteString
13334
    '''
13335 1
    def __init__(self, binary=None):
13336
        if binary is not None:
13337
            self._binary_init(binary)
13338
            self._freeze = True
13339
            return
13340
        self.SessionId = NodeId()
13341
        self.ClientUserIdOfSession = ''
13342
        self.ClientUserIdHistory = []
13343
        self.AuthenticationMechanism = ''
13344
        self.Encoding = ''
13345
        self.TransportProtocol = ''
13346
        self.SecurityMode = MessageSecurityMode(0)
13347
        self.SecurityPolicyUri = ''
13348
        self.ClientCertificate = b''
13349
        self._freeze = True
13350
13351 1
    def to_binary(self):
13352
        packet = []
13353
        packet.append(self.SessionId.to_binary())
13354
        packet.append(pack_string(self.ClientUserIdOfSession))
13355
        packet.append(uatype_Int32.pack(len(self.ClientUserIdHistory)))
13356
        for fieldname in self.ClientUserIdHistory:
13357
            packet.append(pack_string(fieldname))
13358
        packet.append(pack_string(self.AuthenticationMechanism))
13359
        packet.append(pack_string(self.Encoding))
13360
        packet.append(pack_string(self.TransportProtocol))
13361
        packet.append(uatype_UInt32.pack(self.SecurityMode.value))
13362
        packet.append(pack_string(self.SecurityPolicyUri))
13363
        packet.append(pack_bytes(self.ClientCertificate))
13364
        return b''.join(packet)
13365
13366 1
    @staticmethod
13367
    def from_binary(data):
13368
        return SessionSecurityDiagnosticsDataType(data)
13369
13370 1
    def _binary_init(self, data):
13371
        self.SessionId = NodeId.from_binary(data)
13372
        self.ClientUserIdOfSession = unpack_string(data)
13373
        self.ClientUserIdHistory = unpack_uatype_array('String', data)
13374
        self.AuthenticationMechanism = unpack_string(data)
13375
        self.Encoding = unpack_string(data)
13376
        self.TransportProtocol = unpack_string(data)
13377
        self.SecurityMode = MessageSecurityMode(uatype_UInt32.unpack(data.read(4))[0])
13378
        self.SecurityPolicyUri = unpack_string(data)
13379
        self.ClientCertificate = unpack_bytes(data)
13380
13381 1
    def __str__(self):
13382
        return 'SessionSecurityDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
13383
               'ClientUserIdOfSession:' + str(self.ClientUserIdOfSession) + ', ' + \
13384
               'ClientUserIdHistory:' + str(self.ClientUserIdHistory) + ', ' + \
13385
               'AuthenticationMechanism:' + str(self.AuthenticationMechanism) + ', ' + \
13386
               'Encoding:' + str(self.Encoding) + ', ' + \
13387
               'TransportProtocol:' + str(self.TransportProtocol) + ', ' + \
13388
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
13389
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', ' + \
13390
               'ClientCertificate:' + str(self.ClientCertificate) + ')'
13391
13392 1
    __repr__ = __str__
13393
13394
13395 1
class ServiceCounterDataType(FrozenClass):
13396
    '''
13397
    :ivar TotalCount:
13398
    :vartype TotalCount: UInt32
13399
    :ivar ErrorCount:
13400
    :vartype ErrorCount: UInt32
13401
    '''
13402 1
    def __init__(self, binary=None):
13403
        if binary is not None:
13404
            self._binary_init(binary)
13405
            self._freeze = True
13406
            return
13407
        self.TotalCount = 0
13408
        self.ErrorCount = 0
13409
        self._freeze = True
13410
13411 1
    def to_binary(self):
13412
        packet = []
13413
        packet.append(uatype_UInt32.pack(self.TotalCount))
13414
        packet.append(uatype_UInt32.pack(self.ErrorCount))
13415
        return b''.join(packet)
13416
13417 1
    @staticmethod
13418
    def from_binary(data):
13419
        return ServiceCounterDataType(data)
13420
13421 1
    def _binary_init(self, data):
13422
        self.TotalCount = uatype_UInt32.unpack(data.read(4))[0]
13423
        self.ErrorCount = uatype_UInt32.unpack(data.read(4))[0]
13424
13425 1
    def __str__(self):
13426
        return 'ServiceCounterDataType(' + 'TotalCount:' + str(self.TotalCount) + ', ' + \
13427
               'ErrorCount:' + str(self.ErrorCount) + ')'
13428
13429 1
    __repr__ = __str__
13430
13431
13432 1
class StatusResult(FrozenClass):
13433
    '''
13434
    :ivar StatusCode:
13435
    :vartype StatusCode: StatusCode
13436
    :ivar DiagnosticInfo:
13437
    :vartype DiagnosticInfo: DiagnosticInfo
13438
    '''
13439 1
    def __init__(self, binary=None):
13440
        if binary is not None:
13441
            self._binary_init(binary)
13442
            self._freeze = True
13443
            return
13444
        self.StatusCode = StatusCode()
13445
        self.DiagnosticInfo = DiagnosticInfo()
13446
        self._freeze = True
13447
13448 1
    def to_binary(self):
13449
        packet = []
13450
        packet.append(self.StatusCode.to_binary())
13451
        packet.append(self.DiagnosticInfo.to_binary())
13452
        return b''.join(packet)
13453
13454 1
    @staticmethod
13455
    def from_binary(data):
13456
        return StatusResult(data)
13457
13458 1
    def _binary_init(self, data):
13459
        self.StatusCode = StatusCode.from_binary(data)
13460
        self.DiagnosticInfo = DiagnosticInfo.from_binary(data)
13461
13462 1
    def __str__(self):
13463
        return 'StatusResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
13464
               'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
13465
13466 1
    __repr__ = __str__
13467
13468
13469 1
class SubscriptionDiagnosticsDataType(FrozenClass):
13470
    '''
13471
    :ivar SessionId:
13472
    :vartype SessionId: NodeId
13473
    :ivar SubscriptionId:
13474
    :vartype SubscriptionId: UInt32
13475
    :ivar Priority:
13476
    :vartype Priority: Byte
13477
    :ivar PublishingInterval:
13478
    :vartype PublishingInterval: Double
13479
    :ivar MaxKeepAliveCount:
13480
    :vartype MaxKeepAliveCount: UInt32
13481
    :ivar MaxLifetimeCount:
13482
    :vartype MaxLifetimeCount: UInt32
13483
    :ivar MaxNotificationsPerPublish:
13484
    :vartype MaxNotificationsPerPublish: UInt32
13485
    :ivar PublishingEnabled:
13486
    :vartype PublishingEnabled: Boolean
13487
    :ivar ModifyCount:
13488
    :vartype ModifyCount: UInt32
13489
    :ivar EnableCount:
13490
    :vartype EnableCount: UInt32
13491
    :ivar DisableCount:
13492
    :vartype DisableCount: UInt32
13493
    :ivar RepublishRequestCount:
13494
    :vartype RepublishRequestCount: UInt32
13495
    :ivar RepublishMessageRequestCount:
13496
    :vartype RepublishMessageRequestCount: UInt32
13497
    :ivar RepublishMessageCount:
13498
    :vartype RepublishMessageCount: UInt32
13499
    :ivar TransferRequestCount:
13500
    :vartype TransferRequestCount: UInt32
13501
    :ivar TransferredToAltClientCount:
13502
    :vartype TransferredToAltClientCount: UInt32
13503
    :ivar TransferredToSameClientCount:
13504
    :vartype TransferredToSameClientCount: UInt32
13505
    :ivar PublishRequestCount:
13506
    :vartype PublishRequestCount: UInt32
13507
    :ivar DataChangeNotificationsCount:
13508
    :vartype DataChangeNotificationsCount: UInt32
13509
    :ivar EventNotificationsCount:
13510
    :vartype EventNotificationsCount: UInt32
13511
    :ivar NotificationsCount:
13512
    :vartype NotificationsCount: UInt32
13513
    :ivar LatePublishRequestCount:
13514
    :vartype LatePublishRequestCount: UInt32
13515
    :ivar CurrentKeepAliveCount:
13516
    :vartype CurrentKeepAliveCount: UInt32
13517
    :ivar CurrentLifetimeCount:
13518
    :vartype CurrentLifetimeCount: UInt32
13519
    :ivar UnacknowledgedMessageCount:
13520
    :vartype UnacknowledgedMessageCount: UInt32
13521
    :ivar DiscardedMessageCount:
13522
    :vartype DiscardedMessageCount: UInt32
13523
    :ivar MonitoredItemCount:
13524
    :vartype MonitoredItemCount: UInt32
13525
    :ivar DisabledMonitoredItemCount:
13526
    :vartype DisabledMonitoredItemCount: UInt32
13527
    :ivar MonitoringQueueOverflowCount:
13528
    :vartype MonitoringQueueOverflowCount: UInt32
13529
    :ivar NextSequenceNumber:
13530
    :vartype NextSequenceNumber: UInt32
13531
    :ivar EventQueueOverFlowCount:
13532
    :vartype EventQueueOverFlowCount: UInt32
13533
    '''
13534 1
    def __init__(self, binary=None):
13535
        if binary is not None:
13536
            self._binary_init(binary)
13537
            self._freeze = True
13538
            return
13539
        self.SessionId = NodeId()
13540
        self.SubscriptionId = 0
13541
        self.Priority = 0
13542
        self.PublishingInterval = 0
13543
        self.MaxKeepAliveCount = 0
13544
        self.MaxLifetimeCount = 0
13545
        self.MaxNotificationsPerPublish = 0
13546
        self.PublishingEnabled = True
13547
        self.ModifyCount = 0
13548
        self.EnableCount = 0
13549
        self.DisableCount = 0
13550
        self.RepublishRequestCount = 0
13551
        self.RepublishMessageRequestCount = 0
13552
        self.RepublishMessageCount = 0
13553
        self.TransferRequestCount = 0
13554
        self.TransferredToAltClientCount = 0
13555
        self.TransferredToSameClientCount = 0
13556
        self.PublishRequestCount = 0
13557
        self.DataChangeNotificationsCount = 0
13558
        self.EventNotificationsCount = 0
13559
        self.NotificationsCount = 0
13560
        self.LatePublishRequestCount = 0
13561
        self.CurrentKeepAliveCount = 0
13562
        self.CurrentLifetimeCount = 0
13563
        self.UnacknowledgedMessageCount = 0
13564
        self.DiscardedMessageCount = 0
13565
        self.MonitoredItemCount = 0
13566
        self.DisabledMonitoredItemCount = 0
13567
        self.MonitoringQueueOverflowCount = 0
13568
        self.NextSequenceNumber = 0
13569
        self.EventQueueOverFlowCount = 0
13570
        self._freeze = True
13571
13572 1
    def to_binary(self):
13573
        packet = []
13574
        packet.append(self.SessionId.to_binary())
13575
        packet.append(uatype_UInt32.pack(self.SubscriptionId))
13576
        packet.append(uatype_Byte.pack(self.Priority))
13577
        packet.append(uatype_Double.pack(self.PublishingInterval))
13578
        packet.append(uatype_UInt32.pack(self.MaxKeepAliveCount))
13579
        packet.append(uatype_UInt32.pack(self.MaxLifetimeCount))
13580
        packet.append(uatype_UInt32.pack(self.MaxNotificationsPerPublish))
13581
        packet.append(uatype_Boolean.pack(self.PublishingEnabled))
13582
        packet.append(uatype_UInt32.pack(self.ModifyCount))
13583
        packet.append(uatype_UInt32.pack(self.EnableCount))
13584
        packet.append(uatype_UInt32.pack(self.DisableCount))
13585
        packet.append(uatype_UInt32.pack(self.RepublishRequestCount))
13586
        packet.append(uatype_UInt32.pack(self.RepublishMessageRequestCount))
13587
        packet.append(uatype_UInt32.pack(self.RepublishMessageCount))
13588
        packet.append(uatype_UInt32.pack(self.TransferRequestCount))
13589
        packet.append(uatype_UInt32.pack(self.TransferredToAltClientCount))
13590
        packet.append(uatype_UInt32.pack(self.TransferredToSameClientCount))
13591
        packet.append(uatype_UInt32.pack(self.PublishRequestCount))
13592
        packet.append(uatype_UInt32.pack(self.DataChangeNotificationsCount))
13593
        packet.append(uatype_UInt32.pack(self.EventNotificationsCount))
13594
        packet.append(uatype_UInt32.pack(self.NotificationsCount))
13595
        packet.append(uatype_UInt32.pack(self.LatePublishRequestCount))
13596
        packet.append(uatype_UInt32.pack(self.CurrentKeepAliveCount))
13597
        packet.append(uatype_UInt32.pack(self.CurrentLifetimeCount))
13598
        packet.append(uatype_UInt32.pack(self.UnacknowledgedMessageCount))
13599
        packet.append(uatype_UInt32.pack(self.DiscardedMessageCount))
13600
        packet.append(uatype_UInt32.pack(self.MonitoredItemCount))
13601
        packet.append(uatype_UInt32.pack(self.DisabledMonitoredItemCount))
13602
        packet.append(uatype_UInt32.pack(self.MonitoringQueueOverflowCount))
13603
        packet.append(uatype_UInt32.pack(self.NextSequenceNumber))
13604
        packet.append(uatype_UInt32.pack(self.EventQueueOverFlowCount))
13605
        return b''.join(packet)
13606
13607 1
    @staticmethod
13608
    def from_binary(data):
13609
        return SubscriptionDiagnosticsDataType(data)
13610
13611 1
    def _binary_init(self, data):
13612
        self.SessionId = NodeId.from_binary(data)
13613
        self.SubscriptionId = uatype_UInt32.unpack(data.read(4))[0]
13614
        self.Priority = uatype_Byte.unpack(data.read(1))[0]
13615
        self.PublishingInterval = uatype_Double.unpack(data.read(8))[0]
13616
        self.MaxKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
13617
        self.MaxLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
13618
        self.MaxNotificationsPerPublish = uatype_UInt32.unpack(data.read(4))[0]
13619
        self.PublishingEnabled = uatype_Boolean.unpack(data.read(1))[0]
13620
        self.ModifyCount = uatype_UInt32.unpack(data.read(4))[0]
13621
        self.EnableCount = uatype_UInt32.unpack(data.read(4))[0]
13622
        self.DisableCount = uatype_UInt32.unpack(data.read(4))[0]
13623
        self.RepublishRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13624
        self.RepublishMessageRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13625
        self.RepublishMessageCount = uatype_UInt32.unpack(data.read(4))[0]
13626
        self.TransferRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13627
        self.TransferredToAltClientCount = uatype_UInt32.unpack(data.read(4))[0]
13628
        self.TransferredToSameClientCount = uatype_UInt32.unpack(data.read(4))[0]
13629
        self.PublishRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13630
        self.DataChangeNotificationsCount = uatype_UInt32.unpack(data.read(4))[0]
13631
        self.EventNotificationsCount = uatype_UInt32.unpack(data.read(4))[0]
13632
        self.NotificationsCount = uatype_UInt32.unpack(data.read(4))[0]
13633
        self.LatePublishRequestCount = uatype_UInt32.unpack(data.read(4))[0]
13634
        self.CurrentKeepAliveCount = uatype_UInt32.unpack(data.read(4))[0]
13635
        self.CurrentLifetimeCount = uatype_UInt32.unpack(data.read(4))[0]
13636
        self.UnacknowledgedMessageCount = uatype_UInt32.unpack(data.read(4))[0]
13637
        self.DiscardedMessageCount = uatype_UInt32.unpack(data.read(4))[0]
13638
        self.MonitoredItemCount = uatype_UInt32.unpack(data.read(4))[0]
13639
        self.DisabledMonitoredItemCount = uatype_UInt32.unpack(data.read(4))[0]
13640
        self.MonitoringQueueOverflowCount = uatype_UInt32.unpack(data.read(4))[0]
13641
        self.NextSequenceNumber = uatype_UInt32.unpack(data.read(4))[0]
13642
        self.EventQueueOverFlowCount = uatype_UInt32.unpack(data.read(4))[0]
13643
13644 1
    def __str__(self):
13645
        return 'SubscriptionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
13646
               'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
13647
               'Priority:' + str(self.Priority) + ', ' + \
13648
               'PublishingInterval:' + str(self.PublishingInterval) + ', ' + \
13649
               'MaxKeepAliveCount:' + str(self.MaxKeepAliveCount) + ', ' + \
13650
               'MaxLifetimeCount:' + str(self.MaxLifetimeCount) + ', ' + \
13651
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
13652
               'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
13653
               'ModifyCount:' + str(self.ModifyCount) + ', ' + \
13654
               'EnableCount:' + str(self.EnableCount) + ', ' + \
13655
               'DisableCount:' + str(self.DisableCount) + ', ' + \
13656
               'RepublishRequestCount:' + str(self.RepublishRequestCount) + ', ' + \
13657
               'RepublishMessageRequestCount:' + str(self.RepublishMessageRequestCount) + ', ' + \
13658
               'RepublishMessageCount:' + str(self.RepublishMessageCount) + ', ' + \
13659
               'TransferRequestCount:' + str(self.TransferRequestCount) + ', ' + \
13660
               'TransferredToAltClientCount:' + str(self.TransferredToAltClientCount) + ', ' + \
13661
               'TransferredToSameClientCount:' + str(self.TransferredToSameClientCount) + ', ' + \
13662
               'PublishRequestCount:' + str(self.PublishRequestCount) + ', ' + \
13663
               'DataChangeNotificationsCount:' + str(self.DataChangeNotificationsCount) + ', ' + \
13664
               'EventNotificationsCount:' + str(self.EventNotificationsCount) + ', ' + \
13665
               'NotificationsCount:' + str(self.NotificationsCount) + ', ' + \
13666
               'LatePublishRequestCount:' + str(self.LatePublishRequestCount) + ', ' + \
13667
               'CurrentKeepAliveCount:' + str(self.CurrentKeepAliveCount) + ', ' + \
13668
               'CurrentLifetimeCount:' + str(self.CurrentLifetimeCount) + ', ' + \
13669
               'UnacknowledgedMessageCount:' + str(self.UnacknowledgedMessageCount) + ', ' + \
13670
               'DiscardedMessageCount:' + str(self.DiscardedMessageCount) + ', ' + \
13671
               'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', ' + \
13672
               'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ', ' + \
13673
               'MonitoringQueueOverflowCount:' + str(self.MonitoringQueueOverflowCount) + ', ' + \
13674
               'NextSequenceNumber:' + str(self.NextSequenceNumber) + ', ' + \
13675
               'EventQueueOverFlowCount:' + str(self.EventQueueOverFlowCount) + ')'
13676
13677 1
    __repr__ = __str__
13678
13679
13680 1
class ModelChangeStructureDataType(FrozenClass):
13681
    '''
13682
    :ivar Affected:
13683
    :vartype Affected: NodeId
13684
    :ivar AffectedType:
13685
    :vartype AffectedType: NodeId
13686
    :ivar Verb:
13687
    :vartype Verb: Byte
13688
    '''
13689 1
    def __init__(self, binary=None):
13690
        if binary is not None:
13691
            self._binary_init(binary)
13692
            self._freeze = True
13693
            return
13694
        self.Affected = NodeId()
13695
        self.AffectedType = NodeId()
13696
        self.Verb = 0
13697
        self._freeze = True
13698
13699 1
    def to_binary(self):
13700
        packet = []
13701
        packet.append(self.Affected.to_binary())
13702
        packet.append(self.AffectedType.to_binary())
13703
        packet.append(uatype_Byte.pack(self.Verb))
13704
        return b''.join(packet)
13705
13706 1
    @staticmethod
13707
    def from_binary(data):
13708
        return ModelChangeStructureDataType(data)
13709
13710 1
    def _binary_init(self, data):
13711
        self.Affected = NodeId.from_binary(data)
13712
        self.AffectedType = NodeId.from_binary(data)
13713
        self.Verb = uatype_Byte.unpack(data.read(1))[0]
13714
13715 1
    def __str__(self):
13716
        return 'ModelChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', ' + \
13717
               'AffectedType:' + str(self.AffectedType) + ', ' + \
13718
               'Verb:' + str(self.Verb) + ')'
13719
13720 1
    __repr__ = __str__
13721
13722
13723 1
class SemanticChangeStructureDataType(FrozenClass):
13724
    '''
13725
    :ivar Affected:
13726
    :vartype Affected: NodeId
13727
    :ivar AffectedType:
13728
    :vartype AffectedType: NodeId
13729
    '''
13730 1
    def __init__(self, binary=None):
13731
        if binary is not None:
13732
            self._binary_init(binary)
13733
            self._freeze = True
13734
            return
13735
        self.Affected = NodeId()
13736
        self.AffectedType = NodeId()
13737
        self._freeze = True
13738
13739 1
    def to_binary(self):
13740
        packet = []
13741
        packet.append(self.Affected.to_binary())
13742
        packet.append(self.AffectedType.to_binary())
13743
        return b''.join(packet)
13744
13745 1
    @staticmethod
13746
    def from_binary(data):
13747
        return SemanticChangeStructureDataType(data)
13748
13749 1
    def _binary_init(self, data):
13750
        self.Affected = NodeId.from_binary(data)
13751
        self.AffectedType = NodeId.from_binary(data)
13752
13753 1
    def __str__(self):
13754
        return 'SemanticChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', ' + \
13755
               'AffectedType:' + str(self.AffectedType) + ')'
13756
13757 1
    __repr__ = __str__
13758
13759
13760 1
class Range(FrozenClass):
13761
    '''
13762
    :ivar Low:
13763
    :vartype Low: Double
13764
    :ivar High:
13765
    :vartype High: Double
13766
    '''
13767 1
    def __init__(self, binary=None):
13768
        if binary is not None:
13769
            self._binary_init(binary)
13770
            self._freeze = True
13771
            return
13772
        self.Low = 0
13773
        self.High = 0
13774
        self._freeze = True
13775
13776 1
    def to_binary(self):
13777
        packet = []
13778
        packet.append(uatype_Double.pack(self.Low))
13779
        packet.append(uatype_Double.pack(self.High))
13780
        return b''.join(packet)
13781
13782 1
    @staticmethod
13783
    def from_binary(data):
13784
        return Range(data)
13785
13786 1
    def _binary_init(self, data):
13787
        self.Low = uatype_Double.unpack(data.read(8))[0]
13788
        self.High = uatype_Double.unpack(data.read(8))[0]
13789
13790 1
    def __str__(self):
13791
        return 'Range(' + 'Low:' + str(self.Low) + ', ' + \
13792
               'High:' + str(self.High) + ')'
13793
13794 1
    __repr__ = __str__
13795
13796
13797 1
class EUInformation(FrozenClass):
13798
    '''
13799
    :ivar NamespaceUri:
13800
    :vartype NamespaceUri: String
13801
    :ivar UnitId:
13802
    :vartype UnitId: Int32
13803
    :ivar DisplayName:
13804
    :vartype DisplayName: LocalizedText
13805
    :ivar Description:
13806
    :vartype Description: LocalizedText
13807
    '''
13808 1
    def __init__(self, binary=None):
13809
        if binary is not None:
13810
            self._binary_init(binary)
13811
            self._freeze = True
13812
            return
13813
        self.NamespaceUri = ''
13814
        self.UnitId = 0
13815
        self.DisplayName = LocalizedText()
13816
        self.Description = LocalizedText()
13817
        self._freeze = True
13818
13819 1
    def to_binary(self):
13820
        packet = []
13821
        packet.append(pack_string(self.NamespaceUri))
13822
        packet.append(uatype_Int32.pack(self.UnitId))
13823
        packet.append(self.DisplayName.to_binary())
13824
        packet.append(self.Description.to_binary())
13825
        return b''.join(packet)
13826
13827 1
    @staticmethod
13828
    def from_binary(data):
13829
        return EUInformation(data)
13830
13831 1
    def _binary_init(self, data):
13832
        self.NamespaceUri = unpack_string(data)
13833
        self.UnitId = uatype_Int32.unpack(data.read(4))[0]
13834
        self.DisplayName = LocalizedText.from_binary(data)
13835
        self.Description = LocalizedText.from_binary(data)
13836
13837 1
    def __str__(self):
13838
        return 'EUInformation(' + 'NamespaceUri:' + str(self.NamespaceUri) + ', ' + \
13839
               'UnitId:' + str(self.UnitId) + ', ' + \
13840
               'DisplayName:' + str(self.DisplayName) + ', ' + \
13841
               'Description:' + str(self.Description) + ')'
13842
13843 1
    __repr__ = __str__
13844
13845
13846 1
class ComplexNumberType(FrozenClass):
13847
    '''
13848
    :ivar Real:
13849
    :vartype Real: Float
13850
    :ivar Imaginary:
13851
    :vartype Imaginary: Float
13852
    '''
13853 1
    def __init__(self, binary=None):
13854
        if binary is not None:
13855
            self._binary_init(binary)
13856
            self._freeze = True
13857
            return
13858
        self.Real = 0
13859
        self.Imaginary = 0
13860
        self._freeze = True
13861
13862 1
    def to_binary(self):
13863
        packet = []
13864
        packet.append(uatype_Float.pack(self.Real))
13865
        packet.append(uatype_Float.pack(self.Imaginary))
13866
        return b''.join(packet)
13867
13868 1
    @staticmethod
13869
    def from_binary(data):
13870
        return ComplexNumberType(data)
13871
13872 1
    def _binary_init(self, data):
13873
        self.Real = uatype_Float.unpack(data.read(4))[0]
13874
        self.Imaginary = uatype_Float.unpack(data.read(4))[0]
13875
13876 1
    def __str__(self):
13877
        return 'ComplexNumberType(' + 'Real:' + str(self.Real) + ', ' + \
13878
               'Imaginary:' + str(self.Imaginary) + ')'
13879
13880 1
    __repr__ = __str__
13881
13882
13883 1
class DoubleComplexNumberType(FrozenClass):
13884
    '''
13885
    :ivar Real:
13886
    :vartype Real: Double
13887
    :ivar Imaginary:
13888
    :vartype Imaginary: Double
13889
    '''
13890 1
    def __init__(self, binary=None):
13891
        if binary is not None:
13892
            self._binary_init(binary)
13893
            self._freeze = True
13894
            return
13895
        self.Real = 0
13896
        self.Imaginary = 0
13897
        self._freeze = True
13898
13899 1
    def to_binary(self):
13900
        packet = []
13901
        packet.append(uatype_Double.pack(self.Real))
13902
        packet.append(uatype_Double.pack(self.Imaginary))
13903
        return b''.join(packet)
13904
13905 1
    @staticmethod
13906
    def from_binary(data):
13907
        return DoubleComplexNumberType(data)
13908
13909 1
    def _binary_init(self, data):
13910
        self.Real = uatype_Double.unpack(data.read(8))[0]
13911
        self.Imaginary = uatype_Double.unpack(data.read(8))[0]
13912
13913 1
    def __str__(self):
13914
        return 'DoubleComplexNumberType(' + 'Real:' + str(self.Real) + ', ' + \
13915
               'Imaginary:' + str(self.Imaginary) + ')'
13916
13917 1
    __repr__ = __str__
13918
13919
13920 1
class AxisInformation(FrozenClass):
13921
    '''
13922
    :ivar EngineeringUnits:
13923
    :vartype EngineeringUnits: EUInformation
13924
    :ivar EURange:
13925
    :vartype EURange: Range
13926
    :ivar Title:
13927
    :vartype Title: LocalizedText
13928
    :ivar AxisScaleType:
13929
    :vartype AxisScaleType: AxisScaleEnumeration
13930
    :ivar AxisSteps:
13931
    :vartype AxisSteps: Double
13932
    '''
13933 1
    def __init__(self, binary=None):
13934
        if binary is not None:
13935
            self._binary_init(binary)
13936
            self._freeze = True
13937
            return
13938
        self.EngineeringUnits = EUInformation()
13939
        self.EURange = Range()
13940
        self.Title = LocalizedText()
13941
        self.AxisScaleType = AxisScaleEnumeration(0)
13942
        self.AxisSteps = []
13943
        self._freeze = True
13944
13945 1
    def to_binary(self):
13946
        packet = []
13947
        packet.append(self.EngineeringUnits.to_binary())
13948
        packet.append(self.EURange.to_binary())
13949
        packet.append(self.Title.to_binary())
13950
        packet.append(uatype_UInt32.pack(self.AxisScaleType.value))
13951
        packet.append(uatype_Int32.pack(len(self.AxisSteps)))
13952
        for fieldname in self.AxisSteps:
13953
            packet.append(uatype_Double.pack(fieldname))
13954
        return b''.join(packet)
13955
13956 1
    @staticmethod
13957
    def from_binary(data):
13958
        return AxisInformation(data)
13959
13960 1
    def _binary_init(self, data):
13961
        self.EngineeringUnits = EUInformation.from_binary(data)
13962
        self.EURange = Range.from_binary(data)
13963
        self.Title = LocalizedText.from_binary(data)
13964
        self.AxisScaleType = AxisScaleEnumeration(uatype_UInt32.unpack(data.read(4))[0])
13965
        self.AxisSteps = unpack_uatype_array('Double', data)
13966
13967 1
    def __str__(self):
13968
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \
13969
               'EURange:' + str(self.EURange) + ', ' + \
13970
               'Title:' + str(self.Title) + ', ' + \
13971
               'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \
13972
               'AxisSteps:' + str(self.AxisSteps) + ')'
13973
13974 1
    __repr__ = __str__
13975
13976
13977 1
class XVType(FrozenClass):
13978
    '''
13979
    :ivar X:
13980
    :vartype X: Double
13981
    :ivar Value:
13982
    :vartype Value: Float
13983
    '''
13984 1
    def __init__(self, binary=None):
13985
        if binary is not None:
13986
            self._binary_init(binary)
13987
            self._freeze = True
13988
            return
13989
        self.X = 0
13990
        self.Value = 0
13991
        self._freeze = True
13992
13993 1
    def to_binary(self):
13994
        packet = []
13995
        packet.append(uatype_Double.pack(self.X))
13996
        packet.append(uatype_Float.pack(self.Value))
13997
        return b''.join(packet)
13998
13999 1
    @staticmethod
14000
    def from_binary(data):
14001
        return XVType(data)
14002
14003 1
    def _binary_init(self, data):
14004
        self.X = uatype_Double.unpack(data.read(8))[0]
14005
        self.Value = uatype_Float.unpack(data.read(4))[0]
14006
14007 1
    def __str__(self):
14008
        return 'XVType(' + 'X:' + str(self.X) + ', ' + \
14009
               'Value:' + str(self.Value) + ')'
14010
14011 1
    __repr__ = __str__
14012
14013
14014 1
class ProgramDiagnosticDataType(FrozenClass):
14015
    '''
14016
    :ivar CreateSessionId:
14017
    :vartype CreateSessionId: NodeId
14018
    :ivar CreateClientName:
14019
    :vartype CreateClientName: String
14020
    :ivar InvocationCreationTime:
14021
    :vartype InvocationCreationTime: DateTime
14022
    :ivar LastTransitionTime:
14023
    :vartype LastTransitionTime: DateTime
14024
    :ivar LastMethodCall:
14025
    :vartype LastMethodCall: String
14026
    :ivar LastMethodSessionId:
14027
    :vartype LastMethodSessionId: NodeId
14028
    :ivar LastMethodInputArguments:
14029
    :vartype LastMethodInputArguments: Argument
14030
    :ivar LastMethodOutputArguments:
14031
    :vartype LastMethodOutputArguments: Argument
14032
    :ivar LastMethodCallTime:
14033
    :vartype LastMethodCallTime: DateTime
14034
    :ivar LastMethodReturnStatus:
14035
    :vartype LastMethodReturnStatus: StatusResult
14036
    '''
14037 1
    def __init__(self, binary=None):
14038
        if binary is not None:
14039
            self._binary_init(binary)
14040
            self._freeze = True
14041
            return
14042
        self.CreateSessionId = NodeId()
14043
        self.CreateClientName = ''
14044
        self.InvocationCreationTime = datetime.now()
14045
        self.LastTransitionTime = datetime.now()
14046
        self.LastMethodCall = ''
14047
        self.LastMethodSessionId = NodeId()
14048
        self.LastMethodInputArguments = []
14049
        self.LastMethodOutputArguments = []
14050
        self.LastMethodCallTime = datetime.now()
14051
        self.LastMethodReturnStatus = StatusResult()
14052
        self._freeze = True
14053
14054 1
    def to_binary(self):
14055
        packet = []
14056
        packet.append(self.CreateSessionId.to_binary())
14057
        packet.append(pack_string(self.CreateClientName))
14058
        packet.append(pack_datetime(self.InvocationCreationTime))
14059
        packet.append(pack_datetime(self.LastTransitionTime))
14060
        packet.append(pack_string(self.LastMethodCall))
14061
        packet.append(self.LastMethodSessionId.to_binary())
14062
        packet.append(uatype_Int32.pack(len(self.LastMethodInputArguments)))
14063
        for fieldname in self.LastMethodInputArguments:
14064
            packet.append(fieldname.to_binary())
14065
        packet.append(uatype_Int32.pack(len(self.LastMethodOutputArguments)))
14066
        for fieldname in self.LastMethodOutputArguments:
14067
            packet.append(fieldname.to_binary())
14068
        packet.append(pack_datetime(self.LastMethodCallTime))
14069
        packet.append(self.LastMethodReturnStatus.to_binary())
14070
        return b''.join(packet)
14071
14072 1
    @staticmethod
14073
    def from_binary(data):
14074
        return ProgramDiagnosticDataType(data)
14075
14076 1
    def _binary_init(self, data):
14077
        self.CreateSessionId = NodeId.from_binary(data)
14078
        self.CreateClientName = unpack_string(data)
14079
        self.InvocationCreationTime = unpack_datetime(data)
14080
        self.LastTransitionTime = unpack_datetime(data)
14081
        self.LastMethodCall = unpack_string(data)
14082
        self.LastMethodSessionId = NodeId.from_binary(data)
14083
        length = uatype_Int32.unpack(data.read(4))[0]
14084
        array = []
14085
        if length != -1:
14086
            for _ in range(0, length):
14087
                array.append(Argument.from_binary(data))
14088
        self.LastMethodInputArguments = array
14089
        length = uatype_Int32.unpack(data.read(4))[0]
14090
        array = []
14091
        if length != -1:
14092
            for _ in range(0, length):
14093
                array.append(Argument.from_binary(data))
14094
        self.LastMethodOutputArguments = array
14095
        self.LastMethodCallTime = unpack_datetime(data)
14096
        self.LastMethodReturnStatus = StatusResult.from_binary(data)
14097
14098 1
    def __str__(self):
14099
        return 'ProgramDiagnosticDataType(' + 'CreateSessionId:' + str(self.CreateSessionId) + ', ' + \
14100
               'CreateClientName:' + str(self.CreateClientName) + ', ' + \
14101
               'InvocationCreationTime:' + str(self.InvocationCreationTime) + ', ' + \
14102
               'LastTransitionTime:' + str(self.LastTransitionTime) + ', ' + \
14103
               'LastMethodCall:' + str(self.LastMethodCall) + ', ' + \
14104
               'LastMethodSessionId:' + str(self.LastMethodSessionId) + ', ' + \
14105
               'LastMethodInputArguments:' + str(self.LastMethodInputArguments) + ', ' + \
14106
               'LastMethodOutputArguments:' + str(self.LastMethodOutputArguments) + ', ' + \
14107
               'LastMethodCallTime:' + str(self.LastMethodCallTime) + ', ' + \
14108
               'LastMethodReturnStatus:' + str(self.LastMethodReturnStatus) + ')'
14109
14110 1
    __repr__ = __str__
14111
14112
14113 1
class Annotation(FrozenClass):
14114
    '''
14115
    :ivar Message:
14116
    :vartype Message: String
14117
    :ivar UserName:
14118
    :vartype UserName: String
14119
    :ivar AnnotationTime:
14120
    :vartype AnnotationTime: DateTime
14121
    '''
14122 1
    def __init__(self, binary=None):
14123
        if binary is not None:
14124
            self._binary_init(binary)
14125
            self._freeze = True
14126
            return
14127
        self.Message = ''
14128
        self.UserName = ''
14129
        self.AnnotationTime = datetime.now()
14130
        self._freeze = True
14131
14132 1
    def to_binary(self):
14133
        packet = []
14134
        packet.append(pack_string(self.Message))
14135
        packet.append(pack_string(self.UserName))
14136
        packet.append(pack_datetime(self.AnnotationTime))
14137
        return b''.join(packet)
14138
14139 1
    @staticmethod
14140
    def from_binary(data):
14141
        return Annotation(data)
14142
14143 1
    def _binary_init(self, data):
14144
        self.Message = unpack_string(data)
14145
        self.UserName = unpack_string(data)
14146
        self.AnnotationTime = unpack_datetime(data)
14147
14148 1
    def __str__(self):
14149
        return 'Annotation(' + 'Message:' + str(self.Message) + ', ' + \
14150
               'UserName:' + str(self.UserName) + ', ' + \
14151
               'AnnotationTime:' + str(self.AnnotationTime) + ')'
14152
14153 1
    __repr__ = __str__
14154
14155
14156 1
ExtensionClasses = {
14157
    ObjectIds.TrustListDataType_Encoding_DefaultBinary: TrustListDataType,
14158
    ObjectIds.Argument_Encoding_DefaultBinary: Argument,
14159
    ObjectIds.EnumValueType_Encoding_DefaultBinary: EnumValueType,
14160
    ObjectIds.OptionSet_Encoding_DefaultBinary: OptionSet,
14161
    ObjectIds.Union_Encoding_DefaultBinary: Union,
14162
    ObjectIds.TimeZoneDataType_Encoding_DefaultBinary: TimeZoneDataType,
14163
    ObjectIds.ApplicationDescription_Encoding_DefaultBinary: ApplicationDescription,
14164
    ObjectIds.RequestHeader_Encoding_DefaultBinary: RequestHeader,
14165
    ObjectIds.ResponseHeader_Encoding_DefaultBinary: ResponseHeader,
14166
    ObjectIds.ServiceFault_Encoding_DefaultBinary: ServiceFault,
14167
    ObjectIds.FindServersRequest_Encoding_DefaultBinary: FindServersRequest,
14168
    ObjectIds.FindServersResponse_Encoding_DefaultBinary: FindServersResponse,
14169
    ObjectIds.ServerOnNetwork_Encoding_DefaultBinary: ServerOnNetwork,
14170
    ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary: FindServersOnNetworkRequest,
14171
    ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary: FindServersOnNetworkResponse,
14172
    ObjectIds.UserTokenPolicy_Encoding_DefaultBinary: UserTokenPolicy,
14173
    ObjectIds.EndpointDescription_Encoding_DefaultBinary: EndpointDescription,
14174
    ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary: GetEndpointsRequest,
14175
    ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary: GetEndpointsResponse,
14176
    ObjectIds.RegisteredServer_Encoding_DefaultBinary: RegisteredServer,
14177
    ObjectIds.RegisterServerRequest_Encoding_DefaultBinary: RegisterServerRequest,
14178
    ObjectIds.RegisterServerResponse_Encoding_DefaultBinary: RegisterServerResponse,
14179
    ObjectIds.DiscoveryConfiguration_Encoding_DefaultBinary: DiscoveryConfiguration,
14180
    ObjectIds.MdnsDiscoveryConfiguration_Encoding_DefaultBinary: MdnsDiscoveryConfiguration,
14181
    ObjectIds.RegisterServer2Request_Encoding_DefaultBinary: RegisterServer2Request,
14182
    ObjectIds.RegisterServer2Response_Encoding_DefaultBinary: RegisterServer2Response,
14183
    ObjectIds.ChannelSecurityToken_Encoding_DefaultBinary: ChannelSecurityToken,
14184
    ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary: OpenSecureChannelRequest,
14185
    ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary: OpenSecureChannelResponse,
14186
    ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary: CloseSecureChannelRequest,
14187
    ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary: CloseSecureChannelResponse,
14188
    ObjectIds.SignedSoftwareCertificate_Encoding_DefaultBinary: SignedSoftwareCertificate,
14189
    ObjectIds.SignatureData_Encoding_DefaultBinary: SignatureData,
14190
    ObjectIds.CreateSessionRequest_Encoding_DefaultBinary: CreateSessionRequest,
14191
    ObjectIds.CreateSessionResponse_Encoding_DefaultBinary: CreateSessionResponse,
14192
    ObjectIds.UserIdentityToken_Encoding_DefaultBinary: UserIdentityToken,
14193
    ObjectIds.AnonymousIdentityToken_Encoding_DefaultBinary: AnonymousIdentityToken,
14194
    ObjectIds.UserNameIdentityToken_Encoding_DefaultBinary: UserNameIdentityToken,
14195
    ObjectIds.X509IdentityToken_Encoding_DefaultBinary: X509IdentityToken,
14196
    ObjectIds.KerberosIdentityToken_Encoding_DefaultBinary: KerberosIdentityToken,
14197
    ObjectIds.IssuedIdentityToken_Encoding_DefaultBinary: IssuedIdentityToken,
14198
    ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary: ActivateSessionRequest,
14199
    ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary: ActivateSessionResponse,
14200
    ObjectIds.CloseSessionRequest_Encoding_DefaultBinary: CloseSessionRequest,
14201
    ObjectIds.CloseSessionResponse_Encoding_DefaultBinary: CloseSessionResponse,
14202
    ObjectIds.CancelRequest_Encoding_DefaultBinary: CancelRequest,
14203
    ObjectIds.CancelResponse_Encoding_DefaultBinary: CancelResponse,
14204
    ObjectIds.NodeAttributes_Encoding_DefaultBinary: NodeAttributes,
14205
    ObjectIds.ObjectAttributes_Encoding_DefaultBinary: ObjectAttributes,
14206
    ObjectIds.VariableAttributes_Encoding_DefaultBinary: VariableAttributes,
14207
    ObjectIds.MethodAttributes_Encoding_DefaultBinary: MethodAttributes,
14208
    ObjectIds.ObjectTypeAttributes_Encoding_DefaultBinary: ObjectTypeAttributes,
14209
    ObjectIds.VariableTypeAttributes_Encoding_DefaultBinary: VariableTypeAttributes,
14210
    ObjectIds.ReferenceTypeAttributes_Encoding_DefaultBinary: ReferenceTypeAttributes,
14211
    ObjectIds.DataTypeAttributes_Encoding_DefaultBinary: DataTypeAttributes,
14212
    ObjectIds.ViewAttributes_Encoding_DefaultBinary: ViewAttributes,
14213
    ObjectIds.AddNodesItem_Encoding_DefaultBinary: AddNodesItem,
14214
    ObjectIds.AddNodesResult_Encoding_DefaultBinary: AddNodesResult,
14215
    ObjectIds.AddNodesRequest_Encoding_DefaultBinary: AddNodesRequest,
14216
    ObjectIds.AddNodesResponse_Encoding_DefaultBinary: AddNodesResponse,
14217
    ObjectIds.AddReferencesItem_Encoding_DefaultBinary: AddReferencesItem,
14218
    ObjectIds.AddReferencesRequest_Encoding_DefaultBinary: AddReferencesRequest,
14219
    ObjectIds.AddReferencesResponse_Encoding_DefaultBinary: AddReferencesResponse,
14220
    ObjectIds.DeleteNodesItem_Encoding_DefaultBinary: DeleteNodesItem,
14221
    ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary: DeleteNodesRequest,
14222
    ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary: DeleteNodesResponse,
14223
    ObjectIds.DeleteReferencesItem_Encoding_DefaultBinary: DeleteReferencesItem,
14224
    ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary: DeleteReferencesRequest,
14225
    ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary: DeleteReferencesResponse,
14226
    ObjectIds.ViewDescription_Encoding_DefaultBinary: ViewDescription,
14227
    ObjectIds.BrowseDescription_Encoding_DefaultBinary: BrowseDescription,
14228
    ObjectIds.ReferenceDescription_Encoding_DefaultBinary: ReferenceDescription,
14229
    ObjectIds.BrowseResult_Encoding_DefaultBinary: BrowseResult,
14230
    ObjectIds.BrowseRequest_Encoding_DefaultBinary: BrowseRequest,
14231
    ObjectIds.BrowseResponse_Encoding_DefaultBinary: BrowseResponse,
14232
    ObjectIds.BrowseNextRequest_Encoding_DefaultBinary: BrowseNextRequest,
14233
    ObjectIds.BrowseNextResponse_Encoding_DefaultBinary: BrowseNextResponse,
14234
    ObjectIds.RelativePathElement_Encoding_DefaultBinary: RelativePathElement,
14235
    ObjectIds.RelativePath_Encoding_DefaultBinary: RelativePath,
14236
    ObjectIds.BrowsePath_Encoding_DefaultBinary: BrowsePath,
14237
    ObjectIds.BrowsePathTarget_Encoding_DefaultBinary: BrowsePathTarget,
14238
    ObjectIds.BrowsePathResult_Encoding_DefaultBinary: BrowsePathResult,
14239
    ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary: TranslateBrowsePathsToNodeIdsRequest,
14240
    ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary: TranslateBrowsePathsToNodeIdsResponse,
14241
    ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary: RegisterNodesRequest,
14242
    ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary: RegisterNodesResponse,
14243
    ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary: UnregisterNodesRequest,
14244
    ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary: UnregisterNodesResponse,
14245
    ObjectIds.EndpointConfiguration_Encoding_DefaultBinary: EndpointConfiguration,
14246
    ObjectIds.SupportedProfile_Encoding_DefaultBinary: SupportedProfile,
14247
    ObjectIds.SoftwareCertificate_Encoding_DefaultBinary: SoftwareCertificate,
14248
    ObjectIds.QueryDataDescription_Encoding_DefaultBinary: QueryDataDescription,
14249
    ObjectIds.NodeTypeDescription_Encoding_DefaultBinary: NodeTypeDescription,
14250
    ObjectIds.QueryDataSet_Encoding_DefaultBinary: QueryDataSet,
14251
    ObjectIds.NodeReference_Encoding_DefaultBinary: NodeReference,
14252
    ObjectIds.ContentFilterElement_Encoding_DefaultBinary: ContentFilterElement,
14253
    ObjectIds.ContentFilter_Encoding_DefaultBinary: ContentFilter,
14254
    ObjectIds.ElementOperand_Encoding_DefaultBinary: ElementOperand,
14255
    ObjectIds.LiteralOperand_Encoding_DefaultBinary: LiteralOperand,
14256
    ObjectIds.AttributeOperand_Encoding_DefaultBinary: AttributeOperand,
14257
    ObjectIds.SimpleAttributeOperand_Encoding_DefaultBinary: SimpleAttributeOperand,
14258
    ObjectIds.ContentFilterElementResult_Encoding_DefaultBinary: ContentFilterElementResult,
14259
    ObjectIds.ContentFilterResult_Encoding_DefaultBinary: ContentFilterResult,
14260
    ObjectIds.ParsingResult_Encoding_DefaultBinary: ParsingResult,
14261
    ObjectIds.QueryFirstRequest_Encoding_DefaultBinary: QueryFirstRequest,
14262
    ObjectIds.QueryFirstResponse_Encoding_DefaultBinary: QueryFirstResponse,
14263
    ObjectIds.QueryNextRequest_Encoding_DefaultBinary: QueryNextRequest,
14264
    ObjectIds.QueryNextResponse_Encoding_DefaultBinary: QueryNextResponse,
14265
    ObjectIds.ReadValueId_Encoding_DefaultBinary: ReadValueId,
14266
    ObjectIds.ReadRequest_Encoding_DefaultBinary: ReadRequest,
14267
    ObjectIds.ReadResponse_Encoding_DefaultBinary: ReadResponse,
14268
    ObjectIds.HistoryReadValueId_Encoding_DefaultBinary: HistoryReadValueId,
14269
    ObjectIds.HistoryReadResult_Encoding_DefaultBinary: HistoryReadResult,
14270
    ObjectIds.HistoryReadDetails_Encoding_DefaultBinary: HistoryReadDetails,
14271
    ObjectIds.ReadEventDetails_Encoding_DefaultBinary: ReadEventDetails,
14272
    ObjectIds.ReadRawModifiedDetails_Encoding_DefaultBinary: ReadRawModifiedDetails,
14273
    ObjectIds.ReadProcessedDetails_Encoding_DefaultBinary: ReadProcessedDetails,
14274
    ObjectIds.ReadAtTimeDetails_Encoding_DefaultBinary: ReadAtTimeDetails,
14275
    ObjectIds.HistoryData_Encoding_DefaultBinary: HistoryData,
14276
    ObjectIds.ModificationInfo_Encoding_DefaultBinary: ModificationInfo,
14277
    ObjectIds.HistoryModifiedData_Encoding_DefaultBinary: HistoryModifiedData,
14278
    ObjectIds.HistoryEvent_Encoding_DefaultBinary: HistoryEvent,
14279
    ObjectIds.HistoryReadRequest_Encoding_DefaultBinary: HistoryReadRequest,
14280
    ObjectIds.HistoryReadResponse_Encoding_DefaultBinary: HistoryReadResponse,
14281
    ObjectIds.WriteValue_Encoding_DefaultBinary: WriteValue,
14282
    ObjectIds.WriteRequest_Encoding_DefaultBinary: WriteRequest,
14283
    ObjectIds.WriteResponse_Encoding_DefaultBinary: WriteResponse,
14284
    ObjectIds.HistoryUpdateDetails_Encoding_DefaultBinary: HistoryUpdateDetails,
14285
    ObjectIds.UpdateDataDetails_Encoding_DefaultBinary: UpdateDataDetails,
14286
    ObjectIds.UpdateStructureDataDetails_Encoding_DefaultBinary: UpdateStructureDataDetails,
14287
    ObjectIds.UpdateEventDetails_Encoding_DefaultBinary: UpdateEventDetails,
14288
    ObjectIds.DeleteRawModifiedDetails_Encoding_DefaultBinary: DeleteRawModifiedDetails,
14289
    ObjectIds.DeleteAtTimeDetails_Encoding_DefaultBinary: DeleteAtTimeDetails,
14290
    ObjectIds.DeleteEventDetails_Encoding_DefaultBinary: DeleteEventDetails,
14291
    ObjectIds.HistoryUpdateResult_Encoding_DefaultBinary: HistoryUpdateResult,
14292
    ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary: HistoryUpdateRequest,
14293
    ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary: HistoryUpdateResponse,
14294
    ObjectIds.CallMethodRequest_Encoding_DefaultBinary: CallMethodRequest,
14295
    ObjectIds.CallMethodResult_Encoding_DefaultBinary: CallMethodResult,
14296
    ObjectIds.CallRequest_Encoding_DefaultBinary: CallRequest,
14297
    ObjectIds.CallResponse_Encoding_DefaultBinary: CallResponse,
14298
    ObjectIds.MonitoringFilter_Encoding_DefaultBinary: MonitoringFilter,
14299
    ObjectIds.DataChangeFilter_Encoding_DefaultBinary: DataChangeFilter,
14300
    ObjectIds.EventFilter_Encoding_DefaultBinary: EventFilter,
14301
    ObjectIds.AggregateConfiguration_Encoding_DefaultBinary: AggregateConfiguration,
14302
    ObjectIds.AggregateFilter_Encoding_DefaultBinary: AggregateFilter,
14303
    ObjectIds.MonitoringFilterResult_Encoding_DefaultBinary: MonitoringFilterResult,
14304
    ObjectIds.EventFilterResult_Encoding_DefaultBinary: EventFilterResult,
14305
    ObjectIds.AggregateFilterResult_Encoding_DefaultBinary: AggregateFilterResult,
14306
    ObjectIds.MonitoringParameters_Encoding_DefaultBinary: MonitoringParameters,
14307
    ObjectIds.MonitoredItemCreateRequest_Encoding_DefaultBinary: MonitoredItemCreateRequest,
14308
    ObjectIds.MonitoredItemCreateResult_Encoding_DefaultBinary: MonitoredItemCreateResult,
14309
    ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary: CreateMonitoredItemsRequest,
14310
    ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary: CreateMonitoredItemsResponse,
14311
    ObjectIds.MonitoredItemModifyRequest_Encoding_DefaultBinary: MonitoredItemModifyRequest,
14312
    ObjectIds.MonitoredItemModifyResult_Encoding_DefaultBinary: MonitoredItemModifyResult,
14313
    ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary: ModifyMonitoredItemsRequest,
14314
    ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary: ModifyMonitoredItemsResponse,
14315
    ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary: SetMonitoringModeRequest,
14316
    ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary: SetMonitoringModeResponse,
14317
    ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary: SetTriggeringRequest,
14318
    ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary: SetTriggeringResponse,
14319
    ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary: DeleteMonitoredItemsRequest,
14320
    ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary: DeleteMonitoredItemsResponse,
14321
    ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary: CreateSubscriptionRequest,
14322
    ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary: CreateSubscriptionResponse,
14323
    ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary: ModifySubscriptionRequest,
14324
    ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary: ModifySubscriptionResponse,
14325
    ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary: SetPublishingModeRequest,
14326
    ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary: SetPublishingModeResponse,
14327
    ObjectIds.NotificationMessage_Encoding_DefaultBinary: NotificationMessage,
14328
    ObjectIds.NotificationData_Encoding_DefaultBinary: NotificationData,
14329
    ObjectIds.DataChangeNotification_Encoding_DefaultBinary: DataChangeNotification,
14330
    ObjectIds.MonitoredItemNotification_Encoding_DefaultBinary: MonitoredItemNotification,
14331
    ObjectIds.EventNotificationList_Encoding_DefaultBinary: EventNotificationList,
14332
    ObjectIds.EventFieldList_Encoding_DefaultBinary: EventFieldList,
14333
    ObjectIds.HistoryEventFieldList_Encoding_DefaultBinary: HistoryEventFieldList,
14334
    ObjectIds.StatusChangeNotification_Encoding_DefaultBinary: StatusChangeNotification,
14335
    ObjectIds.SubscriptionAcknowledgement_Encoding_DefaultBinary: SubscriptionAcknowledgement,
14336
    ObjectIds.PublishRequest_Encoding_DefaultBinary: PublishRequest,
14337
    ObjectIds.PublishResponse_Encoding_DefaultBinary: PublishResponse,
14338
    ObjectIds.RepublishRequest_Encoding_DefaultBinary: RepublishRequest,
14339
    ObjectIds.RepublishResponse_Encoding_DefaultBinary: RepublishResponse,
14340
    ObjectIds.TransferResult_Encoding_DefaultBinary: TransferResult,
14341
    ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary: TransferSubscriptionsRequest,
14342
    ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary: TransferSubscriptionsResponse,
14343
    ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary: DeleteSubscriptionsRequest,
14344
    ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary: DeleteSubscriptionsResponse,
14345
    ObjectIds.BuildInfo_Encoding_DefaultBinary: BuildInfo,
14346
    ObjectIds.RedundantServerDataType_Encoding_DefaultBinary: RedundantServerDataType,
14347
    ObjectIds.EndpointUrlListDataType_Encoding_DefaultBinary: EndpointUrlListDataType,
14348
    ObjectIds.NetworkGroupDataType_Encoding_DefaultBinary: NetworkGroupDataType,
14349
    ObjectIds.SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary: SamplingIntervalDiagnosticsDataType,
14350
    ObjectIds.ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary: ServerDiagnosticsSummaryDataType,
14351
    ObjectIds.ServerStatusDataType_Encoding_DefaultBinary: ServerStatusDataType,
14352
    ObjectIds.SessionDiagnosticsDataType_Encoding_DefaultBinary: SessionDiagnosticsDataType,
14353
    ObjectIds.SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary: SessionSecurityDiagnosticsDataType,
14354
    ObjectIds.ServiceCounterDataType_Encoding_DefaultBinary: ServiceCounterDataType,
14355
    ObjectIds.StatusResult_Encoding_DefaultBinary: StatusResult,
14356
    ObjectIds.SubscriptionDiagnosticsDataType_Encoding_DefaultBinary: SubscriptionDiagnosticsDataType,
14357
    ObjectIds.ModelChangeStructureDataType_Encoding_DefaultBinary: ModelChangeStructureDataType,
14358
    ObjectIds.SemanticChangeStructureDataType_Encoding_DefaultBinary: SemanticChangeStructureDataType,
14359
    ObjectIds.Range_Encoding_DefaultBinary: Range,
14360
    ObjectIds.EUInformation_Encoding_DefaultBinary: EUInformation,
14361
    ObjectIds.ComplexNumberType_Encoding_DefaultBinary: ComplexNumberType,
14362
    ObjectIds.DoubleComplexNumberType_Encoding_DefaultBinary: DoubleComplexNumberType,
14363
    ObjectIds.AxisInformation_Encoding_DefaultBinary: AxisInformation,
14364
    ObjectIds.XVType_Encoding_DefaultBinary: XVType,
14365
    ObjectIds.ProgramDiagnosticDataType_Encoding_DefaultBinary: ProgramDiagnosticDataType,
14366
    ObjectIds.Annotation_Encoding_DefaultBinary: Annotation,
14367
}
14368
14369
14370 1
def extensionobject_from_binary(data):
14371
    """
14372
    Convert binary-coded ExtensionObject to a Python object.
14373
    Returns an object, or None if TypeId is zero
14374
    """
14375 1
    TypeId = NodeId.from_binary(data)
14376 1
    Encoding = ord(data.read(1))
14377 1
    body = None
14378 1
    if Encoding & (1 << 0):
14379 1
        length = uatype_Int32.unpack(data.read(4))[0]
14380 1
        if length < 1:
14381
            body = Buffer(b"")
14382
        else:
14383 1
            body = data.copy(length)
14384 1
            data.skip(length)
14385 1
    if TypeId.Identifier == 0:
14386 1
        return None
14387 1
    elif TypeId.Identifier not in ExtensionClasses:
14388
        raise UAError("unknown ExtensionObject Type: {}".format(TypeId))
14389 1
    klass = ExtensionClasses[TypeId.Identifier]
14390 1
    if body is None:
14391
        raise UAError("parsing ExtensionObject {} without data".format(klass.__name__))
14392 1
    return klass.from_binary(body)
14393
14394
14395 1
def extensionobject_to_binary(obj):
14396
    """
14397
    Convert Python object to binary-coded ExtensionObject.
14398
    If obj is None, convert to empty ExtensionObject (TypeId = 0, no Body).
14399
    Returns a binary string
14400
    """
14401 1
    TypeId = NodeId()
14402 1
    Encoding = 0
14403 1
    Body = None
14404 1
    if obj is not None:
14405 1
        TypeId = FourByteNodeId(getattr(ObjectIds, "{}_Encoding_DefaultBinary".format(obj.__class__.__name__)))
14406 1
        Encoding |= (1 << 0)
14407 1
        Body = obj.to_binary()
14408 1
    packet = []
14409 1
    packet.append(TypeId.to_binary())
14410 1
    packet.append(uatype_UInt8.pack(Encoding))
14411 1
    if Body:
14412 1
        packet.append(pack_bytes(Body))
14413
    return b''.join(packet)
14414