<!DOCTYPE html>
<html lang="stable" class="js csstransforms3d">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="Hugo 0.54.0" />
    <meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">

    <link rel="apple-touch-icon" sizes="180x180" href="/hono/docs/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="48x48" href="/hono/docs/favicon/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="32x32" href="/hono/docs/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/hono/docs/favicon/favicon-16x16.png">
<link rel="manifest" href="/hono/docs/favicon/site.webmanifest">
<link rel="mask-icon" href="/hono/docs/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/hono/docs/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/hono/docs/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">

    <title>HTTP Adapter :: Eclipse Hono&trade;</title>

    
    <link href="/hono/docs/css/nucleus.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/fontawesome-all.min.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/hybrid.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/featherlight.min.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/perfect-scrollbar.min.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/auto-complete.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/theme.css?1568711528" rel="stylesheet">
    <link href="/hono/docs/css/hugo-theme.css?1568711528" rel="stylesheet">
    
      <link href="/hono/docs/css/theme-hono.css?1568711528" rel="stylesheet">
    

    <script src="/hono/docs/js/jquery-2.x.min.js?1568711528"></script>

    <style type="text/css">
      :root #header + #content > #left > #rlblock_left{
          display:none !important;
      }
      
        :not(pre) > code + span.copy-to-clipboard {
            display: none;
        }
      
    </style>
    

<link rel="stylesheet" href="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css">
<link rel="stylesheet" href='/hono/docs/css/hono.css'>


<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@EclipseHono">
<meta name="twitter:title" content="HTTP Adapter :: Eclipse Hono&amp;trade;">
<meta name="twitter:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png">
<meta name="twitter:description" content="A set of micro-services for connecting millions of devices.">


<meta property="og:title" content="HTTP Adapter :: Eclipse Hono&amp;trade;" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.eclipse.org/hono/docs/user-guide/http-adapter//" />
<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />

  </head>
  <body class="" data-url="/hono/docs/user-guide/http-adapter/">
    <nav id="sidebar" class="">



  <div id="header-wrapper">
    <div id="header">
      <a href="https://www.eclipse.org/hono">
    <img src="/hono/docs/images/HONO-Logo_Bild-Wort_quer-w-310x120px.svg" alt="Hono logo" class="logo-img">
</a>

    </div>
    
        <div class="searchbox">
    <label for="search-by"><i class="fas fa-search"></i></label>
    <input data-search-input id="search-by" type="search" placeholder="Search...">
    <span data-search-clear=""><i class="fas fa-times"></i></span>
</div>

<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1568711528"></script>
<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1568711528"></script>
<script type="text/javascript">
    
        var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/";
    
