StreamConfig(
name: Optional[str] = None,
description: Optional[str] = None,
subjects: Optional[List[str]] = None,
retention: Optional[RetentionPolicy] = None,
max_consumers: Optional[int] = None,
max_msgs: Optional[int] = None,
max_bytes: Optional[int] = None,
discard: Optional[DiscardPolicy] = OLD,
discard_new_per_subject: bool = False,
max_age: Optional[float] = None,
max_msgs_per_subject: int = -1,
max_msg_size: Optional[int] = -1,
storage: Optional[StorageType] = None,
num_replicas: Optional[int] = None,
no_ack: bool = False,
template_owner: Optional[str] = None,
duplicate_window: float = 0,
placement: Optional[Placement] = None,
mirror: Optional[StreamSource] = None,
sources: Optional[List[StreamSource]] = None,
sealed: bool = False,
deny_delete: bool = False,
deny_purge: bool = False,
allow_rollup_hdrs: bool = False,
republish: Optional[RePublish] = None,
subject_transform: Optional[SubjectTransform] = None,
allow_direct: Optional[bool] = None,
mirror_direct: Optional[bool] = None,
compression: Optional[StoreCompression] = None,
allow_msg_ttl: Optional[bool] = None,
allow_msg_schedules: Optional[bool] = None,
allow_atomic: Optional[bool] = None,
allow_batched: Optional[bool] = None,
metadata: Optional[Dict[str, str]] = None,
)
Bases: Base
StreamConfig represents the configuration of a stream.
name class-attribute instance-attribute
name: Optional[str] = None
description class-attribute instance-attribute
description: Optional[str] = None
subjects class-attribute instance-attribute
subjects: Optional[List[str]] = None
retention class-attribute instance-attribute
max_consumers class-attribute instance-attribute
max_consumers: Optional[int] = None
max_msgs class-attribute instance-attribute
max_msgs: Optional[int] = None
max_bytes class-attribute instance-attribute
max_bytes: Optional[int] = None
discard class-attribute instance-attribute
discard_new_per_subject class-attribute instance-attribute
discard_new_per_subject: bool = False
max_age class-attribute instance-attribute
max_age: Optional[float] = None
max_msgs_per_subject class-attribute instance-attribute
max_msgs_per_subject: int = -1
max_msg_size class-attribute instance-attribute
max_msg_size: Optional[int] = -1
storage class-attribute instance-attribute
num_replicas class-attribute instance-attribute
num_replicas: Optional[int] = None
no_ack class-attribute instance-attribute
template_owner class-attribute instance-attribute
template_owner: Optional[str] = None
duplicate_window class-attribute instance-attribute
duplicate_window: float = 0
placement class-attribute instance-attribute
mirror class-attribute instance-attribute
sources class-attribute instance-attribute
sealed class-attribute instance-attribute
deny_delete class-attribute instance-attribute
deny_delete: bool = False
deny_purge class-attribute instance-attribute
allow_rollup_hdrs class-attribute instance-attribute
allow_rollup_hdrs: bool = False
republish class-attribute instance-attribute
subject_transform: Optional[SubjectTransform] = None
allow_direct class-attribute instance-attribute
allow_direct: Optional[bool] = None
mirror_direct class-attribute instance-attribute
mirror_direct: Optional[bool] = None
compression class-attribute instance-attribute
compression: Optional[StoreCompression] = None
allow_msg_ttl class-attribute instance-attribute
allow_msg_ttl: Optional[bool] = None
allow_atomic class-attribute instance-attribute
allow_atomic: Optional[bool] = None
allow_batched class-attribute instance-attribute
allow_batched: Optional[bool] = None
allow_msg_schedules class-attribute instance-attribute
allow_msg_schedules: Optional[bool] = None
metadata: Optional[Dict[str, str]] = None
from_response classmethod
from_response(resp: Dict[str, Any])
Source code in nats/js/api.py
| @classmethod
def from_response(cls, resp: Dict[str, Any]):
cls._convert_nanoseconds(resp, "max_age")
cls._convert_nanoseconds(resp, "duplicate_window")
cls._convert(resp, "placement", Placement)
cls._convert(resp, "mirror", StreamSource)
cls._convert(resp, "sources", StreamSource)
cls._convert(resp, "republish", RePublish)
cls._convert(resp, "subject_transform", SubjectTransform)
return super().from_response(resp)
|
as_dict
as_dict() -> Dict[str, object]
Source code in nats/js/api.py
| def as_dict(self) -> Dict[str, object]:
result = super().as_dict()
result["duplicate_window"] = self._to_nanoseconds(
self.duplicate_window
)
result["max_age"] = self._to_nanoseconds(self.max_age)
if self.sources:
result["sources"] = [src.as_dict() for src in self.sources]
if self.compression and (self.compression != StoreCompression.NONE
and self.compression != StoreCompression.S2):
raise ValueError(
"nats: invalid store compression type: %s" % self.compression
)
if self.metadata and not isinstance(self.metadata, dict):
raise ValueError("nats: invalid metadata format")
return result
|
evolve
Return a copy of the instance with the passed values replaced.
Source code in nats/js/api.py
| def evolve(self: _B, **params) -> _B:
"""Return a copy of the instance with the passed values replaced."""
return replace(self, **params)
|