This is an automated email from the ASF dual-hosted git repository.

bossenti pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes-website.git


The following commit(s) were added to refs/heads/dev by this push:
     new 935f55736 chore(python-docs): update python doc assets to recent 
development state (#195)
935f55736 is described below

commit 935f5573669df8507f2dc67729e7da18e1082efc
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Nov 19 21:08:37 2024 +0100

    chore(python-docs): update python doc assets to recent development state 
(#195)
    
    Co-authored-by: bossenti <[email protected]>
---
 docs-python/dev/404.html                           |  22 +
 .../dev/getting-started/developing/index.html      |  22 +
 .../dev/getting-started/first-steps/index.html     |  22 +
 .../dev/getting-started/quickstart/index.html      |  22 +
 docs-python/dev/img/tutorial-output-stream.png     | Bin 0 -> 208565 bytes
 docs-python/dev/index.html                         |  22 +
 docs-python/dev/reference/client/client/index.html |  26 +-
 docs-python/dev/reference/client/config/index.html |  24 +-
 .../client/credential_provider/index.html          |  24 +-
 .../endpoint/api/data_lake_measure/index.html      |  30 +-
 .../reference/endpoint/api/data_stream/index.html  |  24 +-
 .../dev/reference/endpoint/api/version/index.html  |  24 +-
 .../dev/reference/endpoint/endpoint/index.html     |  24 +-
 .../dev/reference/endpoint/exceptions/index.html   |  24 +-
 .../function_zoo/river_function/index.html         |  24 +-
 .../reference/functions/broker/broker/index.html   |  24 +-
 .../functions/broker/broker_handler/index.html     |  24 +-
 .../reference/functions/broker/consumer/index.html |  24 +-
 .../broker/kafka/kafka_consumer/index.html         |  24 +-
 .../broker/kafka/kafka_message_fetcher/index.html  |  24 +-
 .../broker/kafka/kafka_publisher/index.html        |  24 +-
 .../functions/broker/nats/nats_consumer/index.html |  24 +-
 .../broker/nats/nats_publisher/index.html          |  24 +-
 .../functions/broker/output_collector/index.html   |  24 +-
 .../functions/broker/publisher/index.html          |  24 +-
 .../functions/function_handler/index.html          |  24 +-
 .../reference/functions/registration/index.html    |  24 +-
 .../functions/streampipes_function/index.html      |  24 +-
 .../functions/utils/async_iter_handler/index.html  |  24 +-
 .../functions/utils/data_stream_context/index.html |  24 +-
 .../utils/data_stream_generator/index.html         |  24 +-
 .../functions/utils/function_context/index.html    |  24 +-
 docs-python/dev/reference/model/common/index.html  |  24 +-
 .../model/container/data_lake_measures/index.html  |  24 +-
 .../model/container/data_streams/index.html        |  24 +-
 .../model/container/resource_container/index.html  |  24 +-
 .../reference/model/container/versions/index.html  |  24 +-
 .../model/resource/data_lake_measure/index.html    |  24 +-
 .../model/resource/data_series/index.html          |  24 +-
 .../model/resource/data_stream/index.html          |  24 +-
 .../reference/model/resource/exceptions/index.html |  24 +-
 .../model/resource/function_definition/index.html  |  24 +-
 .../model/resource/query_result/index.html         |  24 +-
 .../reference/model/resource/resource/index.html   |  24 +-
 .../reference/model/resource/version/index.html    |  24 +-
 docs-python/dev/search/search_index.json           |   2 +-
 docs-python/dev/sitemap.xml                        | 101 ++--
 docs-python/dev/sitemap.xml.gz                     | Bin 712 -> 725 bytes
 .../index.html                                     |  22 +
 .../index.html                                     |  22 +
 .../index.html                                     |  22 +
 .../index.html                                     |  22 +
 .../index.html                                     |  24 +-
 .../index.html                                     | 606 +++++++++++++--------
 54 files changed, 1570 insertions(+), 305 deletions(-)

diff --git a/docs-python/dev/404.html b/docs-python/dev/404.html
index d26eb87d0..e4d9f8c40 100644
--- a/docs-python/dev/404.html
+++ b/docs-python/dev/404.html
@@ -560,6 +560,8 @@
         
       
         
+      
+        
       
         
       
@@ -691,6 +693,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a 
href="/docs/docs/python/latest/latest/tutorials/6-streampipes-function-output-stream/"
 class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git a/docs-python/dev/getting-started/developing/index.html 
b/docs-python/dev/getting-started/developing/index.html
index d70f65078..8f1e333c8 100644
--- a/docs-python/dev/getting-started/developing/index.html
+++ b/docs-python/dev/getting-started/developing/index.html
@@ -648,6 +648,8 @@
         
       
         
+      
+        
       
         
       
@@ -779,6 +781,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git a/docs-python/dev/getting-started/first-steps/index.html 
b/docs-python/dev/getting-started/first-steps/index.html
index d37dfe57b..8c9f2aae0 100644
--- a/docs-python/dev/getting-started/first-steps/index.html
+++ b/docs-python/dev/getting-started/first-steps/index.html
@@ -620,6 +620,8 @@
         
       
         
+      
+        
       
         
       
@@ -751,6 +753,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git a/docs-python/dev/getting-started/quickstart/index.html 
b/docs-python/dev/getting-started/quickstart/index.html
index b4e449cdf..a79d96042 100644
--- a/docs-python/dev/getting-started/quickstart/index.html
+++ b/docs-python/dev/getting-started/quickstart/index.html
@@ -567,6 +567,8 @@
         
       
         
+      
+        
       
         
       
@@ -698,6 +700,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git a/docs-python/dev/img/tutorial-output-stream.png 
b/docs-python/dev/img/tutorial-output-stream.png
new file mode 100644
index 000000000..a98a9a292
Binary files /dev/null and b/docs-python/dev/img/tutorial-output-stream.png 
differ
diff --git a/docs-python/dev/index.html b/docs-python/dev/index.html
index 172eb3216..c7ec7785f 100644
--- a/docs-python/dev/index.html
+++ b/docs-python/dev/index.html
@@ -596,6 +596,8 @@
         
       
         
+      
+        
       
         
       
@@ -727,6 +729,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git a/docs-python/dev/reference/client/client/index.html 
b/docs-python/dev/reference/client/client/index.html
index c00b4456e..f9c696dc9 100644
--- a/docs-python/dev/reference/client/client/index.html
+++ b/docs-python/dev/reference/client/client/index.html
@@ -34,7 +34,7 @@
         <link rel="canonical" 
href="https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/client/";>
       
       
-        <link rel="prev" 
href="../../../tutorials/5-applying-interoperable-machine-learning-in-streampipes/">
+        <link rel="prev" 
href="../../../tutorials/6-streampipes-function-output-stream/">
       
       
         <link rel="next" href="../config/">
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2810,7 +2832,7 @@ The following StreamPipes resources are available with 
this client:
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/client/config/index.html 
b/docs-python/dev/reference/client/config/index.html
index 900c98abf..a5d1f8db7 100644
--- a/docs-python/dev/reference/client/config/index.html
+++ b/docs-python/dev/reference/client/config/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2443,7 +2465,7 @@ e.g., <code>80</code> (with http) or <code>443</code> 
(with https)</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/client/credential_provider/index.html 
b/docs-python/dev/reference/client/credential_provider/index.html
index ab645ff77..6a180cc6b 100644
--- a/docs-python/dev/reference/client/credential_provider/index.html
+++ b/docs-python/dev/reference/client/credential_provider/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2803,7 +2825,7 @@ determined by the credential provider.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html 
b/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
index 166e22446..f37fddd55 100644
--- a/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
+++ b/docs-python/dev/reference/endpoint/api/data_lake_measure/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2852,7 +2874,8 @@ Please be aware that the column <code>time</code> as an 
index is always included
           <td><code><span 
title="streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.end_date">end_date</span></code></td>
           <td class="doc-attribute-details">
             <div class="doc-md-description">
-              <p>Limits the queried data to only include data that is older 
than the specified time. In other words, any data that occurred after the 
end_date will not be included in the query results.</p>
+              <p>Limits the queried data to only include data that is older 
than the specified time.
+In other words, any data that occurred after the end_date will not be included 
in the query results.</p>
             </div>
             <p>
                 <span class="doc-attribute-annotation">
@@ -2926,7 +2949,8 @@ This needs to be at least <code>1</code></p>
           <td><code><span 
title="streampipes.endpoint.api.data_lake_measure.MeasurementGetQueryConfig.start_date">start_date</span></code></td>
           <td class="doc-attribute-details">
             <div class="doc-md-description">
-              <p>Limits the queried data to only include data that is newer 
than the specified time. In other words, any data that occurred before the 
start_date will not be included in the query results.</p>
+              <p>Limits the queried data to only include data that is newer 
than the specified time.
+In other words, any data that occurred before the start_date will not be 
included in the query results.</p>
             </div>
             <p>
                 <span class="doc-attribute-annotation">
@@ -3089,7 +3113,7 @@ causes an error.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/endpoint/api/data_stream/index.html 
b/docs-python/dev/reference/endpoint/api/data_stream/index.html
index 820773d4e..bd02889c0 100644
--- a/docs-python/dev/reference/endpoint/api/data_stream/index.html
+++ b/docs-python/dev/reference/endpoint/api/data_stream/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2676,7 +2698,7 @@ allows to handle the returned resources in a comfortable 
and pythonic way.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/endpoint/api/version/index.html 
b/docs-python/dev/reference/endpoint/api/version/index.html
index 22dc323d5..528dfda73 100644
--- a/docs-python/dev/reference/endpoint/api/version/index.html
+++ b/docs-python/dev/reference/endpoint/api/version/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2696,7 +2718,7 @@ Since the data represented by this endpoint is immutable, 
it does not support th
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/endpoint/endpoint/index.html 
b/docs-python/dev/reference/endpoint/endpoint/index.html
index a2045dbb4..2f2a831d3 100644
--- a/docs-python/dev/reference/endpoint/endpoint/index.html
+++ b/docs-python/dev/reference/endpoint/endpoint/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2983,7 +3005,7 @@ The based <code>broker</code> instance is passed to an 
internal property.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/endpoint/exceptions/index.html 
b/docs-python/dev/reference/endpoint/exceptions/index.html
index b0900092d..5452cbc27 100644
--- a/docs-python/dev/reference/endpoint/exceptions/index.html
+++ b/docs-python/dev/reference/endpoint/exceptions/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2367,7 +2389,7 @@ the broker instance to be used is configured by passing 
it to the <code>configur
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/function_zoo/river_function/index.html 
b/docs-python/dev/reference/function_zoo/river_function/index.html
index 70a1a0b4a..c1bed92c3 100644
--- a/docs-python/dev/reference/function_zoo/river_function/index.html
+++ b/docs-python/dev/reference/function_zoo/river_function/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -3291,7 +3313,7 @@ but can be every model with a 'learn_one' and 
'predict_one' method.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/functions/broker/broker/index.html 
b/docs-python/dev/reference/functions/broker/broker/index.html
index 65cb5986b..a96f71d3d 100644
--- a/docs-python/dev/reference/functions/broker/broker/index.html
+++ b/docs-python/dev/reference/functions/broker/broker/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2504,7 +2526,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/broker_handler/index.html 
b/docs-python/dev/reference/functions/broker/broker_handler/index.html
index ae9c98de6..b78b1519f 100644
--- a/docs-python/dev/reference/functions/broker/broker_handler/index.html
+++ b/docs-python/dev/reference/functions/broker/broker_handler/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2620,7 +2642,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/functions/broker/consumer/index.html 
b/docs-python/dev/reference/functions/broker/consumer/index.html
index 594b4adc1..cf8ce633c 100644
--- a/docs-python/dev/reference/functions/broker/consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/consumer/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2570,7 +2592,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html 
b/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
index 41defe08d..346b44286 100644
--- a/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/kafka/kafka_consumer/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2566,7 +2588,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
 
b/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
index 1108125b1..41e596cbf 100644
--- 
a/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
+++ 
b/docs-python/dev/reference/functions/broker/kafka/kafka_message_fetcher/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2439,7 +2461,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html 
b/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
index 8cf7da4b8..d2fa2527d 100644
--- 
a/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
+++ 
b/docs-python/dev/reference/functions/broker/kafka/kafka_publisher/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2593,7 +2615,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html 
b/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
index 98b6abd68..d44b550f8 100644
--- a/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
+++ b/docs-python/dev/reference/functions/broker/nats/nats_consumer/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2566,7 +2588,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html 
b/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
index 14ffaa5f5..72f599150 100644
--- a/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
+++ b/docs-python/dev/reference/functions/broker/nats/nats_publisher/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2593,7 +2615,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/broker/output_collector/index.html 
b/docs-python/dev/reference/functions/broker/output_collector/index.html
index d2d5670f5..a083d2ff5 100644
--- a/docs-python/dev/reference/functions/broker/output_collector/index.html
+++ b/docs-python/dev/reference/functions/broker/output_collector/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2546,7 +2568,7 @@ Therefore, the output collector establishes a connection 
to the broker.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/functions/broker/publisher/index.html 
b/docs-python/dev/reference/functions/broker/publisher/index.html
index dad1bd28f..3a968f58a 100644
--- a/docs-python/dev/reference/functions/broker/publisher/index.html
+++ b/docs-python/dev/reference/functions/broker/publisher/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2594,7 +2616,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/functions/function_handler/index.html 
b/docs-python/dev/reference/functions/function_handler/index.html
index 93eb7dba9..b6b10cc23 100644
--- a/docs-python/dev/reference/functions/function_handler/index.html
+++ b/docs-python/dev/reference/functions/function_handler/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2629,7 +2651,7 @@ and is able to stop the connection to the brokers and 
functions.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/functions/registration/index.html 
b/docs-python/dev/reference/functions/registration/index.html
index 7ee451d6e..3cc6ebdb6 100644
--- a/docs-python/dev/reference/functions/registration/index.html
+++ b/docs-python/dev/reference/functions/registration/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2525,7 +2547,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/streampipes_function/index.html 
b/docs-python/dev/reference/functions/streampipes_function/index.html
index e3deb4cb8..faf0d515f 100644
--- a/docs-python/dev/reference/functions/streampipes_function/index.html
+++ b/docs-python/dev/reference/functions/streampipes_function/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2919,7 +2941,7 @@ data analytics libraries there.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/utils/async_iter_handler/index.html 
b/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
index 08647df3d..5b8d482ae 100644
--- a/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
+++ b/docs-python/dev/reference/functions/utils/async_iter_handler/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2551,7 +2573,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/utils/data_stream_context/index.html 
b/docs-python/dev/reference/functions/utils/data_stream_context/index.html
index ebbf832ea..584c5da8b 100644
--- a/docs-python/dev/reference/functions/utils/data_stream_context/index.html
+++ b/docs-python/dev/reference/functions/utils/data_stream_context/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2488,7 +2510,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/utils/data_stream_generator/index.html 
b/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
index 9839f1c11..489925842 100644
--- a/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
+++ b/docs-python/dev/reference/functions/utils/data_stream_generator/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2533,7 +2555,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/functions/utils/function_context/index.html 
b/docs-python/dev/reference/functions/utils/function_context/index.html
index d86e51658..5a2a8ec66 100644
--- a/docs-python/dev/reference/functions/utils/function_context/index.html
+++ b/docs-python/dev/reference/functions/utils/function_context/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2516,7 +2538,7 @@
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/common/index.html 
b/docs-python/dev/reference/model/common/index.html
index ffaf930c3..39ffdcb36 100644
--- a/docs-python/dev/reference/model/common/index.html
+++ b/docs-python/dev/reference/model/common/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -3802,7 +3824,7 @@ Defines alias generator to convert field names from 
camelCase (API) to snake_cas
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/model/container/data_lake_measures/index.html 
b/docs-python/dev/reference/model/container/data_lake_measures/index.html
index 375c79b18..52cefd684 100644
--- a/docs-python/dev/reference/model/container/data_lake_measures/index.html
+++ b/docs-python/dev/reference/model/container/data_lake_measures/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2701,7 +2723,7 @@ keys used in the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/container/data_streams/index.html 
b/docs-python/dev/reference/model/container/data_streams/index.html
index b2be2d7ce..648a8cc0e 100644
--- a/docs-python/dev/reference/model/container/data_streams/index.html
+++ b/docs-python/dev/reference/model/container/data_streams/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2701,7 +2723,7 @@ keys used in the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/model/container/resource_container/index.html 
b/docs-python/dev/reference/model/container/resource_container/index.html
index 03d4ac2f1..59c853a29 100644
--- a/docs-python/dev/reference/model/container/resource_container/index.html
+++ b/docs-python/dev/reference/model/container/resource_container/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2907,7 +2929,7 @@ does not suit to the structure of resource container.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/container/versions/index.html 
b/docs-python/dev/reference/model/container/versions/index.html
index 90bbc4370..443896703 100644
--- a/docs-python/dev/reference/model/container/versions/index.html
+++ b/docs-python/dev/reference/model/container/versions/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2728,7 +2750,7 @@ keys used in the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/model/resource/data_lake_measure/index.html 
b/docs-python/dev/reference/model/resource/data_lake_measure/index.html
index c05aed346..0bb8692c9 100644
--- a/docs-python/dev/reference/model/resource/data_lake_measure/index.html
+++ b/docs-python/dev/reference/model/resource/data_lake_measure/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2565,7 +2587,7 @@ equally named to the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/data_series/index.html 
b/docs-python/dev/reference/model/resource/data_series/index.html
index 6e621989b..8877d8a8c 100644
--- a/docs-python/dev/reference/model/resource/data_series/index.html
+++ b/docs-python/dev/reference/model/resource/data_series/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2748,7 +2770,7 @@ equally named to the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/data_stream/index.html 
b/docs-python/dev/reference/model/resource/data_stream/index.html
index 0250eb0c8..110c4f79a 100644
--- a/docs-python/dev/reference/model/resource/data_stream/index.html
+++ b/docs-python/dev/reference/model/resource/data_stream/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2560,7 +2582,7 @@ equally named to the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/exceptions/index.html 
b/docs-python/dev/reference/model/resource/exceptions/index.html
index e9083dfb9..c3ca9755c 100644
--- a/docs-python/dev/reference/model/resource/exceptions/index.html
+++ b/docs-python/dev/reference/model/resource/exceptions/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2339,7 +2361,7 @@ cannot be parsed with the current implementation of the 
resource.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git 
a/docs-python/dev/reference/model/resource/function_definition/index.html 
b/docs-python/dev/reference/model/resource/function_definition/index.html
index 6b65def5f..c3ee0887e 100644
--- a/docs-python/dev/reference/model/resource/function_definition/index.html
+++ b/docs-python/dev/reference/model/resource/function_definition/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2989,7 +3011,7 @@ Defines alias generator to convert field names from 
camelCase (API) to snake_cas
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/query_result/index.html 
b/docs-python/dev/reference/model/resource/query_result/index.html
index c985fb013..7fa96434e 100644
--- a/docs-python/dev/reference/model/resource/query_result/index.html
+++ b/docs-python/dev/reference/model/resource/query_result/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2645,7 +2667,7 @@ equally named to the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/resource/index.html 
b/docs-python/dev/reference/model/resource/resource/index.html
index 6cfcf2fbf..659861813 100644
--- a/docs-python/dev/reference/model/resource/resource/index.html
+++ b/docs-python/dev/reference/model/resource/resource/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -688,6 +690,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2568,7 +2590,7 @@ equally named to the StreamPipes backend</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/reference/model/resource/version/index.html 
b/docs-python/dev/reference/model/resource/version/index.html
index 51f225bff..d3e162583 100644
--- a/docs-python/dev/reference/model/resource/version/index.html
+++ b/docs-python/dev/reference/model/resource/version/index.html
@@ -555,6 +555,8 @@
         
       
         
+      
+        
       
         
       
@@ -686,6 +688,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../tutorials/6-streampipes-function-output-stream/" 
class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2588,7 +2610,7 @@ in development mode.</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 27, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">November 16, 2024</span>
       
     
   </small>
diff --git a/docs-python/dev/search/search_index.json 
b/docs-python/dev/search/search_index.json
index 00ed4e11c..8bdd3f51a 100644
--- a/docs-python/dev/search/search_index.json
+++ b/docs-python/dev/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe1
 Home","text":"StreamPipes is a self-service (Industrial) IoT toolbox to enable 
non-technical users to connect, analyze and explore IoT data streams. Apache 
StreamPipes for Python \ud83d\udc0d <p> Apache StreamPipes meets Python! We are 
working highly motivated on a Python library to interact with StreamPipes. In 
this way, we would like to unite the power of StreamP [...]
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe1
 Home","text":"StreamPipes is a self-service (Industrial) IoT toolbox to enable 
non-technical users to connect, analyze and explore IoT data streams. Apache 
StreamPipes for Python \ud83d\udc0d <p> Apache StreamPipes meets Python! We are 
working highly motivated on a Python library to interact with StreamPipes. In 
this way, we would like to unite the power of StreamP [...]
\ No newline at end of file
diff --git a/docs-python/dev/sitemap.xml b/docs-python/dev/sitemap.xml
index f1852e4cf..ae251084e 100644
--- a/docs-python/dev/sitemap.xml
+++ b/docs-python/dev/sitemap.xml
@@ -2,242 +2,247 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/developing/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/first-steps/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/getting-started/quickstart/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/client/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/config/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/client/credential_provider/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/endpoint/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/exceptions/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/data_lake_measure/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/data_stream/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/endpoint/api/version/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/function_zoo/river_function/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/function_handler/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/registration/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/streampipes_function/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/broker/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/broker_handler/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/consumer/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/output_collector/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/publisher/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_consumer/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_message_fetcher/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/kafka/kafka_publisher/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/nats/nats_consumer/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/broker/nats/nats_publisher/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/async_iter_handler/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/data_stream_context/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/data_stream_generator/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/functions/utils/function_context/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/common/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/data_lake_measures/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/data_streams/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/resource_container/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/container/versions/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_lake_measure/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_series/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/data_stream/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/exceptions/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/function_definition/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/query_result/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/resource/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/reference/model/resource/version/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/1-introduction-to-streampipes-python-client/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/2-extracting-data-from-the-streampipes-data-lake/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/3-getting-live-data-from-the-streampipes-data-stream/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/5-applying-interoperable-machine-learning-in-streampipes/</loc>
-         <lastmod>2024-07-27</lastmod>
+         <lastmod>2024-11-16</lastmod>
+         <changefreq>daily</changefreq>
+    </url>
+    <url>
+         
<loc>https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/6-streampipes-function-output-stream/</loc>
+         <lastmod>2024-11-16</lastmod>
          <changefreq>daily</changefreq>
     </url>
 </urlset>
\ No newline at end of file
diff --git a/docs-python/dev/sitemap.xml.gz b/docs-python/dev/sitemap.xml.gz
index a45277163..6b1153bd9 100644
Binary files a/docs-python/dev/sitemap.xml.gz and 
b/docs-python/dev/sitemap.xml.gz differ
diff --git 
a/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
 
b/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
index 54dc7b0e0..15377e038 100644
--- 
a/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
+++ 
b/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -756,6 +758,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../6-streampipes-function-output-stream/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git 
a/docs-python/dev/tutorials/2-extracting-data-from-the-streampipes-data-lake/index.html
 
b/docs-python/dev/tutorials/2-extracting-data-from-the-streampipes-data-lake/index.html
index 4bd74fd19..4258692b1 100644
--- 
a/docs-python/dev/tutorials/2-extracting-data-from-the-streampipes-data-lake/index.html
+++ 
b/docs-python/dev/tutorials/2-extracting-data-from-the-streampipes-data-lake/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -698,6 +700,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../6-streampipes-function-output-stream/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git 
a/docs-python/dev/tutorials/3-getting-live-data-from-the-streampipes-data-stream/index.html
 
b/docs-python/dev/tutorials/3-getting-live-data-from-the-streampipes-data-stream/index.html
index b6b4c5dbc..9271b24c1 100644
--- 
a/docs-python/dev/tutorials/3-getting-live-data-from-the-streampipes-data-stream/index.html
+++ 
b/docs-python/dev/tutorials/3-getting-live-data-from-the-streampipes-data-stream/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -698,6 +700,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../6-streampipes-function-output-stream/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git 
a/docs-python/dev/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/index.html
 
b/docs-python/dev/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/index.html
index 9917d6bde..33f41999d 100644
--- 
a/docs-python/dev/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/index.html
+++ 
b/docs-python/dev/tutorials/4-using-online-machine-learning-on-a-streampipes-data-stream/index.html
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -756,6 +758,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../6-streampipes-function-output-stream/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git 
a/docs-python/dev/tutorials/5-applying-interoperable-machine-learning-in-streampipes/index.html
 
b/docs-python/dev/tutorials/5-applying-interoperable-machine-learning-in-streampipes/index.html
index 64b9dfd64..033e51b55 100644
--- 
a/docs-python/dev/tutorials/5-applying-interoperable-machine-learning-in-streampipes/index.html
+++ 
b/docs-python/dev/tutorials/5-applying-interoperable-machine-learning-in-streampipes/index.html
@@ -37,7 +37,7 @@
         <link rel="prev" 
href="../4-using-online-machine-learning-on-a-streampipes-data-stream/">
       
       
-        <link rel="next" href="../../reference/client/client/">
+        <link rel="next" href="../6-streampipes-function-output-stream/">
       
       
       <link rel="icon" href="https://streampipes.apache.org/img/favicon.png";>
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -756,6 +758,26 @@
 
               
             
+              
+                
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../6-streampipes-function-output-stream/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
diff --git 
a/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
 b/docs-python/dev/tutorials/6-streampipes-function-output-stream/index.html
similarity index 96%
copy from 
docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
copy to 
docs-python/dev/tutorials/6-streampipes-function-output-stream/index.html
index 54dc7b0e0..beb08d0e0 100644
--- 
a/docs-python/dev/tutorials/1-introduction-to-streampipes-python-client/index.html
+++ b/docs-python/dev/tutorials/6-streampipes-function-output-stream/index.html
@@ -31,13 +31,13 @@
         <meta name="author" content="Apache Software Foundation (ASF)">
       
       
-        <link rel="canonical" 
href="https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/1-introduction-to-streampipes-python-client/";>
+        <link rel="canonical" 
href="https://streampipes.apache.org/docs/docs/python/latest/latest/tutorials/6-streampipes-function-output-stream/";>
       
       
-        <link rel="prev" href="../../getting-started/quickstart/">
+        <link rel="prev" 
href="../5-applying-interoperable-machine-learning-in-streampipes/">
       
       
-        <link rel="next" 
href="../2-extracting-data-from-the-streampipes-data-lake/">
+        <link rel="next" href="../../reference/client/client/">
       
       
       <link rel="icon" href="https://streampipes.apache.org/img/favicon.png";>
@@ -45,7 +45,7 @@
     
     
       
-        <title>Introduction to StreamPipes Python - Apache StreamPipes 
Python</title>
+        <title>Creating Output Streams with StreamPipes Functions - Apache 
StreamPipes Python</title>
       
     
     
@@ -140,7 +140,7 @@
     <div data-md-component="skip">
       
         
-        <a href="#introduction-to-streampipes-python" class="md-skip">
+        <a href="#creating-output-streams-with-streampipes-functions" 
class="md-skip">
           Skip to content
         </a>
       
@@ -179,7 +179,7 @@
         <div class="md-header__topic" data-md-component="header-topic">
           <span class="md-ellipsis">
             
-              Introduction to StreamPipes Python
+              Creating Output Streams with StreamPipes Functions
             
           </span>
         </div>
@@ -320,7 +320,7 @@
     
     
       <li class="md-tabs__item md-tabs__item--active">
-        <a href="./" class="md-tabs__link">
+        <a href="../1-introduction-to-streampipes-python-client/" 
class="md-tabs__link">
           
   
     
@@ -557,6 +557,8 @@
         
       
         
+      
+        
       
         
       
@@ -592,29 +594,9 @@
                 
   
   
-    
-  
-  
-    <li class="md-nav__item md-nav__item--active">
-      
-      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
-      
-      
-        
-      
-      
-        <label class="md-nav__link md-nav__link--active" for="__toc">
-          
-  
-  <span class="md-ellipsis">
-    Introduction to StreamPipes Python
-  </span>
   
-
-          <span class="md-nav__icon md-icon"></span>
-        </label>
-      
-      <a href="./" class="md-nav__link md-nav__link--active">
+    <li class="md-nav__item">
+      <a href="../1-introduction-to-streampipes-python-client/" 
class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -623,54 +605,6 @@
   
 
       </a>
-      
-        
-
-<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
-  
-  
-  
-    
-  
-  
-    <label class="md-nav__title" for="__toc">
-      <span class="md-nav__icon md-icon"></span>
-      Table of contents
-    </label>
-    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
-      
-        <li class="md-nav__item">
-  <a href="#why-there-is-an-extra-python-library-for-streampipes" 
class="md-nav__link">
-    Why there is an extra Python library for StreamPipes?
-  </a>
-  
-</li>
-      
-        <li class="md-nav__item">
-  <a href="#how-to-install-streampipes-python" class="md-nav__link">
-    How to install StreamPipes Python?
-  </a>
-  
-</li>
-      
-        <li class="md-nav__item">
-  <a href="#how-to-prepare-the-tutorials" class="md-nav__link">
-    How to prepare the tutorials
-  </a>
-  
-</li>
-      
-        <li class="md-nav__item">
-  <a href="#how-to-configure-the-python-client" class="md-nav__link">
-    How to configure the Python client
-  </a>
-  
-</li>
-      
-    </ul>
-  
-</nav>
-      
     </li>
   
 
@@ -756,6 +690,94 @@
 
               
             
+              
+                
+  
+  
+    
+  
+  
+    <li class="md-nav__item md-nav__item--active">
+      
+      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+      
+      
+        
+      
+      
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
+      <a href="./" class="md-nav__link md-nav__link--active">
+        
+  
+  <span class="md-ellipsis">
+    Creating Output Streams with StreamPipes Functions
+  </span>
+  
+
+      </a>
+      
+        
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#connecting-to-your-streampipes-instance" class="md-nav__link">
+    Connecting to your StreamPipes instance
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#creating-an-output-stream" class="md-nav__link">
+    Creating an output stream
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#creating-the-streampipes-function" class="md-nav__link">
+    Creating the StreamPipes Function
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#instantiating-and-starting-the-function" class="md-nav__link">
+    Instantiating and starting the function
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
+    </li>
+  
+
+              
+            
           </ul>
         </nav>
       
@@ -2243,29 +2265,29 @@
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
         <li class="md-nav__item">
-  <a href="#why-there-is-an-extra-python-library-for-streampipes" 
class="md-nav__link">
-    Why there is an extra Python library for StreamPipes?
+  <a href="#connecting-to-your-streampipes-instance" class="md-nav__link">
+    Connecting to your StreamPipes instance
   </a>
   
 </li>
       
         <li class="md-nav__item">
-  <a href="#how-to-install-streampipes-python" class="md-nav__link">
-    How to install StreamPipes Python?
+  <a href="#creating-an-output-stream" class="md-nav__link">
+    Creating an output stream
   </a>
   
 </li>
       
         <li class="md-nav__item">
-  <a href="#how-to-prepare-the-tutorials" class="md-nav__link">
-    How to prepare the tutorials
+  <a href="#creating-the-streampipes-function" class="md-nav__link">
+    Creating the StreamPipes Function
   </a>
   
 </li>
       
         <li class="md-nav__item">
-  <a href="#how-to-configure-the-python-client" class="md-nav__link">
-    How to configure the Python client
+  <a href="#instantiating-and-starting-the-function" class="md-nav__link">
+    Instantiating and starting the function
   </a>
   
 </li>
@@ -2285,7 +2307,7 @@
                   
 
   
-    <a 
href="https://github.com/apache/streampipes/blob/dev/streampipes-client-python/docs/tutorials/1-introduction-to-streampipes-python-client.ipynb";
 title="Edit this page" class="md-content__button md-icon">
+    <a 
href="https://github.com/apache/streampipes/blob/dev/streampipes-client-python/docs/tutorials/6-streampipes-function-output-stream.ipynb";
 title="Edit this page" class="md-content__button md-icon">
       
       <svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 24 24"><path d="M10 
20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 
.3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 
23H12v-2.1l6.1-6.1 2.1 2.1Z"/></svg>
     </a>
@@ -3320,17 +3342,33 @@ Licensed under the Apache License, Version 2.0.
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<h1 id="Introduction-to-StreamPipes-Python">Introduction to StreamPipes 
Python<a class="anchor-link" 
href="#Introduction-to-StreamPipes-Python">¶</a></h1><h3 
id="Why-there-is-an-extra-Python-library-for-StreamPipes?">Why there is an 
extra Python library for StreamPipes?<a class="anchor-link" 
href="#Why-there-is-an-extra-Python-library-for-StreamPipes?">¶</a></h3><p><a 
href="https://streampipes.apache.org/";>Apache StreamPipes</a> aims to enable 
non-technical users to connect and analyze I [...]
-To achieve this, it provides an easy-to-use and convenient user interface that 
allows one to connect to an IoT data source and create some visual
-graphs within a few minutes. <br/>
-While this is the primary use case for Apache StreamPipes, it also offers 
significant value to those interested in data analysis or data science with IoT 
data, without the need to handle the complexities of extracting data from 
devices in a suitable format.
-In this scenario, StreamPipes helps you connect to your data source and 
extract the data for you.
-You then can make the data available outside StreamPipes by writing it into an 
external source, such as a database, Kafka, etc.
-While this requires another component, you can also extract your data directly 
from StreamPipes programmatically using the StreamPipes API.
-For convenience, we also provide you with a StreamPipes client both available 
for Java and Python.
-Specifically with StreamPipes Python, we want to address the amazing data 
analytics and data science community in Python and benefit from the great 
universe of Python libraries out there.</p>
-<br/>
-<h3 id="How-to-install-StreamPipes-Python?">How to install StreamPipes 
Python?<a class="anchor-link" 
href="#How-to-install-StreamPipes-Python?">¶</a></h3><p>Simply use the 
following <code>pip</code> command:</p>
+<h1 id="Creating-Output-Streams-with-StreamPipes-Functions">Creating Output 
Streams with StreamPipes Functions<a class="anchor-link" 
href="#Creating-Output-Streams-with-StreamPipes-Functions">¶</a></h1>
+</div>
+</div>
+</div>
+</div>
+<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div class="jp-Cell-inputWrapper">
+<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
+</div>
+<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
+</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
+<p>A StreamPipes Function is a practical tool to help you receive and send 
live data from and to your StreamPipes instance. This tutorial provides sample 
code for creating a StreamPipes Function that defines an output stream so you 
can get started right away by following the below steps.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div class="jp-Cell-inputWrapper">
+<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
+</div>
+<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
+</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
+<h2 id="Connecting-to-your-StreamPipes-instance">Connecting to your 
StreamPipes instance<a class="anchor-link" 
href="#Connecting-to-your-StreamPipes-instance">¶</a></h2><p>In order to 
receive and send live data from and to StreamPipes you will first have to 
connect to your instance by creating a StreamPipes Client by following the 
usual procedure. In this case we will be connecting to a local instance using 
Kafka. If you haven't already, you will need to open the kafka port manually 
insi [...]
+<pre><code class="language-yml">yml
+ports:
+  - "9094:9094"
+</code></pre>
 </div>
 </div>
 </div>
@@ -3340,7 +3378,7 @@ Specifically with StreamPipes Python, we want to address 
the amazing data analyt
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
 <div class="jp-InputArea jp-Cell-inputArea">
-<div class="jp-InputPrompt jp-InputArea-prompt">In [ ]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
+<div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
 <div class="CodeMirror cm-s-jupyter">
 <div class="zeroclipboard-container">
 <clipboard-copy for="cell-1">
@@ -3353,33 +3391,29 @@ Specifically with StreamPipes Python, we want to 
address the amazing data analyt
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="o">%</span><span class="n">pip</span> <span class="n">install</span> 
<span class="n">streampipes</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="kn">import</span> <span class="nn">os</span>
+
+<span class="n">os</span><span class="o">.</span><span 
class="n">environ</span><span class="p">[</span><span 
class="s2">"BROKER-HOST"</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">"localhost"</span>
+<span class="n">os</span><span class="o">.</span><span 
class="n">environ</span><span class="p">[</span><span 
class="s2">"KAFKA-PORT"</span><span class="p">]</span> <span class="o">=</span> 
<span class="s2">"9094"</span>
+<span class="n">api_key</span> <span class="o">=</span> <span 
class="n">os</span><span class="o">.</span><span class="n">environ</span><span 
class="o">.</span><span class="n">get</span><span class="p">(</span><span 
class="s2">"TOKEN"</span><span class="p">)</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-1">%pip install streampipes
-</div>
-</div>
-</div>
-</div>
-</div>
-</div>
+<div class="clipboard-copy-txt" id="cell-1">import os
+
+os.environ["BROKER-HOST"] = "localhost"
+os.environ["KAFKA-PORT"] = "9094"
+api_key = os.environ.get("TOKEN")</div>
 </div>
-<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
-<div class="jp-Cell-inputWrapper">
-<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
-<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
-</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>If you want to have the current development state you can also execute:</p>
 </div>
 </div>
 </div>
-</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
-<div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
+</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
+<div class="jp-Cell jp-CodeCell jp-Notebook-cell">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
 <div class="jp-InputArea jp-Cell-inputArea">
-<div class="jp-InputPrompt jp-InputArea-prompt">In [ ]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
+<div class="jp-InputPrompt jp-InputArea-prompt">In [4]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
 <div class="CodeMirror cm-s-jupyter">
 <div class="zeroclipboard-container">
 <clipboard-copy for="cell-2">
@@ -3392,37 +3426,46 @@ Specifically with StreamPipes Python, we want to 
address the amazing data analyt
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="o">%</span><span class="n">pip</span> <span class="n">install</span> 
<span class="n">git</span><span class="o">+</span><span 
class="n">https</span><span class="p">:</span><span class="o">//</span><span 
class="n">github</span><span class="o">.</span><span class="n">com</span><span 
class="o">/</span><span class="n">apache</span><span class="o">/</span><span 
class="n">streampipes</span><span class="o">.</span><span class= [...]
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="kn">from</span> <span class="nn">streampipes.client</span> <span 
class="kn">import</span> <span class="n">StreamPipesClient</span>
+<span class="kn">from</span> <span class="nn">streampipes.client.config</span> 
<span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.client.credential_provider</span> <span 
class="kn">import</span> <span class="n">StreamPipesApiKeyCredentials</span>
+
+<span class="n">client_config</span> <span class="o">=</span> <span 
class="n">StreamPipesClientConfig</span><span class="p">(</span>
+    <span class="n">credential_provider</span><span class="o">=</span><span 
class="n">StreamPipesApiKeyCredentials</span><span class="p">(</span><span 
class="n">username</span><span class="o">=</span><span 
class="s2">"[email protected]"</span><span class="p">,</span> <span 
class="n">api_key</span><span class="o">=</span><span 
class="n">api_key</span><span class="p">),</span>
+    <span class="n">host_address</span><span class="o">=</span><span 
class="s2">"localhost"</span><span class="p">,</span>
+    <span class="n">port</span><span class="o">=</span><span 
class="mi">80</span><span class="p">,</span>
+    <span class="n">https_disabled</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span>
+<span class="p">)</span>
+<span class="n">client</span> <span class="o">=</span> <span 
class="n">StreamPipesClient</span><span class="p">(</span><span 
class="n">client_config</span><span class="o">=</span><span 
class="n">client_config</span><span class="p">)</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-2">
-%pip install 
git+https://github.com/apache/streampipes.git#subdirectory=streampipes-client-python</div>
-</div>
-</div>
-</div>
-</div>
-</div>
+<div class="clipboard-copy-txt" id="cell-2">from streampipes.client import 
StreamPipesClient
+from streampipes.client.config import StreamPipesClientConfig
+from streampipes.client.credential_provider import StreamPipesApiKeyCredentials
+
+client_config = StreamPipesClientConfig(
+    
credential_provider=StreamPipesApiKeyCredentials(username="[email protected]",
 api_key=api_key),
+    host_address="localhost",
+    port=80,
+    https_disabled=True,
+)
+client = StreamPipesClient(client_config=client_config)</div>
 </div>
-<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
-<div class="jp-Cell-inputWrapper">
-<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
-<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
-</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>The corresponding documentation can be found <a 
href="https://streampipes.apache.org/docs/docs/python/dev/";>here</a>.
-<br/></p>
 </div>
 </div>
+<div class="jp-Cell-outputWrapper">
+<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
 </div>
+<div class="jp-OutputArea jp-Cell-outputArea">
+<div class="jp-OutputArea-child">
+<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
+<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
+<pre>2024-07-30 12:44:07,912 - streampipes.client.client - [INFO] - 
[client.py:199] [_set_up_logging] - Logging successfully initialized with 
logging level INFO.
+2024-07-30 12:44:07,995 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:164] [_make_request] - Successfully retrieved all resources.
+2024-07-30 12:44:07,995 - streampipes.client.client - [INFO] - [client.py:172] 
[_get_server_version] - The StreamPipes version was successfully retrieved from 
the backend: 0.95.1. By means of that, authentication via the provided 
credentials is also tested successfully.
+</pre>
 </div>
-<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
-<div class="jp-Cell-inputWrapper">
-<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
-<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
-</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<h3 id="How-to-prepare-the-tutorials">How to prepare the tutorials<a 
class="anchor-link" href="#How-to-prepare-the-tutorials">¶</a></h3><p>In case 
you want to reproduce the first two tutorials exactly on your end, you need to 
create a simple pipeline in StreamPipes like demonstrated below.</p>
-<p><img alt="tutorial-preparation" 
src="https://raw.githubusercontent.com/apache/streampipes/dev/streampipes-client-python/docs/img/tutorial-preparation.gif"/></p>
-<br/>
 </div>
 </div>
 </div>
@@ -3433,11 +3476,7 @@ Specifically with StreamPipes Python, we want to address 
the amazing data analyt
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<h3 id="How-to-configure-the-Python-client">How to configure the Python 
client<a class="anchor-link" 
href="#How-to-configure-the-Python-client">¶</a></h3><p>In order to access the 
resources available in StreamPipes, one must be able to authenticate against 
the backend.
-For this purpose, the client so far only supports the authentication via an 
API token that can be generated via the StreamPipes UI, as you can see 
below.</p>
-<p><img alt="how-to-get-api-key" 
src="https://raw.githubusercontent.com/apache/streampipes/dev/streampipes-client-python/docs/img/how-to-get-api-key.gif"/></p>
-<br/>
-<p>Having generated the API token, one can directly start initializing a 
client instance as follows:</p>
+<h2 id="Creating-an-output-stream">Creating an output stream<a 
class="anchor-link" href="#Creating-an-output-stream">¶</a></h2><p>You can 
create an output stream by using the <code>create_data_stream</code> method 
inside the functions <code>init</code> method. You need to specify the name 
that will be used to display the stream in StreamPipes alongside its 
<code>stream_id</code>, <code>attributes</code>, and the 
<code>broker</code>.</p>
 </div>
 </div>
 </div>
@@ -3460,16 +3499,39 @@ For this purpose, the client so far only supports the 
authentication via an API
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="kn">from</span> <span class="nn">streampipes.client</span> <span 
class="kn">import</span> <span class="n">StreamPipesClient</span>
-<span class="kn">from</span> <span class="nn">streampipes.client.config</span> 
<span class="kn">import</span> <span class="n">StreamPipesClientConfig</span>
-<span class="kn">from</span> <span 
class="nn">streampipes.client.credential_provider</span> <span 
class="kn">import</span> <span class="n">StreamPipesApiKeyCredentials</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="k">def</span> <span class="fm">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">input_stream</span><span class="p">:</span> <span 
class="n">DataStream</span><span class="p">):</span>
+    <span class="n">output_stream</span> <span class="o">=</span> <span 
class="n">create_data_stream</span><span class="p">(</span>
+                <span class="n">name</span><span class="o">=</span><span 
class="s2">"example-stream"</span><span class="p">,</span>
+                <span class="n">stream_id</span><span class="o">=</span><span 
class="s2">"example-stream"</span><span class="p">,</span>
+                <span class="n">attributes</span><span class="o">=</span><span 
class="p">{</span>
+                    <span class="s2">"number"</span><span class="p">:</span> 
<span class="n">RuntimeType</span><span class="o">.</span><span 
class="n">INTEGER</span><span class="o">.</span><span class="n">value</span>
+                <span class="p">},</span>
+                <span class="n">broker</span><span class="o">=</span><span 
class="n">get_broker_description</span><span class="p">(</span><span 
class="n">input_stream</span><span class="p">)</span>
+            <span class="p">)</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-3">from streampipes.client import 
StreamPipesClient
-from streampipes.client.config import StreamPipesClientConfig
-from streampipes.client.credential_provider import 
StreamPipesApiKeyCredentials</div>
+<div class="clipboard-copy-txt" id="cell-3">def __init__(self, input_stream: 
DataStream):
+    output_stream = create_data_stream(
+                name="example-stream",
+                stream_id="example-stream",
+                attributes={
+                    "number": RuntimeType.INTEGER.value
+                },
+                broker=get_broker_description(input_stream)
+            )</div>
+</div>
+</div>
+</div>
 </div>
 </div>
 </div>
+<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div class="jp-Cell-inputWrapper">
+<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
+</div>
+<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
+</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
+<p>You can now add this <code>output_stream</code> to the function definition 
and pass it to the parent class.</p>
+</div>
 </div>
 </div>
 </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
@@ -3491,25 +3553,17 @@ from streampipes.client.credential_provider import 
StreamPipesApiKeyCredentials<
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">config</span> <span class="o">=</span> <span 
class="n">StreamPipesClientConfig</span><span class="p">(</span>
-    <span class="n">credential_provider</span><span class="o">=</span><span 
class="n">StreamPipesApiKeyCredentials</span><span class="p">(</span>
-        <span class="n">username</span><span class="o">=</span><span 
class="s2">"[email protected]"</span><span class="p">,</span>
-        <span class="n">api_key</span><span class="o">=</span><span 
class="s2">"API-KEY"</span><span class="p">,</span>
-    <span class="p">),</span>
-    <span class="n">host_address</span><span class="o">=</span><span 
class="s2">"localhost"</span><span class="p">,</span>
-    <span class="n">https_disabled</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span>
-    <span class="n">port</span><span class="o">=</span><span 
class="mi">80</span>
-<span class="p">)</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">function_definition</span> <span class="o">=</span> <span 
class="n">FunctionDefinition</span><span class="p">(</span>
+            <span class="n">consumed_streams</span><span 
class="o">=</span><span class="p">[</span><span 
class="n">input_stream</span><span class="o">.</span><span 
class="n">element_id</span><span class="p">]</span>
+        <span class="p">)</span><span class="o">.</span><span 
class="n">add_output_data_stream</span><span class="p">(</span><span 
class="n">output_stream</span><span class="p">)</span>
+
+<span class="nb">super</span><span class="p">()</span><span 
class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span 
class="n">function_definition</span><span class="o">=</span><span 
class="n">function_definition</span><span class="p">)</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-4">config = StreamPipesClientConfig(
-    credential_provider=StreamPipesApiKeyCredentials(
-        username="[email protected]",
-        api_key="API-KEY",
-    ),
-    host_address="localhost",
-    https_disabled=True,
-    port=80
-)</div>
+<div class="clipboard-copy-txt" id="cell-4">function_definition = 
FunctionDefinition(
+            consumed_streams=[input_stream.element_id]
+        ).add_output_data_stream(output_stream)
+
+super().__init__(function_definition=function_definition)</div>
 </div>
 </div>
 </div>