</script>
<script type="text/javascript" src="/hono/docs/js/search.js?1568711528"></script>

    
  </div>

    <div class="highlightable">
    <ul class="topics">

        
          
          


 
  
    
    <li data-nav-id="/hono/docs/concepts/" title="Concepts" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/concepts/">
          <i class="far fa-lightbulb"></i> Concepts
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/device-identity/" title="Device Identity" class="dd-item ">
        <a href="/hono/docs/concepts/device-identity/">
        Device Identity
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
        <a href="/hono/docs/concepts/tenancy/">
        Multi-Tenancy
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
        <a href="/hono/docs/concepts/device-notifications/">
        Device Notifications
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/command-and-control/" title="Command &amp; Control" class="dd-item ">
        <a href="/hono/docs/concepts/command-and-control/">
        Command &amp; Control
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/resource-limits/" title="Resource limits" class="dd-item ">
        <a href="/hono/docs/concepts/resource-limits/">
        Resource limits
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/concepts/connection-events/" title="Connection Events" class="dd-item ">
        <a href="/hono/docs/concepts/connection-events/">
        Connection Events
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/user-guide/" title="User Guide" class="dd-item 
        parent
        
        
        ">
      <a href="/hono/docs/user-guide/">
          <i class="fas fa-book-reader"></i> User Guide
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/device-registry/" title="Device Registry" class="dd-item ">
        <a href="/hono/docs/user-guide/device-registry/">
        Device Registry
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item active">
        <a href="/hono/docs/user-guide/http-adapter/">
        HTTP Adapter
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
        <a href="/hono/docs/user-guide/mqtt-adapter/">
        MQTT Adapter
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
        <a href="/hono/docs/user-guide/amqp-adapter/">
        AMQP Adapter
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item ">
        <a href="/hono/docs/user-guide/kura-adapter/">
        Kura Adapter
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
        <a href="/hono/docs/user-guide/sigfox-adapter/">
        Sigfox Adapter
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/user-guide/jmeter_load_tests/" title="Load Tests with JMeter" class="dd-item ">
        <a href="/hono/docs/user-guide/jmeter_load_tests/">
        Load Tests with JMeter
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/admin-guide/" title="Admin Guide" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/admin-guide/">
          <i class="fas fa-sliders-h"></i> Admin Guide
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/common-config/">
        Common Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/auth-server-config/">
        Auth Server Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/device-registry-config/" title="Device Registry Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/device-registry-config/">
        Device Registry Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
        <a href="/hono/docs/admin-guide/device-connection-config/">
        Device Connection Service Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/http-adapter-config/">
        HTTP Adapter Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/amqp-adapter-config/">
        AMQP Adapter Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/mqtt-adapter-config/">
        MQTT Adapter Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/kura-adapter-config/">
        Kura Adapter Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/hono-client-configuration/">
        Hono Client Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
        <a href="/hono/docs/admin-guide/amqp-network-config/">
        AMQP 1.0 Messaging Network Configuration
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
        <a href="/hono/docs/admin-guide/secure_communication/">
        Secure Communication
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/admin-guide/monitoring-tracing-config/" title="Monitoring &amp; Tracing" class="dd-item ">
        <a href="/hono/docs/admin-guide/monitoring-tracing-config/">
        Monitoring &amp; Tracing
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/dev-guide/" title="Developer Guide" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/dev-guide/">
          <i class="fas fa-tools"></i> Developer Guide
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
        <a href="/hono/docs/dev-guide/building_hono/">
        Building from Source
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
        <a href="/hono/docs/dev-guide/java_client_consumer/">
        Consuming Messages from Java
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
        <a href="/hono/docs/dev-guide/custom_http_adapter/">
        Implement a Custom Hono HTTP Protocol Adapter
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/api/" title="API" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/api/">
          &nbsp;<i class='fas fa-plug'></i>&nbsp;API
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
        <a href="/hono/docs/api/telemetry/">
        Telemetry API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/event/" title="Event API Specification" class="dd-item ">
        <a href="/hono/docs/api/event/">
        Event API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/command-and-control/" title="Command &amp; Control API Specification" class="dd-item ">
        <a href="/hono/docs/api/command-and-control/">
        Command &amp; Control API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/tenant/" title="Tenant API Specification" class="dd-item ">
        <a href="/hono/docs/api/tenant/">
        Tenant API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
        <a href="/hono/docs/api/device-connection/">
        Device Connection API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
        <a href="/hono/docs/api/device-registration/">
        Device Registration API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/credentials/" title="Credentials API Specification" class="dd-item ">
        <a href="/hono/docs/api/credentials/">
        Credentials API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/authentication/" title="Authentication API Specification" class="dd-item ">
        <a href="/hono/docs/api/authentication/">
        Authentication API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/management/" title="Device Registry Management API Specification" class="dd-item ">
        <a href="/hono/docs/api/management/">
        Device Registry Management API
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/api/metrics/" title="Metrics" class="dd-item ">
        <a href="/hono/docs/api/metrics/">
        Metrics
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/deployment/" title="Deployment" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/deployment/">
          <i class="fas fa-shipping-fast"></i> Deployment
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
        <a href="/hono/docs/deployment/helm-based-deployment/">
        Helm based Deployment
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
        <a href="/hono/docs/deployment/openshift/">
        OpenShift / OKD
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item ">
        <a href="/hono/docs/deployment/create-kubernetes-cluster/">
        Setting up a Kubernetes Cluster
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
        <a href="/hono/docs/deployment/resource-limitation/">
        Limiting Resource Usage
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
          


 
  
    
    <li data-nav-id="/hono/docs/architecture/" title="Architecture" class="dd-item 
        
        
        
        ">
      <a href="/hono/docs/architecture/">
          <i class="fas fa-landmark"></i> Architecture
          
      </a>
      
      
        <ul>
          
          
          
          
        
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/architecture/component-view/" title="Component View" class="dd-item ">
        <a href="/hono/docs/architecture/component-view/">
        Component View
        
        </a>
    </li>
     
  
 

            
          
            
            


 
  
    
      <li data-nav-id="/hono/docs/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
        <a href="/hono/docs/architecture/auth/">
        Authentication/Authorization
        
        </a>
    </li>
     
  
 

            
          
        
        </ul>
              
    </li>
  
 

          
         
    </ul>

    
    

    
    <section id="prefooter">
      <hr/>
      <ul>
      
        <li>
          <div id="select-box-wrapper">
          <div id="select-box">
          <a class="padding">
            Version:&nbsp;
          <div class="select-style">
            <select id="select-language" onchange="location = this.value;">
          
          
          
              
              
                  
                    
                    
                      <option id="stable" value="/hono/docs/user-guide/http-adapter/" selected>stable (1.0-M7)</option>
                    
                  
              
                  
              
          
              
              
                  
              
                  
                    
                    
                      <option id="dev" value="/hono/docs/dev/user-guide/http-adapter/">dev</option>
                    
                  
              
          
        </select>
        <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
          width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
          <g>
            <g id="arrow-drop-down">
              <polygon points="0,63.75 127.5,191.25 255,63.75 		" />
            </g>
          </g>
        </svg>
        </div>
        </a>
        </div>
        </div>
        </li>
      
      
      
      </ul>
    </section>
    
    <section id="footer">
      

<p>&copy; 2019 <a href="https://www.eclipse.org/hono">The Eclipse Hono Project</a></p>

<p>
    Documentation built with
    <a href="https://www.gohugo.io" target="_blank">Hugo</a>
    using the
    <a href="https://github.com/matcornic/hugo-theme-learn" target="_blank">Learn</a> theme.
</p>

<div class="eclipse-logo">
    <a href="https://www.eclipse.org" target="_blank">
        <img src="https://www.eclipse.org/hono/docs/images/eclipse_foundation_logo.svg"/>
    </a>
</div>

    </section>
  </div>
</nav>





        <section id="body">
        <div id="overlay"></div>
        
        

    
        <div class="padding highlightable">
              
              <div>
                <div id="top-bar">
                
                  
                  
                  
                  <div id="top-github-link">
                    <a class="github-link" title='Edit this page' href="https://github.com/eclipse/hono/edit/master/site/documentation/content/user-guide/http-adapter.md" target="blank">
                      <i class="fas fa-code-branch"></i>
                      <span id="top-github-link-text">Edit this page</span>
                    </a>
                  </div>
                  
                
                
                <div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
                    <span id="sidebar-toggle-span">
                        <a href="#" id="sidebar-toggle" data-sidebar-toggle="">
                          <i class="fas fa-bars"></i>
                        </a>
                    </span>
                  
                  <span id="toc-menu"><i class="fas fa-list-alt"></i></span>
                  
                  <span class="links">
                 
                 
                    
          
          
            
            
          
          
            
            
          
          
            <a href='/hono/docs/'>Documentation</a> > <a href='/hono/docs/user-guide/'>User Guide</a> > HTTP Adapter
          
         
          
         
          
        
                 
                  </span>
                </div>
                
                    <div class="progress">
    <div class="wrapper">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#device-authentication">Device Authentication</a>
