diff --git a/docker/cluster/config/bmqbrkrcfg.json b/docker/cluster/config/bmqbrkrcfg.json
index dd95856dfe..09a81473f1 100644
--- a/docker/cluster/config/bmqbrkrcfg.json
+++ b/docker/cluster/config/bmqbrkrcfg.json
@@ -88,8 +88,7 @@
"highWatermark": 1073741824,
"nodeLowWatermark": 5242880,
"nodeHighWatermark": 10485760,
- "heartbeatIntervalMs": 3000,
- "useNtf": false
+ "heartbeatIntervalMs": 3000
}
},
"bmqconfConfig": {
diff --git a/docker/single-node/config/bmqbrkrcfg.json b/docker/single-node/config/bmqbrkrcfg.json
index 82f4153854..c77dd5abb4 100644
--- a/docker/single-node/config/bmqbrkrcfg.json
+++ b/docker/single-node/config/bmqbrkrcfg.json
@@ -88,8 +88,7 @@
"highWatermark": 1073741824,
"nodeLowWatermark": 5242880,
"nodeHighWatermark": 10485760,
- "heartbeatIntervalMs": 3000,
- "useNtf": false
+ "heartbeatIntervalMs": 3000
}
},
"bmqconfConfig": {
diff --git a/src/applications/bmqbrkr/etc/bmqbrkrcfg.json b/src/applications/bmqbrkr/etc/bmqbrkrcfg.json
index 126500dc00..9741a62f8f 100644
--- a/src/applications/bmqbrkr/etc/bmqbrkrcfg.json
+++ b/src/applications/bmqbrkr/etc/bmqbrkrcfg.json
@@ -88,8 +88,7 @@
"highWatermark": 1073741824,
"nodeLowWatermark": 5242880,
"nodeHighWatermark": 10485760,
- "heartbeatIntervalMs": 3000,
- "useNtf": false
+ "heartbeatIntervalMs": 3000
}
},
"bmqconfConfig": {
diff --git a/src/groups/mqb/mqbcfg/mqbcfg.xsd b/src/groups/mqb/mqbcfg/mqbcfg.xsd
index 66016b9b46..0de03e5849 100644
--- a/src/groups/mqb/mqbcfg/mqbcfg.xsd
+++ b/src/groups/mqb/mqbcfg/mqbcfg.xsd
@@ -242,9 +242,6 @@
heartbeatIntervalMs..:
How often (in milliseconds) to check if the channel received data,
and emit heartbeat. 0 to globally disable.
- useNtf...............:
- Use the new NTF based TCP transport library instead of
- the existing one based on BTE
@@ -257,7 +254,6 @@
-
diff --git a/src/groups/mqb/mqbcfg/mqbcfg_messages.cpp b/src/groups/mqb/mqbcfg/mqbcfg_messages.cpp
index b2f25a1bd7..08a4b0638f 100644
--- a/src/groups/mqb/mqbcfg/mqbcfg_messages.cpp
+++ b/src/groups/mqb/mqbcfg/mqbcfg_messages.cpp
@@ -2279,8 +2279,6 @@ const bsls::Types::Int64
const int TcpInterfaceConfig::DEFAULT_INITIALIZER_HEARTBEAT_INTERVAL_MS = 3000;
-const bool TcpInterfaceConfig::DEFAULT_INITIALIZER_USE_NTF = false;
-
const bdlat_AttributeInfo TcpInterfaceConfig::ATTRIBUTE_INFO_ARRAY[] = {
{ATTRIBUTE_ID_NAME,
"name",
@@ -2326,19 +2324,14 @@ const bdlat_AttributeInfo TcpInterfaceConfig::ATTRIBUTE_INFO_ARRAY[] = {
"heartbeatIntervalMs",
sizeof("heartbeatIntervalMs") - 1,
"",
- bdlat_FormattingMode::e_DEC},
- {ATTRIBUTE_ID_USE_NTF,
- "useNtf",
- sizeof("useNtf") - 1,
- "",
- bdlat_FormattingMode::e_TEXT}};
+ bdlat_FormattingMode::e_DEC}};
// CLASS METHODS
const bdlat_AttributeInfo*
TcpInterfaceConfig::lookupAttributeInfo(const char* name, int nameLength)
{
- for (int i = 0; i < 10; ++i) {
+ for (int i = 0; i < 9; ++i) {
const bdlat_AttributeInfo& attributeInfo =
TcpInterfaceConfig::ATTRIBUTE_INFO_ARRAY[i];
@@ -2370,8 +2363,6 @@ const bdlat_AttributeInfo* TcpInterfaceConfig::lookupAttributeInfo(int id)
return &ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_NODE_HIGH_WATERMARK];
case ATTRIBUTE_ID_HEARTBEAT_INTERVAL_MS:
return &ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_HEARTBEAT_INTERVAL_MS];
- case ATTRIBUTE_ID_USE_NTF:
- return &ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_USE_NTF];
default: return 0;
}
}
@@ -2388,7 +2379,6 @@ TcpInterfaceConfig::TcpInterfaceConfig(bslma::Allocator* basicAllocator)
, d_ioThreads()
, d_maxConnections(DEFAULT_INITIALIZER_MAX_CONNECTIONS)
, d_heartbeatIntervalMs(DEFAULT_INITIALIZER_HEARTBEAT_INTERVAL_MS)
-, d_useNtf(DEFAULT_INITIALIZER_USE_NTF)
{
}
@@ -2403,7 +2393,6 @@ TcpInterfaceConfig::TcpInterfaceConfig(const TcpInterfaceConfig& original,
, d_ioThreads(original.d_ioThreads)
, d_maxConnections(original.d_maxConnections)
, d_heartbeatIntervalMs(original.d_heartbeatIntervalMs)
-, d_useNtf(original.d_useNtf)
{
}
@@ -2418,8 +2407,7 @@ TcpInterfaceConfig::TcpInterfaceConfig(TcpInterfaceConfig&& original) noexcept
d_port(bsl::move(original.d_port)),
d_ioThreads(bsl::move(original.d_ioThreads)),
d_maxConnections(bsl::move(original.d_maxConnections)),
- d_heartbeatIntervalMs(bsl::move(original.d_heartbeatIntervalMs)),
- d_useNtf(bsl::move(original.d_useNtf))
+ d_heartbeatIntervalMs(bsl::move(original.d_heartbeatIntervalMs))
{
}
@@ -2434,7 +2422,6 @@ TcpInterfaceConfig::TcpInterfaceConfig(TcpInterfaceConfig&& original,
, d_ioThreads(bsl::move(original.d_ioThreads))
, d_maxConnections(bsl::move(original.d_maxConnections))
, d_heartbeatIntervalMs(bsl::move(original.d_heartbeatIntervalMs))
-, d_useNtf(bsl::move(original.d_useNtf))
{
}
#endif
@@ -2458,7 +2445,6 @@ TcpInterfaceConfig::operator=(const TcpInterfaceConfig& rhs)
d_nodeLowWatermark = rhs.d_nodeLowWatermark;
d_nodeHighWatermark = rhs.d_nodeHighWatermark;
d_heartbeatIntervalMs = rhs.d_heartbeatIntervalMs;
- d_useNtf = rhs.d_useNtf;
}
return *this;
@@ -2478,7 +2464,6 @@ TcpInterfaceConfig& TcpInterfaceConfig::operator=(TcpInterfaceConfig&& rhs)
d_nodeLowWatermark = bsl::move(rhs.d_nodeLowWatermark);
d_nodeHighWatermark = bsl::move(rhs.d_nodeHighWatermark);
d_heartbeatIntervalMs = bsl::move(rhs.d_heartbeatIntervalMs);
- d_useNtf = bsl::move(rhs.d_useNtf);
}
return *this;
@@ -2496,7 +2481,6 @@ void TcpInterfaceConfig::reset()
d_nodeLowWatermark = DEFAULT_INITIALIZER_NODE_LOW_WATERMARK;
d_nodeHighWatermark = DEFAULT_INITIALIZER_NODE_HIGH_WATERMARK;
d_heartbeatIntervalMs = DEFAULT_INITIALIZER_HEARTBEAT_INTERVAL_MS;
- d_useNtf = DEFAULT_INITIALIZER_USE_NTF;
}
// ACCESSORS
@@ -2516,7 +2500,6 @@ bsl::ostream& TcpInterfaceConfig::print(bsl::ostream& stream,
printer.printAttribute("nodeLowWatermark", this->nodeLowWatermark());
printer.printAttribute("nodeHighWatermark", this->nodeHighWatermark());
printer.printAttribute("heartbeatIntervalMs", this->heartbeatIntervalMs());
- printer.printAttribute("useNtf", this->useNtf());
printer.end();
return stream;
}
@@ -5428,7 +5411,7 @@ AppConfig& AppConfig::operator=(const AppConfig& rhs)
d_hostDataCenter = rhs.d_hostDataCenter;
d_isRunningOnDev = rhs.d_isRunningOnDev;
d_logsObserverMaxSize = rhs.d_logsObserverMaxSize;
- d_latencyMonitorDomain = rhs.d_latencyMonitorDomain;
+ d_latencyMonitorDomain = rhs.d_latencyMonitorDomain;
d_dispatcherConfig = rhs.d_dispatcherConfig;
d_stats = rhs.d_stats;
d_networkInterfaces = rhs.d_networkInterfaces;
@@ -5456,7 +5439,7 @@ AppConfig& AppConfig::operator=(AppConfig&& rhs)
d_hostDataCenter = bsl::move(rhs.d_hostDataCenter);
d_isRunningOnDev = bsl::move(rhs.d_isRunningOnDev);
d_logsObserverMaxSize = bsl::move(rhs.d_logsObserverMaxSize);
- d_latencyMonitorDomain = bsl::move(rhs.d_latencyMonitorDomain);
+ d_latencyMonitorDomain = bsl::move(rhs.d_latencyMonitorDomain);
d_dispatcherConfig = bsl::move(rhs.d_dispatcherConfig);
d_stats = bsl::move(rhs.d_stats);
d_networkInterfaces = bsl::move(rhs.d_networkInterfaces);
@@ -5489,7 +5472,7 @@ void AppConfig::reset()
bdlat_ValueTypeFunctions::reset(&d_bmqconfConfig);
bdlat_ValueTypeFunctions::reset(&d_plugins);
bdlat_ValueTypeFunctions::reset(&d_messagePropertiesV2);
- d_configureStream = DEFAULT_INITIALIZER_CONFIGURE_STREAM;
+ d_configureStream = DEFAULT_INITIALIZER_CONFIGURE_STREAM;
d_advertiseSubscriptions = DEFAULT_INITIALIZER_ADVERTISE_SUBSCRIPTIONS;
}
@@ -5837,7 +5820,7 @@ Configuration::print(bsl::ostream& stream, int level, int spacesPerLevel) const
} // close package namespace
} // close enterprise namespace
-// GENERATED BY @BLP_BAS_CODEGEN_VERSION@
+// GENERATED BY BLP_BAS_CODEGEN_2024.07.04.1
// USING bas_codegen.pl -m msg --noAggregateConversion --noExternalization
// --noIdent --package mqbcfg --msgComponent messages mqbcfg.xsd
// ----------------------------------------------------------------------------
diff --git a/src/groups/mqb/mqbcfg/mqbcfg_messages.h b/src/groups/mqb/mqbcfg/mqbcfg_messages.h
index 724952abee..8e1d33d1b3 100644
--- a/src/groups/mqb/mqbcfg/mqbcfg_messages.h
+++ b/src/groups/mqb/mqbcfg/mqbcfg_messages.h
@@ -4031,8 +4031,6 @@ class TcpInterfaceConfig {
// cluster nodes where BlazingMQ maintains its own cache.
// heartbeatIntervalMs..: How often (in milliseconds) to check if the
// channel received data, and emit heartbeat. 0 to globally disable.
- // useNtf...............: Use the new NTF based TCP transport library
- // instead of the existing one based on BTE
// INSTANCE DATA
bsls::Types::Int64 d_lowWatermark;
@@ -4044,7 +4042,6 @@ class TcpInterfaceConfig {
int d_ioThreads;
int d_maxConnections;
int d_heartbeatIntervalMs;
- bool d_useNtf;
// PRIVATE ACCESSORS
template
@@ -4063,11 +4060,10 @@ class TcpInterfaceConfig {
ATTRIBUTE_ID_HIGH_WATERMARK = 5,
ATTRIBUTE_ID_NODE_LOW_WATERMARK = 6,
ATTRIBUTE_ID_NODE_HIGH_WATERMARK = 7,
- ATTRIBUTE_ID_HEARTBEAT_INTERVAL_MS = 8,
- ATTRIBUTE_ID_USE_NTF = 9
+ ATTRIBUTE_ID_HEARTBEAT_INTERVAL_MS = 8
};
- enum { NUM_ATTRIBUTES = 10 };
+ enum { NUM_ATTRIBUTES = 9 };
enum {
ATTRIBUTE_INDEX_NAME = 0,
@@ -4078,8 +4074,7 @@ class TcpInterfaceConfig {
ATTRIBUTE_INDEX_HIGH_WATERMARK = 5,
ATTRIBUTE_INDEX_NODE_LOW_WATERMARK = 6,
ATTRIBUTE_INDEX_NODE_HIGH_WATERMARK = 7,
- ATTRIBUTE_INDEX_HEARTBEAT_INTERVAL_MS = 8,
- ATTRIBUTE_INDEX_USE_NTF = 9
+ ATTRIBUTE_INDEX_HEARTBEAT_INTERVAL_MS = 8
};
// CONSTANTS
@@ -4093,8 +4088,6 @@ class TcpInterfaceConfig {
static const int DEFAULT_INITIALIZER_HEARTBEAT_INTERVAL_MS;
- static const bool DEFAULT_INITIALIZER_USE_NTF;
-
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[];
public:
@@ -4224,10 +4217,6 @@ class TcpInterfaceConfig {
// Return a reference to the modifiable "HeartbeatIntervalMs" attribute
// of this object.
- bool& useNtf();
- // Return a reference to the modifiable "UseNtf" attribute of this
- // object.
-
// ACCESSORS
bsl::ostream&
print(bsl::ostream& stream, int level = 0, int spacesPerLevel = 4) const;
@@ -4301,9 +4290,6 @@ class TcpInterfaceConfig {
// Return the value of the "HeartbeatIntervalMs" attribute of this
// object.
- bool useNtf() const;
- // Return the value of the "UseNtf" attribute of this object.
-
// HIDDEN FRIENDS
friend bool operator==(const TcpInterfaceConfig& lhs,
const TcpInterfaceConfig& rhs)
@@ -12746,7 +12732,6 @@ void TcpInterfaceConfig::hashAppendImpl(t_HASH_ALGORITHM& hashAlgorithm) const
hashAppend(hashAlgorithm, this->nodeLowWatermark());
hashAppend(hashAlgorithm, this->nodeHighWatermark());
hashAppend(hashAlgorithm, this->heartbeatIntervalMs());
- hashAppend(hashAlgorithm, this->useNtf());
}
inline bool TcpInterfaceConfig::isEqualTo(const TcpInterfaceConfig& rhs) const
@@ -12758,8 +12743,7 @@ inline bool TcpInterfaceConfig::isEqualTo(const TcpInterfaceConfig& rhs) const
this->highWatermark() == rhs.highWatermark() &&
this->nodeLowWatermark() == rhs.nodeLowWatermark() &&
this->nodeHighWatermark() == rhs.nodeHighWatermark() &&
- this->heartbeatIntervalMs() == rhs.heartbeatIntervalMs() &&
- this->useNtf() == rhs.useNtf();
+ this->heartbeatIntervalMs() == rhs.heartbeatIntervalMs();
}
// CLASS METHODS
@@ -12824,12 +12808,6 @@ int TcpInterfaceConfig::manipulateAttributes(t_MANIPULATOR& manipulator)
return ret;
}
- ret = manipulator(&d_useNtf,
- ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_USE_NTF]);
- if (ret) {
- return ret;
- }
-
return 0;
}
@@ -12881,10 +12859,6 @@ int TcpInterfaceConfig::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
&d_heartbeatIntervalMs,
ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_HEARTBEAT_INTERVAL_MS]);
}
- case ATTRIBUTE_ID_USE_NTF: {
- return manipulator(&d_useNtf,
- ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_USE_NTF]);
- }
default: return NOT_FOUND;
}
}
@@ -12950,11 +12924,6 @@ inline int& TcpInterfaceConfig::heartbeatIntervalMs()
return d_heartbeatIntervalMs;
}
-inline bool& TcpInterfaceConfig::useNtf()
-{
- return d_useNtf;
-}
-
// ACCESSORS
template
int TcpInterfaceConfig::accessAttributes(t_ACCESSOR& accessor) const
@@ -13014,11 +12983,6 @@ int TcpInterfaceConfig::accessAttributes(t_ACCESSOR& accessor) const
return ret;
}
- ret = accessor(d_useNtf, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_USE_NTF]);
- if (ret) {
- return ret;
- }
-
return 0;
}
@@ -13065,10 +13029,6 @@ int TcpInterfaceConfig::accessAttribute(t_ACCESSOR& accessor, int id) const
d_heartbeatIntervalMs,
ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_HEARTBEAT_INTERVAL_MS]);
}
- case ATTRIBUTE_ID_USE_NTF: {
- return accessor(d_useNtf,
- ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_USE_NTF]);
- }
default: return NOT_FOUND;
}
}
@@ -13134,11 +13094,6 @@ inline int TcpInterfaceConfig::heartbeatIntervalMs() const
return d_heartbeatIntervalMs;
}
-inline bool TcpInterfaceConfig::useNtf() const
-{
- return d_useNtf;
-}
-
// -------------------------------
// class VirtualClusterInformation
// -------------------------------
@@ -17736,7 +17691,7 @@ inline const AppConfig& Configuration::appConfig() const
} // close enterprise namespace
#endif
-// GENERATED BY @BLP_BAS_CODEGEN_VERSION@
+// GENERATED BY BLP_BAS_CODEGEN_2024.07.04.1
// USING bas_codegen.pl -m msg --noAggregateConversion --noExternalization
// --noIdent --package mqbcfg --msgComponent messages mqbcfg.xsd
// ----------------------------------------------------------------------------
diff --git a/src/python/blazingmq/dev/it/tweaks/generated.py b/src/python/blazingmq/dev/it/tweaks/generated.py
index 1295347c7d..c39c3dcf7c 100644
--- a/src/python/blazingmq/dev/it/tweaks/generated.py
+++ b/src/python/blazingmq/dev/it/tweaks/generated.py
@@ -374,16 +374,17 @@ def __call__(
dispatcher_config = DispatcherConfig()
class Stats(metaclass=TweakMetaclass):
- class AppIdTagDomains(metaclass=TweakMetaclass):
- def __call__(self, value: None) -> Callable: ...
-
- app_id_tag_domains = AppIdTagDomains()
-
class SnapshotInterval(metaclass=TweakMetaclass):
def __call__(self, value: int) -> Callable: ...
snapshot_interval = SnapshotInterval()
+ class AppIdTagDomains(metaclass=TweakMetaclass):
+
+ def __call__(self, value: None) -> Callable: ...
+
+ app_id_tag_domains = AppIdTagDomains()
+
class Plugins(metaclass=TweakMetaclass):
class Name(metaclass=TweakMetaclass):
def __call__(self, value: str) -> Callable: ...
@@ -590,11 +591,6 @@ def __call__(self, value: int) -> Callable: ...
heartbeat_interval_ms = HeartbeatIntervalMs()
- class UseNtf(metaclass=TweakMetaclass):
- def __call__(self, value: bool) -> Callable: ...
-
- use_ntf = UseNtf()
-
def __call__(
self,
value: typing.Union[
@@ -678,6 +674,12 @@ def __call__(self, value: bool) -> Callable: ...
configure_stream = ConfigureStream()
+ class AdvertiseSubscriptions(metaclass=TweakMetaclass):
+
+ def __call__(self, value: bool) -> Callable: ...
+
+ advertise_subscriptions = AdvertiseSubscriptions()
+
def __call__(
self, value: typing.Union[blazingmq.schemas.mqbcfg.AppConfig, NoneType]
) -> Callable: ...
diff --git a/src/python/blazingmq/schemas/__init__.py b/src/python/blazingmq/schemas/__init__.py
index d243437dd2..6c4934e46f 100644
--- a/src/python/blazingmq/schemas/__init__.py
+++ b/src/python/blazingmq/schemas/__init__.py
@@ -35,13 +35,13 @@
QueueModeBroadcast,
QueueModeFanout,
QueueModePriority,
+ Request,
Request1,
+ Response,
Response1,
Storage,
StorageDefinition,
Subscription,
- Request,
- Response,
)
__all__ = [
diff --git a/src/python/blazingmq/schemas/mqbcfg.py b/src/python/blazingmq/schemas/mqbcfg.py
index e3dd040f72..c7b82076ea 100644
--- a/src/python/blazingmq/schemas/mqbcfg.py
+++ b/src/python/blazingmq/schemas/mqbcfg.py
@@ -133,7 +133,7 @@ class ClusterMonitorConfig:
},
)
max_time_failover: int = field(
- default=240,
+ default=600,
metadata={
"name": "maxTimeFailover",
"type": "Element",
@@ -169,7 +169,7 @@ class ClusterMonitorConfig:
},
)
threshold_failover: int = field(
- default=120,
+ default=300,
metadata={
"name": "thresholdFailover",
"type": "Element",
@@ -983,9 +983,6 @@ class TcpInterfaceConfig:
heartbeatIntervalMs..:
How often (in milliseconds) to check if the channel received data,
and emit heartbeat. 0 to globally disable.
- useNtf...............:
- Use the new NTF based TCP transport library instead of
- the existing one based on BTE
"""
name: Optional[str] = field(
@@ -1067,15 +1064,6 @@ class TcpInterfaceConfig:
"required": True,
},
)
- use_ntf: bool = field(
- default=False,
- metadata={
- "name": "useNtf",
- "type": "Element",
- "namespace": "http://bloomberg.com/schemas/mqbcfg",
- "required": True,
- },
- )
@dataclass
@@ -1776,23 +1764,22 @@ class ClusterProxyDefinition:
@dataclass
class StatsConfig:
- app_id_tag_domains: List[str] = field(
- default_factory=list,
+ snapshot_interval: int = field(
+ default=1,
metadata={
- "name": "appIdTagDomains",
+ "name": "snapshotInterval",
"type": "Element",
"namespace": "http://bloomberg.com/schemas/mqbcfg",
- "min_occurs": 1,
"required": True,
},
)
- snapshot_interval: int = field(
- default=1,
+ app_id_tag_domains: List[str] = field(
+ default_factory=list,
metadata={
- "name": "snapshotInterval",
+ "name": "appIdTagDomains",
"type": "Element",
"namespace": "http://bloomberg.com/schemas/mqbcfg",
- "required": True,
+ "min_occurs": 1,
},
)
plugins: List[StatPluginConfig] = field(
@@ -1833,7 +1820,8 @@ class AppConfig:
bmqconfConfig........: configuration for bmqconf
plugins..............: configuration for the plugins
msgPropertiesSupport.: information about if/how to advertise support for v2 message properties
- configureStream......: send new ConfigureStream instead of old ConfigureQueue/>
+ configureStream......: send new ConfigureStream instead of old ConfigureQueue
+ advertiseSubscriptions.: temporarily control use of ConfigureStream in SDK/>
"""
broker_instance_name: Optional[str] = field(
@@ -1987,6 +1975,15 @@ class AppConfig:
"required": True,
},
)
+ advertise_subscriptions: bool = field(
+ default=False,
+ metadata={
+ "name": "advertiseSubscriptions",
+ "type": "Element",
+ "namespace": "http://bloomberg.com/schemas/mqbcfg",
+ "required": True,
+ },
+ )
@dataclass
diff --git a/src/python/blazingmq/schemas/mqbconf.py b/src/python/blazingmq/schemas/mqbconf.py
index b16ec0fe37..70d1141183 100644
--- a/src/python/blazingmq/schemas/mqbconf.py
+++ b/src/python/blazingmq/schemas/mqbconf.py
@@ -360,7 +360,7 @@ class Expression:
"""This complex type contains expression to evaluate when selecting
Subscription for delivery.
- version................: expression version (default is HSL)
+ version................: expression version (default is no expression)
text...................: textual representation of the expression
"""
@@ -528,10 +528,10 @@ class StorageDefinition:
@dataclass
class Subscription:
"""This complex type contains various parameters required by an upstream node
- to configure subscription for a queue handle that has already been created.
+ to configure subscription for an app.
- sId....................: subscription identifier
- consumers..............: consumer parameters
+ appId..................: app identifier
+ expression.............: expression denoting a subscription for the app
"""
app_id: Optional[str] = field(
@@ -592,6 +592,7 @@ class Domain:
message for the purpose of detecting duplicate
PUTs.
consistency.........: optional consistency mode.
+ subscriptions.......: optional Auto (Application) subscriptions
"""
name: Optional[str] = field(