@@ -3522,10 +3576,7 @@ from streampipes.client.credential_provider import 
StreamPipesApiKeyCredentials<
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>Please be aware that connecting to StreamPipes via a <code>https</code> 
connection is currently not supported by the Python client.</p>
-<p>Providing secrets like the <code>api_key</code> as plaintext in the source 
code is an anti-pattern.
-This is why the StreamPipes client also supports passing the required secrets 
as environment variables.
-To do so, you must initialize the credential provider like the following:</p>
+<p>To create the output event we define a dictionary with the key being 
equvalent to the key we defined for the <code>attributes</code> in the 
<code>create_data_stream</code> method. The value will just be 1, for 
simplicity. Lastly we call the <code>add_output</code> method and use the above 
specified <code>function_definition</code> to get the <code>stream_id</code>. 
All this is happening inside the <code>onEvent</code> method of the function 
because this method will be called for every [...]
 </div>
 </div>
 </div>
@@ -3548,9 +3599,23 @@ To do so, you must initialize the credential provider 
like the following:</p>
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">StreamPipesApiKeyCredentials</span><span class="p">()</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">output</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="s2">"number"</span><span class="p">:</span> <span 
class="mi">1</span>
+<span class="p">}</span>
+            
+<span class="bp">self</span><span class="o">.</span><span 
class="n">add_output</span><span class="p">(</span>
+    <span class="n">stream_id</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">function_definition</span><span class="o">.</span><span 
class="n">get_output_stream_ids</span><span class="p">()[</span><span 
class="mi">0</span><span class="p">],</span>
+    <span class="n">event</span><span class="o">=</span><span 
class="n">output</span>
+<span class="p">)</span>
 </pre></div>