<ul>
<li><a href="#client-certificate">Client Certificate</a></li>
<li><a href="#http-basic-auth">HTTP Basic Auth</a></li>
</ul></li>
<li><a href="#message-limits">Message Limits</a></li>
<li><a href="#publish-telemetry-data-authenticated-device">Publish Telemetry Data (authenticated Device)</a></li>
<li><a href="#publish-telemetry-data-unauthenticated-device">Publish Telemetry Data (unauthenticated Device)</a></li>
<li><a href="#publish-telemetry-data-authenticated-gateway">Publish Telemetry Data (authenticated Gateway)</a></li>
<li><a href="#publish-an-event-authenticated-device">Publish an Event (authenticated Device)</a></li>
<li><a href="#publish-an-event-unauthenticated-device">Publish an Event (unauthenticated Device)</a></li>
<li><a href="#publish-an-event-authenticated-gateway">Publish an Event (authenticated Gateway)</a></li>
<li><a href="#specifying-the-time-a-device-will-wait-for-a-response">Specifying the Time a Device will wait for a Response</a>
<ul>
<li><a href="#using-an-http-header">Using an HTTP Header</a></li>
<li><a href="#using-a-query-parameter">Using a Query Parameter</a></li>
</ul></li>
<li><a href="#sending-a-response-to-a-command-authenticated-device">Sending a Response to a Command (authenticated Device)</a></li>
<li><a href="#sending-a-response-to-a-command-unauthenticated-device">Sending a Response to a Command (unauthenticated Device)</a></li>
<li><a href="#sending-a-response-to-a-command-authenticated-gateway">Sending a Response to a Command (authenticated Gateway)</a></li>
<li><a href="#downstream-meta-data">Downstream Meta Data</a></li>
<li><a href="#tenant-specific-configuration">Tenant specific Configuration</a></li>
</ul></li>
</ul>
</nav>
    </div>
</div>

                
              </div>
            </div>
            

        
        <div id="body-inner">
          
            <h1>HTTP Adapter</h1>
          

        


<p>The HTTP protocol adapter exposes HTTP based endpoints for Eclipse Hono&trade;&rsquo;s south bound Telemetry, Event and Command &amp; Control APIs.</p>

<h2 id="device-authentication">Device Authentication</h2>

<p>The HTTP adapter by default requires clients (devices or gateway components) to authenticate during connection establishment. The adapter supports both the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a> as well as client certificate based authentication as part of a TLS handshake for that purpose.</p>

<p>The adapter tries to authenticate the device using these mechanisms in the following order</p>

<h3 id="client-certificate">Client Certificate</h3>

<p>When a device uses a client certificate for authentication during the TLS handshake, the adapter tries to determine the tenant that the device belongs to, based on the <em>issuer DN</em> contained in the certificate. In order for the lookup to succeed, the tenant&rsquo;s trust anchor needs to be configured by means of <a href="/hono/docs/api/tenant/#request-payload">registering the trusted certificate authority</a>. The device&rsquo;s client certificate will then be validated using the registered trust anchor, thus implicitly establishing the tenant that the device belongs to. In a second step, the adapter then uses the Credentials API&rsquo;s <em>get</em> operation with the client certificate&rsquo;s <em>subject DN</em> as the <em>auth-id</em> and <code>x509-cert</code> as the <em>type</em> of secret as query parameters.</p>

<p>NB: The HTTP adapter needs to be <a href="/hono/docs/admin-guide/secure_communication/#http-adapter">configured for TLS</a> in order to support this mechanism.</p>

<h3 id="http-basic-auth">HTTP Basic Auth</h3>

<p>The <em>username</em> provided in the header must have the form <em>auth-id@tenant</em>, e.g. <code>sensor1@DEFAULT_TENANT</code>. The adapter verifies the credentials provided by the client against the credentials that the <a href="/hono/docs/admin-guide/http-adapter-config/#credentials-service-connection-configuration">configured Credentials service</a> has on record for the client. The adapter uses the Credentials API&rsquo;s <em>get</em> operation to retrieve the credentials on record with the <em>tenant</em> and <em>auth-id</em> provided by the device in the <em>username</em> and <code>hashed-password</code> as the <em>type</em> of secret as query parameters.</p>

<p>The examples below refer to devices <code>4711</code> and <code>gw-1</code> of tenant <code>DEFAULT_TENANT</code> using <em>auth-ids</em> <code>sensor1</code> and <code>gw1</code> and corresponding passwords. The example deployment as described in the <a href="/hono/docs/deployment/">Deployment Guides</a> comes pre-configured with the corresponding entities in its device registry component.
Please refer to the <a href="/hono/docs/api/credentials/#standard-credential-types">Credentials API</a> for details regarding the different types of secrets.</p>

<p><strong>NB</strong> There is a subtle difference between the <em>device identifier</em> (<em>device-id</em>) and the <em>auth-id</em> a device uses for authentication. See <a href="/hono/docs/concepts/device-identity/">Device Identity</a> for a discussion of the concepts.</p>

<h2 id="message-limits">Message Limits</h2>

