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