-<div class="clipboard-copy-txt" 
id="cell-5">StreamPipesApiKeyCredentials()</div>
+<div class="clipboard-copy-txt" id="cell-5">output = {
+    "number": 1
+}
+            
+self.add_output(
+    stream_id=self.function_definition.get_output_stream_ids()[0],
+    event=output
+)</div>
 </div>
 </div>
 </div>
@@ -3563,8 +3628,7 @@ To do so, you must initialize the credential provider 
like the following:</p>
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>To ensure that the above code works, you must set the environment variables 
as expected.
-This can be done as follows:</p>
+<h2 id="Creating-the-StreamPipes-Function">Creating the StreamPipes Function<a 
class="anchor-link" href="#Creating-the-StreamPipes-Function">¶</a></h2><p>The 
code below shows an example function and also demonstrates how to include the 
output stream creation.</p>
 </div>
 </div>
 </div>
@@ -3574,7 +3638,7 @@ This can be done as follows:</p>
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
 <div class="jp-InputArea jp-Cell-inputArea">
-<div class="jp-InputPrompt jp-InputArea-prompt">In [ ]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
+<div class="jp-InputPrompt jp-InputArea-prompt">In [5]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
 <div class="CodeMirror cm-s-jupyter">
 <div class="zeroclipboard-container">
 <clipboard-copy for="cell-6">