<p>Before accepting any telemetry or event or command messages, the HTTP adapter verifies that the configured <a href="/hono/docs/concepts/resource-limits/">message limit</a> is not exceeded. If the limit is exceeded then the incoming message is discarded with the status code <code>429 Too Many Requests</code>.</p>

<h2 id="publish-telemetry-data-authenticated-device">Publish Telemetry Data (authenticated Device)</h2>

<ul>
<li>URI: <code>/telemetry</code></li>
<li>Method: <code>POST</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The device&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the device to present a client certificate as part of the TLS handshake during connection establishment.</li>
<li>(required) <code>content-type</code>: The type of payload contained in the request body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
<li>(optional) <code>qos-level</code>: The QoS level for publishing telemetry messages. The adapter supports <em>at most once</em> (<code>0</code>) and <em>at least once</em> (<code>1</code>) QoS levels. The default value of <code>0</code> is assumed if this header is omitted.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The telemetry data has been accepted for processing. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The telemetry data has been accepted for processing. Note that if the <code>qos-level</code> request header is omitted (<em>at most once</em> semantics),
this status code does <strong>not</strong> mean that the message has been delivered to any potential consumer. However, if the QoS level header is set to <code>1</code>
(<em>at least once</em> semantics), then the adapter waits for the message to be delivered and accepted by a downstream consumer before responding with
this status code.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty.</li>
<li>The QoS header value is invalid.</li>
</ul></li>
<li>401 (Unauthorized): The request cannot be processed because the request does not contain valid credentials.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This is the preferred way for devices to publish telemetry data. It is available only if the protocol adapter is configured to require devices to authenticate (which is the default).</p>

<p><strong>Examples</strong></p>

<p>Publish some JSON data for device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4711</code> using <em>at least once</em> QoS:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' -H 'QoS-Level: 1' --data-binary '{&quot;temp&quot;: 5}' http://localhost:8080/telemetry

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4711</code>, indicating that the device will wait for 10 seconds to receive the response:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' -H 'hono-ttd: 10' --data-binary '{&quot;temp&quot;: 5}' http://localhost:8080/telemetry

HTTP/1.1 200 OK
hono-command: set
hono-cmd-req-id: 1010a7249aa5-f742-4376-8458-bbfc88c72d92
content-length: 23

{
  &quot;brightness&quot; : 87
}
</code></pre>

<p>Publish some JSON data for device <code>4711</code> using a client certificate for authentication:</p>

<pre><code class="language-sh"># in base directory of Hono repository:
curl -i --cert demo-certs/certs/device-4711-cert.pem --key demo-certs/certs/device-4711-key.pem --cacert demo-certs/certs/trusted-certs.pem -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' https://localhost:8443/telemetry

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p><strong>NB</strong>: The example above assumes that the HTTP adapter is <a href="/hono/docs/admin-guide/secure_communication/#http-adapter">configured for TLS</a> and the secure port is used.</p>

<h2 id="publish-telemetry-data-unauthenticated-device">Publish Telemetry Data (unauthenticated Device)</h2>

<ul>
<li>URI: <code>/telemetry/${tenantId}/${deviceId}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(required) <code>content-type</code>: The type of payload contained in the body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
<li>(optional) <code>qos-level</code>: The QoS level for publishing telemetry messages. The adapter supports <em>at most once</em> (<code>0</code>) and <em>at least once</em> (<code>1</code>) QoS levels. The default value of <code>0</code> is assumed if this header is omitted.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The telemetry data has been accepted for processing. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The telemetry data has been accepted for processing. Note that if the <code>qos-level</code> request header is omitted (<em>at most once</em> semantics),
this status code does <strong>not</strong> mean that the message has been delivered to any potential consumer. However, if the QoS level header is set to <code>1</code>
(<em>at least once</em> semantics), then the adapter waits for the message to be delivered and accepted by a downstream consumer before responding with
this status code.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty.</li>
<li>The QoS header value is invalid.</li>
</ul></li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
<li>The given device does not belong to the given tenant.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This resource MUST be used by devices that have not authenticated to the protocol adapter. Note that this requires the <code>HONO_HTTP_AUTHENTICATION_REQUIRED</code> configuration property to be explicitly set to <code>false</code>.</p>

<p><strong>Examples</strong></p>

<p>Publish some JSON data for device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry/DEFAULT_TENANT/4711

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4711</code> using <em>at least once</em> QoS:</p>

<pre><code class="language-sh">curl -i -X PUT -H 'content-type: application/json' -H 'qos-level: 1' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry/DEFAULT_TENANT/4711

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4711</code>, indicating that the device will wait for 10 seconds to receive the response:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' -H 'hono-ttd: 10' --data-binary '{&quot;temp&quot;: 5}' http://localhost:8080/telemetry

HTTP/1.1 200 OK
hono-command: set
hono-cmd-req-id: 1010a7249aa5-f742-4376-8458-bbfc88c72d92
content-length: 23

{
  &quot;brightness&quot; : 87
}
</code></pre>

<h2 id="publish-telemetry-data-authenticated-gateway">Publish Telemetry Data (authenticated Gateway)</h2>

<ul>
<li>URI: <code>/telemetry/${tenantId}/${deviceId}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The gateway&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the gateway to present a client certificate as part of the TLS handshake during connection establishment.</li>
</ul></li>
<li>Request Headers:

<ul>
<li>(required) <code>content-type</code>: The type of payload contained in the body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
<li>(optional) <code>qos-level</code>: The QoS level for publishing telemetry messages. The adapter supports <em>at most once</em> (<code>0</code>) and <em>at least once</em> (<code>1</code>) QoS levels. The default value of <code>0</code> is assumed if this header is omitted.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The telemetry data has been accepted for processing. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The telemetry data has been accepted for processing. Note that if the <code>qos-level</code> request header is omitted (<em>at most once</em> semantics),
this status code does <strong>not</strong> mean that the message has been delivered to any potential consumer. However, if the QoS level header is set to <code>1</code>
(<em>at least once</em> semantics), then the adapter waits for the message to be delivered and accepted by a downstream consumer before responding with
this status code.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty.</li>
<li>The QoS header value is invalid.</li>
</ul></li>
<li>401 (Unauthorized): The request cannot be processed because the request does not contain valid credentials.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The tenant that the gateway belongs to is not allowed to use this protocol adapter.</li>
<li>The device belongs to another tenant than the gateway.</li>
<li>The gateway is not authorized to act <em>on behalf of</em> the device.</li>
<li>The gateway associated with the device is not registered or disabled.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This resource can be used by <em>gateway</em> components to publish data <em>on behalf of</em> other devices which do not connect to a protocol adapter directly but instead are connected to the gateway, e.g. using some low-bandwidth radio based technology like <a href="https://www.sigfox.com">SigFox</a> or <a href="https://www.lora-alliance.org/">LoRa</a>. In this case the credentials provided by the gateway during connection establishment with the protocol adapter are used to authenticate the gateway whereas the parameters from the URI are used to identify the device that the gateway publishes data for.</p>

<p>The protocol adapter checks the gateway&rsquo;s authority to publish data on behalf of the device implicitly by means of retrieving a <em>registration assertion</em> for the device from the <a href="#device-registration-service-connection-configuration">configured Device Registration service</a>.</p>

<p><strong>Examples</strong></p>

<p>Publish some JSON data for device <code>4712</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -u gw@DEFAULT_TENANT:gw-secret -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry/DEFAULT_TENANT/4712

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4712</code> using <em>at least once</em> QoS:</p>

<pre><code class="language-sh">curl -i -X PUT -u gw@DEFAULT_TENANT:gw-secret -H 'content-type: application/json' -H 'qos-level: 1' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry/DEFAULT_TENANT/4712

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p>Publish some JSON data for device <code>4712</code>, indicating that the gateway will wait for 10 seconds to receive the response:</p>

<pre><code class="language-sh">curl -i -X PUT -u gw@DEFAULT_TENANT:gw-secret -H 'content-type: application/json' -H 'hono-ttd: 10' --data-binary '{&quot;temp&quot;: 5}' http://localhost:8080/telemetry/DEFAULT_TENANT/4712

HTTP/1.1 200 OK
hono-command: set
hono-cmd-req-id: 1010a7249aa5-f742-4376-8458-bbfc88c72d92
content-length: 23

{
  &quot;brightness&quot; : 87
}
</code></pre>

<p><strong>NB</strong>: The example above assumes that a gateway device has been registered with <code>hashed-password</code> credentials with <em>auth-id</em> <code>gw</code> and password <code>gw-secret</code> which is authorized to publish data <em>on behalf of</em> device <code>4712</code>.</p>

<h2 id="publish-an-event-authenticated-device">Publish an Event (authenticated Device)</h2>

<ul>
<li>URI: <code>/event</code></li>
<li>Method: <code>POST</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The device&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the device to present a client certificate as part of the TLS handshake during connection establishment.</li>
<li>(required) <code>content-type</code>: The type of payload contained in the body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The telemetry data has been accepted for processing. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The event has been accepted for processing.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty but the event is not of type <a href="/hono/docs/api/event/#empty-notification">empty-notification</a>.</li>
</ul></li>
<li>401 (Unauthorized): The request cannot be processed because the request does not contain valid credentials.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This is the preferred way for devices to publish events. It is available only if the protocol adapter is configured to require devices to authenticate (which is the default).</p>

<p><strong>Example</strong></p>

<p>Publish some JSON data for device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' --data-binary '{&quot;alarm&quot;: true}' http://127.0.0.1:8080/event

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h2 id="publish-an-event-unauthenticated-device">Publish an Event (unauthenticated Device)</h2>

<ul>
<li>URI: <code>/event/${tenantId}/${deviceId}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(required) <code>content-type</code>: The type of payload contained in the body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The event has been accepted and put to a persistent store for delivery to consumers. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The event has been accepted and put to a persistent store for delivery to consumers.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty but the event is not of type <a href="/hono/docs/api/event/#empty-notification">empty-notification</a>.</li>
</ul></li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
<li>The given device does not belong to the given tenant.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This resource MUST be used by devices that have not authenticated to the protocol adapter. Note that this requires the <code>HONO_HTTP_AUTHENTICATION_REQUIRED</code> configuration property to be explicitly set to <code>false</code>.</p>

<p><strong>Examples</strong></p>

<p>Publish some JSON data for device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -H 'content-type: application/json' --data-binary '{&quot;alarm&quot;: true}' http://127.0.0.1:8080/event/DEFAULT_TENANT/4711

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h2 id="publish-an-event-authenticated-gateway">Publish an Event (authenticated Gateway)</h2>

<ul>
<li>URI: <code>/event/${tenantId}/${deviceId}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The gateway&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the gateway to present a client certificate as part of the TLS handshake during connection establishment.</li>
<li>(required) <code>content-type</code>: The type of payload contained in the body.</li>
<li>(optional) <code>hono-ttd</code>: The number of seconds the device will wait for the response.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(required) Arbitrary payload encoded according to the given content type.</li>
</ul></li>
<li>Response Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of payload contained in the response body. This header will only be present if the response contains a command to be executed by the device which requires input data.</li>
<li>(optional) <code>hono-command</code>: The name of the command to execute. This header will only be present if the response contains a command to be executed by the device.</li>
<li>(optional) <code>hono-cmd-req-id</code>: An identifier that the device must include in its response to a command. This header will only be present if the response contains a command to be executed by the device.</li>
</ul></li>
<li>Response Body:

<ul>
<li>(optional) Arbitrary data serving as input to a command to be executed by the device, if status code is 200.</li>
<li>(optional) Error details, if status code is &gt;= 400.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>200 (OK): The event has been accepted and put to a persistent store for delivery to consumers. The response contains a command for the device to execute.</li>
<li>202 (Accepted): The event has been accepted and put to a persistent store for delivery to consumers.</li>
<li>400 (Bad Request): The request cannot be processed. Possible reasons for this include:

<ul>
<li>The content type header is missing.</li>
<li>The request body is empty but the event is not of type <a href="/hono/docs/api/event/#empty-notification">empty-notification</a>.</li>
</ul></li>
<li>401 (Unauthorized): The request cannot be processed because the request does not contain valid credentials.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The tenant that the gateway belongs to is not allowed to use this protocol adapter.</li>
<li>The device belongs to another tenant than the gateway.</li>
<li>The gateway is not authorized to act <em>on behalf of</em> the device.</li>
<li>The gateway associated with the device is not registered or disabled.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed because there is no consumer of telemetry data for the given tenant connected to Hono.</li>
</ul></li>
</ul>

<p>This resource can be used by <em>gateway</em> components to publish data <em>on behalf of</em> other devices which do not connect to a protocol adapter directly but instead are connected to the gateway, e.g. using some low-bandwidth radio based technology like <a href="https://www.sigfox.com">SigFox</a> or <a href="https://www.lora-alliance.org/">LoRa</a>. In this case the credentials provided by the gateway during connection establishment with the protocol adapter are used to authenticate the gateway whereas the parameters from the URI are used to identify the device that the gateway publishes data for.</p>

<p>The protocol adapter checks the gateway&rsquo;s authority to publish data on behalf of the device implicitly by means of retrieving a <em>registration assertion</em> for the device from the <a href="#device-registration-service-connection-configuration">configured Device Registration service</a>.</p>

<p><strong>Examples</strong></p>

<p>Publish some JSON data for device <code>4712</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -u gw@DEFAULT_TENANT:gw-secret -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/event/DEFAULT_TENANT/4712

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p><strong>NB</strong>: The example above assumes that a gateway device has been registered with <code>hashed-password</code> credentials with <em>auth-id</em> <code>gw</code> and password <code>gw-secret</code> which is authorized to publish data <em>on behalf of</em> device <code>4712</code>.</p>

<h2 id="specifying-the-time-a-device-will-wait-for-a-response">Specifying the Time a Device will wait for a Response</h2>

<p>The adapter lets devices indicate the number of seconds they will wait for a response by setting a header or a query parameter.</p>

<h3 id="using-an-http-header">Using an HTTP Header</h3>

<p>The (optional) <em>hono-ttd</em> header can be set in requests for publishing telemetry data or events.</p>

<p>Example:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' -H 'hono-ttd: 60' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h3 id="using-a-query-parameter">Using a Query Parameter</h3>

<p>Alternatively the <em>hono-ttd</em> query parameter can be used:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' --data-binary '{&quot;temp&quot;: 5}' http://127.0.0.1:8080/telemetry?hono-ttd=60

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h2 id="sending-a-response-to-a-command-authenticated-device">Sending a Response to a Command (authenticated Device)</h2>

<ul>
<li>Since: 0.7</li>
<li>URI: <code>/command/res/${commandRequestId}</code> or <code>/command/res/${commandRequestId}?hono-cmd-status=${status}</code></li>
<li>Method: <code>POST</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The device&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the device to present a client certificate as part of the TLS handshake during connection establishment.</li>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of the payload contained in the request body. This header may be set if the result of processing the command on the device is non-empty. In this case the result data is contained in the request body.</li>
<li>(optional) <code>hono-cmd-status</code>: The status of the command execution. If not set, the adapter expects that the URI contains it
as request parameter at the end.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(optional) Arbitrary data representing the result of processing the command on the device.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>202 (Accepted): The response has been successfully delivered to the application that has sent the command.</li>
<li>400 (Bad Request): The request cannot be processed because the command status is missing.</li>
<li>401 (Unauthorized): The request cannot be processed because the request does not contain valid credentials.<br /></li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this include:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed. Possible reasons for this include:

<ul>
<li>There is no application listening for a reply to the given <em>commandRequestId</em>.</li>
<li>The application has already given up on waiting for a response.</li>
</ul></li>
</ul></li>
</ul>

<p>This is the preferred way for devices to respond to commands. It is available only if the protocol adapter is configured to require devices to authenticate (which is the default).</p>

<div class="alert alert-notice">
    <h4 class="alert-heading"><i class="fas fa-info-circle"></i> Deprecation</h4>
    <div>Previous versions of Hono used <code>control</code> instead of <code>command</code> as prefix in the command response URI. Using the <code>control</code> prefix is still supported but deprecated.</div>
</div>


<p><strong>Example</strong></p>

<p>Send a response to a previously received command with the command-request-id <code>req-id-uuid</code> for device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -u sensor1@DEFAULT_TENANT:hono-secret -H 'content-type: application/json' --data-binary '{&quot;brightness-changed&quot;: true}' http://127.0.0.1:8080/command/res/req-id-uuid?hono-cmd-status=200

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h2 id="sending-a-response-to-a-command-unauthenticated-device">Sending a Response to a Command (unauthenticated Device)</h2>

