chore(clients): regenerate for alarm truncation fields; READMEs note the degraded flag

Task 8 added ActiveAlarmSnapshot.from_truncated_snapshot = 16 and
QueryActiveAlarmsReplyPayload.snapshot_truncated = 2. Regenerate every
downstream binding from the canonical Contracts protos:

- client descriptor set (protoc 34.1 pin)
- Go (protoc-gen-go v1.36.11 / protoc-gen-go-grpc 1.6.2)
- Python (grpcio-tools 1.80.0 pin)
- Java (gradle generateProto)
- Rust vendored protos under clients/rust/protos, which build.rs falls back
  to for out-of-repo tarball builds and which must track Contracts

.NET needed no regeneration - the client compiles against the Contracts
Generated/ output already committed with the proto change. No client has a
typed wrapper model around ActiveAlarmSnapshot; all five pass the generated
type straight through, so codegen alone carries the field.

Each client README's alarm section gains a paragraph on the flag: the
snapshot set may omit actives and absence-implies-cleared inference was
suspended, so callers must not reconcile deletions from a truncated set.
Distinguished from the per-record 'degraded' subtag-fallback flag, which it
is easily confused with.
This commit is contained in:
Joseph Doherty
2026-08-17 04:48:20 -04:00
parent b9fb0dd720
commit d9ea8a81f1
10 changed files with 704 additions and 364 deletions
+7
View File
@@ -149,6 +149,13 @@ token and pass through the `MxGateway:Alarms` configuration on the
server — when alarms are disabled, the gateway returns an empty list / empty
stream rather than failing.
`ActiveAlarmSnapshot.FromTruncatedSnapshot` marks a record that came from a
provider fetch which hit the per-fetch cap: the snapshot set may omit active
alarms, and the gateway suspended its absence-implies-cleared inference for that
poll. Treat the set as possibly incomplete rather than reconciling deletions
from it. It is set-level degraded status, not a comment on the record's own
fidelity, and is distinct from `Degraded` (the subtag fallback provider).
`MxGatewaySession.CloseAsync` is explicit and idempotent. Repeated calls return
the first `CloseSessionReply` instead of sending another close request.
+8
View File
@@ -145,6 +145,14 @@ call returns a `StreamAlarmsClient`; cancel its context to terminate the
stream. All three pass straight through to the gateway's central alarm
monitor.
`ActiveAlarmSnapshot.GetFromTruncatedSnapshot()` reports that the record came
from a provider fetch which hit the per-fetch cap: the snapshot set may omit
active alarms, and the gateway suspended its absence-implies-cleared inference
for that poll. Treat the set as possibly incomplete rather than reconciling
deletions from it. It is set-level degraded status, not a comment on the
record's own fidelity, and is distinct from `Degraded` (the subtag fallback
provider).
## Write Semantics And Common Pitfalls
These are MXAccess parity behaviors that surprise new callers. The gateway
@@ -6103,10 +6103,17 @@ func (x *AcknowledgeAlarmReplyPayload) GetNativeStatus() int32 {
// an ActiveAlarmSnapshot proto for the gateway-side ConditionRefresh
// stream.
type QueryActiveAlarmsReplyPayload struct {
state protoimpl.MessageState `protogen:"open.v1"`
Snapshots []*ActiveAlarmSnapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
state protoimpl.MessageState `protogen:"open.v1"`
Snapshots []*ActiveAlarmSnapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
// True when the provider fetch backing this reply came back holding the
// per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
// active alarms, and the worker suspends its absence-implies-Clear inference
// for that poll — so a reference missing from `snapshots` is not evidence the
// alarm cleared. Carried on the payload as well as per-record because a
// truncated fetch that filters down to zero records still has to say so.
SnapshotTruncated bool `protobuf:"varint,2,opt,name=snapshot_truncated,json=snapshotTruncated,proto3" json:"snapshot_truncated,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryActiveAlarmsReplyPayload) Reset() {
@@ -6146,6 +6153,13 @@ func (x *QueryActiveAlarmsReplyPayload) GetSnapshots() []*ActiveAlarmSnapshot {
return nil
}
func (x *QueryActiveAlarmsReplyPayload) GetSnapshotTruncated() bool {
if x != nil {
return x.SnapshotTruncated
}
return false
}
type MxEvent struct {
state protoimpl.MessageState `protogen:"open.v1"`
Family MxEventFamily `protobuf:"varint,1,opt,name=family,proto3,enum=mxaccess_gateway.v1.MxEventFamily" json:"family,omitempty"`
@@ -6958,8 +6972,18 @@ type ActiveAlarmSnapshot struct {
// OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
// wire (never UNSPECIFIED).
SourceProvider AlarmProviderMode `protobuf:"varint,15,opt,name=source_provider,json=sourceProvider,proto3,enum=mxaccess_gateway.v1.AlarmProviderMode" json:"source_provider,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
// True when the provider fetch that produced this snapshot hit the per-fetch
// cap: the snapshot set may omit active alarms, and the worker suspended its
// absence-implies-Clear inference for that poll. Says nothing about THIS
// record's fidelity — the record is as accurate as any other; it flags that
// the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
// bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
// boolean is the only additive way to carry set-level degraded status on that
// RPC. Distinct from `degraded`, which is about the subtag fallback provider.
// Additive (proto3): clients that ignore it deserialize the stream unchanged.
FromTruncatedSnapshot bool `protobuf:"varint,16,opt,name=from_truncated_snapshot,json=fromTruncatedSnapshot,proto3" json:"from_truncated_snapshot,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ActiveAlarmSnapshot) Reset() {
@@ -7097,6 +7121,13 @@ func (x *ActiveAlarmSnapshot) GetSourceProvider() AlarmProviderMode {
return AlarmProviderMode_ALARM_PROVIDER_MODE_UNSPECIFIED
}
func (x *ActiveAlarmSnapshot) GetFromTruncatedSnapshot() bool {
if x != nil {
return x.FromTruncatedSnapshot
}
return false
}
type AcknowledgeAlarmRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientCorrelationId string `protobuf:"bytes,2,opt,name=client_correlation_id,json=clientCorrelationId,proto3" json:"client_correlation_id,omitempty"`
@@ -8979,9 +9010,10 @@ const file_mxaccess_gateway_proto_rawDesc = "" +
"\x10DrainEventsReply\x124\n" +
"\x06events\x18\x01 \x03(\v2\x1c.mxaccess_gateway.v1.MxEventR\x06events\"C\n" +
"\x1cAcknowledgeAlarmReplyPayload\x12#\n" +
"\rnative_status\x18\x01 \x01(\x05R\fnativeStatus\"g\n" +
"\rnative_status\x18\x01 \x01(\x05R\fnativeStatus\"\x96\x01\n" +
"\x1dQueryActiveAlarmsReplyPayload\x12F\n" +
"\tsnapshots\x18\x01 \x03(\v2(.mxaccess_gateway.v1.ActiveAlarmSnapshotR\tsnapshots\"\xb7\n" +
"\tsnapshots\x18\x01 \x03(\v2(.mxaccess_gateway.v1.ActiveAlarmSnapshotR\tsnapshots\x12-\n" +
"\x12snapshot_truncated\x18\x02 \x01(\bR\x11snapshotTruncated\"\xb7\n" +
"\n" +
"\aMxEvent\x12:\n" +
"\x06family\x18\x01 \x01(\x0e2\".mxaccess_gateway.v1.MxEventFamilyR\x06family\x12\x1d\n" +
@@ -9046,7 +9078,7 @@ const file_mxaccess_gateway_proto_rawDesc = "" +
"\x04mode\x18\x01 \x01(\x0e2&.mxaccess_gateway.v1.AlarmProviderModeR\x04mode\x12\x16\n" +
"\x06reason\x18\x02 \x01(\tR\x06reason\x12\x18\n" +
"\ahresult\x18\x03 \x01(\x05R\ahresult\x12*\n" +
"\x02at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\x02at\"\xbd\x06\n" +
"\x02at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\x02at\"\xf5\x06\n" +
"\x13ActiveAlarmSnapshot\x120\n" +
"\x14alarm_full_reference\x18\x01 \x01(\tR\x12alarmFullReference\x126\n" +
"\x17source_object_reference\x18\x02 \x01(\tR\x15sourceObjectReference\x12&\n" +
@@ -9064,7 +9096,8 @@ const file_mxaccess_gateway_proto_rawDesc = "" +
"\vlimit_value\x18\r \x01(\v2\x1c.mxaccess_gateway.v1.MxValueR\n" +
"limitValue\x12\x1a\n" +
"\bdegraded\x18\x0e \x01(\bR\bdegraded\x12O\n" +
"\x0fsource_provider\x18\x0f \x01(\x0e2&.mxaccess_gateway.v1.AlarmProviderModeR\x0esourceProvider\"\xd0\x01\n" +
"\x0fsource_provider\x18\x0f \x01(\x0e2&.mxaccess_gateway.v1.AlarmProviderModeR\x0esourceProvider\x126\n" +
"\x17from_truncated_snapshot\x18\x10 \x01(\bR\x15fromTruncatedSnapshot\"\xd0\x01\n" +
"\x17AcknowledgeAlarmRequest\x122\n" +
"\x15client_correlation_id\x18\x02 \x01(\tR\x13clientCorrelationId\x120\n" +
"\x14alarm_full_reference\x18\x03 \x01(\tR\x12alarmFullReference\x12\x18\n" +
+8
View File
@@ -117,6 +117,14 @@ yields alarm-feed messages from the gateway's central monitor), and
`acknowledgeAlarm` (ack by full alarm reference with an optional comment and
ack target). Close the subscription to cancel the underlying gRPC stream.
`ActiveAlarmSnapshot.getFromTruncatedSnapshot()` reports that the record came
from a provider fetch which hit the per-fetch cap: the snapshot set may omit
active alarms, and the gateway suspended its absence-implies-cleared inference
for that poll. Treat the set as possibly incomplete rather than reconciling
deletions from it. It is set-level degraded status, not a comment on the
record's own fidelity, and is distinct from `getDegraded()` (the subtag
fallback provider).
## Write Semantics And Common Pitfalls
These are MXAccess parity behaviors that surprise new callers. The gateway
@@ -71020,6 +71020,21 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
*/
mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getSnapshotsOrBuilder(
int index);
/**
* <pre>
* True when the provider fetch backing this reply came back holding the
* per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
* active alarms, and the worker suspends its absence-implies-Clear inference
* for that poll so a reference missing from `snapshots` is not evidence the
* alarm cleared. Carried on the payload as well as per-record because a
* truncated fetch that filters down to zero records still has to say so.
* </pre>
*
* <code>bool snapshot_truncated = 2;</code>
* @return The snapshotTruncated.
*/
boolean getSnapshotTruncated();
}
/**
* <pre>
@@ -71107,6 +71122,26 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
return snapshots_.get(index);
}
public static final int SNAPSHOT_TRUNCATED_FIELD_NUMBER = 2;
private boolean snapshotTruncated_ = false;
/**
* <pre>
* True when the provider fetch backing this reply came back holding the
* per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
* active alarms, and the worker suspends its absence-implies-Clear inference
* for that poll so a reference missing from `snapshots` is not evidence the
* alarm cleared. Carried on the payload as well as per-record because a
* truncated fetch that filters down to zero records still has to say so.
* </pre>
*
* <code>bool snapshot_truncated = 2;</code>
* @return The snapshotTruncated.
*/
@java.lang.Override
public boolean getSnapshotTruncated() {
return snapshotTruncated_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
@@ -71124,6 +71159,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
for (int i = 0; i < snapshots_.size(); i++) {
output.writeMessage(1, snapshots_.get(i));
}
if (snapshotTruncated_ != false) {
output.writeBool(2, snapshotTruncated_);
}
getUnknownFields().writeTo(output);
}
@@ -71137,6 +71175,10 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, snapshots_.get(i));
}
if (snapshotTruncated_ != false) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(2, snapshotTruncated_);
}
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -71154,6 +71196,8 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
if (!getSnapshotsList()
.equals(other.getSnapshotsList())) return false;
if (getSnapshotTruncated()
!= other.getSnapshotTruncated()) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -71169,6 +71213,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
hash = (37 * hash) + SNAPSHOTS_FIELD_NUMBER;
hash = (53 * hash) + getSnapshotsList().hashCode();
}
hash = (37 * hash) + SNAPSHOT_TRUNCATED_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
getSnapshotTruncated());
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -71314,6 +71361,7 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
snapshotsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000001);
snapshotTruncated_ = false;
return this;
}
@@ -71360,6 +71408,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload result) {
int from_bitField0_ = bitField0_;
if (((from_bitField0_ & 0x00000002) != 0)) {
result.snapshotTruncated_ = snapshotTruncated_;
}
}
@java.lang.Override
@@ -71400,6 +71451,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
}
}
}
if (other.getSnapshotTruncated() != false) {
setSnapshotTruncated(other.getSnapshotTruncated());
}
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -71439,6 +71493,11 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
}
break;
} // case 10
case 16: {
snapshotTruncated_ = input.readBool();
bitField0_ |= 0x00000002;
break;
} // case 16
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
@@ -71696,6 +71755,65 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
return snapshotsBuilder_;
}
private boolean snapshotTruncated_ ;
/**
* <pre>
* True when the provider fetch backing this reply came back holding the
* per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
* active alarms, and the worker suspends its absence-implies-Clear inference
* for that poll so a reference missing from `snapshots` is not evidence the
* alarm cleared. Carried on the payload as well as per-record because a
* truncated fetch that filters down to zero records still has to say so.
* </pre>
*
* <code>bool snapshot_truncated = 2;</code>
* @return The snapshotTruncated.
*/
@java.lang.Override
public boolean getSnapshotTruncated() {
return snapshotTruncated_;
}
/**
* <pre>
* True when the provider fetch backing this reply came back holding the
* per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
* active alarms, and the worker suspends its absence-implies-Clear inference
* for that poll so a reference missing from `snapshots` is not evidence the
* alarm cleared. Carried on the payload as well as per-record because a
* truncated fetch that filters down to zero records still has to say so.
* </pre>
*
* <code>bool snapshot_truncated = 2;</code>
* @param value The snapshotTruncated to set.
* @return This builder for chaining.
*/
public Builder setSnapshotTruncated(boolean value) {
snapshotTruncated_ = value;
bitField0_ |= 0x00000002;
onChanged();
return this;
}
/**
* <pre>
* True when the provider fetch backing this reply came back holding the
* per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
* active alarms, and the worker suspends its absence-implies-Clear inference
* for that poll so a reference missing from `snapshots` is not evidence the
* alarm cleared. Carried on the payload as well as per-record because a
* truncated fetch that filters down to zero records still has to say so.
* </pre>
*
* <code>bool snapshot_truncated = 2;</code>
* @return This builder for chaining.
*/
public Builder clearSnapshotTruncated() {
bitField0_ = (bitField0_ & ~0x00000002);
snapshotTruncated_ = false;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
}
@@ -83081,6 +83199,24 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
* @return The sourceProvider.
*/
mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider();
/**
* <pre>
* True when the provider fetch that produced this snapshot hit the per-fetch
* cap: the snapshot set may omit active alarms, and the worker suspended its
* absence-implies-Clear inference for that poll. Says nothing about THIS
* record's fidelity the record is as accurate as any other; it flags that
* the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
* bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
* boolean is the only additive way to carry set-level degraded status on that
* RPC. Distinct from `degraded`, which is about the subtag fallback provider.
* Additive (proto3): clients that ignore it deserialize the stream unchanged.
* </pre>
*
* <code>bool from_truncated_snapshot = 16;</code>
* @return The fromTruncatedSnapshot.
*/
boolean getFromTruncatedSnapshot();
}
/**
* <pre>
@@ -83623,6 +83759,29 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
}
public static final int FROM_TRUNCATED_SNAPSHOT_FIELD_NUMBER = 16;
private boolean fromTruncatedSnapshot_ = false;
/**
* <pre>
* True when the provider fetch that produced this snapshot hit the per-fetch
* cap: the snapshot set may omit active alarms, and the worker suspended its
* absence-implies-Clear inference for that poll. Says nothing about THIS
* record's fidelity the record is as accurate as any other; it flags that
* the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
* bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
* boolean is the only additive way to carry set-level degraded status on that
* RPC. Distinct from `degraded`, which is about the subtag fallback provider.
* Additive (proto3): clients that ignore it deserialize the stream unchanged.
* </pre>
*
* <code>bool from_truncated_snapshot = 16;</code>
* @return The fromTruncatedSnapshot.
*/
@java.lang.Override
public boolean getFromTruncatedSnapshot() {
return fromTruncatedSnapshot_;
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
@@ -83682,6 +83841,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
if (sourceProvider_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
output.writeEnum(15, sourceProvider_);
}
if (fromTruncatedSnapshot_ != false) {
output.writeBool(16, fromTruncatedSnapshot_);
}
getUnknownFields().writeTo(output);
}
@@ -83744,6 +83906,10 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(15, sourceProvider_);
}
if (fromTruncatedSnapshot_ != false) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(16, fromTruncatedSnapshot_);
}
size += getUnknownFields().getSerializedSize();
memoizedSize = size;
return size;
@@ -83799,6 +83965,8 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
if (getDegraded()
!= other.getDegraded()) return false;
if (sourceProvider_ != other.sourceProvider_) return false;
if (getFromTruncatedSnapshot()
!= other.getFromTruncatedSnapshot()) return false;
if (!getUnknownFields().equals(other.getUnknownFields())) return false;
return true;
}
@@ -83849,6 +84017,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
getDegraded());
hash = (37 * hash) + SOURCE_PROVIDER_FIELD_NUMBER;
hash = (53 * hash) + sourceProvider_;
hash = (37 * hash) + FROM_TRUNCATED_SNAPSHOT_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
getFromTruncatedSnapshot());
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -84025,6 +84196,7 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
}
degraded_ = false;
sourceProvider_ = 0;
fromTruncatedSnapshot_ = false;
return this;
}
@@ -84116,6 +84288,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
if (((from_bitField0_ & 0x00004000) != 0)) {
result.sourceProvider_ = sourceProvider_;
}
if (((from_bitField0_ & 0x00008000) != 0)) {
result.fromTruncatedSnapshot_ = fromTruncatedSnapshot_;
}
result.bitField0_ |= to_bitField0_;
}
@@ -84190,6 +84365,9 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
if (other.sourceProvider_ != 0) {
setSourceProviderValue(other.getSourceProviderValue());
}
if (other.getFromTruncatedSnapshot() != false) {
setFromTruncatedSnapshot(other.getFromTruncatedSnapshot());
}
this.mergeUnknownFields(other.getUnknownFields());
onChanged();
return this;
@@ -84299,6 +84477,11 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
bitField0_ |= 0x00004000;
break;
} // case 120
case 128: {
fromTruncatedSnapshot_ = input.readBool();
bitField0_ |= 0x00008000;
break;
} // case 128
default: {
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
done = true; // was an endgroup tag
@@ -85616,6 +85799,74 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
return this;
}
private boolean fromTruncatedSnapshot_ ;
/**
* <pre>
* True when the provider fetch that produced this snapshot hit the per-fetch
* cap: the snapshot set may omit active alarms, and the worker suspended its
* absence-implies-Clear inference for that poll. Says nothing about THIS
* record's fidelity the record is as accurate as any other; it flags that
* the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
* bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
* boolean is the only additive way to carry set-level degraded status on that
* RPC. Distinct from `degraded`, which is about the subtag fallback provider.
* Additive (proto3): clients that ignore it deserialize the stream unchanged.
* </pre>
*
* <code>bool from_truncated_snapshot = 16;</code>
* @return The fromTruncatedSnapshot.
*/
@java.lang.Override
public boolean getFromTruncatedSnapshot() {
return fromTruncatedSnapshot_;
}
/**
* <pre>
* True when the provider fetch that produced this snapshot hit the per-fetch
* cap: the snapshot set may omit active alarms, and the worker suspended its
* absence-implies-Clear inference for that poll. Says nothing about THIS
* record's fidelity the record is as accurate as any other; it flags that
* the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
* bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
* boolean is the only additive way to carry set-level degraded status on that
* RPC. Distinct from `degraded`, which is about the subtag fallback provider.
* Additive (proto3): clients that ignore it deserialize the stream unchanged.
* </pre>
*
* <code>bool from_truncated_snapshot = 16;</code>
* @param value The fromTruncatedSnapshot to set.
* @return This builder for chaining.
*/
public Builder setFromTruncatedSnapshot(boolean value) {
fromTruncatedSnapshot_ = value;
bitField0_ |= 0x00008000;
onChanged();
return this;
}
/**
* <pre>
* True when the provider fetch that produced this snapshot hit the per-fetch
* cap: the snapshot set may omit active alarms, and the worker suspended its
* absence-implies-Clear inference for that poll. Says nothing about THIS
* record's fidelity the record is as accurate as any other; it flags that
* the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
* bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
* boolean is the only additive way to carry set-level degraded status on that
* RPC. Distinct from `degraded`, which is about the subtag fallback provider.
* Additive (proto3): clients that ignore it deserialize the stream unchanged.
* </pre>
*
* <code>bool from_truncated_snapshot = 16;</code>
* @return This builder for chaining.
*/
public Builder clearFromTruncatedSnapshot() {
bitField0_ = (bitField0_ & ~0x00008000);
fromTruncatedSnapshot_ = false;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ActiveAlarmSnapshot)
}
@@ -105307,278 +105558,279 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
"\n\016mxaccess_clsid\030\004 \001(\t\"@\n\020DrainEventsRep" +
"ly\022,\n\006events\030\001 \003(\0132\034.mxaccess_gateway.v1" +
".MxEvent\"5\n\034AcknowledgeAlarmReplyPayload" +
"\022\025\n\rnative_status\030\001 \001(\005\"\\\n\035QueryActiveAl" +
"\022\025\n\rnative_status\030\001 \001(\005\"x\n\035QueryActiveAl" +
"armsReplyPayload\022;\n\tsnapshots\030\001 \003(\0132(.mx" +
"access_gateway.v1.ActiveAlarmSnapshot\"\217\010" +
"\n\007MxEvent\0222\n\006family\030\001 \001(\0162\".mxaccess_gat" +
"eway.v1.MxEventFamily\022\022\n\nsession_id\030\002 \001(" +
"\t\022\025\n\rserver_handle\030\003 \001(\005\022\023\n\013item_handle\030" +
"\004 \001(\005\022+\n\005value\030\005 \001(\0132\034.mxaccess_gateway." +
"v1.MxValue\022\017\n\007quality\030\006 \001(\005\0224\n\020source_ti" +
"mestamp\030\007 \001(\0132\032.google.protobuf.Timestam" +
"p\0224\n\010statuses\030\010 \003(\0132\".mxaccess_gateway.v" +
"1.MxStatusProxy\022\027\n\017worker_sequence\030\t \001(\004" +
"\0224\n\020worker_timestamp\030\n \001(\0132\032.google.prot" +
"obuf.Timestamp\022=\n\031gateway_receive_timest" +
"amp\030\013 \001(\0132\032.google.protobuf.Timestamp\022\024\n" +
"\007hresult\030\014 \001(\005H\001\210\001\001\022\022\n\nraw_status\030\r \001(\t\022" +
"7\n\nreplay_gap\030\016 \001(\0132\036.mxaccess_gateway.v" +
"1.ReplayGapH\002\210\001\001\022@\n\016on_data_change\030\024 \001(\013" +
"2&.mxaccess_gateway.v1.OnDataChangeEvent" +
"H\000\022F\n\021on_write_complete\030\025 \001(\0132).mxaccess" +
"_gateway.v1.OnWriteCompleteEventH\000\022I\n\022op" +
"eration_complete\030\026 \001(\0132+.mxaccess_gatewa" +
"y.v1.OperationCompleteEventH\000\022Q\n\027on_buff" +
"ered_data_change\030\027 \001(\0132..mxaccess_gatewa" +
"y.v1.OnBufferedDataChangeEventH\000\022J\n\023on_a" +
"larm_transition\030\030 \001(\0132+.mxaccess_gateway" +
".v1.OnAlarmTransitionEventH\000\022^\n\036on_alarm" +
"_provider_mode_changed\030\031 \001(\01324.mxaccess_" +
"gateway.v1.OnAlarmProviderModeChangedEve" +
"ntH\000B\006\n\004bodyB\n\n\010_hresultB\r\n\013_replay_gap\"" +
"P\n\tReplayGap\022 \n\030requested_after_sequence" +
"\030\001 \001(\004\022!\n\031oldest_available_sequence\030\002 \001(" +
"\004\"\023\n\021OnDataChangeEvent\"\026\n\024OnWriteComplet" +
"eEvent\"\030\n\026OperationCompleteEvent\"\324\001\n\031OnB" +
"ufferedDataChangeEvent\0222\n\tdata_type\030\001 \001(" +
"\0162\037.mxaccess_gateway.v1.MxDataType\0224\n\016qu" +
"ality_values\030\002 \001(\0132\034.mxaccess_gateway.v1" +
".MxArray\0226\n\020timestamp_values\030\003 \001(\0132\034.mxa" +
"ccess_gateway.v1.MxArray\022\025\n\rraw_data_typ" +
"e\030\004 \001(\005\"\320\004\n\026OnAlarmTransitionEvent\022\034\n\024al" +
"arm_full_reference\030\001 \001(\t\022\037\n\027source_objec" +
"t_reference\030\002 \001(\t\022\027\n\017alarm_type_name\030\003 \001" +
"(\t\022A\n\017transition_kind\030\004 \001(\0162(.mxaccess_g" +
"ateway.v1.AlarmTransitionKind\022\020\n\010severit" +
"y\030\005 \001(\005\022<\n\030original_raise_timestamp\030\006 \001(" +
"\0132\032.google.protobuf.Timestamp\0228\n\024transit" +
"ion_timestamp\030\007 \001(\0132\032.google.protobuf.Ti" +
"mestamp\022\025\n\roperator_user\030\010 \001(\t\022\030\n\020operat" +
"or_comment\030\t \001(\t\022\020\n\010category\030\n \001(\t\022\023\n\013de" +
"scription\030\013 \001(\t\0223\n\rcurrent_value\030\014 \001(\0132\034" +
".mxaccess_gateway.v1.MxValue\0221\n\013limit_va" +
"lue\030\r \001(\0132\034.mxaccess_gateway.v1.MxValue\022" +
"\020\n\010degraded\030\016 \001(\010\022?\n\017source_provider\030\017 \001" +
"(\0162&.mxaccess_gateway.v1.AlarmProviderMo" +
"de\"\240\001\n\037OnAlarmProviderModeChangedEvent\0224" +
"\n\004mode\030\001 \001(\0162&.mxaccess_gateway.v1.Alarm" +
"ProviderMode\022\016\n\006reason\030\002 \001(\t\022\017\n\007hresult\030" +
"\003 \001(\005\022&\n\002at\030\004 \001(\0132\032.google.protobuf.Time" +
"stamp\"\320\004\n\023ActiveAlarmSnapshot\022\034\n\024alarm_f" +
"ull_reference\030\001 \001(\t\022\037\n\027source_object_ref" +
"erence\030\002 \001(\t\022\027\n\017alarm_type_name\030\003 \001(\t\022\020\n" +
"\010severity\030\004 \001(\005\022<\n\030original_raise_timest" +
"amp\030\005 \001(\0132\032.google.protobuf.Timestamp\022?\n" +
"\rcurrent_state\030\006 \001(\0162(.mxaccess_gateway." +
"v1.AlarmConditionState\022\020\n\010category\030\007 \001(\t" +
"\022\023\n\013description\030\010 \001(\t\022=\n\031last_transition" +
"_timestamp\030\t \001(\0132\032.google.protobuf.Times" +
"tamp\022\025\n\roperator_user\030\n \001(\t\022\030\n\020operator_" +
"comment\030\013 \001(\t\0223\n\rcurrent_value\030\014 \001(\0132\034.m" +
"xaccess_gateway.v1.MxValue\0221\n\013limit_valu" +
"e\030\r \001(\0132\034.mxaccess_gateway.v1.MxValue\022\020\n" +
"\010degraded\030\016 \001(\010\022?\n\017source_provider\030\017 \001(\016" +
"access_gateway.v1.ActiveAlarmSnapshot\022\032\n" +
"\022snapshot_truncated\030\002 \001(\010\"\217\010\n\007MxEvent\0222\n" +
"\006family\030\001 \001(\0162\".mxaccess_gateway.v1.MxEv" +
"entFamily\022\022\n\nsession_id\030\002 \001(\t\022\025\n\rserver_" +
"handle\030\003 \001(\005\022\023\n\013item_handle\030\004 \001(\005\022+\n\005val" +
"ue\030\005 \001(\0132\034.mxaccess_gateway.v1.MxValue\022\017" +
"\n\007quality\030\006 \001(\005\0224\n\020source_timestamp\030\007 \001(" +
"\0132\032.google.protobuf.Timestamp\0224\n\010statuse" +
"s\030\010 \003(\0132\".mxaccess_gateway.v1.MxStatusPr" +
"oxy\022\027\n\017worker_sequence\030\t \001(\004\0224\n\020worker_t" +
"imestamp\030\n \001(\0132\032.google.protobuf.Timesta" +
"mp\022=\n\031gateway_receive_timestamp\030\013 \001(\0132\032." +
"google.protobuf.Timestamp\022\024\n\007hresult\030\014 \001" +
"(\005H\001\210\001\001\022\022\n\nraw_status\030\r \001(\t\0227\n\nreplay_ga" +
"p\030\016 \001(\0132\036.mxaccess_gateway.v1.ReplayGapH" +
"\002\210\001\001\022@\n\016on_data_change\030\024 \001(\0132&.mxaccess_" +
"gateway.v1.OnDataChangeEventH\000\022F\n\021on_wri" +
"te_complete\030\025 \001(\0132).mxaccess_gateway.v1." +
"OnWriteCompleteEventH\000\022I\n\022operation_comp" +
"lete\030\026 \001(\0132+.mxaccess_gateway.v1.Operati" +
"onCompleteEventH\000\022Q\n\027on_buffered_data_ch" +
"ange\030\027 \001(\0132..mxaccess_gateway.v1.OnBuffe" +
"redDataChangeEventH\000\022J\n\023on_alarm_transit" +
"ion\030\030 \001(\0132+.mxaccess_gateway.v1.OnAlarmT" +
"ransitionEventH\000\022^\n\036on_alarm_provider_mo" +
"de_changed\030\031 \001(\01324.mxaccess_gateway.v1.O" +
"nAlarmProviderModeChangedEventH\000B\006\n\004body" +
"B\n\n\010_hresultB\r\n\013_replay_gap\"P\n\tReplayGap" +
"\022 \n\030requested_after_sequence\030\001 \001(\004\022!\n\031ol" +
"dest_available_sequence\030\002 \001(\004\"\023\n\021OnDataC" +
"hangeEvent\"\026\n\024OnWriteCompleteEvent\"\030\n\026Op" +
"erationCompleteEvent\"\324\001\n\031OnBufferedDataC" +
"hangeEvent\0222\n\tdata_type\030\001 \001(\0162\037.mxaccess" +
"_gateway.v1.MxDataType\0224\n\016quality_values" +
"\030\002 \001(\0132\034.mxaccess_gateway.v1.MxArray\0226\n\020" +
"timestamp_values\030\003 \001(\0132\034.mxaccess_gatewa" +
"y.v1.MxArray\022\025\n\rraw_data_type\030\004 \001(\005\"\320\004\n\026" +
"OnAlarmTransitionEvent\022\034\n\024alarm_full_ref" +
"erence\030\001 \001(\t\022\037\n\027source_object_reference\030" +
"\002 \001(\t\022\027\n\017alarm_type_name\030\003 \001(\t\022A\n\017transi" +
"tion_kind\030\004 \001(\0162(.mxaccess_gateway.v1.Al" +
"armTransitionKind\022\020\n\010severity\030\005 \001(\005\022<\n\030o" +
"riginal_raise_timestamp\030\006 \001(\0132\032.google.p" +
"rotobuf.Timestamp\0228\n\024transition_timestam" +
"p\030\007 \001(\0132\032.google.protobuf.Timestamp\022\025\n\ro" +
"perator_user\030\010 \001(\t\022\030\n\020operator_comment\030\t" +
" \001(\t\022\020\n\010category\030\n \001(\t\022\023\n\013description\030\013 " +
"\001(\t\0223\n\rcurrent_value\030\014 \001(\0132\034.mxaccess_ga" +
"teway.v1.MxValue\0221\n\013limit_value\030\r \001(\0132\034." +
"mxaccess_gateway.v1.MxValue\022\020\n\010degraded\030" +
"\016 \001(\010\022?\n\017source_provider\030\017 \001(\0162&.mxacces" +
"s_gateway.v1.AlarmProviderMode\"\240\001\n\037OnAla" +
"rmProviderModeChangedEvent\0224\n\004mode\030\001 \001(\016" +
"2&.mxaccess_gateway.v1.AlarmProviderMode" +
"\"\220\001\n\027AcknowledgeAlarmRequest\022\035\n\025client_c" +
"orrelation_id\030\002 \001(\t\022\034\n\024alarm_full_refere" +
"nce\030\003 \001(\t\022\017\n\007comment\030\004 \001(\t\022\025\n\roperator_u" +
"ser\030\005 \001(\tJ\004\010\001\020\002R\nsession_id\"\361\001\n\025Acknowle" +
"dgeAlarmReply\022\026\n\016correlation_id\030\002 \001(\t\022<\n" +
"\017protocol_status\030\003 \001(\0132#.mxaccess_gatewa" +
"y.v1.ProtocolStatus\022\024\n\007hresult\030\004 \001(\005H\000\210\001" +
"\001\0222\n\006status\030\005 \001(\0132\".mxaccess_gateway.v1." +
"MxStatusProxy\022\032\n\022diagnostic_message\030\006 \001(" +
"\tB\n\n\010_hresultJ\004\010\001\020\002R\nsession_id\"Q\n\023Strea" +
"mAlarmsRequest\022\035\n\025client_correlation_id\030" +
"\001 \001(\t\022\033\n\023alarm_filter_prefix\030\002 \001(\t\"\204\002\n\020A" +
"larmFeedMessage\022@\n\014active_alarm\030\001 \001(\0132(." +
"mxaccess_gateway.v1.ActiveAlarmSnapshotH" +
"\000\022\033\n\021snapshot_complete\030\002 \001(\010H\000\022A\n\ntransi" +
"tion\030\003 \001(\0132+.mxaccess_gateway.v1.OnAlarm" +
"TransitionEventH\000\022C\n\017provider_status\030\004 \001" +
"(\0132(.mxaccess_gateway.v1.AlarmProviderSt" +
"atusH\000B\t\n\007payload\"\230\001\n\023AlarmProviderStatu" +
"s\0224\n\004mode\030\001 \001(\0162&.mxaccess_gateway.v1.Al" +
"armProviderMode\022\020\n\010degraded\030\002 \001(\010\022\016\n\006rea" +
"son\030\003 \001(\t\022)\n\005since\030\004 \001(\0132\032.google.protob" +
"uf.Timestamp\"\353\001\n\rMxStatusProxy\022\017\n\007succes" +
"s\030\001 \001(\005\0227\n\010category\030\002 \001(\0162%.mxaccess_gat" +
"eway.v1.MxStatusCategory\0228\n\013detected_by\030" +
"\003 \001(\0162#.mxaccess_gateway.v1.MxStatusSour" +
"ce\022\016\n\006detail\030\004 \001(\005\022\024\n\014raw_category\030\005 \001(\005" +
"\022\027\n\017raw_detected_by\030\006 \001(\005\022\027\n\017diagnostic_" +
"text\030\007 \001(\t\"\351\003\n\007MxValue\0222\n\tdata_type\030\001 \001(" +
"\0162\037.mxaccess_gateway.v1.MxDataType\022\024\n\014va" +
"riant_type\030\002 \001(\t\022\017\n\007is_null\030\003 \001(\010\022\026\n\016raw" +
"_diagnostic\030\004 \001(\t\022\025\n\rraw_data_type\030\005 \001(\005" +
"\022\024\n\nbool_value\030\n \001(\010H\000\022\025\n\013int32_value\030\013 " +
"\001(\005H\000\022\025\n\013int64_value\030\014 \001(\003H\000\022\025\n\013float_va",
"lue\030\r \001(\002H\000\022\026\n\014double_value\030\016 \001(\001H\000\022\026\n\014s" +
"tring_value\030\017 \001(\tH\000\0225\n\017timestamp_value\030\020" +
" \001(\0132\032.google.protobuf.TimestampH\000\0223\n\013ar" +
"ray_value\030\021 \001(\0132\034.mxaccess_gateway.v1.Mx" +
"ArrayH\000\022\023\n\traw_value\030\022 \001(\014H\000\022@\n\022sparse_a" +
"rray_value\030\023 \001(\0132\".mxaccess_gateway.v1.M" +
"xSparseArrayH\000B\006\n\004kind\"\376\004\n\007MxArray\022:\n\021el" +
"ement_data_type\030\001 \001(\0162\037.mxaccess_gateway" +
".v1.MxDataType\022\024\n\014variant_type\030\002 \001(\t\022\022\n\n" +
"dimensions\030\003 \003(\r\022\026\n\016raw_diagnostic\030\004 \001(\t" +
"\022\035\n\025raw_element_data_type\030\005 \001(\005\0225\n\013bool_" +
"values\030\n \001(\0132\036.mxaccess_gateway.v1.BoolA" +
"rrayH\000\0227\n\014int32_values\030\013 \001(\0132\037.mxaccess_" +
"gateway.v1.Int32ArrayH\000\0227\n\014int64_values\030" +
"\014 \001(\0132\037.mxaccess_gateway.v1.Int64ArrayH\000" +
"\0227\n\014float_values\030\r \001(\0132\037.mxaccess_gatewa" +
"y.v1.FloatArrayH\000\0229\n\rdouble_values\030\016 \001(\013" +
"2 .mxaccess_gateway.v1.DoubleArrayH\000\0229\n\r" +
"string_values\030\017 \001(\0132 .mxaccess_gateway.v" +
"1.StringArrayH\000\022?\n\020timestamp_values\030\020 \001(" +
"\0132#.mxaccess_gateway.v1.TimestampArrayH\000" +
"\0223\n\nraw_values\030\021 \001(\0132\035.mxaccess_gateway." +
"v1.RawArrayH\000B\010\n\006values\"\231\001\n\rMxSparseArra" +
"y\022:\n\021element_data_type\030\001 \001(\0162\037.mxaccess_" +
"gateway.v1.MxDataType\022\024\n\014total_length\030\002 " +
"\001(\r\0226\n\010elements\030\003 \003(\0132$.mxaccess_gateway" +
".v1.MxSparseElement\"M\n\017MxSparseElement\022\r" +
"\n\005index\030\001 \001(\r\022+\n\005value\030\002 \001(\0132\034.mxaccess_" +
"gateway.v1.MxValue\"\033\n\tBoolArray\022\016\n\006value" +
"s\030\001 \003(\010\"\034\n\nInt32Array\022\016\n\006values\030\001 \003(\005\"\034\n" +
"\nInt64Array\022\016\n\006values\030\001 \003(\003\"\034\n\nFloatArra" +
"y\022\016\n\006values\030\001 \003(\002\"\035\n\013DoubleArray\022\016\n\006valu" +
"es\030\001 \003(\001\"\035\n\013StringArray\022\016\n\006values\030\001 \003(\t\"" +
"<\n\016TimestampArray\022*\n\006values\030\001 \003(\0132\032.goog" +
"le.protobuf.Timestamp\"\032\n\010RawArray\022\016\n\006val" +
"ues\030\001 \003(\014\"X\n\016ProtocolStatus\0225\n\004code\030\001 \001(" +
"\0162\'.mxaccess_gateway.v1.ProtocolStatusCo" +
"de\022\017\n\007message\030\002 \001(\t*\237\013\n\rMxCommandKind\022\037\n" +
"\033MX_COMMAND_KIND_UNSPECIFIED\020\000\022\034\n\030MX_COM" +
"MAND_KIND_REGISTER\020\001\022\036\n\032MX_COMMAND_KIND_" +
"UNREGISTER\020\002\022\034\n\030MX_COMMAND_KIND_ADD_ITEM" +
"\020\003\022\035\n\031MX_COMMAND_KIND_ADD_ITEM2\020\004\022\037\n\033MX_" +
"COMMAND_KIND_REMOVE_ITEM\020\005\022\032\n\026MX_COMMAND" +
"_KIND_ADVISE\020\006\022\035\n\031MX_COMMAND_KIND_UN_ADV" +
"ISE\020\007\022&\n\"MX_COMMAND_KIND_ADVISE_SUPERVIS" +
"ORY\020\010\022%\n!MX_COMMAND_KIND_ADD_BUFFERED_IT" +
"EM\020\t\0220\n,MX_COMMAND_KIND_SET_BUFFERED_UPD" +
"ATE_INTERVAL\020\n\022\033\n\027MX_COMMAND_KIND_SUSPEN" +
"D\020\013\022\034\n\030MX_COMMAND_KIND_ACTIVATE\020\014\022\031\n\025MX_" +
"COMMAND_KIND_WRITE\020\r\022\032\n\026MX_COMMAND_KIND_" +
"WRITE2\020\016\022!\n\035MX_COMMAND_KIND_WRITE_SECURE" +
"D\020\017\022\"\n\036MX_COMMAND_KIND_WRITE_SECURED2\020\020\022" +
"%\n!MX_COMMAND_KIND_AUTHENTICATE_USER\020\021\022(" +
"\n$MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID\020\022" +
"\022!\n\035MX_COMMAND_KIND_ADD_ITEM_BULK\020\023\022$\n M" +
"X_COMMAND_KIND_ADVISE_ITEM_BULK\020\024\022$\n MX_" +
"COMMAND_KIND_REMOVE_ITEM_BULK\020\025\022\'\n#MX_CO" +
"MMAND_KIND_UN_ADVISE_ITEM_BULK\020\026\022\"\n\036MX_C" +
"OMMAND_KIND_SUBSCRIBE_BULK\020\027\022$\n MX_COMMA" +
"ND_KIND_UNSUBSCRIBE_BULK\020\030\022$\n MX_COMMAND" +
"_KIND_SUBSCRIBE_ALARMS\020\031\022&\n\"MX_COMMAND_K" +
"IND_UNSUBSCRIBE_ALARMS\020\032\022%\n!MX_COMMAND_K" +
"IND_ACKNOWLEDGE_ALARM\020\033\022\'\n#MX_COMMAND_KI" +
"ND_QUERY_ACTIVE_ALARMS\020\034\022-\n)MX_COMMAND_K" +
"IND_ACKNOWLEDGE_ALARM_BY_NAME\020\035\022\036\n\032MX_CO" +
"MMAND_KIND_WRITE_BULK\020\036\022\037\n\033MX_COMMAND_KI" +
"ND_WRITE2_BULK\020\037\022&\n\"MX_COMMAND_KIND_WRIT" +
"E_SECURED_BULK\020 \022\'\n#MX_COMMAND_KIND_WRIT" +
"E_SECURED2_BULK\020!\022\035\n\031MX_COMMAND_KIND_REA" +
"D_BULK\020\"\022\030\n\024MX_COMMAND_KIND_PING\020d\022%\n!MX" +
"_COMMAND_KIND_GET_SESSION_STATE\020e\022#\n\037MX_" +
"COMMAND_KIND_GET_WORKER_INFO\020f\022 \n\034MX_COM" +
"MAND_KIND_DRAIN_EVENTS\020g\022#\n\037MX_COMMAND_K" +
"IND_SHUTDOWN_WORKER\020h*z\n\021AlarmProviderMo" +
"de\022#\n\037ALARM_PROVIDER_MODE_UNSPECIFIED\020\000\022" +
" \n\034ALARM_PROVIDER_MODE_ALARMMGR\020\001\022\036\n\032ALA" +
"RM_PROVIDER_MODE_SUBTAG\020\002*\255\002\n\rMxEventFam" +
"ily\022\037\n\033MX_EVENT_FAMILY_UNSPECIFIED\020\000\022\"\n\036" +
"MX_EVENT_FAMILY_ON_DATA_CHANGE\020\001\022%\n!MX_E" +
"VENT_FAMILY_ON_WRITE_COMPLETE\020\002\022&\n\"MX_EV" +
"ENT_FAMILY_OPERATION_COMPLETE\020\003\022+\n\'MX_EV" +
"ENT_FAMILY_ON_BUFFERED_DATA_CHANGE\020\004\022\'\n#" +
"MX_EVENT_FAMILY_ON_ALARM_TRANSITION\020\005\0222\n" +
".MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_" +
"CHANGED\020\006*\312\001\n\023AlarmTransitionKind\022%\n!ALA" +
"RM_TRANSITION_KIND_UNSPECIFIED\020\000\022\037\n\033ALAR" +
"M_TRANSITION_KIND_RAISE\020\001\022%\n!ALARM_TRANS" +
"ITION_KIND_ACKNOWLEDGE\020\002\022\037\n\033ALARM_TRANSI" +
"TION_KIND_CLEAR\020\003\022#\n\037ALARM_TRANSITION_KI" +
"ND_RETRIGGER\020\004*\252\001\n\023AlarmConditionState\022%" +
"\n!ALARM_CONDITION_STATE_UNSPECIFIED\020\000\022 \n" +
"\034ALARM_CONDITION_STATE_ACTIVE\020\001\022&\n\"ALARM" +
"_CONDITION_STATE_ACTIVE_ACKED\020\002\022\"\n\036ALARM" +
"_CONDITION_STATE_INACTIVE\020\003*\245\003\n\020MxStatus" +
"Category\022\"\n\036MX_STATUS_CATEGORY_UNSPECIFI" +
"ED\020\000\022\036\n\032MX_STATUS_CATEGORY_UNKNOWN\020\001\022\031\n\025" +
"MX_STATUS_CATEGORY_OK\020\002\022\036\n\032MX_STATUS_CAT" +
"EGORY_PENDING\020\003\022\036\n\032MX_STATUS_CATEGORY_WA" +
"RNING\020\004\022*\n&MX_STATUS_CATEGORY_COMMUNICAT" +
"ION_ERROR\020\005\022*\n&MX_STATUS_CATEGORY_CONFIG" +
"URATION_ERROR\020\006\022(\n$MX_STATUS_CATEGORY_OP" +
"ERATIONAL_ERROR\020\007\022%\n!MX_STATUS_CATEGORY_" +
"SECURITY_ERROR\020\010\022%\n!MX_STATUS_CATEGORY_S" +
"OFTWARE_ERROR\020\t\022\"\n\036MX_STATUS_CATEGORY_OT" +
"HER_ERROR\020\n*\312\002\n\016MxStatusSource\022 \n\034MX_STA" +
"TUS_SOURCE_UNSPECIFIED\020\000\022\034\n\030MX_STATUS_SO" +
"URCE_UNKNOWN\020\001\022#\n\037MX_STATUS_SOURCE_REQUE" +
"STING_LMX\020\002\022#\n\037MX_STATUS_SOURCE_RESPONDI" +
"NG_LMX\020\003\022#\n\037MX_STATUS_SOURCE_REQUESTING_" +
"NMX\020\004\022#\n\037MX_STATUS_SOURCE_RESPONDING_NMX" +
"\020\005\0221\n-MX_STATUS_SOURCE_REQUESTING_AUTOMA" +
"TION_OBJECT\020\006\0221\n-MX_STATUS_SOURCE_RESPON" +
"DING_AUTOMATION_OBJECT\020\007*\335\004\n\nMxDataType\022" +
"\034\n\030MX_DATA_TYPE_UNSPECIFIED\020\000\022\030\n\024MX_DATA" +
"_TYPE_UNKNOWN\020\001\022\030\n\024MX_DATA_TYPE_NO_DATA\020" +
"\002\022\030\n\024MX_DATA_TYPE_BOOLEAN\020\003\022\030\n\024MX_DATA_T" +
"YPE_INTEGER\020\004\022\026\n\022MX_DATA_TYPE_FLOAT\020\005\022\027\n" +
"\023MX_DATA_TYPE_DOUBLE\020\006\022\027\n\023MX_DATA_TYPE_S" +
"TRING\020\007\022\025\n\021MX_DATA_TYPE_TIME\020\010\022\035\n\031MX_DAT" +
"A_TYPE_ELAPSED_TIME\020\t\022\037\n\033MX_DATA_TYPE_RE" +
"FERENCE_TYPE\020\n\022\034\n\030MX_DATA_TYPE_STATUS_TY" +
"PE\020\013\022\025\n\021MX_DATA_TYPE_ENUM\020\014\022-\n)MX_DATA_T" +
"YPE_SECURITY_CLASSIFICATION_ENUM\020\r\022\"\n\036MX" +
"_DATA_TYPE_DATA_QUALITY_TYPE\020\016\022\037\n\033MX_DAT" +
"A_TYPE_QUALIFIED_ENUM\020\017\022!\n\035MX_DATA_TYPE_" +
"QUALIFIED_STRUCT\020\020\022)\n%MX_DATA_TYPE_INTER" +
"NATIONALIZED_STRING\020\021\022\033\n\027MX_DATA_TYPE_BI" +
"G_STRING\020\022\022\024\n\020MX_DATA_TYPE_END\020\023*\243\003\n\022Pro" +
"tocolStatusCode\022$\n PROTOCOL_STATUS_CODE_" +
"UNSPECIFIED\020\000\022\033\n\027PROTOCOL_STATUS_CODE_OK" +
"\020\001\022(\n$PROTOCOL_STATUS_CODE_INVALID_REQUE" +
"ST\020\002\022*\n&PROTOCOL_STATUS_CODE_SESSION_NOT" +
"_FOUND\020\003\022*\n&PROTOCOL_STATUS_CODE_SESSION" +
"_NOT_READY\020\004\022+\n\'PROTOCOL_STATUS_CODE_WOR" +
"KER_UNAVAILABLE\020\005\022 \n\034PROTOCOL_STATUS_COD" +
"E_TIMEOUT\020\006\022!\n\035PROTOCOL_STATUS_CODE_CANC" +
"ELED\020\007\022+\n\'PROTOCOL_STATUS_CODE_PROTOCOL_" +
"VIOLATION\020\010\022)\n%PROTOCOL_STATUS_CODE_MXAC" +
"CESS_FAILURE\020\t*\277\002\n\014SessionState\022\035\n\031SESSI" +
"ON_STATE_UNSPECIFIED\020\000\022\032\n\026SESSION_STATE_" +
"CREATING\020\001\022!\n\035SESSION_STATE_STARTING_WOR" +
"KER\020\002\022\"\n\036SESSION_STATE_WAITING_FOR_PIPE\020" +
"\003\022\035\n\031SESSION_STATE_HANDSHAKING\020\004\022%\n!SESS" +
"ION_STATE_INITIALIZING_WORKER\020\005\022\027\n\023SESSI" +
"ON_STATE_READY\020\006\022\031\n\025SESSION_STATE_CLOSIN" +
"G\020\007\022\030\n\024SESSION_STATE_CLOSED\020\010\022\031\n\025SESSION" +
"_STATE_FAULTED\020\t2\303\005\n\017MxAccessGateway\022]\n\013" +
"OpenSession\022\'.mxaccess_gateway.v1.OpenSe" +
"ssionRequest\032%.mxaccess_gateway.v1.OpenS" +
"essionReply\022`\n\014CloseSession\022(.mxaccess_g" +
"ateway.v1.CloseSessionRequest\032&.mxaccess" +
"_gateway.v1.CloseSessionReply\022T\n\006Invoke\022" +
"%.mxaccess_gateway.v1.MxCommandRequest\032#" +
".mxaccess_gateway.v1.MxCommandReply\022X\n\014S" +
"treamEvents\022(.mxaccess_gateway.v1.Stream" +
"EventsRequest\032\034.mxaccess_gateway.v1.MxEv" +
"ent0\001\022l\n\020AcknowledgeAlarm\022,.mxaccess_gat" +
"eway.v1.AcknowledgeAlarmRequest\032*.mxacce" +
"ss_gateway.v1.AcknowledgeAlarmReply\022a\n\014S" +
"treamAlarms\022(.mxaccess_gateway.v1.Stream" +
"AlarmsRequest\032%.mxaccess_gateway.v1.Alar" +
"mFeedMessage0\001\022n\n\021QueryActiveAlarms\022-.mx" +
"access_gateway.v1.QueryActiveAlarmsReque" +
"st\032(.mxaccess_gateway.v1.ActiveAlarmSnap" +
"shot0\001B&\252\002#ZB.MOM.WW.MxGateway.Contracts" +
".Protob\006proto3"
"\022\016\n\006reason\030\002 \001(\t\022\017\n\007hresult\030\003 \001(\005\022&\n\002at\030" +
"\004 \001(\0132\032.google.protobuf.Timestamp\"\361\004\n\023Ac" +
"tiveAlarmSnapshot\022\034\n\024alarm_full_referenc" +
"e\030\001 \001(\t\022\037\n\027source_object_reference\030\002 \001(\t" +
"\022\027\n\017alarm_type_name\030\003 \001(\t\022\020\n\010severity\030\004 " +
"\001(\005\022<\n\030original_raise_timestamp\030\005 \001(\0132\032." +
"google.protobuf.Timestamp\022?\n\rcurrent_sta" +
"te\030\006 \001(\0162(.mxaccess_gateway.v1.AlarmCond" +
"itionState\022\020\n\010category\030\007 \001(\t\022\023\n\013descript" +
"ion\030\010 \001(\t\022=\n\031last_transition_timestamp\030\t" +
" \001(\0132\032.google.protobuf.Timestamp\022\025\n\roper" +
"ator_user\030\n \001(\t\022\030\n\020operator_comment\030\013 \001(" +
"\t\0223\n\rcurrent_value\030\014 \001(\0132\034.mxaccess_gate" +
"way.v1.MxValue\0221\n\013limit_value\030\r \001(\0132\034.mx" +
"access_gateway.v1.MxValue\022\020\n\010degraded\030\016 " +
"\001(\010\022?\n\017source_provider\030\017 \001(\0162&.mxaccess_" +
"gateway.v1.AlarmProviderMode\022\037\n\027from_tru" +
"ncated_snapshot\030\020 \001(\010\"\220\001\n\027AcknowledgeAla" +
"rmRequest\022\035\n\025client_correlation_id\030\002 \001(\t" +
"\022\034\n\024alarm_full_reference\030\003 \001(\t\022\017\n\007commen" +
"t\030\004 \001(\t\022\025\n\roperator_user\030\005 \001(\tJ\004\010\001\020\002R\nse" +
"ssion_id\"\361\001\n\025AcknowledgeAlarmReply\022\026\n\016co" +
"rrelation_id\030\002 \001(\t\022<\n\017protocol_status\030\003 " +
"\001(\0132#.mxaccess_gateway.v1.ProtocolStatus" +
"\022\024\n\007hresult\030\004 \001(\005H\000\210\001\001\0222\n\006status\030\005 \001(\0132\"" +
".mxaccess_gateway.v1.MxStatusProxy\022\032\n\022di" +
"agnostic_message\030\006 \001(\tB\n\n\010_hresultJ\004\010\001\020\002" +
"R\nsession_id\"Q\n\023StreamAlarmsRequest\022\035\n\025c" +
"lient_correlation_id\030\001 \001(\t\022\033\n\023alarm_filt" +
"er_prefix\030\002 \001(\t\"\204\002\n\020AlarmFeedMessage\022@\n\014" +
"active_alarm\030\001 \001(\0132(.mxaccess_gateway.v1" +
".ActiveAlarmSnapshotH\000\022\033\n\021snapshot_compl" +
"ete\030\002 \001(\010H\000\022A\n\ntransition\030\003 \001(\0132+.mxacce" +
"ss_gateway.v1.OnAlarmTransitionEventH\000\022C" +
"\n\017provider_status\030\004 \001(\0132(.mxaccess_gatew" +
"ay.v1.AlarmProviderStatusH\000B\t\n\007payload\"\230" +
"\001\n\023AlarmProviderStatus\0224\n\004mode\030\001 \001(\0162&.m" +
"xaccess_gateway.v1.AlarmProviderMode\022\020\n\010" +
"degraded\030\002 \001(\010\022\016\n\006reason\030\003 \001(\t\022)\n\005since\030" +
"\004 \001(\0132\032.google.protobuf.Timestamp\"\353\001\n\rMx" +
"StatusProxy\022\017\n\007success\030\001 \001(\005\0227\n\010category" +
"\030\002 \001(\0162%.mxaccess_gateway.v1.MxStatusCat" +
"egory\0228\n\013detected_by\030\003 \001(\0162#.mxaccess_ga" +
"teway.v1.MxStatusSource\022\016\n\006detail\030\004 \001(\005\022" +
"\024\n\014raw_category\030\005 \001(\005\022\027\n\017raw_detected_by" +
"\030\006 \001(\005\022\027\n\017diagnostic_text\030\007 \001(\t\"\351\003\n\007MxVa" +
"lue\0222\n\tdata_type\030\001 \001(\0162\037.mxaccess_gatewa" +
"y.v1.MxDataType\022\024\n\014variant_type\030\002 \001(\t\022\017\n" +
"\007is_null\030\003 \001(\010\022\026\n\016raw_diagnostic\030\004 \001(\t\022\025" +
"\n\rraw_data_type\030\005 \001(\005\022\024\n\nbool_value\030\n \001(",
"\010H\000\022\025\n\013int32_value\030\013 \001(\005H\000\022\025\n\013int64_valu" +
"e\030\014 \001(\003H\000\022\025\n\013float_value\030\r \001(\002H\000\022\026\n\014doub" +
"le_value\030\016 \001(\001H\000\022\026\n\014string_value\030\017 \001(\tH\000" +
"\0225\n\017timestamp_value\030\020 \001(\0132\032.google.proto" +
"buf.TimestampH\000\0223\n\013array_value\030\021 \001(\0132\034.m" +
"xaccess_gateway.v1.MxArrayH\000\022\023\n\traw_valu" +
"e\030\022 \001(\014H\000\022@\n\022sparse_array_value\030\023 \001(\0132\"." +
"mxaccess_gateway.v1.MxSparseArrayH\000B\006\n\004k" +
"ind\"\376\004\n\007MxArray\022:\n\021element_data_type\030\001 \001" +
"(\0162\037.mxaccess_gateway.v1.MxDataType\022\024\n\014v" +
"ariant_type\030\002 \001(\t\022\022\n\ndimensions\030\003 \003(\r\022\026\n" +
"\016raw_diagnostic\030\004 \001(\t\022\035\n\025raw_element_dat" +
"a_type\030\005 \001(\005\0225\n\013bool_values\030\n \001(\0132\036.mxac" +
"cess_gateway.v1.BoolArrayH\000\0227\n\014int32_val" +
"ues\030\013 \001(\0132\037.mxaccess_gateway.v1.Int32Arr" +
"ayH\000\0227\n\014int64_values\030\014 \001(\0132\037.mxaccess_ga" +
"teway.v1.Int64ArrayH\000\0227\n\014float_values\030\r " +
"\001(\0132\037.mxaccess_gateway.v1.FloatArrayH\000\0229" +
"\n\rdouble_values\030\016 \001(\0132 .mxaccess_gateway" +
".v1.DoubleArrayH\000\0229\n\rstring_values\030\017 \001(\013" +
"2 .mxaccess_gateway.v1.StringArrayH\000\022?\n\020" +
"timestamp_values\030\020 \001(\0132#.mxaccess_gatewa" +
"y.v1.TimestampArrayH\000\0223\n\nraw_values\030\021 \001(" +
"\0132\035.mxaccess_gateway.v1.RawArrayH\000B\010\n\006va" +
"lues\"\231\001\n\rMxSparseArray\022:\n\021element_data_t" +
"ype\030\001 \001(\0162\037.mxaccess_gateway.v1.MxDataTy" +
"pe\022\024\n\014total_length\030\002 \001(\r\0226\n\010elements\030\003 \003" +
"(\0132$.mxaccess_gateway.v1.MxSparseElement" +
"\"M\n\017MxSparseElement\022\r\n\005index\030\001 \001(\r\022+\n\005va" +
"lue\030\002 \001(\0132\034.mxaccess_gateway.v1.MxValue\"" +
"\033\n\tBoolArray\022\016\n\006values\030\001 \003(\010\"\034\n\nInt32Arr" +
"ay\022\016\n\006values\030\001 \003(\005\"\034\n\nInt64Array\022\016\n\006valu" +
"es\030\001 \003(\003\"\034\n\nFloatArray\022\016\n\006values\030\001 \003(\002\"\035" +
"\n\013DoubleArray\022\016\n\006values\030\001 \003(\001\"\035\n\013StringA" +
"rray\022\016\n\006values\030\001 \003(\t\"<\n\016TimestampArray\022*" +
"\n\006values\030\001 \003(\0132\032.google.protobuf.Timesta" +
"mp\"\032\n\010RawArray\022\016\n\006values\030\001 \003(\014\"X\n\016Protoc" +
"olStatus\0225\n\004code\030\001 \001(\0162\'.mxaccess_gatewa" +
"y.v1.ProtocolStatusCode\022\017\n\007message\030\002 \001(\t" +
"*\237\013\n\rMxCommandKind\022\037\n\033MX_COMMAND_KIND_UN" +
"SPECIFIED\020\000\022\034\n\030MX_COMMAND_KIND_REGISTER\020" +
"\001\022\036\n\032MX_COMMAND_KIND_UNREGISTER\020\002\022\034\n\030MX_" +
"COMMAND_KIND_ADD_ITEM\020\003\022\035\n\031MX_COMMAND_KI" +
"ND_ADD_ITEM2\020\004\022\037\n\033MX_COMMAND_KIND_REMOVE" +
"_ITEM\020\005\022\032\n\026MX_COMMAND_KIND_ADVISE\020\006\022\035\n\031M" +
"X_COMMAND_KIND_UN_ADVISE\020\007\022&\n\"MX_COMMAND" +
"_KIND_ADVISE_SUPERVISORY\020\010\022%\n!MX_COMMAND" +
"_KIND_ADD_BUFFERED_ITEM\020\t\0220\n,MX_COMMAND_" +
"KIND_SET_BUFFERED_UPDATE_INTERVAL\020\n\022\033\n\027M" +
"X_COMMAND_KIND_SUSPEND\020\013\022\034\n\030MX_COMMAND_K" +
"IND_ACTIVATE\020\014\022\031\n\025MX_COMMAND_KIND_WRITE\020" +
"\r\022\032\n\026MX_COMMAND_KIND_WRITE2\020\016\022!\n\035MX_COMM" +
"AND_KIND_WRITE_SECURED\020\017\022\"\n\036MX_COMMAND_K" +
"IND_WRITE_SECURED2\020\020\022%\n!MX_COMMAND_KIND_" +
"AUTHENTICATE_USER\020\021\022(\n$MX_COMMAND_KIND_A" +
"RCHESTRA_USER_TO_ID\020\022\022!\n\035MX_COMMAND_KIND" +
"_ADD_ITEM_BULK\020\023\022$\n MX_COMMAND_KIND_ADVI" +
"SE_ITEM_BULK\020\024\022$\n MX_COMMAND_KIND_REMOVE" +
"_ITEM_BULK\020\025\022\'\n#MX_COMMAND_KIND_UN_ADVIS" +
"E_ITEM_BULK\020\026\022\"\n\036MX_COMMAND_KIND_SUBSCRI" +
"BE_BULK\020\027\022$\n MX_COMMAND_KIND_UNSUBSCRIBE" +
"_BULK\020\030\022$\n MX_COMMAND_KIND_SUBSCRIBE_ALA" +
"RMS\020\031\022&\n\"MX_COMMAND_KIND_UNSUBSCRIBE_ALA" +
"RMS\020\032\022%\n!MX_COMMAND_KIND_ACKNOWLEDGE_ALA" +
"RM\020\033\022\'\n#MX_COMMAND_KIND_QUERY_ACTIVE_ALA" +
"RMS\020\034\022-\n)MX_COMMAND_KIND_ACKNOWLEDGE_ALA" +
"RM_BY_NAME\020\035\022\036\n\032MX_COMMAND_KIND_WRITE_BU" +
"LK\020\036\022\037\n\033MX_COMMAND_KIND_WRITE2_BULK\020\037\022&\n" +
"\"MX_COMMAND_KIND_WRITE_SECURED_BULK\020 \022\'\n" +
"#MX_COMMAND_KIND_WRITE_SECURED2_BULK\020!\022\035" +
"\n\031MX_COMMAND_KIND_READ_BULK\020\"\022\030\n\024MX_COMM" +
"AND_KIND_PING\020d\022%\n!MX_COMMAND_KIND_GET_S" +
"ESSION_STATE\020e\022#\n\037MX_COMMAND_KIND_GET_WO" +
"RKER_INFO\020f\022 \n\034MX_COMMAND_KIND_DRAIN_EVE" +
"NTS\020g\022#\n\037MX_COMMAND_KIND_SHUTDOWN_WORKER" +
"\020h*z\n\021AlarmProviderMode\022#\n\037ALARM_PROVIDE" +
"R_MODE_UNSPECIFIED\020\000\022 \n\034ALARM_PROVIDER_M" +
"ODE_ALARMMGR\020\001\022\036\n\032ALARM_PROVIDER_MODE_SU" +
"BTAG\020\002*\255\002\n\rMxEventFamily\022\037\n\033MX_EVENT_FAM" +
"ILY_UNSPECIFIED\020\000\022\"\n\036MX_EVENT_FAMILY_ON_" +
"DATA_CHANGE\020\001\022%\n!MX_EVENT_FAMILY_ON_WRIT" +
"E_COMPLETE\020\002\022&\n\"MX_EVENT_FAMILY_OPERATIO" +
"N_COMPLETE\020\003\022+\n\'MX_EVENT_FAMILY_ON_BUFFE" +
"RED_DATA_CHANGE\020\004\022\'\n#MX_EVENT_FAMILY_ON_" +
"ALARM_TRANSITION\020\005\0222\n.MX_EVENT_FAMILY_ON" +
"_ALARM_PROVIDER_MODE_CHANGED\020\006*\312\001\n\023Alarm" +
"TransitionKind\022%\n!ALARM_TRANSITION_KIND_" +
"UNSPECIFIED\020\000\022\037\n\033ALARM_TRANSITION_KIND_R" +
"AISE\020\001\022%\n!ALARM_TRANSITION_KIND_ACKNOWLE" +
"DGE\020\002\022\037\n\033ALARM_TRANSITION_KIND_CLEAR\020\003\022#" +
"\n\037ALARM_TRANSITION_KIND_RETRIGGER\020\004*\252\001\n\023" +
"AlarmConditionState\022%\n!ALARM_CONDITION_S" +
"TATE_UNSPECIFIED\020\000\022 \n\034ALARM_CONDITION_ST" +
"ATE_ACTIVE\020\001\022&\n\"ALARM_CONDITION_STATE_AC" +
"TIVE_ACKED\020\002\022\"\n\036ALARM_CONDITION_STATE_IN" +
"ACTIVE\020\003*\245\003\n\020MxStatusCategory\022\"\n\036MX_STAT" +
"US_CATEGORY_UNSPECIFIED\020\000\022\036\n\032MX_STATUS_C" +
"ATEGORY_UNKNOWN\020\001\022\031\n\025MX_STATUS_CATEGORY_" +
"OK\020\002\022\036\n\032MX_STATUS_CATEGORY_PENDING\020\003\022\036\n\032" +
"MX_STATUS_CATEGORY_WARNING\020\004\022*\n&MX_STATU" +
"S_CATEGORY_COMMUNICATION_ERROR\020\005\022*\n&MX_S" +
"TATUS_CATEGORY_CONFIGURATION_ERROR\020\006\022(\n$" +
"MX_STATUS_CATEGORY_OPERATIONAL_ERROR\020\007\022%" +
"\n!MX_STATUS_CATEGORY_SECURITY_ERROR\020\010\022%\n" +
"!MX_STATUS_CATEGORY_SOFTWARE_ERROR\020\t\022\"\n\036" +
"MX_STATUS_CATEGORY_OTHER_ERROR\020\n*\312\002\n\016MxS" +
"tatusSource\022 \n\034MX_STATUS_SOURCE_UNSPECIF" +
"IED\020\000\022\034\n\030MX_STATUS_SOURCE_UNKNOWN\020\001\022#\n\037M" +
"X_STATUS_SOURCE_REQUESTING_LMX\020\002\022#\n\037MX_S" +
"TATUS_SOURCE_RESPONDING_LMX\020\003\022#\n\037MX_STAT" +
"US_SOURCE_REQUESTING_NMX\020\004\022#\n\037MX_STATUS_" +
"SOURCE_RESPONDING_NMX\020\005\0221\n-MX_STATUS_SOU" +
"RCE_REQUESTING_AUTOMATION_OBJECT\020\006\0221\n-MX" +
"_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJ" +
"ECT\020\007*\335\004\n\nMxDataType\022\034\n\030MX_DATA_TYPE_UNS" +
"PECIFIED\020\000\022\030\n\024MX_DATA_TYPE_UNKNOWN\020\001\022\030\n\024" +
"MX_DATA_TYPE_NO_DATA\020\002\022\030\n\024MX_DATA_TYPE_B" +
"OOLEAN\020\003\022\030\n\024MX_DATA_TYPE_INTEGER\020\004\022\026\n\022MX" +
"_DATA_TYPE_FLOAT\020\005\022\027\n\023MX_DATA_TYPE_DOUBL" +
"E\020\006\022\027\n\023MX_DATA_TYPE_STRING\020\007\022\025\n\021MX_DATA_" +
"TYPE_TIME\020\010\022\035\n\031MX_DATA_TYPE_ELAPSED_TIME" +
"\020\t\022\037\n\033MX_DATA_TYPE_REFERENCE_TYPE\020\n\022\034\n\030M" +
"X_DATA_TYPE_STATUS_TYPE\020\013\022\025\n\021MX_DATA_TYP" +
"E_ENUM\020\014\022-\n)MX_DATA_TYPE_SECURITY_CLASSI" +
"FICATION_ENUM\020\r\022\"\n\036MX_DATA_TYPE_DATA_QUA" +
"LITY_TYPE\020\016\022\037\n\033MX_DATA_TYPE_QUALIFIED_EN" +
"UM\020\017\022!\n\035MX_DATA_TYPE_QUALIFIED_STRUCT\020\020\022" +
")\n%MX_DATA_TYPE_INTERNATIONALIZED_STRING" +
"\020\021\022\033\n\027MX_DATA_TYPE_BIG_STRING\020\022\022\024\n\020MX_DA" +
"TA_TYPE_END\020\023*\243\003\n\022ProtocolStatusCode\022$\n " +
"PROTOCOL_STATUS_CODE_UNSPECIFIED\020\000\022\033\n\027PR" +
"OTOCOL_STATUS_CODE_OK\020\001\022(\n$PROTOCOL_STAT" +
"US_CODE_INVALID_REQUEST\020\002\022*\n&PROTOCOL_ST" +
"ATUS_CODE_SESSION_NOT_FOUND\020\003\022*\n&PROTOCO" +
"L_STATUS_CODE_SESSION_NOT_READY\020\004\022+\n\'PRO" +
"TOCOL_STATUS_CODE_WORKER_UNAVAILABLE\020\005\022 " +
"\n\034PROTOCOL_STATUS_CODE_TIMEOUT\020\006\022!\n\035PROT" +
"OCOL_STATUS_CODE_CANCELED\020\007\022+\n\'PROTOCOL_" +
"STATUS_CODE_PROTOCOL_VIOLATION\020\010\022)\n%PROT" +
"OCOL_STATUS_CODE_MXACCESS_FAILURE\020\t*\277\002\n\014" +
"SessionState\022\035\n\031SESSION_STATE_UNSPECIFIE" +
"D\020\000\022\032\n\026SESSION_STATE_CREATING\020\001\022!\n\035SESSI" +
"ON_STATE_STARTING_WORKER\020\002\022\"\n\036SESSION_ST" +
"ATE_WAITING_FOR_PIPE\020\003\022\035\n\031SESSION_STATE_" +
"HANDSHAKING\020\004\022%\n!SESSION_STATE_INITIALIZ" +
"ING_WORKER\020\005\022\027\n\023SESSION_STATE_READY\020\006\022\031\n" +
"\025SESSION_STATE_CLOSING\020\007\022\030\n\024SESSION_STAT" +
"E_CLOSED\020\010\022\031\n\025SESSION_STATE_FAULTED\020\t2\303\005" +
"\n\017MxAccessGateway\022]\n\013OpenSession\022\'.mxacc" +
"ess_gateway.v1.OpenSessionRequest\032%.mxac" +
"cess_gateway.v1.OpenSessionReply\022`\n\014Clos" +
"eSession\022(.mxaccess_gateway.v1.CloseSess" +
"ionRequest\032&.mxaccess_gateway.v1.CloseSe" +
"ssionReply\022T\n\006Invoke\022%.mxaccess_gateway." +
"v1.MxCommandRequest\032#.mxaccess_gateway.v" +
"1.MxCommandReply\022X\n\014StreamEvents\022(.mxacc" +
"ess_gateway.v1.StreamEventsRequest\032\034.mxa" +
"ccess_gateway.v1.MxEvent0\001\022l\n\020Acknowledg" +
"eAlarm\022,.mxaccess_gateway.v1.Acknowledge" +
"AlarmRequest\032*.mxaccess_gateway.v1.Ackno" +
"wledgeAlarmReply\022a\n\014StreamAlarms\022(.mxacc" +
"ess_gateway.v1.StreamAlarmsRequest\032%.mxa" +
"ccess_gateway.v1.AlarmFeedMessage0\001\022n\n\021Q" +
"ueryActiveAlarms\022-.mxaccess_gateway.v1.Q" +
"ueryActiveAlarmsRequest\032(.mxaccess_gatew" +
"ay.v1.ActiveAlarmSnapshot0\001B&\252\002#ZB.MOM.W" +
"W.MxGateway.Contracts.Protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
@@ -106023,7 +106275,7 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor,
new java.lang.String[] { "Snapshots", });
new java.lang.String[] { "Snapshots", "SnapshotTruncated", });
internal_static_mxaccess_gateway_v1_MxEvent_descriptor =
getDescriptor().getMessageType(73);
internal_static_mxaccess_gateway_v1_MxEvent_fieldAccessorTable = new
@@ -106077,7 +106329,7 @@ public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor,
new java.lang.String[] { "AlarmFullReference", "SourceObjectReference", "AlarmTypeName", "Severity", "OriginalRaiseTimestamp", "CurrentState", "Category", "Description", "LastTransitionTimestamp", "OperatorUser", "OperatorComment", "CurrentValue", "LimitValue", "Degraded", "SourceProvider", });
new java.lang.String[] { "AlarmFullReference", "SourceObjectReference", "AlarmTypeName", "Severity", "OriginalRaiseTimestamp", "CurrentState", "Category", "Description", "LastTransitionTimestamp", "OperatorUser", "OperatorComment", "CurrentValue", "LimitValue", "Degraded", "SourceProvider", "FromTruncatedSnapshot", });
internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor =
getDescriptor().getMessageType(82);
internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_fieldAccessorTable = new
+7
View File
@@ -115,6 +115,13 @@ messages from the gateway's central monitor), and
and ack target). Cancel the surrounding task or `aclose()` the iterator to
terminate the stream.
`ActiveAlarmSnapshot.from_truncated_snapshot` reports that the record came from
a provider fetch which hit the per-fetch cap: the snapshot set may omit active
alarms, and the gateway suspended its absence-implies-cleared inference for that
poll. Treat the set as possibly incomplete rather than reconciling deletions
from it. It is set-level degraded status, not a comment on the record's own
fidelity, and is distinct from `degraded` (the subtag fallback provider).
Canceling a Python task cancels the client-side gRPC call or stream wait. It
does not abort an in-flight MXAccess COM call inside the worker process.
File diff suppressed because one or more lines are too long
+10 -2
View File
@@ -121,8 +121,16 @@ creates an authenticated `tonic` client and attaches `authorization: Bearer
`close_session_raw`, `invoke_raw`, `stream_events`, `query_active_alarms`,
`stream_alarms`, `acknowledge_alarm`, and `raw_client`. `stream_alarms`
returns an `AlarmFeedStream` async stream of alarm-feed messages and
shares the gateway's central alarm monitor with every other client. The
session helpers keep MXAccess handles visible:
shares the gateway's central alarm monitor with every other client.
`ActiveAlarmSnapshot::from_truncated_snapshot` reports that the record came from
a provider fetch which hit the per-fetch cap: the snapshot set may omit active
alarms, and the gateway suspended its absence-implies-cleared inference for that
poll. Treat the set as possibly incomplete rather than reconciling deletions
from it. It is set-level degraded status, not a comment on the record's own
fidelity, and is distinct from `degraded` (the subtag fallback provider).
The session helpers keep MXAccess handles visible:
```rust
let session = client.open_session(request).await?;
@@ -726,6 +726,13 @@ message AcknowledgeAlarmReplyPayload {
// stream.
message QueryActiveAlarmsReplyPayload {
repeated ActiveAlarmSnapshot snapshots = 1;
// True when the provider fetch backing this reply came back holding the
// per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
// active alarms, and the worker suspends its absence-implies-Clear inference
// for that poll — so a reference missing from `snapshots` is not evidence the
// alarm cleared. Carried on the payload as well as per-record because a
// truncated fetch that filters down to zero records still has to say so.
bool snapshot_truncated = 2;
}
message MxEvent {
@@ -932,6 +939,16 @@ message ActiveAlarmSnapshot {
// OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
// wire (never UNSPECIFIED).
AlarmProviderMode source_provider = 15;
// True when the provider fetch that produced this snapshot hit the per-fetch
// cap: the snapshot set may omit active alarms, and the worker suspended its
// absence-implies-Clear inference for that poll. Says nothing about THIS
// record's fidelity — the record is as accurate as any other; it flags that
// the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
// bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
// boolean is the only additive way to carry set-level degraded status on that
// RPC. Distinct from `degraded`, which is about the subtag fallback provider.
// Additive (proto3): clients that ignore it deserialize the stream unchanged.
bool from_truncated_snapshot = 16;
}
enum AlarmConditionState {