@@ -3587,14 +3651,91 @@ This can be done as follows:</p>
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="kn">import</span> <span class="nn">os</span>
-<span class="n">os</span><span class="o">.</span><span 
class="n">environ</span><span class="p">[</span><span 
class="s2">"SP_USERNAME"</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">"[email protected]"</span>
-<span class="n">os</span><span class="o">.</span><span 
class="n">environ</span><span class="p">[</span><span 
class="s2">"SP_API_KEY"</span><span class="p">]</span> <span class="o">=</span> 
<span class="s2">"XXX"</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="kn">import</span> <span class="nn">pandas</span> <span 
class="k">as</span> <span class="nn">pd</span>
+<span class="kn">from</span> <span class="nn">typing</span> <span 
class="kn">import</span> <span class="n">Dict</span><span class="p">,</span> 
<span class="n">Any</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.streampipes_function</span> <span 
class="kn">import</span> <span class="n">StreamPipesFunction</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.utils.data_stream_generator</span> <span 
class="kn">import</span> <span class="n">create_data_stream</span><span 
class="p">,</span> <span class="n">RuntimeType</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.broker.broker_handler</span> <span 
class="kn">import</span> <span class="n">get_broker_description</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.model.resource</span> <span class="kn">import</span> 
<span class="n">FunctionDefinition</span><span class="p">,</span> <span 
class="n">DataStream</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.utils.function_context</span> <span 
class="kn">import</span> <span class="n">FunctionContext</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.function_handler</span> <span 
class="kn">import</span> <span class="n">FunctionHandler</span>
+<span class="kn">from</span> <span 
class="nn">streampipes.functions.registration</span> <span 
class="kn">import</span> <span class="n">Registration</span>
+
+<span class="k">class</span> <span class="nc">SimpleFunction</span><span 
class="p">(</span><span class="n">StreamPipesFunction</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="fm">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">input_stream</span><span class="p">:</span> <span 
class="n">DataStream</span><span class="p">):</span>
+        <span class="n">output_stream</span> <span class="o">=</span> <span 
class="n">create_data_stream</span><span class="p">(</span>
+            <span class="n">name</span><span class="o">=</span><span 
class="s2">"example-stream"</span><span class="p">,</span>
+            <span class="n">stream_id</span><span class="o">=</span><span 
class="s2">"example-stream"</span><span class="p">,</span>
+            <span class="n">attributes</span><span class="o">=</span><span 
class="p">{</span>
+                <span class="s2">"number"</span><span class="p">:</span> <span 
class="n">RuntimeType</span><span class="o">.</span><span 
class="n">INTEGER</span><span class="o">.</span><span class="n">value</span>
+            <span class="p">},</span>
+            <span class="n">broker</span><span class="o">=</span><span 
class="n">get_broker_description</span><span class="p">(</span><span 
class="n">input_stream</span><span class="p">)</span>
+        <span class="p">)</span>
+        
+        <span class="n">function_definition</span> <span class="o">=</span> 
<span class="n">FunctionDefinition</span><span class="p">(</span>
+            <span class="n">consumed_streams</span><span 
class="o">=</span><span class="p">[</span><span 
class="n">input_stream</span><span class="o">.</span><span 
class="n">element_id</span><span class="p">]</span>
+        <span class="p">)</span><span class="o">.</span><span 
class="n">add_output_data_stream</span><span class="p">(</span><span 
class="n">output_stream</span><span class="p">)</span>
+
+        <span class="nb">super</span><span class="p">()</span><span 
class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span 
class="n">function_definition</span><span class="o">=</span><span 
class="n">function_definition</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">onServiceStarted</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="p">:</span> <span 
class="n">FunctionContext</span><span class="p">):</span>
+        <span class="k">pass</span>
+
+    <span class="k">def</span> <span class="nf">onEvent</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">:</span> <span class="n">Dict</span><span 
class="p">[</span><span class="nb">str</span><span class="p">,</span> <span 
class="n">Any</span><span class="p">],</span> <span 
class="n">streamId</span><span class="p">:</span> <span 
class="nb">str</span><span class="p">):</span>
+        <span class="n">output</span> <span class="o">=</span> <span 
class="p">{</span>
+            <span class="s2">"number"</span><span class="p">:</span> <span 
class="mi">1</span>
+        <span class="p">}</span>
+            
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">add_output</span><span class="p">(</span>
+            <span class="n">stream_id</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">function_definition</span><span class="o">.</span><span 
class="n">get_output_stream_ids</span><span class="p">()[</span><span 
class="mi">0</span><span class="p">],</span>
+            <span class="n">event</span><span class="o">=</span><span 
class="n">output</span>
+        <span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">onServiceStopped</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">pass</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-6">import os
-os.environ["SP_USERNAME"] = "[email protected]"
-os.environ["SP_API_KEY"] = "XXX"
-</div>
+<div class="clipboard-copy-txt" id="cell-6">import pandas as pd
+from typing import Dict, Any
+from streampipes.functions.streampipes_function import StreamPipesFunction
+from streampipes.functions.utils.data_stream_generator import 
create_data_stream, RuntimeType
+from streampipes.functions.broker.broker_handler import get_broker_description
+from streampipes.model.resource import FunctionDefinition, DataStream
+from streampipes.functions.utils.function_context import FunctionContext
+from streampipes.functions.function_handler import FunctionHandler
+from streampipes.functions.registration import Registration
+
+class SimpleFunction(StreamPipesFunction):
+    def __init__(self, input_stream: DataStream):
+        output_stream = create_data_stream(
+            name="example-stream",
+            stream_id="example-stream",
+            attributes={
+                "number": RuntimeType.INTEGER.value
+            },
+            broker=get_broker_description(input_stream)
+        )
+        
+        function_definition = FunctionDefinition(
+            consumed_streams=[input_stream.element_id]
+        ).add_output_data_stream(output_stream)
+
+        super().__init__(function_definition=function_definition)
+
+    def onServiceStarted(self, context: FunctionContext):
+        pass
+
+    def onEvent(self, event: Dict[str, Any], streamId: str):
+        output = {
+            "number": 1
+        }
+            
+        self.add_output(
+            stream_id=self.function_definition.get_output_stream_ids()[0],
+            event=output
+        )
+
+    def onServiceStopped(self):
+        pass</div>
 </div>
 </div>
 </div>