<ul>
<li>Since: 0.7</li>
<li>URI: <code>/command/res/${tenantId}/${deviceId}/${commandRequestId}</code> or <code>/command/res/${tenantId}/${deviceId}/${commandRequestId}?hono-cmd-status=${status}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of the payload contained in the request body (the outcome of processing the command).</li>
<li>(optional) <code>hono-cmd-status</code>: The status of the command execution. If not set, the adapter expects that the URI contains it
as request parameter at the end.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(optional) Arbitrary data representing the result of processing the command on the device.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>202 (Accepted): The response has been successfully delivered to the application that has sent the command.</li>
<li>400 (Bad Request): The request cannot be processed because the command status is missing.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this might be:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
<li>The given device does not belong to the given tenant.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed. Possible reasons for this include:

<ul>
<li>There is no application listening for a reply to the given <em>commandRequestId</em>.</li>
<li>The application has already given up on waiting for a response.</li>
</ul></li>
</ul></li>
</ul>

<p>This resource MUST be used by devices that have not authenticated to the protocol adapter. Note that this requires the <code>HONO_HTTP_AUTHENTICATION_REQUIRED</code> configuration property to be explicitly set to <code>false</code>.</p>

<div class="alert alert-notice">
    <h4 class="alert-heading"><i class="fas fa-info-circle"></i> Deprecation</h4>
    <div>Previous versions of Hono used <code>control</code> instead of <code>command</code> as prefix in the command response URI. Using the <code>control</code> prefix is still supported but deprecated.</div>
</div>


<p><strong>Examples</strong></p>

<p>Send a response to a previously received command with the command-request-id <code>req-id-uuid</code> for the unauthenticated device <code>4711</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -H 'content-type: application/json' --data-binary '{&quot;brightness-changed&quot;: true}' http://127.0.0.1:8080/command/res/DEFAULT_TENANT/4711/req-id-uuid?hono-cmd-status=200

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<h2 id="sending-a-response-to-a-command-authenticated-gateway">Sending a Response to a Command (authenticated Gateway)</h2>

<ul>
<li>Since: 0.7</li>
<li>URI: <code>/command/res/${tenantId}/${deviceId}/${commandRequestId}</code> or <code>/command/res/${tenantId}/${deviceId}/${commandRequestId}?hono-cmd-status=${status}</code></li>
<li>Method: <code>PUT</code></li>
<li>Request Headers:

<ul>
<li>(optional) <code>authorization</code>: The gateway&rsquo;s <em>auth-id</em> and plain text password encoded according to the <a href="https://tools.ietf.org/html/rfc7617">Basic HTTP authentication scheme</a>. If not set, the adapter expects the gateway to present a client certificate as part of the TLS handshake during connection establishment.</li>
<li>(optional) <code>content-type</code>: A media type describing the semantics and format of the payload contained in the request body (the outcome of processing the command).</li>
<li>(optional) <code>hono-cmd-status</code>: The status of the command execution. If not set, the adapter expects that the URI contains it
as request parameter at the end.</li>
</ul></li>
<li>Request Body:

<ul>
<li>(optional) Arbitrary data representing the result of processing the command on the device.</li>
</ul></li>
<li>Status Codes:

<ul>
<li>202 (Accepted): The response has been successfully delivered to the application that has sent the command.</li>
<li>400 (Bad Request): The request cannot be processed because the command status is missing.</li>
<li>403 (Forbidden): The request cannot be processed because the device&rsquo;s registration status cannot be asserted. Possible reasons for this might be:

<ul>
<li>The given tenant is not allowed to use this protocol adapter.</li>
<li>The given device does not belong to the given tenant.</li>
<li>The gateway is not authorized to act <em>on behalf of</em> the device.</li>
<li>The gateway associated with the device is not registered or disabled.</li>
</ul></li>
<li>404 (Not Found): The request cannot be processed because the device is disabled or does not exist.</li>
<li>429 (Too Many Requests): The request cannot be processed because the tenant&rsquo;s message limit for the current period is exceeded.</li>
<li>503 (Service Unavailable): The request cannot be processed. Possible reasons for this include:

<ul>
<li>There is no application listening for a reply to the given <em>commandRequestId</em>.</li>
<li>The application has already given up on waiting for a response.</li>
</ul></li>
</ul></li>
</ul>

<p>This resource can be used by <em>gateway</em> components to send the response to a command <em>on behalf of</em> other devices which do not connect to a protocol adapter directly but instead are connected to the gateway, e.g. using some low-bandwidth radio based technology like <a href="https://www.sigfox.com">SigFox</a> or <a href="https://www.lora-alliance.org/">LoRa</a>. In this case the credentials provided by the gateway during connection establishment with the protocol adapter are used to authenticate the gateway whereas the parameters from the URI are used to identify the device that the gateway publishes data for.</p>

<p>The protocol adapter checks the gateway&rsquo;s authority to send responses to a command on behalf of the device implicitly by means of retrieving a <em>registration assertion</em> for the device from the <a href="#device-registration-service-connection-configuration">configured Device Registration service</a>.</p>

<div class="alert alert-notice">
    <h4 class="alert-heading"><i class="fas fa-info-circle"></i> Deprecation</h4>
    <div>Previous versions of Hono used <code>control</code> instead of <code>command</code> as prefix in the command response URI. Using the <code>control</code> prefix is still supported but deprecated.</div>
</div>


<p><strong>Examples</strong></p>

<p>Send a response to a previously received command with the command-request-id <code>req-id-uuid</code> for device <code>4712</code>:</p>

<pre><code class="language-sh">curl -i -X PUT -u gw@DEFAULT_TENANT:gw-secret -H 'content-type: application/json' --data-binary '{&quot;brightness-changed&quot;: true}' http://127.0.0.1:8080/command/res/DEFAULT_TENANT/4712/req-id-uuid?hono-cmd-status=200

