<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  ~
-->

<!-- Elements added to main will be displayed on all pages -->

<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
      
      
      <link rel="icon" href="https://streampipes.apache.org/img/favicon/favicon.png">
      <meta name="generator" content="mkdocs-1.4.2, mkdocs-material-8.5.10">
    
    
      
        <title>Endpoint - Apache StreamPipes for Python</title>
      
    
    
      <link rel="stylesheet" href="../../../assets/stylesheets/main.975780f9.min.css">
      
        
        <link rel="stylesheet" href="../../../assets/stylesheets/palette.2505c338.min.css">
        
      
      

    
    
    
      
    
    
      <link rel="stylesheet" href="../../../assets/_mkdocstrings.css">
    
      <link rel="stylesheet" href="../../../stylesheets/extra.css">
    
    <script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="None" data-md-color-accent="None">
  
    
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#streampipes.endpoint.endpoint" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <div data-md-component="outdated" hidden>
        
      </div>
    
    
      

<header class="md-header" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href="../../.." title="Apache StreamPipes for Python" class="md-header__button md-logo" aria-label="Apache StreamPipes for Python" data-md-component="logo">
      
  <img src="https://streampipes.apache.org/img/sp-logo-white-right.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            Apache StreamPipes for Python
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              Endpoint
            
          </span>
        </div>
      </div>
    </div>
    
    
    
    
      <div class="md-header__source">
        <a href="https://github.com/apache/streampipes" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    GitHub
  </div>
</a>
      </div>
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
            
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
  <div class="md-tabs__inner md-grid">
    <ul class="md-tabs__list">
      
        
  
  


  <li class="md-tabs__item">
    <a href="../../.." class="md-tabs__link">
      Home
    </a>
  </li>

      
        
  
  


  
  
  
    <li class="md-tabs__item">
      <a href="../../../getting-started/first-steps/" class="md-tabs__link">
        Getting Started
      </a>
    </li>
  

      
        
  
  


  
  
  
    <li class="md-tabs__item">
      <a href="../../../examples/1-introduction-to-streampipes-python-client/" class="md-tabs__link">
        Examples
      </a>
    </li>
  

      
        
  
  
    
  


  
  
  
    

  
  
  
    <li class="md-tabs__item">
      <a href="../../client/client/" class="md-tabs__link md-tabs__link--active">
        Reference
      </a>
    </li>
  

  

      
    </ul>
  </div>
</nav>
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

  