@@ -3607,17 +3748,17 @@ os.environ["SP_API_KEY"] = "XXX"
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>Having the <code>config</code> ready, we can now initialize the actual 
client.</p>
+<h2 id="Instantiating-and-starting-the-function">Instantiating and starting 
the function<a class="anchor-link" 
href="#Instantiating-and-starting-the-function">¶</a></h2><p>To instantiate the 
function we pass the required input stream, then we register the function using 
an instance of the class <code>Registration</code> after which we can use the 
function handler to initialize all registered functions using the client. In 
this case, our input stream is named 'demo'. You will need to repl [...]
 </div>
 </div>
 </div>
-</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
-<div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
+</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
+<div class="jp-Cell jp-CodeCell jp-Notebook-cell">
 <div class="jp-Cell-inputWrapper">
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
 <div class="jp-InputArea jp-Cell-inputArea">
-<div class="jp-InputPrompt jp-InputArea-prompt">In [ ]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
+<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
 <div class="CodeMirror cm-s-jupyter">
 <div class="zeroclipboard-container">
 <clipboard-copy for="cell-7">
@@ -3630,13 +3771,68 @@ os.environ["SP_API_KEY"] = "XXX"
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">client</span> <span class="o">=</span> <span 
class="n">StreamPipesClient</span><span class="p">(</span><span 
class="n">client_config</span><span class="o">=</span><span 
class="n">config</span><span class="p">)</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">stream</span> <span class="o">=</span> <span class="p">[</span><span 
class="n">stream</span> <span class="k">for</span> <span 
class="n">stream</span> <span class="ow">in</span> <span 
class="n">client</span><span class="o">.</span><span 
class="n">dataStreamApi</span><span class="o">.</span><span 
class="n">all</span><span class="p">()</span> <span class="k">if</span> <span 
class="n">stream</span><span class="o">.</spa [...]
+
+<span class="n">simple_function</span> <span class="o">=</span> <span 
class="n">SimpleFunction</span><span class="p">(</span><span 
class="n">input_stream</span><span class="o">=</span><span 
class="n">stream</span><span class="p">)</span>
+
+<span class="n">registration</span> <span class="o">=</span> <span 
class="n">Registration</span><span class="p">()</span>
+<span class="n">registration</span><span class="o">.</span><span 
class="n">register</span><span class="p">(</span><span 
class="n">simple_function</span><span class="p">)</span>
+
+<span class="n">function_handler</span> <span class="o">=</span> <span 
class="n">FunctionHandler</span><span class="p">(</span><span 
class="n">registration</span><span class="p">,</span> <span 
class="n">client</span><span class="p">)</span>
+<span class="n">function_handler</span><span class="o">.</span><span 
class="n">initializeFunctions</span><span class="p">()</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-7">client = 
StreamPipesClient(client_config=config)</div>
+<div class="clipboard-copy-txt" id="cell-7">stream = [stream for stream in 
client.dataStreamApi.all() if stream.name == "demo"][0]
+
+simple_function = SimpleFunction(input_stream=stream)
+
+registration = Registration()
+registration.register(simple_function)
+
+function_handler = FunctionHandler(registration, client)
+function_handler.initializeFunctions()</div>
+</div>
+</div>
+</div>
+</div>
+<div class="jp-Cell-outputWrapper">
+<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
+</div>
+<div class="jp-OutputArea jp-Cell-outputArea">
+<div class="jp-OutputArea-child">
+<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
+<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
+<pre>2024-07-30 12:44:25,052 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:164] [_make_request] - Successfully retrieved all resources.
+2024-07-30 12:44:25,150 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:164] [_make_request] - Successfully retrieved all resources.
+2024-07-30 12:44:25,150 - streampipes.functions.function_handler - [INFO] - 
[function_handler.py:84] [initializeFunctions] - Using output data stream 
'example-stream' for function '0e4287a7-6936-4fcb-9de4-8d29a7b6c1c6'
+2024-07-30 12:44:25,229 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:164] [_make_request] - Successfully retrieved all resources.
+2024-07-30 12:44:25,230 - streampipes.functions.function_handler - [INFO] - 
[function_handler.py:100] [initializeFunctions] - Using KafkaConsumer for 
SimpleFunction
+</pre>
+</div>
+</div>
+<div class="jp-OutputArea-child">
+<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
+<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
+<pre>2024-07-30 12:44:25,247 - 
streampipes.functions.broker.kafka.kafka_publisher - [INFO] - 
[kafka_publisher.py:49] [_make_connection] - Connecting to Kafka at 
localhost:9094
+2024-07-30 12:44:25,250 - streampipes.functions.broker.kafka.kafka_consumer - 
[INFO] - [kafka_consumer.py:52] [_make_connection] - Connecting to Kafka at 
localhost:9094
+2024-07-30 12:44:25,251 - streampipes.functions.broker.kafka.kafka_consumer - 
[INFO] - [kafka_consumer.py:62] [_create_subscription] - Subscribing to stream: 
sp:spdatastream:PIgznU
+2024-07-30 12:46:12,229 - streampipes.functions.broker.kafka.kafka_publisher - 
[INFO] - [kafka_publisher.py:73] [disconnect] - Stopped connection to stream: 
example-stream
+</pre>
+</div>
+</div>
 </div>
 </div>
 </div>
 </div>
