From b19b09761db6f0037fd76e527b9ce6918fbdfcfc Mon Sep 17 00:00:00 2001 From: Ruslan Samoylov Date: Tue, 23 May 2023 02:51:10 +0300 Subject: [PATCH] feat(node): add centrifugo messaging (#854) --- diagrams/onprem/messaging.py | 15 +++++++++++++++ docs/nodes/onprem.md | 6 ++++++ resources/onprem/messaging/centrifugo.png | Bin 0 -> 15364 bytes 3 files changed, 21 insertions(+) create mode 100644 diagrams/onprem/messaging.py create mode 100644 resources/onprem/messaging/centrifugo.png diff --git a/diagrams/onprem/messaging.py b/diagrams/onprem/messaging.py new file mode 100644 index 000000000..65f33c301 --- /dev/null +++ b/diagrams/onprem/messaging.py @@ -0,0 +1,15 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _OnPrem + + +class _Messaging(_OnPrem): + _type = "messaging" + _icon_dir = "resources/onprem/messaging" + + +class Centrifugo(_Messaging): + _icon = "centrifugo.png" + + +# Aliases diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 0fd3b0e25..4a237372f 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -323,6 +323,12 @@ Node classes list of onprem provider. SyslogNg **diagrams.onprem.logging.SyslogNg** +## onprem.messaging + + +Centrifugo +**diagrams.onprem.messaging.Centrifugo** + ## onprem.mlops diff --git a/resources/onprem/messaging/centrifugo.png b/resources/onprem/messaging/centrifugo.png new file mode 100644 index 0000000000000000000000000000000000000000..0821cba976db77a02f9ceb1971543fa57a250ffb GIT binary patch literal 15364 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 iDFH#wO-l)q!2bjA8m(t7i=0#d0000