<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="../../.." title="Apache StreamPipes for Python" class="md-nav__button md-logo" aria-label="Apache StreamPipes for Python" data-md-component="logo">
      
  <img src="https://streampipes.apache.org/img/sp-logo-white-right.png" alt="logo">

    </a>
    Apache StreamPipes for Python
  </label>
  
    <div class="md-nav__source">
      <a href="https://github.com/apache/streampipes" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    GitHub
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../.." class="md-nav__link">
        Home
      </a>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
      
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_2">
          Getting Started
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Getting Started" data-md-level="1">
        <label class="md-nav__title" for="__nav_2">
          <span class="md-nav__icon md-icon"></span>
          Getting Started
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/first-steps/" class="md-nav__link">
        First Steps
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/developing/" class="md-nav__link">
        Developing & Contributing
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../getting-started/quickstart/" class="md-nav__link">
        Quickstart
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
      
      
      
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_3">
          Examples
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Examples" data-md-level="1">
        <label class="md-nav__title" for="__nav_3">
          <span class="md-nav__icon md-icon"></span>
          Examples
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../examples/1-introduction-to-streampipes-python-client/" class="md-nav__link">
        Introduction to StreamPipes Python
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../examples/2-extracting-data-from-the-streampipes-data-lake/" class="md-nav__link">
        Extracting Data from the StreamPipes data lake
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../examples/3-getting-live-data-from-the-streampipes-data-stream/" class="md-nav__link">
        Getting live data from the StreamPipes data stream
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../../examples/4-using-online-machine-learning-on-a-streampipes-data-stream/" class="md-nav__link">
        Using Online Machine Learning on a StreamPipes data stream
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
      
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4">
          Reference
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Reference" data-md-level="1">
        <label class="md-nav__title" for="__nav_4">
          <span class="md-nav__icon md-icon"></span>
          Reference
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_1" type="checkbox" id="__nav_4_1" >
      
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_1">
          Client
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Client" data-md-level="2">
        <label class="md-nav__title" for="__nav_4_1">
          <span class="md-nav__icon md-icon"></span>
          Client
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/client/" class="md-nav__link">
        Client
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/config/" class="md-nav__link">
        Config
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../client/credential_provider/" class="md-nav__link">
        Credential provider
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" checked>
      
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_2">
          Endpoint
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Endpoint" data-md-level="2">
        <label class="md-nav__title" for="__nav_4_2">
          <span class="md-nav__icon md-icon"></span>
          Endpoint
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
    
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
      
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          Endpoint
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        Endpoint
      </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="#streampipes.endpoint.endpoint" class="md-nav__link">
    streampipes.endpoint.endpoint
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint" class="md-nav__link">
    APIEndpoint
  </a>
  
    <nav class="md-nav" aria-label="APIEndpoint">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.all" class="md-nav__link">
    all()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.build_url" class="md-nav__link">
    build_url()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.get" class="md-nav__link">
    get()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.post" class="md-nav__link">
    post()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.Endpoint" class="md-nav__link">
    Endpoint
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint" class="md-nav__link">
    MessagingEndpoint
  </a>
  
    <nav class="md-nav" aria-label="MessagingEndpoint">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint.broker" class="md-nav__link">
    broker
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint.configure" class="md-nav__link">
    configure()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../exceptions/" class="md-nav__link">
        Exceptions
      </a>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2_3" type="checkbox" id="__nav_4_2_3" >
      
      
      
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_2_3">
          Api
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Api" data-md-level="3">
        <label class="md-nav__title" for="__nav_4_2_3">
          <span class="md-nav__icon md-icon"></span>
          Api
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../api/data_lake_measure/" class="md-nav__link">
        Data lake measure
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../api/data_stream/" class="md-nav__link">
        Data stream
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" >
      
      
      
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_3">
          Function zoo
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Function zoo" data-md-level="2">
        <label class="md-nav__title" for="__nav_4_3">
          <span class="md-nav__icon md-icon"></span>
          Function zoo
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../function_zoo/river_function/" class="md-nav__link">
        River function
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4" type="checkbox" id="__nav_4_4" >
      
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4">
          Functions
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Functions" data-md-level="2">
        <label class="md-nav__title" for="__nav_4_4">
          <span class="md-nav__icon md-icon"></span>
          Functions
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/function_handler/" class="md-nav__link">
        Function handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/registration/" class="md-nav__link">
        Registration
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/streampipes_function/" class="md-nav__link">
        Streampipes function
      </a>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4_4" type="checkbox" id="__nav_4_4_4" >
      
      
      
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4_4">
          Broker
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Broker" data-md-level="3">
        <label class="md-nav__title" for="__nav_4_4_4">
          <span class="md-nav__icon md-icon"></span>
          Broker
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/broker/broker/" class="md-nav__link">
        Broker
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/broker/broker_handler/" class="md-nav__link">
        Broker handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/broker/nats_broker/" class="md-nav__link">
        Nats broker
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/broker/output_collector/" class="md-nav__link">
        Output collector
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4_5" type="checkbox" id="__nav_4_4_5" >
      
      
      
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_4_5">
          Utils
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Utils" data-md-level="3">
        <label class="md-nav__title" for="__nav_4_4_5">
          <span class="md-nav__icon md-icon"></span>
          Utils
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/utils/async_iter_handler/" class="md-nav__link">
        Async iter handler
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/utils/data_stream_context/" class="md-nav__link">
        Data stream context
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/utils/data_stream_generator/" class="md-nav__link">
        Data stream generator
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../functions/utils/function_context/" class="md-nav__link">
        Function context
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5" type="checkbox" id="__nav_4_5" >
      
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5">
          Model
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Model" data-md-level="2">
        <label class="md-nav__title" for="__nav_4_5">
          <span class="md-nav__icon md-icon"></span>
          Model
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/common/" class="md-nav__link">
        Common
      </a>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5_2" type="checkbox" id="__nav_4_5_2" >
      
      
      
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5_2">
          Container
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Container" data-md-level="3">
        <label class="md-nav__title" for="__nav_4_5_2">
          <span class="md-nav__icon md-icon"></span>
          Container
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/data_lake_measures/" class="md-nav__link">
        Data lake measures
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/data_streams/" class="md-nav__link">
        Data streams
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/container/resource_container/" class="md-nav__link">
        Resource container
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
            
              
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5_3" type="checkbox" id="__nav_4_5_3" >
      
      
      
        
          
        
          
        
          
        
          
        
          
        
      
      
        <label class="md-nav__link" for="__nav_4_5_3">
          Resource
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <nav class="md-nav" aria-label="Resource" data-md-level="3">
        <label class="md-nav__title" for="__nav_4_5_3">
          <span class="md-nav__icon md-icon"></span>
          Resource
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_lake_measure/" class="md-nav__link">
        Data lake measure
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_lake_series/" class="md-nav__link">
        Data lake series
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/data_stream/" class="md-nav__link">
        Data stream
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/function_definition/" class="md-nav__link">
        Function definition
      </a>
    </li>
  

            
          
            
              
  
  
  
    <li class="md-nav__item">
      <a href="../../model/resource/resource/" class="md-nav__link">
        Resource
      </a>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

            
          
        </ul>
      </nav>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<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="#streampipes.endpoint.endpoint" class="md-nav__link">
    streampipes.endpoint.endpoint
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint" class="md-nav__link">
    APIEndpoint
  </a>
  
    <nav class="md-nav" aria-label="APIEndpoint">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.all" class="md-nav__link">
    all()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.build_url" class="md-nav__link">
    build_url()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.get" class="md-nav__link">
    get()
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.APIEndpoint.post" class="md-nav__link">
    post()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.Endpoint" class="md-nav__link">
    Endpoint
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint" class="md-nav__link">
    MessagingEndpoint
  </a>
  
    <nav class="md-nav" aria-label="MessagingEndpoint">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint.broker" class="md-nav__link">
    broker
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#streampipes.endpoint.endpoint.MessagingEndpoint.configure" class="md-nav__link">
    configure()
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  

  <a href="https://github.com/apache/streampipes/streampipes/endpoint/endpoint.py" 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="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
  </a>


  <h1>Endpoint</h1>