+<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
+<div class="jp-Cell-inputWrapper">
+<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
+</div>
+<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
+</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
+<p>If we now go into StreamPipes, create a new pipeline and view the info for 
our output stream we can see the live predictions coming in.</p>
+<p><img alt="" 
src="https://raw.githubusercontent.com/apache/streampipes/dev/streampipes-client-python/docs/img/tutorial-output-stream.png"/></p>
+</div>
+</div>
 </div>
 </div>
 <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
@@ -3645,7 +3841,7 @@ os.environ["SP_API_KEY"] = "XXX"
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>That's already it. You can check if everything works out by using the 
following command:</p>
+<p>To stop the function we call the function handler's <code>disconnect</code> 
method:</p>
 </div>
 </div>
 </div>
@@ -3655,7 +3851,7 @@ os.environ["SP_API_KEY"] = "XXX"
 <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
 </div>
 <div class="jp-InputArea jp-Cell-inputArea">
-<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
+<div class="jp-InputPrompt jp-InputArea-prompt">In [7]:</div><div 
class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
 <div class="CodeMirror cm-s-jupyter">
 <div class="zeroclipboard-container">
 <clipboard-copy for="cell-8">
@@ -3668,9 +3864,9 @@ os.environ["SP_API_KEY"] = "XXX"
 </div>
 </clipboard-copy>
 </div>