HTTP/1.1 202 Accepted
content-length: 0
</code></pre>

<p><strong>NB</strong>: The example above assumes that a gateway device has been registered with <code>hashed-password</code> credentials with <em>auth-id</em> <code>gw</code> and password <code>gw-secret</code> which is authorized to publish data <em>on behalf of</em> device <code>4712</code>.</p>

<h2 id="downstream-meta-data">Downstream Meta Data</h2>

<p>The adapter includes the following meta data in the application properties of messages being sent downstream:</p>

<table>
<thead>
<tr>
<th align="left">Name</th>
<th align="left">Type</th>
<th align="left">Description</th>
</tr>
</thead>

<tbody>
<tr>
<td align="left"><em>device_id</em></td>
<td align="left"><em>string</em></td>
<td align="left">The identifier of the device that the message originates from.</td>
</tr>

<tr>
<td align="left"><em>orig_adapter</em></td>
<td align="left"><em>string</em></td>
<td align="left">Contains the adapter&rsquo;s <em>type name</em> which can be used by downstream consumers to determine the protocol adapter that the message has been received over. The HTTP adapter&rsquo;s type name is <code>hono-http</code>.</td>
</tr>

<tr>
<td align="left"><em>orig_address</em></td>
<td align="left"><em>string</em></td>
<td align="left">Contains the (relative) URI that the device has originally posted the data to.</td>
</tr>

<tr>
<td align="left"><em>ttd</em></td>
<td align="left"><em>integer</em></td>
<td align="left">Contains the effective number of seconds that the device will wait for a response. This property is only set if the HTTP request contains the <code>hono-ttd</code> header or request parameter.</td>
</tr>
</tbody>
</table>

<p>The adapter also considers <em>defaults</em> registered for the device at either the <a href="/hono/docs/api/tenant/#payload-format">tenant</a> or the <a href="/hono/docs/api/device-registration/#payload-format">device level</a>. The values of the default properties are determined as follows:</p>

<ol>
<li>If the message already contains a non-empty property of the same name, the value if unchanged.</li>
<li>Otherwise, if a default property of the same name is defined in the device&rsquo;s registration information, that value is used.</li>
<li>Otherwise, if a default property of the same name is defined for the tenant that the device belongs to, that value is used.</li>
</ol>

<p>Note that of the standard AMQP 1.0 message properties only the <em>content-type</em> and <em>ttl</em> can be set this way to a default value.</p>

<h2 id="tenant-specific-configuration">Tenant specific Configuration</h2>

<p>The adapter uses the <a href="/hono/docs/api/tenant/#get-tenant-information">Tenant API</a> to retrieve <em>tenant specific configuration</em> for adapter type <code>hono-http</code>.
The following properties are (currently) supported:</p>

<table>
<thead>
<tr>
<th align="left">Name</th>
<th align="left">Type</th>
<th align="left">Default Value</th>
<th align="left">Description</th>
</tr>
</thead>

<tbody>
<tr>
<td align="left"><em>enabled</em></td>
<td align="left"><em>boolean</em></td>
<td align="left"><code>true</code></td>
<td align="left">If set to <code>false</code> the adapter will reject all data from devices belonging to the tenant.</td>
</tr>

<tr>
<td align="left"><em>max-ttd</em></td>
<td align="left"><em>integer</em></td>
<td align="left"><code>60</code></td>
<td align="left">Defines a tenant specific upper limit for the <em>time until disconnect</em> property that devices may include in requests for uploading telemetry data or events. Please refer to the <a href="/hono/docs/concepts/command-and-control/">Command &amp; Control concept page</a> for a discussion of this parameter&rsquo;s purpose and usage.<br>If this property is not set for the <code>hono-http</code> adapter type, the adapter will try to read this property from the tenant level configuration.</td>
</tr>
</tbody>
</table>

<footer class=" footline" >
	
</footer>


        
        </div> 
        

      </div>

    <div id="navigation">
        
        
        
        
            
            
                
                    
                    
                
                

                    
                    
                        
                    
                    

                    
                        
            
            
                
                    
                        
                        
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                        
                        
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                        
                        
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
                        
            
            
                
                    
                
                

                    
                    
                    

                    
            
        
                    
            
        
                    
            
        
        
        


	 
	 
    </div>

    </section>
    
    <div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
      <div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
    </div>
    <script src="/hono/docs/js/clipboard.min.js?1568711528"></script>
    <script src="/hono/docs/js/perfect-scrollbar.min.js?1568711528"></script>
    <script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1568711528"></script>
    <script src="/hono/docs/js/jquery.sticky.js?1568711528"></script>
    <script src="/hono/docs/js/featherlight.min.js?1568711528"></script>
    <script src="/hono/docs/js/html5shiv-printshiv.min.js?1568711528"></script>
    <script src="/hono/docs/js/highlight.pack.js?1568711528"></script>
    <script>hljs.initHighlightingOnLoad();</script>
    <script src="/hono/docs/js/modernizr.custom.71422.js?1568711528"></script>
    <script src="/hono/docs/js/learn.js?1568711528"></script>
    <script src="/hono/docs/js/hugo-learn.js?1568711528"></script>

    <link href="/hono/docs/mermaid/mermaid.css?1568711528" type="text/css" rel="stylesheet" />
    <script src="/hono/docs/mermaid/mermaid.js?1568711528"></script>
    <script>
        mermaid.initialize({ startOnLoad: true });
    </script>
    




<script>
    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>


<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>

  </body>
</html>