<div class="doc doc-object doc-module">


<a id="streampipes.endpoint.endpoint"></a>
  <div class="doc doc-contents first">
  
      <p>General implementation for an endpoint.
Provided classes and assets are aimed to be used for developing endpoints.
An endpoint is provides all options to communicate with a central endpoint of the StreamPipes API in a handy way.</p>

  

  <div class="doc doc-children">








<div class="doc doc-object doc-class">



<h2 id="streampipes.endpoint.endpoint.APIEndpoint" class="doc doc-heading">
        <code>APIEndpoint</code>


<a href="#streampipes.endpoint.endpoint.APIEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>


  <div class="doc doc-contents ">
      <p class="doc doc-class-bases">
        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>

  
      <p>Abstract implementation of an API endpoint.</p>
<p>Serves as template for all endpoints for the StreamPipes API.
By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>parent_client</code></td>
          <td class="doc-param-details">
            <p>This parameter expects the instance of the <code>client.StreamPipesClient</code> the endpoint is attached to.</p>
            <p>
            </p>
          </td>
        </tr>
    </tbody>
  </table>



  

  <div class="doc doc-children">









<div class="doc doc-object doc-function">



<h3 id="streampipes.endpoint.endpoint.APIEndpoint.all" class="doc doc-heading">
<code class="highlight language-python"><span class="nb">all</span><span class="p">()</span></code>