-<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">client</span><span class="o">.</span><span 
class="n">describe</span><span class="p">()</span>
+<div class="highlight-ipynb hl-python"><pre><span></span><span 
class="n">function_handler</span><span class="o">.</span><span 
class="n">disconnect</span><span class="p">()</span>
 </pre></div>
-<div class="clipboard-copy-txt" id="cell-8">client.describe()</div>
+<div class="clipboard-copy-txt" id="cell-8">function_handler.disconnect()</div>
 </div>
 </div>
 </div>
@@ -3682,14 +3878,7 @@ os.environ["SP_API_KEY"] = "XXX"
 <div class="jp-OutputArea-child">
 <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
 <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
-<pre>2023-02-24 17:05:49,398 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:167] [_make_request] - Successfully retrieved all resources.
-2023-02-24 17:05:49,457 - streampipes.endpoint.endpoint - [INFO] - 
[endpoint.py:167] [_make_request] - Successfully retrieved all resources.
-
-Hi there!
-You are connected to a StreamPipes instance running at http://localhost:80.
-The following StreamPipes resources are available with this client:
-1x DataLakeMeasures
-1x DataStreams
+<pre>2024-07-30 12:46:12,171 - 
streampipes.functions.broker.kafka.kafka_consumer - [INFO] - 
[kafka_consumer.py:72] [disconnect] - Stopped connection to stream: 
sp:spdatastream:PIgznU
 </pre>
 </div>
 </div>
@@ -3703,17 +3892,8 @@ The following StreamPipes resources are available with 
this client:
 </div>
 <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt 
jp-InputArea-prompt">
 </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" 
data-mime-type="text/markdown">
-<p>This prints you a short textual description of the connected StreamPipes 
instance to the console.</p>
-<br/>
-<p>The created <code>client</code> instance serves as the central point of 
interaction with StreamPipes.
-You can invoke a variety of commands directly on this object.</p>
-<p>Are you curious now how you actually can get data out of StreamPipes and 
make use of it with Python?
-Then check out the next tutorial on <a 
href="../2-extracting-data-from-the-streampipes-data-lake">extracting Data from 
the StreamPipes data lake</a>.</p>
-<br/>
-<p>Thanks for reading this introductory tutorial.
-We hope you like it and would love to receive some feedback from you.
-Just go to our <a 
href="https://github.com/apache/streampipes/discussions";>GitHub discussion 
page</a> and let us know your impression.
-We'll read and react to them all, we promise!</p>
+<p>In conclusion, this tutorial has successfully demonstrated how to generate 
output streams using a StreamPipes Function.<br/>
+We hope you found this tutorial helpful and would appreciate your feedback. 
Please visit our GitHub discussion page to share your impressions. We promise 
to read and respond to every comment!</p>
 </div>
 </div>
 </div>
@@ -3726,7 +3906,7 @@ We'll read and react to them all, we promise!</p>
   <small>
     
       Last update:
-      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">June 18, 2024</span>
+      <span class="git-revision-date-localized-plugin 
git-revision-date-localized-plugin-date">July 31, 2024</span>
       
     
   </small>

Reply via email to