<a href="#streampipes.endpoint.endpoint.APIEndpoint.all" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Get all resources of this endpoint provided by the StreamPipes API.
Results are provided as an instance of a <code>model.container.ResourceContainer</code> that
allows to handle the returned resources in a comfortable and pythonic way.</p>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>A model container instance (</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.endpoint.endpoint.APIEndpoint.build_url" class="doc doc-heading">
<code class="highlight language-python"><span class="n">build_url</span><span class="p">()</span></code>

<a href="#streampipes.endpoint.endpoint.APIEndpoint.build_url" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Creates the URL of the API path for the endpoint.</p>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>The URL of the Endpoint</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.endpoint.endpoint.APIEndpoint.get" class="doc doc-heading">
<code class="highlight language-python"><span class="n">get</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>

<a href="#streampipes.endpoint.endpoint.APIEndpoint.get" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Queries the specified resource from the API endpoint.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>identifier</code></td>
          <td class="doc-param-details">
            <p>The identifier of the resource to be queried.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code>str</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>The specified resource as an instance of the corresponding model class (</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>

<div class="doc doc-object doc-function">



<h3 id="streampipes.endpoint.endpoint.APIEndpoint.post" class="doc doc-heading">
<code class="highlight language-python"><span class="n">post</span><span class="p">(</span><span class="n">resource</span><span class="p">)</span></code>

<a href="#streampipes.endpoint.endpoint.APIEndpoint.post" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Post a resource to the StreamPipes API.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>resource</code></td>
          <td class="doc-param-details">
            <p>The resource to be posted.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code><a class="autorefs autorefs-internal" title="streampipes.model.resource.resource.Resource" href="../../model/resource/resource/#streampipes.model.resource.resource.Resource">Resource</a></code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>None</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>

  </div>

</div>



  </div>

  </div>

</div>

<div class="doc doc-object doc-class">



<h2 id="streampipes.endpoint.endpoint.Endpoint" class="doc doc-heading">
<code class="highlight language-python"><span class="n">Endpoint</span><span class="p">(</span><span class="n">parent_client</span><span class="p">)</span></code>

<a href="#streampipes.endpoint.endpoint.Endpoint" class="headerlink" title="Permanent link">&para;</a></h2>


  <div class="doc doc-contents ">
      <p class="doc doc-class-bases">
        Bases: <code><span title="abc.ABC">ABC</span></code></p>

  
      <p>Abstract implementation of an StreamPipes endpoint.</p>
<p>Serves as template for all endpoints used for interaction with a StreamPipes instance.
By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>parent_client</code></td>
          <td class="doc-param-details">
            <p>This parameter expects the instance of the <code>client.StreamPipesClient</code> the endpoint is attached to.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code>StreamPipesClient</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>



  

  <div class="doc doc-children">











  </div>

  </div>

</div>

<div class="doc doc-object doc-class">



<h2 id="streampipes.endpoint.endpoint.MessagingEndpoint" class="doc doc-heading">
<code class="highlight language-python"><span class="n">MessagingEndpoint</span><span class="p">(</span><span class="n">parent_client</span><span class="p">)</span></code>

<a href="#streampipes.endpoint.endpoint.MessagingEndpoint" class="headerlink" title="Permanent link">&para;</a></h2>


  <div class="doc doc-contents ">
      <p class="doc doc-class-bases">
        Bases: <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.endpoint.Endpoint" href="#streampipes.endpoint.endpoint.Endpoint">Endpoint</a></code></p>

  
      <p>Abstract implementation of a StreamPipes messaging endpoint.
Serves as template for all endpoints used for interacting with the StreamPipes messaging layer directly.
Therefore, they need to provide the functionality to talk with the broker system running in StreamPipes.
By design, endpoints are only instantiated within the <code>__init__</code> method of the StreamPipesClient.</p>

  <table>
    <thead>
      <tr>
        <th><b>PARAMETER</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td><code>parent_client</code></td>
          <td class="doc-param-details">
            <p>This parameter expects the instance of the <code>client.StreamPipesClient</code> the endpoint is attached to.</p>
            <p>
                <span class="doc-param-annotation">
                  <b>TYPE:</b>
                    <code>StreamPipesClient</code>
                </span>
            </p>
          </td>
        </tr>
    </tbody>
  </table>



  

  <div class="doc doc-children">







<div class="doc doc-object doc-attribute">



<h3 id="streampipes.endpoint.endpoint.MessagingEndpoint.broker" class="doc doc-heading">
<code class="highlight language-python"><span class="n">broker</span><span class="p">:</span> <span class="n">Broker</span></code>
  
  <span class="doc doc-labels">
      <small class="doc doc-label doc-label-writable"><code>writable</code></small>
      <small class="doc doc-label doc-label-property"><code>property</code></small>
  </span>

<a href="#streampipes.endpoint.endpoint.MessagingEndpoint.broker" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Defines the broker instance that is used to connect to StreamPipes' messaging layer.</p>
<p>This instance enables the client to authenticate to the broker used in the target StreamPipes instance,
to consume messages from and to write messages to the broker.</p>

  <table>
    <thead>
      <tr>
        <th><b>RAISES</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
            <span class="doc-raises-annotation">
                <code><a class="autorefs autorefs-internal" title="streampipes.endpoint.exceptions.MessagingEndpointNotConfiguredError" href="../exceptions/#streampipes.endpoint.exceptions.MessagingEndpointNotConfiguredError">MessagingEndpointNotConfiguredError</a></code>
            </span>
          </td>
          <td class="doc-raises-details">
            <p>If the endpoint is used before the broker instance is set via <code>configure()</code></p>
          </td>
        </tr>
    </tbody>
  </table>

  <table>
    <thead>
      <tr>
        <th><b>RETURNS</b></th>
        <th><b>DESCRIPTION</b></th>
      </tr>
    </thead>
    <tbody>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>The broker instance to be used to communicate with</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
        <tr>
          <td>
              <span class="doc-returns-annotation">
                  <code>StreamPipes&#39; messaging layer.</code>
              </span>
          </td>
          <td class="doc-returns-details">
            
          </td>
        </tr>
    </tbody>
  </table>
  </div>

</div>



<div class="doc doc-object doc-function">



<h3 id="streampipes.endpoint.endpoint.MessagingEndpoint.configure" class="doc doc-heading">
<code class="highlight language-python"><span class="n">configure</span><span class="p">(</span><span class="n">broker</span><span class="p">)</span></code>

<a href="#streampipes.endpoint.endpoint.MessagingEndpoint.configure" class="headerlink" title="Permanent link">&para;</a></h3>


  <div class="doc doc-contents ">
  
      <p>Configures the message endpoint by setting the broker instance to be used.</p>
<p>This configuration step is required before the endpoint can be actually used.
The based <code>broker</code> instance is passed to an internal property</p>
<p>Returns</p>
<hr />
<p>None</p>

  </div>

</div>



  </div>

  </div>

</div>




  </div>

  </div>

</div>





                
              </article>
            </div>
          
          
        </div>
        
      </main>
      
<footer class="md-footer">
    <div class="md-footer-meta md-typeset">
        <div class="md-footer-meta__inner md-grid">
            <!-- Copyright and theme information -->
            <div class="md-footer-copyright">
                
                <div class="md-footer-copyright__highlight">
                    Apache License 2.0
                </div>
                
                powered by
                <a href="https://www.mkdocs.org" title="MkDocs">MkDocs</a>
                and
                <a href="https://squidfunk.github.io/mkdocs-material/"
                   title="Material for MkDocs">
                    Material for MkDocs</a>
            </div>
            
            <div class="md-social">
  
    
    
      
      
    
    <a href="https://github.com/apache/streampipes" target="_blank" rel="noopener" title="github.com" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
    </a>
  
</div>
            
        </div>
    </div>
</footer>

    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
    <script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.tabs", "navigation.instant", "navigation.indexes", "navigation.tracking"], "search": "../../../assets/javascripts/workers/search.16e2a7d4.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "version": {"provider": "mike"}}</script>
    
    
      <script src="../../../assets/javascripts/bundle.5a2dcb6a.min.js"></script>
      
    
    
  </body>
</html>